EVP_KEM-ML-KEM(7ossl)
π 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 π
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
- opensuse-leap 16.0: openssl-3 3.5.0-160000.11.1 Β· Apache-2.0
- opensuse-leap 16.0: openssl-3 3.5.0-160000.11.1 Β· Apache-2.0
- opensuse-leap 16.0: openssl-3 3.5.0-160000.11.1 Β· Apache-2.0
- opensuse-leap 16.0: openssl-3 3.5.0-160000.11.1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms