26 #ifndef AES_GCM_COMMON_H_
27 #define AES_GCM_COMMON_H_
38 #define USER_MAX_FILE_NAME 255
39 #define MAX_FILE_NAME (USER_MAX_FILE_NAME + 1)
41 #define AES_GCM_KEY_128_SIZE_IN_BYTES 16
42 #define AES_GCM_KEY_256_SIZE_IN_BYTES 32
43 #define MAX_AES_GCM_KEY_SIZE AES_GCM_KEY_256_SIZE_IN_BYTES
45 #define AES_GCM_KEY_128_STR_SIZE (AES_GCM_KEY_128_SIZE_IN_BYTES * 2)
46 #define AES_GCM_KEY_256_STR_SIZE (AES_GCM_KEY_256_SIZE_IN_BYTES * 2)
47 #define MAX_AES_GCM_KEY_STR_SIZE (AES_GCM_KEY_256_STR_SIZE + 1)
49 #define AES_GCM_AUTH_TAG_96_SIZE_IN_BYTES 12
50 #define AES_GCM_AUTH_TAG_128_SIZE_IN_BYTES 16
52 #define MAX_AES_GCM_IV_LENGTH 12
53 #define MAX_AES_GCM_IV_STR_LENGTH ((MAX_AES_GCM_IV_LENGTH * 2) + 1)
55 #define SLEEP_IN_NANOS (10 * 1000)
56 #define NUM_AES_GCM_TASKS (1)
135 struct doca_buf *src_buf,
136 struct doca_buf *dst_buf,
137 struct doca_aes_gcm_key *key,
157 struct doca_buf *src_buf,
158 struct doca_buf *dst_buf,
159 struct doca_aes_gcm_key *key,
doca_error_t submit_aes_gcm_decrypt_task(struct aes_gcm_resources *resources, struct doca_buf *src_buf, struct doca_buf *dst_buf, struct doca_aes_gcm_key *key, const uint8_t *iv, uint32_t iv_length, uint32_t tag_size, uint32_t aad_size)
doca_error_t aes_gcm_task_decrypt_is_supported(struct doca_devinfo *devinfo)
doca_error_t submit_aes_gcm_encrypt_task(struct aes_gcm_resources *resources, struct doca_buf *src_buf, struct doca_buf *dst_buf, struct doca_aes_gcm_key *key, const uint8_t *iv, uint32_t iv_length, uint32_t tag_size, uint32_t aad_size)
doca_error_t destroy_aes_gcm_resources(struct aes_gcm_resources *resources)
void init_aes_gcm_params(struct aes_gcm_cfg *aes_gcm_cfg)
doca_error_t register_aes_gcm_params(void)
#define MAX_AES_GCM_KEY_SIZE
void decrypt_error_callback(struct doca_aes_gcm_task_decrypt *decrypt_task, union doca_data task_user_data, union doca_data ctx_user_data)
void encrypt_completed_callback(struct doca_aes_gcm_task_encrypt *encrypt_task, union doca_data task_user_data, union doca_data ctx_user_data)
doca_error_t allocate_aes_gcm_resources(const char *pci_addr, uint32_t max_bufs, struct aes_gcm_resources *resources)
void encrypt_error_callback(struct doca_aes_gcm_task_encrypt *encrypt_task, union doca_data task_user_data, union doca_data ctx_user_data)
#define MAX_AES_GCM_IV_LENGTH
doca_error_t aes_gcm_task_encrypt_is_supported(struct doca_devinfo *devinfo)
void decrypt_completed_callback(struct doca_aes_gcm_task_decrypt *decrypt_task, union doca_data task_user_data, union doca_data ctx_user_data)
struct rdma_resources resources
doca_aes_gcm_key_type
AES-GCM key type.
#define DOCA_DEVINFO_PCI_ADDR_SIZE
Buffer size to hold PCI BDF format: "XXXX:XX:XX.X". Including a null terminator.
enum doca_error doca_error_t
DOCA API return codes.
char pci_address[DOCA_DEVINFO_PCI_ADDR_SIZE]
uint8_t iv[MAX_AES_GCM_IV_LENGTH]
uint8_t raw_key[MAX_AES_GCM_KEY_SIZE]
char file_path[MAX_FILE_NAME]
enum doca_aes_gcm_key_type raw_key_type
char output_path[MAX_FILE_NAME]
struct doca_aes_gcm * aes_gcm
struct program_core_objects * state
size_t num_remaining_tasks
Convenience type for representing opaque data.