11 #ifndef ODP_API_SPEC_CRYPTO_TYPES_H_
12 #define ODP_API_SPEC_CRYPTO_TYPES_H_
13 #include <odp/visibility_begin.h>
702 #if ODP_DEPRECATED_API
1246 #include <odp/visibility_end.h>
Standard C language types and definitions for ODP.
Control deprecated API definitions.
struct odp_crypto_packet_result_t odp_crypto_packet_result_t
Crypto packet API operation result.
struct odp_crypto_cipher_capability_t odp_crypto_cipher_capability_t
Cipher algorithm capabilities.
odp_cipher_alg_t
Crypto API cipher algorithm.
struct odp_crypto_key odp_crypto_key_t
Crypto API key structure.
uint64_t odp_crypto_session_t
Crypto API opaque session handle.
struct odp_crypto_packet_op_param_t odp_crypto_packet_op_param_t
Crypto packet API per packet operation parameters.
odp_crypto_op_type_t
Type of odp_crypto_op()/odp_crypto_op_enq() calls.
struct odp_crypto_auth_capability_t odp_crypto_auth_capability_t
Authentication algorithm capabilities.
odp_auth_alg_t
Crypto API authentication algorithm.
odp_crypto_ses_create_err_t
Crypto API session creation return code.
struct odp_crypto_op_status odp_crypto_op_status_t
Crypto API per packet operation completion status.
union odp_crypto_auth_algos_t odp_crypto_auth_algos_t
Authentication algorithms in a bit field structure.
struct odp_crypto_session_param_t odp_crypto_session_param_t
Crypto API session creation parameters.
odp_crypto_alg_err_t
Crypto API algorithm return code.
union odp_crypto_cipher_algos_t odp_crypto_cipher_algos_t
Cipher algorithms in a bit field structure.
odp_crypto_op_t
Crypto API operation.
struct odp_crypto_capability_t odp_crypto_capability_t
Crypto capabilities.
odp_crypto_op_mode_t
Crypto API operation mode.
@ ODP_CIPHER_ALG_KASUMI_F8
Confidentiality F8 algorithm (UEA1)
@ ODP_CIPHER_ALG_AES_CFB128
AES with 128-bit cipher feedback.
@ ODP_CIPHER_ALG_SNOW3G_UEA2
Confidentiality UEA2 algorithm (128-EEA1)
@ ODP_CIPHER_ALG_SNOW_V_GCM
SNOW-V-GCM AEAD algorithm.
@ ODP_CIPHER_ALG_AES_CCM
AES-CCM.
@ ODP_CIPHER_ALG_SM4_CCM
SM4-CCM AEAD algorithm.
@ ODP_CIPHER_ALG_AES_ECB
AES with electronic codebook.
@ ODP_CIPHER_ALG_AES_CTR
AES with counter mode.
@ ODP_CIPHER_ALG_CHACHA20_POLY1305
ChaCha20-Poly1305.
@ ODP_CIPHER_ALG_AES_CBC
AES with cipher block chaining.
@ ODP_CIPHER_ALG_SM4_ECB
SM4 block cipher in ECB mode.
@ ODP_CIPHER_ALG_AES_GCM
AES-GCM.
@ ODP_CIPHER_ALG_3DES_CBC
Triple DES with cipher block chaining.
@ ODP_CIPHER_ALG_AES_EEA2
Confidentiality 128-EEA2 algorithm.
@ ODP_CIPHER_ALG_SM4_CBC
SM4 block cipher in CBC mode.
@ ODP_CIPHER_ALG_AES_XTS
AES with XEX-based tweaked-codebook mode with ciphertext stealing (XTS)
@ ODP_CIPHER_ALG_SM4_GCM
SM4-GCM AEAD algorithm.
@ ODP_CIPHER_ALG_NULL
No cipher algorithm specified.
@ ODP_CIPHER_ALG_ZUC_EEA3
ZUC based confidentiality algorithm.
@ ODP_CIPHER_ALG_SNOW_V
SNOW-V stream cipher.
@ ODP_CIPHER_ALG_3DES_ECB
Triple DES with Electronic Codebook.
@ ODP_CIPHER_ALG_SM4_CTR
SM4 block cipher in CTR mode.
@ ODP_CRYPTO_OP_TYPE_BASIC
Input packet data and metadata are copied to the output packet and then processed.
@ ODP_CRYPTO_OP_TYPE_LEGACY
Input packet data and metadata are copied to the output packet and then processed.
@ ODP_CRYPTO_OP_TYPE_OOP
Out-of-place crypto operation.
@ ODP_CRYPTO_OP_TYPE_BASIC_AND_OOP
Basic or out-of-place crypto operation depending on op params.
@ ODP_AUTH_ALG_SM4_GCM
SM4-GCM AEAD algorithm.
@ ODP_AUTH_ALG_MD5
MD5 algorithm.
@ ODP_AUTH_ALG_SHA384_HMAC
HMAC-SHA-384.
@ ODP_AUTH_ALG_CHACHA20_POLY1305
ChaCha20-Poly1305 AEAD.
@ ODP_AUTH_ALG_AES_CMAC
AES-CMAC.
@ ODP_AUTH_ALG_SHA384
384 bit SHA2 algorithm
@ ODP_AUTH_ALG_SM3
SM3 hash function.
@ ODP_AUTH_ALG_NULL
No authentication algorithm specified.
@ ODP_AUTH_ALG_SM4_CCM
SM4-CCM AEAD algorithm.
@ ODP_AUTH_ALG_SHA512
512 bit SHA2 algorithm
@ ODP_AUTH_ALG_SHA3_256
SHA-3 hash function producing 256-bit digests.
@ ODP_AUTH_ALG_MD5_HMAC
HMAC-MD5.
@ ODP_AUTH_ALG_SHA512_HMAC
HMAC-SHA-512.
@ ODP_AUTH_ALG_SHA1_HMAC
HMAC-SHA-1.
@ ODP_AUTH_ALG_SHA256_HMAC
HMAC-SHA-256.
@ ODP_AUTH_ALG_SHA3_224_HMAC
HMAC using SHA3-224.
@ ODP_AUTH_ALG_SHA256
256 bit SHA2 algorithm
@ ODP_AUTH_ALG_SHA1
SHA1 algorithm.
@ ODP_AUTH_ALG_SNOW_V_GMAC
SNOW-V-GMAC.
@ ODP_AUTH_ALG_SNOW3G_UIA2
Integrity UIA2 algorithm (128-EIA1)
@ ODP_AUTH_ALG_SHA3_512
SHA-3 hash function producing 512-bit digests.
@ ODP_AUTH_ALG_SM3_HMAC
HMAC using SM3.
@ ODP_AUTH_ALG_SHA224_HMAC
HMAC-SHA-224.
@ ODP_AUTH_ALG_AES_GMAC
AES-GMAC.
@ ODP_AUTH_ALG_AES_XCBC_MAC
AES-XCBC-MAC.
@ ODP_AUTH_ALG_AES_GCM
AES-GCM.
@ ODP_AUTH_ALG_KASUMI_F9
Integrity F9 algorithm (UIA1)
@ ODP_AUTH_ALG_SHA3_256_HMAC
HMAC using SHA3-256.
@ ODP_AUTH_ALG_SHA3_384
SHA-3 hash function producing 384-bit digests.
@ ODP_AUTH_ALG_SM4_GMAC
SM4-GMAC.
@ ODP_AUTH_ALG_AES_CCM
AES-CCM.
@ ODP_AUTH_ALG_SHA3_224
SHA-3 hash function producing 224-bit digests.
@ ODP_AUTH_ALG_SNOW_V_GCM
SNOW-V-GCM AEAD algorithm.
@ ODP_AUTH_ALG_SHA3_384_HMAC
HMAC using SHA3-384.
@ ODP_AUTH_ALG_AES_EIA2
Integrity 128-EIA2 algorithm.
@ ODP_AUTH_ALG_SHA3_512_HMAC
HMAC using SHA3-512.
@ ODP_AUTH_ALG_ZUC_EIA3
ZUC-based integrity algorithm.
@ ODP_AUTH_ALG_SHA224
224 bit SHA2 algorithm
@ ODP_CRYPTO_SES_ERR_ALG_COMBO
Unsupported combination of algorithms.
@ ODP_CRYPTO_SES_ERR_NONE
Session created.
@ ODP_CRYPTO_SES_ERR_AUTH
Creation failed, bad auth params.
@ ODP_CRYPTO_SES_ERR_ALG_ORDER
Unsupported order of cipher and auth.
@ ODP_CRYPTO_SES_ERR_CIPHER
Creation failed, bad cipher params.
@ ODP_CRYPTO_SES_ERR_PARAMS
Unsupported combination of session creation parameters.
@ ODP_CRYPTO_SES_ERR_ENOMEM
Creation failed, no resources.
@ ODP_CRYPTO_ALG_ERR_NONE
Algorithm successful.
@ ODP_CRYPTO_ALG_ERR_OTHER
Other error.
@ ODP_CRYPTO_ALG_ERR_ICV_CHECK
Computed ICV value mismatch.
@ ODP_CRYPTO_ALG_ERR_DATA_SIZE
Invalid range or packet size.
@ ODP_CRYPTO_OP_ENCODE
Encrypt and/or compute authentication ICV.
@ ODP_CRYPTO_OP_DECODE
Decrypt and/or verify authentication ICV.
@ ODP_CRYPTO_SYNC
Synchronous, return results immediately.
@ ODP_CRYPTO_ASYNC
Asynchronous, return results via posted event.
bool odp_bool_t
Boolean type.
odp_support_t
ODP support.
Authentication algorithm capabilities.
uint32_t min
Minimum AAD length in bytes.
uint32_t max
Maximum AAD length in bytes.
odp_bool_t bit_mode
Auth algorithm supports bit mode.
uint32_t inc
Increment of supported lengths between min and max (in bytes)
uint32_t digest_len
Digest length in bytes.
struct odp_crypto_auth_capability_t::@29 aad_len
Additional Authenticated Data (AAD) lengths.
uint32_t key_len
Key length in bytes.
uint32_t iv_len
IV length in bytes.
odp_support_t async_mode
Supported packet operation in ASYNC mode.
odp_bool_t queue_type_sched
Scheduled crypto completion queue support.
odp_crypto_cipher_algos_t ciphers
Supported cipher algorithms.
odp_crypto_auth_algos_t hw_auths
Authentication algorithms implemented with HW offload.
odp_crypto_cipher_algos_t hw_ciphers
Cipher algorithms implemented with HW offload.
odp_support_t sync_mode
Supported packet operation in SYNC mode.
odp_bool_t queue_type_plain
Plain crypto completion queue support.
odp_crypto_auth_algos_t auths
Supported authentication algorithms.
uint32_t max_sessions
Maximum number of crypto sessions.
Cipher algorithm capabilities.
odp_bool_t bit_mode
Cipher supports bit mode.
uint32_t key_len
Key length in bytes.
uint32_t iv_len
IV length in bytes.
Crypto API key structure.
uint32_t length
Key length in bytes.
Crypto API per packet operation completion status.
odp_crypto_alg_err_t alg_err
Algorithm specific return code.
Crypto packet API per packet operation parameters.
uint32_t hash_result_offset
Offset from start of packet for hash result.
const uint8_t * aad_ptr
Pointer to AAD.
int32_t dst_offset_shift
Shift of the output offsets with ODP_CRYPTO_OP_TYPE_OOP.
const uint8_t * cipher_iv_ptr
IV pointer for cipher.
const uint8_t * auth_iv_ptr
IV pointer for authentication.
odp_packet_data_range_t cipher_range
Data range to be ciphered.
odp_crypto_session_t session
Session handle from creation.
uint8_t null_crypto
Use null crypto algorithms.
odp_packet_data_range_t auth_range
Data range to be authenticated.
Crypto packet API operation result.
odp_crypto_op_status_t auth_status
Authentication status.
odp_packet_t pkt_in
Input packet passed to odp_crypo_op_enq() when the operation type of the session is ODP_CRYPTO_OP_TYP...
odp_crypto_op_status_t cipher_status
Cipher status.
Crypto API session creation parameters.
odp_bool_t auth_cipher_text
Authenticate cipher vs.
odp_bool_t cipher_range_in_bits
Cipher range unit.
odp_crypto_key_t auth_key
Authentication key.
uint32_t auth_aad_len
Additional Authenticated Data (AAD) length in bytes.
odp_bool_t null_crypto_enable
Enable skipping crypto on per-packet basis.
odp_crypto_op_type_t op_type
Crypto operation type.
odp_crypto_key_t cipher_key
Cipher key.
odp_queue_t compl_queue
Async mode completion event queue.
odp_pool_t output_pool
Output pool.
uint32_t cipher_iv_len
Cipher IV length.
odp_bool_t hash_result_in_auth_range
Hash result location may overlap authentication range.
uint32_t auth_digest_len
Authentication digest length in bytes.
odp_auth_alg_t auth_alg
Authentication algorithm.
odp_bool_t auth_range_in_bits
Auth range unit.
odp_crypto_op_mode_t op_mode
Operation mode when using packet interface: sync or async.
odp_cipher_alg_t cipher_alg
Cipher algorithm.
uint32_t auth_iv_len
Authentication IV length.
odp_crypto_op_t op
Encode vs.
Packet API data range specifier.
Authentication algorithms in a bit field structure.
uint32_t md5
ODP_AUTH_ALG_MD5.
uint32_t sha3_512_hmac
ODP_AUTH_ALG_SHA3_512_HMAC.
uint32_t sha384
ODP_AUTH_ALG_SHA384.
uint32_t sha224
ODP_AUTH_ALG_SHA224.
uint32_t sha3_224
ODP_AUTH_ALG_SHA3_224.
uint64_t all_bits
All bits of the bit field structure.
uint32_t sm3
ODP_AUTH_ALG_SM3.
uint32_t null
ODP_AUTH_ALG_NULL.
uint32_t sha1_hmac
ODP_AUTH_ALG_SHA1_HMAC.
uint32_t sha512_hmac
ODP_AUTH_ALG_SHA512_HMAC.
uint32_t sha256
ODP_AUTH_ALG_SHA256.
uint32_t sha224_hmac
ODP_AUTH_ALG_SHA224_HMAC.
uint32_t sm4_gmac
ODP_AUTH_ALG_SM4_GMAC.
uint32_t sha3_512
ODP_AUTH_ALG_SHA3_512.
uint32_t aes_cmac
ODP_AUTH_ALG_AES_CMAC.
uint32_t zuc_eia3
ODP_AUTH_ALG_ZUC_EIA3.
uint32_t kasumi_f9
ODP_AUTH_ALG_KASUMI_F9.
uint32_t sm4_ccm
ODP_AUTH_ALG_SM4_CCM.
uint32_t snow3g_uia2
ODP_AUTH_ALG_SNOW3G_UIA2.
uint32_t snow_v_gmac
ODP_AUTH_ALG_SNOW_V_GMAC.
uint32_t aes_gmac
ODP_AUTH_ALG_AES_GMAC.
uint32_t sm4_gcm
ODP_AUTH_ALG_SM4_GCM.
uint32_t sha3_224_hmac
ODP_AUTH_ALG_SHA3_224_HMAC.
uint32_t aes_gcm
ODP_AUTH_ALG_AES_GCM.
uint32_t sm3_hmac
ODP_AUTH_ALG_SM3_HMAC.
uint32_t snow_v_gcm
ODP_AUTH_ALG_SNOW_V_GCM.
uint32_t md5_hmac
ODP_AUTH_ALG_MD5_HMAC.
struct odp_crypto_auth_algos_t::@28 bit
Authentication algorithms.
uint32_t sha1
ODP_AUTH_ALG_SHA1.
uint32_t sha3_384_hmac
ODP_AUTH_ALG_SHA3_384_HMAC.
uint32_t aes_xcbc_mac
ODP_AUTH_ALG_AES_XCBC_MAC.
uint32_t sha3_256
ODP_AUTH_ALG_SHA3_256.
uint32_t sha384_hmac
ODP_AUTH_ALG_SHA384_HMAC.
uint32_t sha256_hmac
ODP_AUTH_ALG_SHA256_HMAC.
uint32_t aes_eia2
ODP_AUTH_ALG_AES_EIA2.
uint32_t sha3_256_hmac
ODP_AUTH_ALG_SHA3_256_HMAC.
uint32_t chacha20_poly1305
ODP_AUTH_ALG_CHACHA20_POLY1305.
uint32_t sha512
ODP_AUTH_ALG_SHA512.
uint32_t aes_ccm
ODP_AUTH_ALG_AES_CCM.
uint32_t sha3_384
ODP_AUTH_ALG_SHA3_384.
Cipher algorithms in a bit field structure.
uint32_t snow_v
ODP_CIPHER_ALG_SNOW_V.
uint32_t sm4_cbc
ODP_CIPHER_ALG_SM4_CBC.
uint32_t aes_cfb128
ODP_CIPHER_ALG_AES_CFB128.
uint32_t aes_gcm
ODP_CIPHER_ALG_AES_GCM.
uint32_t trides_cbc
ODP_CIPHER_ALG_3DES_CBC.
uint32_t snow_v_gcm
ODP_CIPHER_ALG_SNOW_V_GCM.
uint32_t sm4_ecb
ODP_CIPHER_ALG_SM4_ECB.
uint32_t aes_eea2
ODP_CIPHER_ALG_AES_EEA2.
uint32_t aes_ctr
ODP_CIPHER_ALG_AES_CTR.
struct odp_crypto_cipher_algos_t::@27 bit
Cipher algorithms.
uint32_t aes_cbc
ODP_CIPHER_ALG_AES_CBC.
uint32_t sm4_ctr
ODP_CIPHER_ALG_SM4_CTR.
uint32_t des
ODP_CIPHER_ALG_DES.
uint32_t aes_xts
ODP_CIPHER_ALG_AES_XTS.
uint32_t zuc_eea3
ODP_CIPHER_ALG_ZUC_EEA3.
uint32_t null
ODP_CIPHER_ALG_NULL.
uint32_t sm4_gcm
ODP_CIPHER_ALG_SM4_GCM.
uint64_t all_bits
All bits of the bit field structure.
uint32_t kasumi_f8
ODP_CIPHER_ALG_KASUMI_F8.
uint32_t sm4_ccm
ODP_CIPHER_ALG_SM4_CCM.
uint32_t aes_ecb
ODP_CIPHER_ALG_AES_ECB.
uint32_t chacha20_poly1305
ODP_CIPHER_ALG_CHACHA20_POLY1305.
uint32_t trides_ecb
ODP_CIPHER_ALG_3DES_ECB.
uint32_t snow3g_uea2
ODP_CIPHER_ALG_SNOW3G_UEA2.
uint32_t aes_ccm
ODP_CIPHER_ALG_AES_CCM.