STRUCT ICA_RSA_MODEXPO_CRT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct ica_rsa_modexpo_crt(9) ✨

okay so bestie, this is a page from the Kernel API Manual and it's literally all about struct ica_rsa_modexpo_crt β€” yes the NAME section is genuinely empty in the original, she's mysterious like that πŸ’…. Anyway we're doing a deep dive, buckle up πŸŽ€


🌸 SYNOPSIS 🌸

struct ica_rsa_modexpo_crt {
    __u8 __user  *inputdata;
    __u32 inputdatalength;
    __u8 __user  *outputdata;
    __u32 outputdatalength;
    __u8 __user  *bp_key;
    __u8 __user  *bq_key;
    __u8 __user  *np_prime;
    __u8 __user  *nq_prime;
    __u8 __user  *u_mult_inv;
};

not me just dropping the whole struct, verbatim, no edits, we love a faithful queen πŸ‘‘ copy it exactly, iykyk.


πŸ¦‹ Members

The members are inputdata, inputdatalength, outputdata, outputdatalength, bp_key, bq_key, np_prime, nq_prime, and u_mult_inv β€” that's the lineup, no notes, she's complete 🫢


🧚 Description

ok so here's the vibe check on requirements, and ngl you have to respect these or things get cursed 😭

⭐ Requirements:

  • inputdatalength is even. fr fr, even only, no odd energy allowed.
  • outputdatalength is at least as large as inputdatalength. bigger is fine, smaller is a no πŸ™ˆ
  • All key parts are right justified in their fields, padded on the left with zeroes.
  • length(bp_key) = inputdatalength/2 + 8
  • length(bq_key) = inputdatalength/2
  • length(np_key) = inputdatalength/2 + 8
  • length(nq_key) = inputdatalength/2
  • length(u_mult_inv) = inputdatalength/2 + 8

like, the math is math-ing πŸ’– and yes the field names are np_prime and nq_prime but the requirements literally say np_key and nq_key β€” that's what the page says, i'm not fixing it, i'm just the messenger 🫑

🚨 bestie listen: these length formulas and the zero-padding rule are not suggestions. get them wrong and it's giving "undefined behaviour at 3am" energy. respect the requirements πŸ’€

πŸ’œ SEE ALSO

  • Kernel file ./arch/s390/include/uapi/asm/zcrypt.h
  • struct ica_rsa_modexpo(9)
  • struct ep11_cprb(9)
  • struct ep11_target_dev(9)
  • struct ep11_urb(9)
  • struct zcrypt_device_status_ext(9)

go read those next, they're all in the same friend group 🌈


okay that's the whole page, no gatekeeping, no summarising, every line accounted for ✨

this came from ./arch/s390/include/uapi/asm, dated October 2026, and the header up top is struct ica_rsa_modexpo_crt(9) from the Kernel API Manual β€” mwah, that's a wrap, love u, go compile something pretty πŸ’…πŸ¦‹

πŸ“¦ where this page comes from