EVP_KEM-ML-KEM(7ossl)

πŸ“¦ version 3.5.0, in opensuse-leap 16.0

πŸ’œ EVP_KEM-ML-KEM-512, EVP_KEM-ML-KEM-768, EVP_KEM-ML-KEM-1024, EVP_KEM-ML-KEM β€” EVP_KEM ML-KEM keytype and algorithm support

okay bestie, this is the 7ossl manual page for the ML-KEM KEM squad β€” yes, all four of them: EVP_KEM-ML-KEM-512, EVP_KEM-ML-KEM-768, EVP_KEM-ML-KEM-1024, and their main-character umbrella EVP_KEM-ML-KEM. it's giving "post-quantum keytype and algorithm support" and honestly? iconic. πŸ’…βœ¨


πŸŽ€ DESCRIPTION πŸŽ€

so the ML-KEM keytypes and parameters have their own whole page β€” that's EVP_PKEY-ML-KEM(7), go read it, she ate. and if you want the tea on basic KEM operations (like, the actual encapsulate/decapsulate vibes), peep EVP_PKEY_encapsulate(3) and EVP_PKEY_decapsulate(3). no cap, those are the ones. 🫢

πŸ¦‹ ML-KEM KEM parameters πŸ¦‹

🌸 "ikme" (OSSL_KEM_PARAM_IKME) <octet string> 🌸

bestie listen β€” the OpenSSL ML-KEM encapsulation mechanism can only be modified one single way: by setting randomness during encapsulation. that's it. that's the whole loophole. and it exists so you can do testing, as per FIPS 203, section 6.2, algorithm 17. πŸ’€

⚠️ lowkey important: this parameter should not be used for purposes other than testing. like, do not take it to production. it's a lab coat, not a fit. πŸ™ˆ

when this parameter is not set, encapsulation proceeds as per FIPS 203, section 7.2 β€” the normal, well-behaved path. ✨

also: this parameter is only settable. read-only energy, but reversed. you can set it, you can't get it. that's the vibe check. πŸ”₯

you can set it when you're using EVP_PKEY_encapsulate_init(). 🧚


πŸ‘‘ CONFORMING TO πŸ‘‘

FIPS203 β€” slay, standards-compliant queen. ⭐


🌈 SEE ALSO 🌈

go read those too, iykyk πŸ’–


πŸ“ HISTORY πŸ“

this whole functionality was added in OpenSSL 3.5. so if you're on an older version and it's not working… yeah bestie, that's why. 😭


Copyright 2024-2025 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html>.


and that's the page, bestie! πŸŽ€ this one's from 3.5.0, dated 2026-09-25, and its whole name-and-number situation is EVP_KEM-ML-KEM(7ossl). periodt. πŸ’…πŸ¦‹βœ¨

πŸ“¦ where this page comes from