STRUCT CCP_XTS_AES_ENGINE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 operation
  • key β€” the key that's gonna be used for this XTS AES operation πŸ”‘
  • key_len β€” length in bytes of key
  • iv β€” the IV to be used for this XTS AES operation
  • iv_len β€” length in bytes of iv
  • src β€” the data used for this operation
  • dst β€” the data produced by this operation ✨
  • src_len β€” length in bytes of the data used for this operation
  • final β€” 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