Go to the documentation of this file.
29 #ifdef __DOXYGEN_ONLY__
67 #define PSA_CRYPTO_API_VERSION_MAJOR 1
72 #define PSA_CRYPTO_API_VERSION_MINOR 0
121 #ifdef __DOXYGEN_ONLY__
125 #define PSA_KEY_ATTRIBUTES_INIT {0}
783 size_t *data_length);
853 size_t *data_length);
896 const uint8_t *input,
900 size_t *hash_length);
932 const uint8_t *input,
972 #ifdef __DOXYGEN_ONLY__
976 #define PSA_HASH_OPERATION_INIT {0}
1060 const uint8_t *input,
1061 size_t input_length);
1109 size_t *hash_length);
1149 const uint8_t *hash,
1150 size_t hash_length);
1260 const uint8_t *input,
1261 size_t input_length,
1264 size_t *mac_length);
1300 const uint8_t *input,
1301 size_t input_length,
1340 #ifdef __DOXYGEN_ONLY__
1344 #define PSA_MAC_OPERATION_INIT {0}
1504 const uint8_t *input,
1505 size_t input_length);
1556 size_t *mac_length);
1676 const uint8_t *input,
1677 size_t input_length,
1680 size_t *output_length);
1722 const uint8_t *input,
1723 size_t input_length,
1726 size_t *output_length);
1763 #ifdef __DOXYGEN_ONLY__
1767 #define PSA_CIPHER_OPERATION_INIT {0}
2019 const uint8_t *input,
2020 size_t input_length,
2023 size_t *output_length);
2074 size_t *output_length);
2159 const uint8_t *nonce,
2160 size_t nonce_length,
2161 const uint8_t *additional_data,
2162 size_t additional_data_length,
2163 const uint8_t *plaintext,
2164 size_t plaintext_length,
2165 uint8_t *ciphertext,
2166 size_t ciphertext_size,
2167 size_t *ciphertext_length);
2219 const uint8_t *nonce,
2220 size_t nonce_length,
2221 const uint8_t *additional_data,
2222 size_t additional_data_length,
2223 const uint8_t *ciphertext,
2224 size_t ciphertext_length,
2226 size_t plaintext_size,
2227 size_t *plaintext_length);
2264 #ifdef __DOXYGEN_ONLY__
2268 #define PSA_AEAD_OPERATION_INIT {0}
2449 size_t *nonce_length);
2488 const uint8_t *nonce,
2489 size_t nonce_length);
2535 size_t plaintext_length);
2583 const uint8_t *input,
2584 size_t input_length);
2661 const uint8_t *input,
2662 size_t input_length,
2665 size_t *output_length);
2737 uint8_t *ciphertext,
2738 size_t ciphertext_size,
2739 size_t *ciphertext_length,
2742 size_t *tag_length);
2818 size_t plaintext_size,
2819 size_t *plaintext_length,
2900 const uint8_t *hash,
2903 size_t signature_size,
2904 size_t *signature_length);
2946 const uint8_t *hash,
2948 const uint8_t *signature,
2949 size_t signature_length);
3003 const uint8_t *input,
3004 size_t input_length,
3005 const uint8_t *salt,
3009 size_t *output_length);
3063 const uint8_t *input,
3064 size_t input_length,
3065 const uint8_t *salt,
3069 size_t *output_length);
3113 #ifdef __DOXYGEN_ONLY__
3117 #define PSA_KEY_DERIVATION_OPERATION_INIT {0}
3247 #define PSA_KEY_DERIVATION_UNLIMITED_CAPACITY ((size_t)(-1))
3294 const uint8_t *data,
3295 size_t data_length);
3417 const uint8_t *peer_key,
3418 size_t peer_key_length);
3461 size_t output_length);
3680 const uint8_t *peer_key,
3681 size_t peer_key_length,
3684 size_t *output_length);
3717 size_t output_size);
psa_status_t psa_key_derivation_key_agreement(psa_key_derivation_operation_t *operation, psa_key_derivation_step_t step, psa_key_handle_t private_key, const uint8_t *peer_key, size_t peer_key_length)
psa_status_t psa_hash_verify(psa_hash_operation_t *operation, const uint8_t *hash, size_t hash_length)
int32_t psa_status_t
Function return status.
psa_status_t psa_raw_key_agreement(psa_algorithm_t alg, psa_key_handle_t private_key, const uint8_t *peer_key, size_t peer_key_length, uint8_t *output, size_t output_size, size_t *output_length)
static psa_key_attributes_t psa_key_attributes_init(void)
psa_status_t psa_aead_set_lengths(psa_aead_operation_t *operation, size_t ad_length, size_t plaintext_length)
psa_status_t psa_mac_abort(psa_mac_operation_t *operation)
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_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_key_derivation_output_key(const psa_key_attributes_t *attributes, psa_key_derivation_operation_t *operation, psa_key_handle_t *handle)
static void psa_set_key_algorithm(psa_key_attributes_t *attributes, psa_algorithm_t alg)
psa_status_t psa_cipher_decrypt(psa_key_handle_t handle, 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_export_public_key(psa_key_handle_t handle, 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.
psa_status_t psa_key_derivation_setup(psa_key_derivation_operation_t *operation, psa_algorithm_t alg)
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 cryptography module: macros to build and analyze integer values.
psa_status_t psa_aead_abort(psa_aead_operation_t *operation)
static psa_cipher_operation_t psa_cipher_operation_init(void)
psa_status_t psa_generate_key(const psa_key_attributes_t *attributes, psa_key_handle_t *handle)
Generate a key or key pair.
static psa_hash_operation_t psa_hash_operation_init(void)
PSA cryptography module: Mbed TLS buffer size macros.
psa_status_t psa_hash_clone(const psa_hash_operation_t *source_operation, psa_hash_operation_t *target_operation)
psa_status_t psa_generate_random(uint8_t *output, size_t output_size)
Generate random bytes.
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_decrypt_setup(psa_aead_operation_t *operation, psa_key_handle_t handle, psa_algorithm_t alg)
psa_status_t psa_mac_update(psa_mac_operation_t *operation, const uint8_t *input, size_t input_length)
static void psa_set_key_type(psa_key_attributes_t *attributes, psa_key_type_t type)
static psa_aead_operation_t psa_aead_operation_init(void)
static psa_algorithm_t psa_get_key_algorithm(const psa_key_attributes_t *attributes)
psa_status_t psa_get_key_attributes(psa_key_handle_t handle, psa_key_attributes_t *attributes)
psa_status_t psa_aead_update_ad(psa_aead_operation_t *operation, const uint8_t *input, size_t input_length)
static psa_key_derivation_operation_t psa_key_derivation_operation_init(void)
psa_status_t psa_copy_key(psa_key_handle_t source_handle, const psa_key_attributes_t *attributes, psa_key_handle_t *target_handle)
psa_status_t psa_key_derivation_output_bytes(psa_key_derivation_operation_t *operation, uint8_t *output, size_t output_length)
psa_status_t psa_cipher_encrypt_setup(psa_cipher_operation_t *operation, psa_key_handle_t handle, psa_algorithm_t alg)
PSA cryptography module: type aliases.
psa_status_t psa_key_derivation_input_key(psa_key_derivation_operation_t *operation, psa_key_derivation_step_t step, psa_key_handle_t handle)
psa_status_t psa_sign_hash(psa_key_handle_t handle, psa_algorithm_t alg, const uint8_t *hash, size_t hash_length, uint8_t *signature, size_t signature_size, size_t *signature_length)
Sign a hash or short message with a private key.
psa_status_t psa_asymmetric_encrypt(psa_key_handle_t handle, psa_algorithm_t alg, const uint8_t *input, size_t input_length, const uint8_t *salt, size_t salt_length, uint8_t *output, size_t output_size, size_t *output_length)
Encrypt a short message with a public key.
psa_status_t psa_cipher_decrypt_setup(psa_cipher_operation_t *operation, psa_key_handle_t handle, psa_algorithm_t alg)
static void psa_set_key_bits(psa_key_attributes_t *attributes, size_t bits)
psa_status_t psa_cipher_abort(psa_cipher_operation_t *operation)
static psa_key_lifetime_t psa_get_key_lifetime(const psa_key_attributes_t *attributes)
psa_status_t psa_hash_update(psa_hash_operation_t *operation, const uint8_t *input, size_t input_length)
psa_status_t psa_key_derivation_get_capacity(const psa_key_derivation_operation_t *operation, size_t *capacity)
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)
static void psa_set_key_id(psa_key_attributes_t *attributes, psa_key_id_t id)
psa_status_t psa_hash_setup(psa_hash_operation_t *operation, psa_algorithm_t alg)
psa_status_t psa_import_key(const psa_key_attributes_t *attributes, const uint8_t *data, size_t data_length, psa_key_handle_t *handle)
Import a key in binary format.
psa_status_t psa_mac_verify(psa_key_handle_t handle, psa_algorithm_t alg, const uint8_t *input, size_t input_length, const uint8_t *mac, size_t mac_length)
uint32_t psa_key_usage_t
Encoding of permitted usage on a key.
psa_status_t psa_hash_abort(psa_hash_operation_t *operation)
psa_status_t psa_cipher_finish(psa_cipher_operation_t *operation, uint8_t *output, size_t output_size, size_t *output_length)
uint32_t psa_algorithm_t
Encoding of a cryptographic algorithm.
psa_status_t psa_crypto_init(void)
Library initialization.
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_mac_sign_finish(psa_mac_operation_t *operation, uint8_t *mac, size_t mac_size, size_t *mac_length)
psa_status_t psa_aead_decrypt(psa_key_handle_t handle, 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)
static psa_key_id_t psa_get_key_id(const psa_key_attributes_t *attributes)
static psa_key_usage_t psa_get_key_usage_flags(const psa_key_attributes_t *attributes)
psa_status_t psa_aead_encrypt_setup(psa_aead_operation_t *operation, psa_key_handle_t handle, psa_algorithm_t alg)
uint16_t psa_key_derivation_step_t
Encoding of the step of a key derivation.
uint16_t psa_key_type_t
Encoding of a key type.
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_mac_verify_finish(psa_mac_operation_t *operation, const uint8_t *mac, size_t mac_length)
static size_t psa_get_key_bits(const psa_key_attributes_t *attributes)
psa_status_t psa_destroy_key(psa_key_handle_t handle)
Destroy a key.
static psa_mac_operation_t psa_mac_operation_init(void)
psa_status_t psa_mac_sign_setup(psa_mac_operation_t *operation, psa_key_handle_t handle, psa_algorithm_t alg)
psa_status_t psa_cipher_set_iv(psa_cipher_operation_t *operation, const uint8_t *iv, size_t iv_length)
static void psa_set_key_usage_flags(psa_key_attributes_t *attributes, psa_key_usage_t usage_flags)
psa_status_t psa_verify_hash(psa_key_handle_t handle, psa_algorithm_t alg, const uint8_t *hash, size_t hash_length, const uint8_t *signature, size_t signature_length)
Verify the signature a hash or short message using a public key.
psa_status_t psa_mac_verify_setup(psa_mac_operation_t *operation, psa_key_handle_t handle, psa_algorithm_t alg)
static void psa_set_key_lifetime(psa_key_attributes_t *attributes, psa_key_lifetime_t lifetime)
static psa_key_type_t psa_get_key_type(const psa_key_attributes_t *attributes)
psa_status_t psa_asymmetric_decrypt(psa_key_handle_t handle, psa_algorithm_t alg, const uint8_t *input, size_t input_length, const uint8_t *salt, size_t salt_length, uint8_t *output, size_t output_size, size_t *output_length)
Decrypt a short message with a private key.
psa_status_t psa_hash_finish(psa_hash_operation_t *operation, uint8_t *hash, size_t hash_size, size_t *hash_length)
PSA cryptography module: Mbed TLS structured type implementations.
psa_status_t psa_cipher_encrypt(psa_key_handle_t handle, 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_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_set_nonce(psa_aead_operation_t *operation, const uint8_t *nonce, size_t nonce_length)
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)
psa_status_t psa_aead_encrypt(psa_key_handle_t handle, 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)
uint32_t psa_key_lifetime_t
psa_status_t psa_key_derivation_set_capacity(psa_key_derivation_operation_t *operation, size_t capacity)
psa_status_t psa_open_key(psa_key_id_t id, psa_key_handle_t *handle)
psa_status_t psa_key_derivation_abort(psa_key_derivation_operation_t *operation)
psa_status_t psa_mac_compute(psa_key_handle_t handle, psa_algorithm_t alg, const uint8_t *input, size_t input_length, uint8_t *mac, size_t mac_size, size_t *mac_length)
void psa_reset_key_attributes(psa_key_attributes_t *attributes)
psa_status_t psa_export_key(psa_key_handle_t handle, uint8_t *data, size_t data_size, size_t *data_length)
Export a key in binary format.
psa_status_t psa_close_key(psa_key_handle_t handle)