88ae3fec9d80a3ff02b22fcbbfc8bfa87d965907
[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. If an application doesn't specify anything else
11 explicitly (e.g. in the application or via config), then this is the
12 provider that will be used as fallback: It is loaded automatically the
13 first time that an algorithm is fetched from a provider or a function
14 acting on providers is called and no other provider has been loaded yet.
15
16 If an attempt to load a provider has already been made (whether successful
17 or not) then the default provider won't be loaded automatically. Therefore
18 if the default provider is to be used in conjunction with other providers
19 then it must be loaded explicitly. Automatic loading of the default
20 provider only occurs a maximum of once; if the default provider is
21 explicitly unloaded then the default provider will not be automatically
22 loaded again.
23
24 =head2 Properties
25
26 The implementations in this provider specifically have this property
27 defined:
28
29 =over 4
30
31 =item "provider=default"
32
33 =back
34
35 It may be used in a property query string with fetching functions such as
36 L<EVP_MD_fetch(3)> or L<EVP_CIPHER_fetch(3)>, as well as with other
37 functions that take a property query string, such as
38 L<EVP_PKEY_CTX_new_from_name(3)>.
39
40 It isn't mandatory to query for this property, except to make sure to get
41 implementations of this provider and none other.
42
43 Some implementations may define additional properties.  Exact information is
44 listed below
45
46 =head1 OPERATIONS AND ALGORITHMS
47
48 The OpenSSL default provider supports these operations and algorithms:
49
50 =head2 Hashing Algorithms / Message Digests
51
52 =over 4
53
54 =item SHA1, see L<EVP_MD-SHA1(7)>
55
56 =item SHA2, see L<EVP_MD-SHA2(7)>
57
58 =item SHA3, see L<EVP_MD-SHA3(7)>
59
60 =item KECCAK-KMAC, see L<EVP_MD-KECCAK-KMAC(7)>
61
62 =item SHAKE, see L<EVP_MD-SHAKE(7)>
63
64 =item BLAKE2, see L<EVP_MD-BLAKE2(7)>
65
66 =item SM3, see L<EVP_MD-SM3(7)>
67
68 =item MD5, see L<EVP_MD-MD5(7)>
69
70 =item MD5-SHA1, see L<EVP_MD-MD5-SHA1(7)>
71
72 =back
73
74 =head2 Symmetric Ciphers
75
76 =over 4
77
78 =item AES, see L<EVP_CIPHER-AES(7)>
79
80 =item ARIA, see L<EVP_CIPHER-ARIA(7)>
81
82 =item CAMELLIA, see L<EVP_CIPHER-CAMELLIA(7)>
83
84 =item DES, see L<EVP_CIPHER-DES(7)>
85
86 =item BF, see L<EVP_CIPHER-BLOWFISH(7)>
87
88 =item IDEA, see L<EVP_CIPHER-IDEA(7)>
89
90 =item CAST5, see L<EVP_CIPHER-CAST(7)>
91
92 =item SEED, see L<EVP_CIPHER-SEED(7)>
93
94 =item SM4, see L<EVP_CIPHER-SM4(7)>
95
96 =item RC2, see L<EVP_CIPHER-RC2(7)>
97
98 =item RC4, see L<EVP_CIPHER-RC4(7)>
99
100 =item RC5, see L<EVP_CIPHER-RC5(7)>
101
102 =item ChaCha20, see L<EVP_CIPHER-CHACHA(7)>
103
104 =item ChaCha20-Poly1305, see L<EVP_CIPHER-CHACHA(7)>
105
106 =back
107
108 =head2 Message Authentication Code (MAC)
109
110 =over 4
111
112 =item BLAKE2, see L<EVP_MAC-BLAKE2(7)>
113
114 =item CMAC, see L<EVP_MAC-CMAC(7)>
115
116 =item GMAC, see L<EVP_MAC-GMAC(7)>
117
118 =item HMAC, see L<EVP_MAC-HMAC(7)>
119
120 =item KMAC, see L<EVP_MAC-KMAC(7)>
121
122 =item SIPHASH, see L<EVP_MAC-Siphash(7)>
123
124 =item POLY1305, see L<EVP_MAC-Poly1305(7)>
125
126 =back
127
128 =head2 Key Derivation Function (KDF)
129
130 =over 4
131
132 =item HKDF, see L<EVP_KDF-HKDF(7)>
133
134 =item SSKDF, see L<EVP_KDF-SS(7)>
135
136 =item PBKDF2, see L<EVP_KDF-PBKDF2(7)>
137
138 =item PKCS12KDF, see L<EVP_KDF-PKCS12KDF(7)>
139
140 =item SSHKDF, see L<EVP_KDF-SSHKDF(7)>
141
142 =item TLS1-PRF, see L<EVP_KDF-TLS1_PRF(7)>
143
144 =item KBKDF, see L<EVP_KDF-KB(7)>
145
146 =item X942KDF-ASN1, see L<EVP_KDF-X942-ASN1(7)>
147
148 =item X942KDF-CONCAT, see L<EVP_KDF-X942-CONCAT(7)>
149
150 =item X963KDF, see L<EVP_KDF-X963(7)>
151
152 =item SCRYPT, see L<EVP_KDF-SCRYPT(7)>
153
154 =item KRB5KDF, see L<EVP_KDF-KRB5KDF(7)>
155
156
157 =back
158
159 =head2 Key Exchange
160
161 =over 4
162
163 =item DH, see L<EVP_KEYEXCH-DH(7)>
164
165 =item ECDH, see L<EVP_KEYEXCH-ECDH(7)>
166
167 =item X25519, see L<EVP_KEYEXCH-X25519(7)>
168
169 =item X448, see L<EVP_KEYEXCH-X448(7)>
170
171 =back
172
173 =head2 Asymmetric Signature
174
175 =over 4
176
177 =item DSA, see L<EVP_SIGNATURE-DSA(7)>
178
179 =item RSA, see L<EVP_SIGNATURE-RSA(7)>
180
181 =item HMAC, see L<EVP_SIGNATURE-HMAC(7)>
182
183 =item SIPHASH, see L<EVP_SIGNATURE-Siphash(7)>
184
185 =item POLY1305, see L<EVP_SIGNATURE-Poly1305(7)>
186
187 =item CMAC, see L<EVP_SIGNATURE-CMAC(7)>
188
189 =back
190
191 =head2 Asymmetric Cipher
192
193 =over 4
194
195 =item RSA, see L<EVP_ASYM_CIPHER-RSA(7)>
196
197 =item SM2, see L<EVP_ASYM_CIPHER-SM2(7)>
198
199 =back
200
201 =head2 Asymmetric Key Encapsulation
202
203 =over 4
204
205 =item RSA, see L<EVP_KEM-RSA(7)>
206
207 =back
208
209 =head2 Asymmetric Key Management
210
211 =over 4
212
213 =item DH, see L<EVP_KEYMGMT-DH(7)>
214
215 =item DSA, see L<EVP_KEYMGMT-DSA(7)>
216
217 =item RSA, see L<EVP_KEYMGMT-RSA(7)>
218
219 =item EC, see L<EVP_KEYMGMT-EC(7)>
220
221 =item X25519, see L<EVP_KEYMGMT-X25519(7)>
222
223 =item X448, see L<EVP_KEYMGMT-X448(7)>
224
225 =back
226
227 =head2 Asymmetric Key Encoder
228
229 The default provider also includes all of the encoding algorithms
230 present in the base provider.  Some of these have the property "fips=yes",
231 to allow them to be used together with the FIPS provider.
232
233 =over 4
234
235 =item RSA, see L<OSSL_ENCODER-RSA(7)>
236
237 =item DH, see L<OSSL_ENCODER-DH(7)>
238
239 =item DSA, see L<OSSL_ENCODER-DSA(7)>
240
241 =item EC, see L<OSSL_ENCODER-EC(7)>
242
243 =item X25519, see L<OSSL_ENCODER-X25519(7)>
244
245 =item X448, see L<OSSL_ENCODER-X448(7)>
246
247 =back
248
249 =head1 SEE ALSO
250
251 L<openssl-core.h(7)>, L<openssl-core_dispatch.h(7)>, L<provider(7)>,
252 L<OSSL_PROVIDER-base(7)>
253
254 =head1 COPYRIGHT
255
256 Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved.
257
258 Licensed under the Apache License 2.0 (the "License").  You may not use
259 this file except in compliance with the License.  You can obtain a copy
260 in the file LICENSE in the source distribution or at
261 L<https://www.openssl.org/source/license.html>.
262
263 =cut