Crate psa_crypto_sys[][src]

PSA Cryptography API Wrapper

This crate provides abstraction over an implementation of the PSA Cryptography API. You can find the API here.

Structs

psa_drv_se_asymmetric_t
psa_drv_se_context_t
psa_drv_se_key_management_t
psa_drv_se_t

Constants

PSA_ALG_ANY_HASH
PSA_ALG_CBC_MAC
PSA_ALG_CBC_NO_PADDING
PSA_ALG_CBC_PKCS7
PSA_ALG_CCM
PSA_ALG_CFB
PSA_ALG_CHACHA20_POLY1305
PSA_ALG_CMAC
PSA_ALG_CTR
PSA_ALG_ECB_NO_PADDING
PSA_ALG_ECDH
PSA_ALG_ECDSA_ANY
PSA_ALG_FFDH
PSA_ALG_GCM
PSA_ALG_MD2
PSA_ALG_MD4
PSA_ALG_MD5
PSA_ALG_NONE
PSA_ALG_OFB
PSA_ALG_RIPEMD160
PSA_ALG_RSA_PKCS1V15_CRYPT
PSA_ALG_RSA_PKCS1V15_SIGN_RAW
PSA_ALG_SHA3_224
PSA_ALG_SHA3_256
PSA_ALG_SHA3_384
PSA_ALG_SHA3_512
PSA_ALG_SHA_1
PSA_ALG_SHA_224
PSA_ALG_SHA_256
PSA_ALG_SHA_384
PSA_ALG_SHA_512
PSA_ALG_SHA_512_224
PSA_ALG_SHA_512_256
PSA_ALG_SM3
PSA_ALG_STREAM_CIPHER
PSA_ALG_XTS
PSA_DH_FAMILY_RFC7919
PSA_ECC_FAMILY_BRAINPOOL_P_R1
PSA_ECC_FAMILY_FRP
PSA_ECC_FAMILY_MONTGOMERY
PSA_ECC_FAMILY_SECP_K1
PSA_ECC_FAMILY_SECP_R1
PSA_ECC_FAMILY_SECP_R2
PSA_ECC_FAMILY_SECT_K1
PSA_ECC_FAMILY_SECT_R1
PSA_ECC_FAMILY_SECT_R2
PSA_ERROR_ALREADY_EXISTS
PSA_ERROR_BAD_STATE
PSA_ERROR_BUFFER_TOO_SMALL
PSA_ERROR_COMMUNICATION_FAILURE
PSA_ERROR_CORRUPTION_DETECTED
PSA_ERROR_DATA_CORRUPT
PSA_ERROR_DATA_INVALID
PSA_ERROR_DOES_NOT_EXIST
PSA_ERROR_GENERIC_ERROR
PSA_ERROR_HARDWARE_FAILURE
PSA_ERROR_INSUFFICIENT_DATA
PSA_ERROR_INSUFFICIENT_ENTROPY
PSA_ERROR_INSUFFICIENT_MEMORY
PSA_ERROR_INSUFFICIENT_STORAGE
PSA_ERROR_INVALID_ARGUMENT
PSA_ERROR_INVALID_HANDLE
PSA_ERROR_INVALID_PADDING
PSA_ERROR_INVALID_SIGNATURE
PSA_ERROR_NOT_PERMITTED
PSA_ERROR_NOT_SUPPORTED
PSA_ERROR_STORAGE_FAILURE
PSA_HASH_SUSPEND_ALGORITHM_FIELD_LENGTH
PSA_KEY_DERIVATION_INPUT_INFO
PSA_KEY_DERIVATION_INPUT_LABEL
PSA_KEY_DERIVATION_INPUT_SALT
PSA_KEY_DERIVATION_INPUT_SECRET
PSA_KEY_DERIVATION_INPUT_SEED
PSA_KEY_ID_NULL
PSA_KEY_ID_USER_MAX
PSA_KEY_ID_USER_MIN
PSA_KEY_ID_VENDOR_MAX
PSA_KEY_ID_VENDOR_MIN
PSA_KEY_LIFETIME_PERSISTENT
PSA_KEY_LIFETIME_VOLATILE
PSA_KEY_LOCATION_LOCAL_STORAGE
PSA_KEY_LOCATION_PRIMARY_SECURE_ELEMENT
PSA_KEY_PERSISTENCE_DEFAULT
PSA_KEY_PERSISTENCE_READ_ONLY
PSA_KEY_PERSISTENCE_VOLATILE
PSA_KEY_TYPE_AES
PSA_KEY_TYPE_ARC4
PSA_KEY_TYPE_CAMELLIA
PSA_KEY_TYPE_CHACHA20
PSA_KEY_TYPE_DERIVE
PSA_KEY_TYPE_DES
PSA_KEY_TYPE_HMAC
PSA_KEY_TYPE_NONE
PSA_KEY_TYPE_RAW_DATA
PSA_KEY_TYPE_RSA_KEY_PAIR
PSA_KEY_TYPE_RSA_PUBLIC_KEY
PSA_KEY_TYPE_SM4
PSA_KEY_USAGE_CACHE
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_HASH
PSA_KEY_USAGE_VERIFY_MESSAGE
PSA_SUCCESS

Functions

PSA_AEAD_DECRYPT_OUTPUT_SIZE
PSA_AEAD_ENCRYPT_OUTPUT_SIZE
PSA_AEAD_TAG_LENGTH
PSA_ALG_AEAD_TAG_TRUNCATED_LENGTH

Retrieves the tag length from an aead_alg. Note: aead_alg is an AEAD algorithm, such that PSA_ALG_IS_AEAD(aead_alg) is true.

PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG
PSA_ALG_AEAD_WITH_SHORTENED_TAG
PSA_ALG_DETERMINISTIC_ECDSA
PSA_ALG_ECDSA
PSA_ALG_FULL_LENGTH_MAC
PSA_ALG_HKDF
PSA_ALG_HKDF_GET_HASH
PSA_ALG_HMAC
PSA_ALG_HMAC_GET_HASH
PSA_ALG_IS_AEAD
PSA_ALG_IS_ASYMMETRIC_ENCRYPTION
PSA_ALG_IS_BLOCK_CIPHER_MAC
PSA_ALG_IS_CIPHER
PSA_ALG_IS_DETERMINISTIC_ECDSA
PSA_ALG_IS_ECDH
PSA_ALG_IS_ECDSA
PSA_ALG_IS_FFDH
PSA_ALG_IS_HASH
PSA_ALG_IS_HKDF
PSA_ALG_IS_HMAC
PSA_ALG_IS_KEY_AGREEMENT
PSA_ALG_IS_KEY_DERIVATION
PSA_ALG_IS_MAC
PSA_ALG_IS_RAW_KEY_AGREEMENT
PSA_ALG_IS_RSA_OAEP
PSA_ALG_IS_RSA_PKCS1V15_SIGN
PSA_ALG_IS_RSA_PSS
PSA_ALG_IS_SIGN
PSA_ALG_IS_TLS12_PRF
PSA_ALG_IS_TLS12_PSK_TO_MS
PSA_ALG_KEY_AGREEMENT
PSA_ALG_KEY_AGREEMENT_GET_BASE
PSA_ALG_KEY_AGREEMENT_GET_KDF
PSA_ALG_RSA_OAEP
PSA_ALG_RSA_OAEP_GET_HASH
PSA_ALG_RSA_PKCS1V15_SIGN
PSA_ALG_RSA_PSS
PSA_ALG_SIGN_GET_HASH
PSA_ALG_TLS12_PRF
PSA_ALG_TLS12_PRF_GET_HASH
PSA_ALG_TLS12_PSK_TO_MS
PSA_ALG_TLS12_PSK_TO_MS_GET_HASH
PSA_ALG_TRUNCATED_MAC
PSA_ASYMMETRIC_DECRYPT_OUTPUT_SIZE
PSA_ASYMMETRIC_ENCRYPT_OUTPUT_SIZE
PSA_EXPORT_KEY_OUTPUT_SIZE
PSA_HASH_LENGTH
PSA_KEY_TYPE_DH_GET_FAMILY
PSA_KEY_TYPE_DH_KEY_PAIR
PSA_KEY_TYPE_DH_PUBLIC_KEY
PSA_KEY_TYPE_ECC_GET_FAMILY
PSA_KEY_TYPE_ECC_KEY_PAIR
PSA_KEY_TYPE_ECC_PUBLIC_KEY
PSA_KEY_TYPE_IS_DH_KEY_PAIR
PSA_KEY_TYPE_IS_DH_PUBLIC_KEY
PSA_KEY_TYPE_IS_ECC_KEY_PAIR
PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY
PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR
PSA_MAC_LENGTH
PSA_MAC_TRUNCATED_LENGTH
PSA_RAW_ECDH_KEY_AGREEMENT_OUTPUT_SIZE

Retrieves the output size of an ECDH raw key agreement operation shared secret. Caller must ensure key type is compatible. Returns 0 if key size is too large. This does not match any PSA macro, it will be replaces by PSA_RAW_KEY_AGREEMENT_OUTPUT_SIZE once mbedTLS adds support for it.

PSA_SIGN_OUTPUT_SIZE
psa_aead_decrypt
psa_aead_encrypt
psa_asymmetric_decrypt
psa_asymmetric_encrypt
psa_close_key
psa_copy_key
psa_crypto_init
psa_destroy_key
psa_export_key
psa_export_public_key
psa_generate_key
psa_generate_random
psa_get_key_algorithm
psa_get_key_attributes
psa_get_key_bits
psa_get_key_id
psa_get_key_lifetime
psa_get_key_type
psa_get_key_usage_flags
psa_hash_compare
psa_hash_compute
psa_import_key
psa_key_attributes_init
psa_key_derivation_abort
psa_key_derivation_input_bytes
psa_key_derivation_input_key
psa_key_derivation_key_agreement
psa_key_derivation_operation_init
psa_key_derivation_output_key
psa_key_derivation_set_capacity
psa_key_derivation_setup
psa_mac_compute
psa_mac_verify
psa_open_key
psa_raw_key_agreement
psa_reset_key_attributes
psa_set_key_algorithm
psa_set_key_bits
psa_set_key_id
psa_set_key_lifetime
psa_set_key_type
psa_set_key_usage_flags
psa_sign_hash
psa_verify_hash

Type Definitions

psa_algorithm_t
psa_dh_family_t
psa_ecc_family_t
psa_key_attributes_t
psa_key_creation_method_t
psa_key_derivation_operation_t
psa_key_derivation_step_t
psa_key_id_t
psa_key_lifetime_t
psa_key_location_t
psa_key_persistence_t
psa_key_slot_number_t
psa_key_type_t
psa_key_usage_t
psa_status_t