=pod

=head1 NAME

OSSL_PROVIDER-base - OpenSSL base provider

=head1 DESCRIPTION

The OpenSSL base provider supplies the encoding for OpenSSL's
asymmetric cryptography.

=head2 Properties

The implementations in this provider specifically have this property
defined:

=over 4

=item "provider=base"

=back

It may be used in a property query string with fetching functions.

It isn't mandatory to query for this property, except to make sure to get
implementations of this provider and none other.

=over 4

=item "type=parameters"

=item "type=private"

=item "type=public"

=back

These may be used in a property query string with fetching functions to select
which data are to be encoded.  Either the private key material, the public
key material or the domain parameters can be selected.

=over 4

=item "format=der"

=item "format=pem"

=item "format=text"

=back

These may be used in a property query string with fetching functions to select
the encoding output format.  Either the DER, PEM and plaintext are
currently permitted.

=head1 OPERATIONS AND ALGORITHMS

The OpenSSL base provider supports these operations and algorithms:

=head2 Random Number Generation

=over 4

=item SEED-SRC,  see L<EVP_RAND-SEED-SRC(7)>

=item JITTER,  see L<EVP_RAND-JITTER(7)>

=back

In addition to this provider, the "SEED-SRC" and "JITTER" algorithms
are also available in the default provider.

=head2 Asymmetric Key Encoder

=over 4

=item RSA

=item RSA-PSS

=item DH

=item DHX

=item DSA

=item EC

=item ED25519

=item ED448

=item X25519

=item X448

=item SM2

=item ML-DSA-44

=item ML-DSA-65

=item ML-DSA-87

=item ML-KEM-512

=item ML-KEM-768

=item ML-KEM-1024

=item SLH-DSA-SHA2-128s

=item SLH-DSA-SHA2-128f

=item SLH-DSA-SHA2-192s

=item SLH-DSA-SHA2-192f

=item SLH-DSA-SHA2-256s

=item SLH-DSA-SHA2-256f

=item SLH-DSA-SHAKE-128s

=item SLH-DSA-SHAKE-128f

=item SLH-DSA-SHAKE-192s

=item SLH-DSA-SHAKE-192f

=item SLH-DSA-SHAKE-256s

=item SLH-DSA-SHAKE-256f

=item LMS

Private keys are not supported for LMS.

=back

In addition to this provider, all of these encoding algorithms are also
available in the default provider. Some of these algorithms may be used in
combination with the FIPS provider.

=head2 Asymmetric Key Decoder

=over 4

=item RSA

=item RSA-PSS

=item DH

=item DHX

=item DSA

=item EC

=item ED25519

=item ED448

=item X25519

=item X448

=item SM2

=item DER

=item ML-DSA-44

=item ML-DSA-65

=item ML-DSA-87

=item ML-KEM-512

=item ML-KEM-768

=item ML-KEM-1024

=item SLH-DSA-SHA2-128s

=item SLH-DSA-SHA2-128f

=item SLH-DSA-SHA2-192s

=item SLH-DSA-SHA2-192f

=item SLH-DSA-SHA2-256s

=item SLH-DSA-SHA2-256f

=item SLH-DSA-SHAKE-128s

=item SLH-DSA-SHAKE-128f

=item SLH-DSA-SHAKE-192s

=item SLH-DSA-SHAKE-192f

=item SLH-DSA-SHAKE-256s

=item SLH-DSA-SHAKE-256f

=item LMS

Private keys are not supported for LMS.

=back

In addition to this provider, all of these decoding algorithms are also
available in the default provider. Some of these algorithms may be used in
combination with the FIPS provider.

=head2 Stores

=over 4

=item file

=item org.openssl.winstore, see L<OSSL_STORE-winstore(7)>

=back

In addition to this provider, all of these store algorithms are also
available in the default provider.

=head1 SEE ALSO

L<OSSL_PROVIDER-default(7)>, L<openssl-core.h(7)>,
L<openssl-core_dispatch.h(7)>, L<provider(7)>

=head1 HISTORY

This functionality was added in OpenSSL 3.0.

Support for B<ML-DSA> and B<ML-KEM> was added in OpenSSL 3.5.

Support for B<LMS> Public Key (SubjectPublicKeyInfo) encoders and decoders
was added in OpenSSL 4.0.

=head1 COPYRIGHT

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

=cut
