1 /*
2  * Copyright (c) 2024, Arm Limited and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef PREFIXED_CRYPTO_API_H
8 #define PREFIXED_CRYPTO_API_H
9 
10 /**
11  * A set of preprocessor defines that modify psa crypto API function
12  * names to avoid name clashes where multiple realizations of the API
13  * are included within the same build.
14  */
15 #ifdef BACKEND_CRYPTO_API_ADD_PREFIX
16 
17 /* Core operations */
18 #define psa_crypto_init				BACKEND_CRYPTO_API_ADD_PREFIX(psa_crypto_init)
19 #define psa_asymmetric_decrypt			BACKEND_CRYPTO_API_ADD_PREFIX(psa_asymmetric_decrypt)
20 #define psa_asymmetric_encrypt			BACKEND_CRYPTO_API_ADD_PREFIX(psa_asymmetric_encrypt)
21 #define psa_copy_key				BACKEND_CRYPTO_API_ADD_PREFIX(psa_copy_key)
22 #define psa_destroy_key				BACKEND_CRYPTO_API_ADD_PREFIX(psa_destroy_key)
23 #define psa_export_key				BACKEND_CRYPTO_API_ADD_PREFIX(psa_export_key)
24 #define psa_export_public_key			BACKEND_CRYPTO_API_ADD_PREFIX(psa_export_public_key)
25 #define psa_generate_key			BACKEND_CRYPTO_API_ADD_PREFIX(psa_generate_key)
26 #define psa_generate_random			BACKEND_CRYPTO_API_ADD_PREFIX(psa_generate_random)
27 #define psa_get_key_attributes			BACKEND_CRYPTO_API_ADD_PREFIX(psa_get_key_attributes)
28 #define psa_import_key				BACKEND_CRYPTO_API_ADD_PREFIX(psa_import_key)
29 #define psa_purge_key				BACKEND_CRYPTO_API_ADD_PREFIX(psa_purge_key)
30 #define psa_sign_hash				BACKEND_CRYPTO_API_ADD_PREFIX(psa_sign_hash)
31 #define psa_sign_message			BACKEND_CRYPTO_API_ADD_PREFIX(psa_sign_message)
32 #define psa_verify_hash				BACKEND_CRYPTO_API_ADD_PREFIX(psa_verify_hash)
33 #define psa_verify_message			BACKEND_CRYPTO_API_ADD_PREFIX(psa_verify_message)
34 #define psa_reset_key_attributes		BACKEND_CRYPTO_API_ADD_PREFIX(psa_reset_key_attributes)
35 
36 /* Cipher operations */
37 #define psa_cipher_encrypt_setup		BACKEND_CRYPTO_API_ADD_PREFIX(psa_cipher_encrypt_setup)
38 #define psa_cipher_decrypt_setup		BACKEND_CRYPTO_API_ADD_PREFIX(psa_cipher_decrypt_setup)
39 #define psa_cipher_generate_iv			BACKEND_CRYPTO_API_ADD_PREFIX(psa_cipher_generate_iv)
40 #define psa_cipher_set_iv			BACKEND_CRYPTO_API_ADD_PREFIX(psa_cipher_set_iv)
41 #define psa_cipher_update			BACKEND_CRYPTO_API_ADD_PREFIX(psa_cipher_update)
42 #define psa_cipher_finish			BACKEND_CRYPTO_API_ADD_PREFIX(psa_cipher_finish)
43 #define psa_cipher_abort			BACKEND_CRYPTO_API_ADD_PREFIX(psa_cipher_abort)
44 #define psa_cipher_encrypt			BACKEND_CRYPTO_API_ADD_PREFIX(psa_cipher_encrypt)
45 #define psa_cipher_decrypt			BACKEND_CRYPTO_API_ADD_PREFIX(psa_cipher_decrypt)
46 
47 /* Hash operations */
48 #define psa_hash_setup				BACKEND_CRYPTO_API_ADD_PREFIX(psa_hash_setup)
49 #define psa_hash_update				BACKEND_CRYPTO_API_ADD_PREFIX(psa_hash_update)
50 #define psa_hash_finish				BACKEND_CRYPTO_API_ADD_PREFIX(psa_hash_finish)
51 #define psa_hash_abort				BACKEND_CRYPTO_API_ADD_PREFIX(psa_hash_abort)
52 #define psa_hash_verify				BACKEND_CRYPTO_API_ADD_PREFIX(psa_hash_verify)
53 #define psa_hash_clone				BACKEND_CRYPTO_API_ADD_PREFIX(psa_hash_clone)
54 #define psa_hash_suspend			BACKEND_CRYPTO_API_ADD_PREFIX(psa_hash_suspend)
55 #define psa_hash_resume				BACKEND_CRYPTO_API_ADD_PREFIX(psa_hash_resume)
56 #define psa_hash_compare			BACKEND_CRYPTO_API_ADD_PREFIX(psa_hash_compare)
57 #define psa_hash_compute			BACKEND_CRYPTO_API_ADD_PREFIX(psa_hash_compute)
58 
59 /* Key derivation operations */
60 #define psa_key_derivation_setup		BACKEND_CRYPTO_API_ADD_PREFIX(psa_key_derivation_setup)
61 #define psa_key_derivation_get_capacity		BACKEND_CRYPTO_API_ADD_PREFIX(psa_key_derivation_get_capacity)
62 #define psa_key_derivation_set_capacity		BACKEND_CRYPTO_API_ADD_PREFIX(psa_key_derivation_set_capacity)
63 #define psa_key_derivation_input_bytes		BACKEND_CRYPTO_API_ADD_PREFIX(psa_key_derivation_input_bytes)
64 #define psa_key_derivation_input_key		BACKEND_CRYPTO_API_ADD_PREFIX(psa_key_derivation_input_key)
65 #define psa_key_derivation_output_bytes		BACKEND_CRYPTO_API_ADD_PREFIX(psa_key_derivation_output_bytes)
66 #define psa_key_derivation_output_key		BACKEND_CRYPTO_API_ADD_PREFIX(psa_key_derivation_output_key)
67 #define psa_key_derivation_abort		BACKEND_CRYPTO_API_ADD_PREFIX(psa_key_derivation_abort)
68 #define psa_key_derivation_key_agreement	BACKEND_CRYPTO_API_ADD_PREFIX(psa_key_derivation_key_agreement)
69 #define psa_raw_key_agreement			BACKEND_CRYPTO_API_ADD_PREFIX(psa_raw_key_agreement)
70 
71 /* MAC operations */
72 #define psa_mac_sign_setup			BACKEND_CRYPTO_API_ADD_PREFIX(psa_mac_sign_setup)
73 #define psa_mac_verify_setup			BACKEND_CRYPTO_API_ADD_PREFIX(psa_mac_verify_setup)
74 #define psa_mac_update				BACKEND_CRYPTO_API_ADD_PREFIX(psa_mac_update)
75 #define psa_mac_sign_finish			BACKEND_CRYPTO_API_ADD_PREFIX(psa_mac_sign_finish)
76 #define psa_mac_verify_finish			BACKEND_CRYPTO_API_ADD_PREFIX(psa_mac_verify_finish)
77 #define psa_mac_abort				BACKEND_CRYPTO_API_ADD_PREFIX(psa_mac_abort)
78 #define psa_mac_verify				BACKEND_CRYPTO_API_ADD_PREFIX(psa_mac_verify)
79 #define psa_mac_compute				BACKEND_CRYPTO_API_ADD_PREFIX(psa_mac_compute)
80 
81 /* AEAD operations */
82 #define psa_aead_encrypt			BACKEND_CRYPTO_API_ADD_PREFIX(psa_aead_encrypt)
83 #define psa_aead_decrypt			BACKEND_CRYPTO_API_ADD_PREFIX(psa_aead_decrypt)
84 #define psa_aead_encrypt_setup			BACKEND_CRYPTO_API_ADD_PREFIX(psa_aead_encrypt_setup)
85 #define psa_aead_decrypt_setup			BACKEND_CRYPTO_API_ADD_PREFIX(psa_aead_decrypt_setup)
86 #define psa_aead_generate_nonce			BACKEND_CRYPTO_API_ADD_PREFIX(psa_aead_generate_nonce)
87 #define psa_aead_set_nonce			BACKEND_CRYPTO_API_ADD_PREFIX(psa_aead_set_nonce)
88 #define psa_aead_set_lengths			BACKEND_CRYPTO_API_ADD_PREFIX(psa_aead_set_lengths)
89 #define psa_aead_update_ad			BACKEND_CRYPTO_API_ADD_PREFIX(psa_aead_update_ad)
90 #define psa_aead_update				BACKEND_CRYPTO_API_ADD_PREFIX(psa_aead_update)
91 #define psa_aead_finish				BACKEND_CRYPTO_API_ADD_PREFIX(psa_aead_finish)
92 #define psa_aead_verify				BACKEND_CRYPTO_API_ADD_PREFIX(psa_aead_verify)
93 #define psa_aead_abort				BACKEND_CRYPTO_API_ADD_PREFIX(psa_aead_abort)
94 
95 #endif /* BACKEND_CRYPTO_API_ADD_PREFIX */
96 #endif /* PREFIXED_CRYPTO_API_H */
97