DOKK / manpages / debian 11 / libkcapi-dev / kcapi_cipher_encrypt_aio.3.en
KCAPI_CIPHER_ENCRYPT(3) Programming Interface KCAPI_CIPHER_ENCRYPT(3)

kcapi_cipher_encrypt_aio - encrypt data (asynchronous one shot)

int32_t kcapi_cipher_encrypt_aio(struct kcapi_handle * handle, struct iovec * iniov, struct iovec * outiov, uint32_t iovlen, const uint8_t * iv, int access);

handle

[in] cipher handle

iniov

[in] head of scatter-gather list array holding the plaintext

outiov

[out] head of scatter-gather list of the destination buffers filled with ciphertext

iovlen

[in] number of scatter-gather list entries

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)

The individual scatter-gather list entries are processed with separate invocations of the the given cipher.

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.

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

Stephan Mueller <smueller@chronox.de>

Author.

November 2020 libkcapi Manual 1.2.1