kcapi_aead_encrypt_aio - Man Page

asynchronously encrypt AEAD data (one shot)

Synopsis

ssize_t kcapi_aead_encrypt_aio(struct kcapi_handle * handle, struct iovec * iniov, struct iovec * outiov, size_t iovlen, const uint8_t * iv, int access);

Arguments

handle

[in] cipher handle

iniov

[in] array of scatter-gather list with input buffers

outiov

[out] array of scatter-gather list with output buffers

iovlen

[in] number of IOVECs in array

iv

[in] IV to be used for cipher operation

access

[in] kernel access type (KCAPI_ACCESS_HEURISTIC - use internal heuristic for fastest kernel access; KCAPI_ACCESS_VMSPLICE - use vmsplice access; KCAPI_ACCESS_SENDMSG - sendmsg access)

Description

The AEAD cipher operation requires the furnishing of the associated authentication data​. In case such data is not required, it can be set to NULL and length value must be set to zero​.

Each IOVEC is processed with its individual AEAD cipher operation​. The memory holding the input data will receive the processed data​.

The memory should be aligned at the page boundary using posix_memalign(sysconf(_SC_PAGESIZE)), If it is not aligned at the page boundary, the vmsplice call may not send all data to the kernel​.

The IV buffer must be exactly kcapi_cipher_ivsize bytes in size​.

After invoking this function the caller should use kcapi_aead_getdata_output to obtain the resulting ciphertext and authentication tag references​.

Important Note

The kernel will only process sysconf(_SC_PAGESIZE) * ALG_MAX_PAGES at one time​. Longer input data cannot be handled by the kernel​.

return number of bytes encrypted upon success; a negative errno-style error code if an error occurred

Author

Stephan Mueller <​smueller@chronox.de​>

Author.

Info

August 2026 libkcapi Manual 1.5.1 Programming Interface