STRUCT ICA_RSA_MODEXPO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct ica_rsa_modexpo ✨

okay so this is a page from the Kernel API Manual, bestie β€” it's struct ica_rsa_modexpo(9) and it's literally the blueprint for how the kernel hands RSA modexpo data over to zcrypt on s390. no cap, it's short but every field matters πŸ’…


🌸 NAME 🌸

struct ica_rsa_modexpo β€” the struct itself. that's it, that's the name. the manpage does not elaborate even a little bit, and honestly? iconic minimalism πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

here's the whole thing, character for character, don't touch:

struct ica_rsa_modexpo {
    __u8 __user  *inputdata;
    __u32 inputdatalength;
    __u8 __user  *outputdata;
    __u32 outputdatalength;
    __u8 __user  *b_key;
    __u8 __user  *n_modulus;
 };

six members, all doing their little jobs. slay 🫢


πŸ‘‘ Members πŸ‘‘

so the original page has a Members section and then... says nothing else before rolling into Description. no per-member breakdown, no lil one-liners. we simply vibe with the field names up in the SYNOPSIS and move on. πŸ’€ (don't come for me, i'm just the messenger!)


πŸ’– Description πŸ’–

the actual requirements. this is the important part, read it, internalize it, put it on your vision board πŸ”₯

  • outputdatalength is at least as large as inputdatalength. β€” like, at minimum. don't be out here writing into a buffer that's too small, that's not the vibe 😭
  • All key parts are right justified in their fields, padded on the left with zeroes. β€” padded on the left with zeroes, okay? left. with zeroes. write that down ✨
  • length(b_key) = inputdatalength β€” these two are literally matching. periodt.
  • length(n_modulus) = inputdatalength β€” same deal, same length, no exceptions 🧚

🌈 SEE ALSO 🌈

go read these next, bestie, the whole little family:

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

lowkey a warning-free page, which is honestly rare. no bugs listed, no deprecated flags, no "this will explode your kernel" notes. just requirements. enjoy the peace πŸ•ŠοΈ

and that's the whole page, bestie!! πŸŽ€ source file lives at ./arch/s390/include/uapi/asm, and this edition is dated October 2026 β€” so like, future-dated documentation, main character energy fr fr. go forth and modexpo responsibly πŸ’œπŸ¦‹βœ¨

πŸ“¦ where this page comes from