22 #ifndef DOCA_AES_GCM_H_
23 #define DOCA_AES_GCM_H_
126 struct doca_aes_gcm_key;
160 struct doca_aes_gcm_key **key);
183 struct doca_aes_gcm_task_encrypt;
303 uint64_t *max_buffer_size);
322 uint32_t *max_list_num_elem);
384 struct doca_buf
const *src_buff,
385 struct doca_buf *dst_buff,
386 struct doca_aes_gcm_key *key,
392 struct doca_aes_gcm_task_encrypt **task);
547 struct doca_aes_gcm_task_decrypt;
667 uint64_t *max_buffer_size);
686 uint32_t *max_list_num_elem);
749 struct doca_buf
const *src_buff,
750 struct doca_buf *dst_buff,
751 struct doca_aes_gcm_key *key,
757 struct doca_aes_gcm_task_decrypt **task);
static void task_error_cb(struct doca_task *se_task, union doca_data task_user_data, union doca_data ctx_user_data)
static void task_completion_cb(struct doca_task *se_task, union doca_data task_user_data, union doca_data ctx_user_data)
DOCA_EXPERIMENTAL void doca_aes_gcm_task_encrypt_set_aad_size(struct doca_aes_gcm_task_encrypt *task, uint32_t aad_size)
set aes_gcm encrypt task additional authenticated data size
void(* doca_aes_gcm_task_decrypt_completion_cb_t)(struct doca_aes_gcm_task_decrypt *task, union doca_data task_user_data, union doca_data ctx_user_data)
Function to execute on aes_gcm decrypt task completion.
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_cap_task_encrypt_is_key_type_supported(const struct doca_devinfo *devinfo, enum doca_aes_gcm_key_type key_type)
DOCA_EXPERIMENTAL void doca_aes_gcm_task_decrypt_set_aad_size(struct doca_aes_gcm_task_decrypt *task, uint32_t aad_size)
set aes_gcm decrypt task additional authenticated data size
DOCA_EXPERIMENTAL void doca_aes_gcm_task_decrypt_set_key(struct doca_aes_gcm_task_decrypt *task, struct doca_aes_gcm_key *key)
set aes_gcm decrypt task doca_aes_gcm_key
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_key_create(struct doca_aes_gcm *aes_gcm, const void *raw_key, enum doca_aes_gcm_key_type raw_key_type, struct doca_aes_gcm_key **key)
Create an AES-GCM key from the user raw key to send with the task to allow encrypt/decrypt operations...
DOCA_EXPERIMENTAL uint32_t doca_aes_gcm_task_encrypt_get_aad_size(const struct doca_aes_gcm_task_encrypt *task)
get aes_gcm encrypt task additional authenticated data size
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_task_decrypt_alloc_init(struct doca_aes_gcm *aes_gcm, struct doca_buf const *src_buff, struct doca_buf *dst_buff, struct doca_aes_gcm_key *key, const uint8_t *iv, uint32_t iv_length, uint32_t tag_size, uint32_t aad_size, union doca_data user_data, struct doca_aes_gcm_task_decrypt **task)
Allocate aes_gcm decrypt task.
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_cap_task_decrypt_get_max_list_buf_num_elem(const struct doca_devinfo *devinfo, uint32_t *max_list_num_elem)
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_cap_task_encrypt_get_max_buf_size(const struct doca_devinfo *devinfo, uint64_t *max_buffer_size)
Get aes_gcm encrypt max buffer size.
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_cap_task_encrypt_is_tag_96_supported(const struct doca_devinfo *devinfo)
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_cap_task_encrypt_get_max_list_buf_num_elem(const struct doca_devinfo *devinfo, uint32_t *max_list_num_elem)
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_task_encrypt_alloc_init(struct doca_aes_gcm *aes_gcm, struct doca_buf const *src_buff, struct doca_buf *dst_buff, struct doca_aes_gcm_key *key, const uint8_t *iv, uint32_t iv_length, uint32_t tag_size, uint32_t aad_size, union doca_data user_data, struct doca_aes_gcm_task_encrypt **task)
Allocate aes_gcm encrypt task.
DOCA_EXPERIMENTAL const uint8_t * doca_aes_gcm_task_encrypt_get_iv(const struct doca_aes_gcm_task_encrypt *task, uint32_t *iv_length)
get aes_gcm encrypt task initialization vector
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_cap_task_decrypt_get_max_iv_len(const struct doca_devinfo *devinfo, uint32_t *max_iv_len)
DOCA_EXPERIMENTAL void doca_aes_gcm_task_decrypt_set_iv(struct doca_aes_gcm_task_decrypt *task, const uint8_t *iv, uint32_t iv_length)
set aes_gcm decrypt task initialization vector
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_cap_task_decrypt_is_tag_96_supported(const struct doca_devinfo *devinfo)
DOCA_EXPERIMENTAL uint32_t doca_aes_gcm_task_encrypt_get_tag_size(const struct doca_aes_gcm_task_encrypt *task)
get aes_gcm encrypt task authentication tag size
DOCA_EXPERIMENTAL struct doca_aes_gcm_key * doca_aes_gcm_task_encrypt_get_key(const struct doca_aes_gcm_task_encrypt *task)
get aes_gcm encrypt task doca_aes_gcm_key
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_cap_task_decrypt_is_key_type_supported(const struct doca_devinfo *devinfo, enum doca_aes_gcm_key_type key_type)
DOCA_EXPERIMENTAL void doca_aes_gcm_task_decrypt_set_src(struct doca_aes_gcm_task_decrypt *task, struct doca_buf const *src_buff)
set aes_gcm decrypt task source
DOCA_EXPERIMENTAL struct doca_task * doca_aes_gcm_task_encrypt_as_task(struct doca_aes_gcm_task_encrypt *task)
convert aes_gcm encrypt task to doca_task
DOCA_EXPERIMENTAL struct doca_buf * doca_aes_gcm_task_encrypt_get_dst(const struct doca_aes_gcm_task_encrypt *task)
get aes_gcm encrypt task destination
DOCA_EXPERIMENTAL struct doca_ctx * doca_aes_gcm_as_ctx(struct doca_aes_gcm *aes_gcm)
DOCA_EXPERIMENTAL void doca_aes_gcm_task_encrypt_set_src(struct doca_aes_gcm_task_encrypt *task, struct doca_buf const *src_buff)
set aes_gcm encrypt task source
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_key_destroy(struct doca_aes_gcm_key *key)
Destroy AES-GCM key that was created in doca_aes_gcm_key_create.
DOCA_EXPERIMENTAL void doca_aes_gcm_task_decrypt_set_dst(struct doca_aes_gcm_task_decrypt *task, struct doca_buf *dst_buff)
set aes_gcm decrypt task destination
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_cap_get_max_num_tasks(struct doca_aes_gcm *aes_gcm, uint32_t *max_num_tasks)
DOCA_EXPERIMENTAL void doca_aes_gcm_task_encrypt_set_dst(struct doca_aes_gcm_task_encrypt *task, struct doca_buf *dst_buff)
set aes_gcm encrypt task destination
DOCA_EXPERIMENTAL struct doca_buf * doca_aes_gcm_task_decrypt_get_dst(const struct doca_aes_gcm_task_decrypt *task)
get aes_gcm decrypt task destination
DOCA_EXPERIMENTAL const uint8_t * doca_aes_gcm_task_decrypt_get_iv(const struct doca_aes_gcm_task_decrypt *task, uint32_t *iv_length)
get aes_gcm decrypt task initialization vector
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_task_encrypt_set_conf(struct doca_aes_gcm *aes_gcm, doca_aes_gcm_task_encrypt_completion_cb_t task_completion_cb, doca_aes_gcm_task_encrypt_completion_cb_t task_error_cb, uint32_t num_tasks)
This method sets the aes_gcm encrypt task configuration.
DOCA_EXPERIMENTAL void doca_aes_gcm_task_encrypt_set_iv(struct doca_aes_gcm_task_encrypt *task, const uint8_t *iv, uint32_t iv_length)
set aes_gcm encrypt task initialization vector
doca_aes_gcm_key_type
AES-GCM key type.
DOCA_EXPERIMENTAL uint32_t doca_aes_gcm_task_decrypt_get_tag_size(const struct doca_aes_gcm_task_decrypt *task)
get aes_gcm decrypt task authentication tag size
DOCA_EXPERIMENTAL void doca_aes_gcm_task_decrypt_set_tag_size(struct doca_aes_gcm_task_decrypt *task, uint32_t tag_size)
set aes_gcm decrypt task authentication tag size
void(* doca_aes_gcm_task_encrypt_completion_cb_t)(struct doca_aes_gcm_task_encrypt *task, union doca_data task_user_data, union doca_data ctx_user_data)
Function to execute on aes_gcm encrypt task completion.
DOCA_EXPERIMENTAL struct doca_buf const * doca_aes_gcm_task_encrypt_get_src(const struct doca_aes_gcm_task_encrypt *task)
get aes_gcm encrypt task source
DOCA_EXPERIMENTAL struct doca_buf const * doca_aes_gcm_task_decrypt_get_src(const struct doca_aes_gcm_task_decrypt *task)
get aes_gcm decrypt task source
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_cap_task_encrypt_is_tag_128_supported(const struct doca_devinfo *devinfo)
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_cap_task_encrypt_get_max_iv_len(const struct doca_devinfo *devinfo, uint32_t *max_iv_len)
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_cap_task_encrypt_is_supported(const struct doca_devinfo *devinfo)
Check if a aes_gcm encrypt task is supported by a device.
DOCA_EXPERIMENTAL struct doca_task * doca_aes_gcm_task_decrypt_as_task(struct doca_aes_gcm_task_decrypt *task)
convert aes_gcm decrypt task to doca_task
DOCA_EXPERIMENTAL void doca_aes_gcm_task_encrypt_set_tag_size(struct doca_aes_gcm_task_encrypt *task, uint32_t tag_size)
set aes_gcm encrypt task authentication tag size
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_cap_task_decrypt_get_max_buf_size(const struct doca_devinfo *devinfo, uint64_t *max_buffer_size)
Get aes_gcm decrypt max buffer size.
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_cap_task_decrypt_is_tag_128_supported(const struct doca_devinfo *devinfo)
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_create(struct doca_dev *dev, struct doca_aes_gcm **aes_gcm)
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_task_decrypt_set_conf(struct doca_aes_gcm *aes_gcm, doca_aes_gcm_task_decrypt_completion_cb_t task_completion_cb, doca_aes_gcm_task_decrypt_completion_cb_t task_error_cb, uint32_t num_tasks)
This method sets the aes_gcm decrypt task configuration.
DOCA_EXPERIMENTAL void doca_aes_gcm_task_encrypt_set_key(struct doca_aes_gcm_task_encrypt *task, struct doca_aes_gcm_key *key)
set aes_gcm encrypt task doca_aes_gcm_key
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_cap_task_decrypt_is_supported(const struct doca_devinfo *devinfo)
Check if a aes_gcm decrypt task is supported by a device.
DOCA_EXPERIMENTAL doca_error_t doca_aes_gcm_destroy(struct doca_aes_gcm *aes_gcm)
DOCA_EXPERIMENTAL uint32_t doca_aes_gcm_task_decrypt_get_aad_size(const struct doca_aes_gcm_task_decrypt *task)
get aes_gcm decrypt task additional authenticated data size
DOCA_EXPERIMENTAL struct doca_aes_gcm_key * doca_aes_gcm_task_decrypt_get_key(const struct doca_aes_gcm_task_decrypt *task)
get aes_gcm decrypt task doca_aes_gcm_key
#define DOCA_EXPERIMENTAL
To set a Symbol (or specifically a function) as experimental.
enum doca_error doca_error_t
DOCA API return codes.
Convenience type for representing opaque data.