STRUCT DCP_BLOB_FMT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct dcp_blob_fmt(9) β€” like, the DCP BLOB format bestie πŸ’–

okay so this is a page from the Kernel API Manual and it's all about struct dcp_blob_fmt, which is literally the DCP BLOB format. no cap. let's get into it 🫢


✨ SYNOPSIS ✨

here's the whole struct, bestie β€” every single field, exactly as it is, no notes:

struct dcp_blob_fmt {
    __u8 fmt_version;
    __u8 blob_key[AES_KEYSIZE_128];
    __u8 nonce[AES_KEYSIZE_128];
    __le32 payload_len;
    __u8 payload[];
 };

πŸŽ€ Members πŸŽ€

  • fmt_version β€” the format version, and rn it's 1. that's the vibe. one. πŸ’…
  • blob_key β€” a random AES 128 key that's used to encrypt the payload. plot twist tho: blob_key itself gets encrypted with the OTP or UNIQUE device key in AES-128-ECB mode by DCP. so it's keys all the way down, iykyk πŸ”₯
  • nonce β€” a random nonce, used for the payload encryption. iconic behavior honestly.
  • payload_len β€” the length of the plain text payload. just the length, she's not the payload herself, she just knows her. πŸ’€
  • payload β€” the payload itself!! encrypted using AES-128-GCM and blob_key, and a GCM auth tag of size DCP_BLOB_AUTHLEN is attached at the end of it. so the tag is like, right there at the tail, holding it together 🌸

πŸ¦‹ Description πŸ¦‹

the total size of a DCP BLOB is literally this:

sizeof(struct dcp_blob_fmt) + payload_len + DCP_BLOB_AUTHLEN

that's it, that's the math, and it ate πŸ’–


🌈 SEE ALSO 🌈

  • the Kernel file ./security/keys/trusted-keys/trusted_dcp.c
  • dcp blob format(9) β€” yes that's the ref, go read it bestie πŸ‘‘

ngl the whole thing is giving "crypto struct that knows exactly what she is" and honestly? obsessed. πŸ“

okay bye bestie, this page lives in ./security/keys/trusted-keys and it's dated October 2026 β€” mwah, slay, periodt πŸ§šβ€β™€οΈπŸ’œ

πŸ“¦ where this page comes from