KCAPI_KPP_KEYGEN_AIO(3)

✨ KCAPI_KPP_KEYGEN_AIO(3) ✨

okay bestie, welcome to the Programming Interface section of the libkcapi manual πŸ’– this one's kcapi_kpp_keygen_aio and it's literally the moment you generate a public key, asynchronous one-shot style πŸ¦‹


πŸŽ€ NAME πŸŽ€

kcapi_kpp_keygen_aio β€” generate a public key (asynchronous one shot) πŸ‘‘


✨ SYNOPSIS ✨

ssize_t kcapi_kpp_keygen_aio(struct kcapi_handle * handle,
                             struct iovec * outiov, size_t iovlen,
                             int access);

🌸 ARGUMENTS 🌸

  • handle β€” [in] the cipher handle, your main character 🫢
  • outiov β€” [out] head of the scatter-gather list of the destination buffers that get filled with the generated public key ✨
  • iovlen β€” [in] how many scatter-gather list entries there are, fr fr πŸ”’
  • access β€” [in] the kernel access type. Your options are:
    • KCAPI_ACCESS_HEURISTIC β€” use the internal heuristic for the fastest kernel access πŸ‘‘
    • KCAPI_ACCESS_VMSPLICE β€” use vmsplice access 🧚
    • KCAPI_ACCESS_SENDMSG β€” sendmsg access πŸ’Œ

πŸ’… DESCRIPTION πŸ’…

So here's the tea: the individual scatter-gather list entries get processed with separate invocations of the given cipher. One at a time, no cap 😭

The memory should be aligned at the page boundary using posix_memalign(sysconf(_SC_PAGESIZE)). And like, if it's not aligned at the page boundary, the vmsplice call may not send all data to the kernel. That's the vibe check you do not wanna fail ⚠️

not me warning you about alignment again β€” align your memory bestie, it's giving self care πŸ’–

Return number of bytes verify upon success; a negative errno-style error code if an error occurred. Slay when it works, 😭 when it doesn't.


🌈 AUTHOR 🌈

Stephan Mueller <smueller@chronox.de>

  • Author. iconic behavior honestly πŸ’œ


and that's the whole page bestie, you ate πŸ“ this was libkcapi Manual 1.5.0 from July 2025 β€” KCAPI_KPP_KEYGEN_AIO(3) out πŸ’…βœ¨

πŸ“¦ where this page comes from