serialisation: Add a built-in base provider.
[openssl.git] / doc / man7 / OSSL_PROVIDER-default.pod
1 =pod
2
3 =head1 NAME
4
5 OSSL_PROVIDER-default - OpenSSL default provider
6
7 =head1 DESCRIPTION
8
9 The OpenSSL default provider supplies the majority of OpenSSL's diverse
10 algorithm implementations.  It also acts as a fallback when no other
11 provider has been loaded.
12
13 =head2 Properties
14
15 The implementations in this provider specifically have this property
16 defined:
17
18 =over 4
19
20 =item "provider=default"
21
22 =back
23
24 It may be used in a property query string with fetching functions such as
25 L<EVP_MD_fetch(3)> or L<EVP_CIPHER_fetch(3)>, as well as with other
26 functions that take a property query string, such as
27 L<EVP_PKEY_CTX_new_from_name(3)>.
28
29 It isn't mandatory to query for this property, except to make sure to get
30 implementations of this provider and none other.
31
32 Some implementations may define additional properties.  Exact information is
33 listed below
34
35 =head1 OPERATIONS AND ALGORITHMS
36
37 The OpenSSL default provider supports these operations and algorithms:
38
39 =head2 Hashing Algorithms / Message Digests
40
41 =over 4
42
43 =item SHA1, see L<EVP_MD-SHA1(7)>
44
45 =item SHA2, see L<EVP_MD-SHA2(7)>
46
47 =item SHA3, see L<EVP_MD-SHA3(7)>
48
49 =item KECCAK-KMAC, see L<EVP_MD-KECCAK-KMAC(7)>
50
51 =item SHAKE, see L<EVP_MD-SHAKE(7)>
52
53 =item BLAKE2, see L<EVP_MD-BLAKE2(7)>
54
55 =item SM3, see L<EVP_MD-SM3(7)>
56
57 =item MD5, see L<EVP_MD-MD5(7)>
58
59 =item MD5-SHA1, see L<EVP_MD-MD5-SHA1(7)>
60
61 =back
62
63 =head2 Symmetric Ciphers
64
65 =over 4
66
67 =item AES, see L<EVP_CIPHER-AES(7)>
68
69 =item ARIA, see L<EVP_CIPHER-ARIA(7)>
70
71 =item CAMELLIA, see L<EVP_CIPHER-CAMELLIA(7)>
72
73 =item DES, see L<EVP_CIPHER-DES(7)>
74
75 =item BF, see L<EVP_CIPHER-BF(7)>
76
77 =item IDEA, see L<EVP_CIPHER-IDEA(7)>
78
79 =item CAST5, see L<EVP_CIPHER-CAST5(7)>
80
81 =item SEED, see L<EVP_CIPHER-SEED(7)>
82
83 =item SM4, see L<EVP_CIPHER-SM4(7)>
84
85 =item RC2, see L<EVP_CIPHER-RC2(7)>
86
87 =item RC4, see L<EVP_CIPHER-RC4(7)>
88
89 =item RC5, see L<EVP_CIPHER-RC5(7)>
90
91 =item ChaCha20, see L<EVP_CIPHER-ChaCha20(7)>
92
93 =item ChaCha20-Poly1305, see L<EVP_CIPHER-ChaCha20-Poly1305(7)>
94
95 =back
96
97 =head2 Message Authentication Code (MAC)
98
99 =over 4
100
101 =item BLAKE2, see L<EVP_MAC-BLAKE2(7)>
102
103 =item CMAC, see L<EVP_MAC-CMAC(7)>
104
105 =item GMAC, see L<EVP_MAC-GMAC(7)>
106
107 =item HMAC, see L<EVP_MAC-HMAC(7)>
108
109 =item KMAC, see L<EVP_MAC-KMAC(7)>
110
111 =item SIPHASH, see L<EVP_MAC-Siphash(7)>
112
113 =item POLY1305, see L<EVP_MAC-Poly1305(7)>
114
115 =back
116
117 =head2 Key Derivation Function (KDF)
118
119 =over 4
120
121 =item HKDF, see L<EVP_KDF-HKDF(7)>
122
123 =item SSKDF, see L<EVP_KDF-SS(7)>
124
125 =item PBKDF2, see L<EVP_KDF-PBKDF2(7)>
126
127 =item SSHKDF, see L<EVP_KDF-SSHKDF(7)>
128
129 =item TLS1-PRF, see L<EVP_KDF-TLS1_PRF(7)>
130
131 =item KBKDF, see L<EVP_KDF-KB(7)>
132
133 =item X942KDF, see L<EVP_KDF-X942(7)>
134
135 =item SCRYPT, see L<EVP_KDF-SCRYPT(7)>
136
137 =item KRB5KDF, see L<EVP_KDF-KRB5KDF(7)>
138
139 =item X963KDF, see L<EVP_KDF-X963(7)>
140
141 =back
142
143 =head2 Key Exchange
144
145 =over 4
146
147 =item DH, see L<EVP_KEYEXCH-DH(7)>
148
149 =item ECDH, see L<EVP_KEYEXCH-ECDH(7)>
150
151 =item X25519, see L<EVP_KEYEXCH-X25519(7)>
152
153 =item X448, see L<EVP_KEYEXCH-X448(7)>
154
155 =back
156
157 =head2 Asymmetric Signature
158
159 =over 4
160
161 =item DSA, see L<EVP_SIGNATURE-DSA(7)>
162
163 =item RSA, see L<EVP_SIGNATURE-RSA(7)>
164
165 =back
166
167 =head2 Asymmetric Cipher
168
169 =over 4
170
171 =item RSA, see L<EVP_ASYM_CIPHER-RSA(7)>
172
173 =back
174
175 =head2 Asymmetric Key Management
176
177 =over 4
178
179 =item DH, see L<EVP_KEYMGMT-DH(7)>
180
181 =item DSA, see L<EVP_KEYMGMT-DSA(7)>
182
183 =item RSA, see L<EVP_KEYMGMT-RSA(7)>
184
185 =item EC, see L<EVP_KEYMGMT-EC(7)>
186
187 =item X25519, see L<EVP_KEYMGMT-X25519(7)>
188
189 =item X448, see L<EVP_KEYMGMT-X448(7)>
190
191 =back
192
193 =head2 Asymmetric Key Serializer
194
195 The default provider also includes all of the serialization algorithms
196 present in the base provider.  Some of these have the property "fips=yes",
197 to allow them to be used together with the FIPS provider.
198
199 =over 4
200
201 =item RSA, see L<OSSL_SERIALIZER-RSA(7)>
202
203 =item DH, see L<OSSL_SERIALIZER-DH(7)>
204
205 =item DSA, see L<OSSL_SERIALIZER-DSA(7)>
206
207 =item EC, see L<OSSL_SERIALIZER-EC(7)>
208
209 =item X25519, see L<OSSL_SERIALIZER-X25519(7)>
210
211 =item X448, see L<OSSL_SERIALIZER-X448(7)>
212
213 =back
214
215 =head1 SEE ALSO
216
217 L<openssl-core.h(7)>, L<openssl-core_dispatch.h(7)>, L<provider(7)>,
218 L<OSSL_PROVIDER-base(7)>
219
220 =head1 COPYRIGHT
221
222 Copyright 2020 The OpenSSL Project Authors. All Rights Reserved.
223
224 Licensed under the Apache License 2.0 (the "License").  You may not use
225 this file except in compliance with the License.  You can obtain a copy
226 in the file LICENSE in the source distribution or at
227 L<https://www.openssl.org/source/license.html>.
228
229 =cut