signature.h (3676B)
1 /* 2 * Test driver for signature functions. 3 */ 4 /* Copyright The Mbed TLS Contributors 5 * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 6 */ 7 8 #ifndef PSA_CRYPTO_TEST_DRIVERS_SIGNATURE_H 9 #define PSA_CRYPTO_TEST_DRIVERS_SIGNATURE_H 10 11 #include "mbedtls/build_info.h" 12 13 #if defined(PSA_CRYPTO_DRIVER_TEST) 14 #include "test_driver_common.h" 15 16 #include <psa/crypto_driver_common.h> 17 18 typedef struct { 19 /* If non-null, on success, copy this to the output. */ 20 void *forced_output; 21 size_t forced_output_length; 22 /* If not PSA_SUCCESS, return this error code instead of processing the 23 * function call. */ 24 psa_status_t forced_status; 25 /* Count the amount of times one of the signature driver functions is called. */ 26 unsigned long hits; 27 } mbedtls_test_driver_signature_hooks_t; 28 29 #define MBEDTLS_TEST_DRIVER_SIGNATURE_INIT { NULL, 0, PSA_SUCCESS, 0 } 30 static inline mbedtls_test_driver_signature_hooks_t 31 mbedtls_test_driver_signature_hooks_init(void) 32 { 33 const mbedtls_test_driver_signature_hooks_t 34 v = MBEDTLS_TEST_DRIVER_SIGNATURE_INIT; 35 return v; 36 } 37 38 extern mbedtls_test_driver_signature_hooks_t 39 mbedtls_test_driver_signature_sign_hooks; 40 extern mbedtls_test_driver_signature_hooks_t 41 mbedtls_test_driver_signature_verify_hooks; 42 43 psa_status_t mbedtls_test_transparent_signature_sign_message( 44 const psa_key_attributes_t *attributes, 45 const uint8_t *key, 46 size_t key_length, 47 psa_algorithm_t alg, 48 const uint8_t *input, 49 size_t input_length, 50 uint8_t *signature, 51 size_t signature_size, 52 size_t *signature_length); 53 54 psa_status_t mbedtls_test_opaque_signature_sign_message( 55 const psa_key_attributes_t *attributes, 56 const uint8_t *key, 57 size_t key_length, 58 psa_algorithm_t alg, 59 const uint8_t *input, 60 size_t input_length, 61 uint8_t *signature, 62 size_t signature_size, 63 size_t *signature_length); 64 65 psa_status_t mbedtls_test_transparent_signature_verify_message( 66 const psa_key_attributes_t *attributes, 67 const uint8_t *key, 68 size_t key_length, 69 psa_algorithm_t alg, 70 const uint8_t *input, 71 size_t input_length, 72 const uint8_t *signature, 73 size_t signature_length); 74 75 psa_status_t mbedtls_test_opaque_signature_verify_message( 76 const psa_key_attributes_t *attributes, 77 const uint8_t *key, 78 size_t key_length, 79 psa_algorithm_t alg, 80 const uint8_t *input, 81 size_t input_length, 82 const uint8_t *signature, 83 size_t signature_length); 84 85 psa_status_t mbedtls_test_transparent_signature_sign_hash( 86 const psa_key_attributes_t *attributes, 87 const uint8_t *key, size_t key_length, 88 psa_algorithm_t alg, 89 const uint8_t *hash, size_t hash_length, 90 uint8_t *signature, size_t signature_size, size_t *signature_length); 91 92 psa_status_t mbedtls_test_opaque_signature_sign_hash( 93 const psa_key_attributes_t *attributes, 94 const uint8_t *key, size_t key_length, 95 psa_algorithm_t alg, 96 const uint8_t *hash, size_t hash_length, 97 uint8_t *signature, size_t signature_size, size_t *signature_length); 98 99 psa_status_t mbedtls_test_transparent_signature_verify_hash( 100 const psa_key_attributes_t *attributes, 101 const uint8_t *key, size_t key_length, 102 psa_algorithm_t alg, 103 const uint8_t *hash, size_t hash_length, 104 const uint8_t *signature, size_t signature_length); 105 106 psa_status_t mbedtls_test_opaque_signature_verify_hash( 107 const psa_key_attributes_t *attributes, 108 const uint8_t *key, size_t key_length, 109 psa_algorithm_t alg, 110 const uint8_t *hash, size_t hash_length, 111 const uint8_t *signature, size_t signature_length); 112 113 #endif /* PSA_CRYPTO_DRIVER_TEST */ 114 #endif /* PSA_CRYPTO_TEST_DRIVERS_SIGNATURE_H */