API Reference Manual  1.46.0
api/spec/crypto_types.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright (c) 2014-2018 Linaro Limited
3  * Copyright (c) 2021-2024 Nokia
4  */
5 
11 #ifndef ODP_API_SPEC_CRYPTO_TYPES_H_
12 #define ODP_API_SPEC_CRYPTO_TYPES_H_
13 #include <odp/visibility_begin.h>
14 
15 #include <odp/api/deprecated.h>
16 #include <odp/api/packet_types.h>
17 #include <odp/api/pool_types.h>
18 #include <odp/api/std_types.h>
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
41 typedef enum {
47 
51 typedef enum {
57 
61 typedef enum {
64 
67 
70 
73 
76 
79 
82 
85 
89 
98 
107 
116 
125 
136 
146 
166 
169 
177 
180 
183 
186 
194 
202 
204 
208 typedef enum {
211 
217 
223 
229 
235 
241 
247 
250 
253 
256 
259 
268 
287 
296 
304 
311 
320 
331 
342 
352 
373 
381 
396 
399 
407 
422 
430 
433 
436 
439 
442 
445 
448 
451 
454 
457 
460 
463 
465 
471  struct {
473  uint32_t null : 1;
474 
476  uint32_t des : 1;
477 
479  uint32_t trides_cbc : 1;
480 
482  uint32_t trides_ecb : 1;
483 
485  uint32_t aes_cbc : 1;
486 
488  uint32_t aes_ctr : 1;
489 
491  uint32_t aes_ecb : 1;
492 
494  uint32_t aes_cfb128 : 1;
495 
497  uint32_t aes_xts : 1;
498 
500  uint32_t aes_gcm : 1;
501 
503  uint32_t aes_ccm : 1;
504 
506  uint32_t chacha20_poly1305 : 1;
507 
509  uint32_t kasumi_f8 : 1;
510 
512  uint32_t snow3g_uea2 : 1;
513 
515  uint32_t aes_eea2 : 1;
516 
518  uint32_t zuc_eea3 : 1;
519 
521  uint32_t snow_v : 1;
522 
524  uint32_t snow_v_gcm : 1;
525 
527  uint32_t sm4_ecb : 1;
528 
530  uint32_t sm4_cbc : 1;
531 
533  uint32_t sm4_ctr : 1;
534 
536  uint32_t sm4_gcm : 1;
537 
539  uint32_t sm4_ccm : 1;
540 
541  } bit;
542 
547  uint64_t all_bits;
549 
553 typedef union odp_crypto_auth_algos_t {
555  struct {
557  uint32_t null : 1;
558 
560  uint32_t md5_hmac : 1;
561 
563  uint32_t sha1_hmac : 1;
564 
566  uint32_t sha224_hmac : 1;
567 
569  uint32_t sha256_hmac : 1;
570 
572  uint32_t sha384_hmac : 1;
573 
575  uint32_t sha512_hmac : 1;
576 
578  uint32_t sha3_224_hmac : 1;
579 
581  uint32_t sha3_256_hmac : 1;
582 
584  uint32_t sha3_384_hmac : 1;
585 
587  uint32_t sha3_512_hmac : 1;
588 
590  uint32_t aes_gcm : 1;
591 
593  uint32_t aes_gmac : 1;
594 
596  uint32_t aes_ccm : 1;
597 
599  uint32_t aes_cmac : 1;
600 
602  uint32_t aes_xcbc_mac : 1;
603 
605  uint32_t chacha20_poly1305 : 1;
606 
608  uint32_t kasumi_f9 : 1;
609 
611  uint32_t snow3g_uia2 : 1;
612 
614  uint32_t aes_eia2 : 1;
615 
617  uint32_t zuc_eia3 : 1;
618 
620  uint32_t snow_v_gcm : 1;
621 
623  uint32_t snow_v_gmac : 1;
624 
626  uint32_t sm3_hmac : 1;
627 
629  uint32_t sm4_gcm : 1;
630 
632  uint32_t sm4_gmac : 1;
633 
635  uint32_t sm4_ccm : 1;
636 
638  uint32_t md5 : 1;
639 
641  uint32_t sha1 : 1;
642 
644  uint32_t sha224 : 1;
645 
647  uint32_t sha256 : 1;
648 
650  uint32_t sha384 : 1;
651 
653  uint32_t sha512 : 1;
654 
656  uint32_t sha3_224 : 1;
657 
659  uint32_t sha3_256 : 1;
660 
662  uint32_t sha3_384 : 1;
663 
665  uint32_t sha3_512 : 1;
666 
668  uint32_t sm3 : 1;
669 
670  } bit;
671 
676  uint64_t all_bits;
678 
682 typedef struct odp_crypto_key {
684  uint8_t *data;
685 
687  uint32_t length;
688 
690 
694 typedef enum odp_crypto_op_type_t {
702 #if ODP_DEPRECATED_API
704 #endif
705 
711 
725 
739 
741 
751 
763 
775 
787 
806 
816 
830 
836 
850 
856 
858  uint32_t cipher_iv_len;
859 
879 
885 
887  uint32_t auth_iv_len;
888 
893  uint32_t auth_digest_len;
894 
901  uint32_t auth_aad_len;
902 
909 
920 
922 
929 
931  const uint8_t *cipher_iv_ptr;
932 
934  const uint8_t *auth_iv_ptr;
935 
958 
962  const uint8_t *aad_ptr;
963 
981 
1006 
1019 
1026  uint8_t null_crypto :1;
1027 
1029 
1033 typedef enum {
1042 
1051 
1059 
1069 
1073 typedef enum {
1083 
1087 typedef struct odp_crypto_op_status {
1091 
1101 
1104 
1107 
1109 
1113 typedef struct odp_crypto_capability_t {
1115  uint32_t max_sessions;
1116 
1119 
1122 
1125 
1128 
1131 
1134 
1145 
1157 
1163  uint32_t key_len;
1164 
1166  uint32_t iv_len;
1167 
1187 
1189 
1195  uint32_t digest_len;
1196 
1198  uint32_t key_len;
1199 
1201  uint32_t iv_len;
1202 
1204  struct {
1206  uint32_t min;
1207 
1209  uint32_t max;
1210 
1213  uint32_t inc;
1215 
1235 
1237 
1242 #ifdef __cplusplus
1243 }
1244 #endif
1245 
1246 #include <odp/visibility_end.h>
1247 #endif
ODP packet.
ODP pool.
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_DES
DES.
@ 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.
uint8_t * data
Key data.
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.