=pod

=head1 NAME

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

=head1 DESCRIPTION

The B<ML-KEM> keytypes and parameters are described in L<EVP_PKEY-ML-KEM(7)>.
See L<EVP_PKEY_encapsulate(3)> and L<EVP_PKEY_decapsulate(3)> for more details
about basic KEM operations.

=head2 ML-KEM KEM parameters

=over 4

=item "ikme" (B<OSSL_KEM_PARAM_IKME>) <octet string>

The OpenSSL ML-KEM encapsulation mechanism can only be modified by
setting randomness during encapsulation, this enables testing, as per
FIPS 203, section 6.2, algorithm 17.

This parameter should not be used for purposes other than testing.

When this parameter is not set, encapsulation proceeds as per FIPS 203,
section 7.2

This parameter is only settable.

=back

This can be set when using EVP_PKEY_encapsulate_init().

=head1 CONFORMING TO

=over 4

=item FIPS203

=back

=head1 SEE ALSO

L<EVP_PKEY_encapsulate(3)>,
L<EVP_PKEY_decapsulate(3)>,
L<EVP_KEYMGMT(3)>,
L<EVP_PKEY(3)>,
L<provider-keymgmt(7)>

=head1 HISTORY

This functionality was added in OpenSSL 3.5.

=head1 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
L<https://www.openssl.org/source/license.html>.

=cut
