EVP_KEM-ML-KEM(7ossl)
π NAME π
ok so bestie, gather round β this page is about EVP_KEM-ML-KEM-512, EVP_KEM-ML-KEM-768, EVP_KEM-ML-KEM-1024 and EVP_KEM-ML-KEM. it's the EVP_KEM ML-KEM keytype + algorithm support page π¦ (and yeah, this is the 7ossl manual section, we love a proper home π
).
β¨ DESCRIPTION β¨
so the ML-KEM keytypes and their parameters live over in EVP_PKEY-ML-KEM(7) β that's your girl for the keytype deets πΈ.
and if you want the whole rundown on basic KEM operations? that's EVP_PKEY_encapsulate(3) and EVP_PKEY_decapsulate(3). go read those, they ate π
π ML-KEM KEM parameters π
"ikme"(OSSL_KEM_PARAM_IKME) <octet string> β okay so here's the tea β: the OpenSSL ML-KEM encapsulation mechanism can only be modified by setting randomness during encapsulation. that's literally the only way in. and it exists so you can do testing, as per FIPS 203, section 6.2, algorithm 17.
π¨ bestie please hear me: this parameter should not be used for purposes other than testing. like, do not take this one to prom. it is test-only, periodt.
when this parameter is not set, encapsulation proceeds as per FIPS 203, section 7.2 β business as usual π .
and ngl, this parameter is only settable. that's it. no getting it back. π«Ά
"fips-indicator"(OSSL_KEM_PARAM_FIPS_APPROVED_INDICATOR) <integer> β the OpenSSL FIPS provider returns1if the operation is FIPS approved, or0otherwise π. peek at "FIPS indicators" infips_module(7)for more info. and heads up: supplying that test-only"ikme"parameter causes this indicator to return0π (makes sense, it's the test toy).
ok and one more little note: this can be set when using EVP_PKEY_encapsulate_init() β¨.
π CONFORMING TO π
FIPS203 β yeah she's certified, we stay standards-compliant π.
π¦ SEE ALSO π¦
EVP_PKEY_encapsulate(3), EVP_PKEY_decapsulate(3), EVP_KEYMGMT(3), EVP_PKEY(3), provider-keymgmt(7) β the whole squad, go say hi π«Άβ¨
β HISTORY β
this functionality was added in OpenSSL 3.5 π (fresh drop, iykyk).
π COPYRIGHT π
Copyright 2024-2026 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>.
ok that's the whole page, no cap π
β¨ β brought to you by version 3.5.9, dated 2026-09-29, from the EVP_KEM-ML-KEM(7ossl) era π mwah, go encapsulate something iconic π¦π
π¦ where this page comes from
- alpine 3.23: openssl-doc 3.5.9-r0 Β· Apache-2.0
- alpine 3.24: openssl-doc 3.5.9-r0 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms