STRUCT CCP_XTS_AES_ENGINE(9)
π struct ccp_xts_aes_engine(9) β CCP XTS AES operation β¨
okay bestie, we're in the Kernel API Manual today and we're talking about struct ccp_xts_aes_engine. yes it's a real thing, yes it's a struct, and yes it's literally the CCP XTS AES operation. saddle up π«Ά
β¨ SYNOPSIS β¨
like, here's the whole shape of it, no cap:
struct ccp_xts_aes_engine {
enum ccp_aes_type type;
enum ccp_aes_action action;
enum ccp_xts_aes_unit_size unit_size;
struct scatterlist *key;
u32 key_len;
struct scatterlist *iv;
u32 iv_len;
struct scatterlist *src, *dst;
u64 src_len;
u32 final;
};
that's it, that's the struct. iconic honestly π
πΈ Members πΈ
actionβ the AES operation, meaning decrypt or encrypt. pick your fighter πunit_sizeβ the unit size of the XTS operationkeyβ the key that's gonna be used for this XTS AES operation πkey_lenβ length in bytes ofkeyivβ the IV to be used for this XTS AES operationiv_lenβ length in bytes ofivsrcβ the data used for this operationdstβ the data produced by this operation β¨src_lenβ length in bytes of the data used for this operationfinalβ indicates final XTS operation π
ngl bestie, type is sitting right there at the top of the struct but this member rundown doesn't cover it. that's just the way the page is, ok? i don't make the rules π
π Description π
these are the variables that have to be set when you call ccp_enqueue_cmd:
action,unit_size,key,key_len,iv,iv_len,src,dst,src_len,final
all of them. the whole squad. main character energy, each and every one π
and here's the part you actually need to remember, so pay attention:
iv is used as both input and output. when the AES operation completes, the new IV overwrites the old IV. like it literally eats its own input and leaves the new one in its place πβ¨
fr fr, that's the vibe check on iv and it's not optional to know it.
π¦ SEE ALSO π¦
kernel file ./include/linux/ccp.h, plus the whole friend group:
ccp_present(9), ccp_version(9), ccp_enqueue_cmd(9), struct ccp_aes_engine(9), struct ccp_sha_engine(9), struct ccp_des3_engine(9), struct ccp_rsa_engine(9), struct ccp_passthru_engine(9), struct ccp_passthru_nomap_engine(9), struct ccp_ecc_modular_math(9), struct ccp_ecc_point(9), struct ccp_ecc_point_math(9), struct ccp_ecc_engine(9), struct ccp_cmd(9)
go read them, they're all slaying in their own way π
mwah π that's a wrap β this one lives in ./include/linux, dated October 2026, and it's filed under struct ccp_xts_aes_engine(9). stan the kernel API besties, periodt ππ¦
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms