ripemd: document as being present in the default 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. 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, see L<EVP_MD-KECCAK(7)>
61
62 =item KECCAK-KMAC, see L<EVP_MD-KECCAK-KMAC(7)>
63
64 =item SHAKE, see L<EVP_MD-SHAKE(7)>
65
66 =item BLAKE2, see L<EVP_MD-BLAKE2(7)>
67
68 =item SM3, see L<EVP_MD-SM3(7)>
69
70 =item MD5, see L<EVP_MD-MD5(7)>
71
72 =item MD5-SHA1, see L<EVP_MD-MD5-SHA1(7)>
73
74 =item RIPEMD160, see L<EVP_MD-RIPEMD160(7)>
75
76 =back
77
78 =head2 Symmetric Ciphers
79
80 =over 4
81
82 =item AES, see L<EVP_CIPHER-AES(7)>
83
84 =item ARIA, see L<EVP_CIPHER-ARIA(7)>
85
86 =item CAMELLIA, see L<EVP_CIPHER-CAMELLIA(7)>
87
88 =item 3DES, see L<EVP_CIPHER-DES(7)>
89
90 =item SEED, see L<EVP_CIPHER-SEED(7)>
91
92 =item SM4, see L<EVP_CIPHER-SM4(7)>
93
94 =item ChaCha20, see L<EVP_CIPHER-CHACHA(7)>
95
96 =item ChaCha20-Poly1305, see L<EVP_CIPHER-CHACHA(7)>
97
98 =back
99
100 =head2 Message Authentication Code (MAC)
101
102 =over 4
103
104 =item BLAKE2, see L<EVP_MAC-BLAKE2(7)>
105
106 =item CMAC, see L<EVP_MAC-CMAC(7)>
107
108 =item GMAC, see L<EVP_MAC-GMAC(7)>
109
110 =item HMAC, see L<EVP_MAC-HMAC(7)>
111
112 =item KMAC, see L<EVP_MAC-KMAC(7)>
113
114 =item SIPHASH, see L<EVP_MAC-Siphash(7)>
115
116 =item POLY1305, see L<EVP_MAC-Poly1305(7)>
117
118 =back
119
120 =head2 Key Derivation Function (KDF)
121
122 =over 4
123
124 =item HKDF, see L<EVP_KDF-HKDF(7)>
125
126 =item SSKDF, see L<EVP_KDF-SS(7)>
127
128 =item PBKDF2, see L<EVP_KDF-PBKDF2(7)>
129
130 =item PKCS12KDF, see L<EVP_KDF-PKCS12KDF(7)>
131
132 =item SSHKDF, see L<EVP_KDF-SSHKDF(7)>
133
134 =item TLS1-PRF, see L<EVP_KDF-TLS1_PRF(7)>
135
136 =item KBKDF, see L<EVP_KDF-KB(7)>
137
138 =item X942KDF-ASN1, see L<EVP_KDF-X942-ASN1(7)>
139
140 =item X942KDF-CONCAT, see L<EVP_KDF-X942-CONCAT(7)>
141
142 =item X963KDF, see L<EVP_KDF-X963(7)>
143
144 =item SCRYPT, see L<EVP_KDF-SCRYPT(7)>
145
146 =item KRB5KDF, see L<EVP_KDF-KRB5KDF(7)>
147
148
149 =back
150
151 =head2 Key Exchange
152
153 =over 4
154
155 =item DH, see L<EVP_KEYEXCH-DH(7)>
156
157 =item ECDH, see L<EVP_KEYEXCH-ECDH(7)>
158
159 =item X25519, see L<EVP_KEYEXCH-X25519(7)>
160
161 =item X448, see L<EVP_KEYEXCH-X448(7)>
162
163 =back
164
165 =head2 Asymmetric Signature
166
167 =over 4
168
169 =item DSA, see L<EVP_SIGNATURE-DSA(7)>
170
171 =item RSA, see L<EVP_SIGNATURE-RSA(7)>
172
173 =item HMAC, see L<EVP_SIGNATURE-HMAC(7)>
174
175 =item SIPHASH, see L<EVP_SIGNATURE-Siphash(7)>
176
177 =item POLY1305, see L<EVP_SIGNATURE-Poly1305(7)>
178
179 =item CMAC, see L<EVP_SIGNATURE-CMAC(7)>
180
181 =back
182
183 =head2 Asymmetric Cipher
184
185 =over 4
186
187 =item RSA, see L<EVP_ASYM_CIPHER-RSA(7)>
188
189 =item SM2, see L<EVP_ASYM_CIPHER-SM2(7)>
190
191 =back
192
193 =head2 Asymmetric Key Encapsulation
194
195 =over 4
196
197 =item RSA, see L<EVP_KEM-RSA(7)>
198
199 =item X25519, see L<EVP_KEM-X25519(7)>
200
201 =item EC, see L<EVP_KEM-EC(7)>
202
203 =back
204
205 =head2 Asymmetric Key Management
206
207 =over 4
208
209 =item DH, see L<EVP_KEYMGMT-DH(7)>
210
211 =item DHX, see L<EVP_KEYMGMT-DHX(7)>
212
213 =item DSA, see L<EVP_KEYMGMT-DSA(7)>
214
215 =item RSA, see L<EVP_KEYMGMT-RSA(7)>
216
217 =item EC, see L<EVP_KEYMGMT-EC(7)>
218
219 =item X25519, see L<EVP_KEYMGMT-X25519(7)>
220
221 =item X448, see L<EVP_KEYMGMT-X448(7)>
222
223 =back
224
225 =head2 Asymmetric Key Encoder
226
227 The default provider also includes all of the encoding algorithms
228 present in the base provider.  Some of these have the property "fips=yes",
229 to allow them to be used together with the FIPS provider.
230
231 =over 4
232
233 =item RSA, see L<OSSL_ENCODER-RSA(7)>
234
235 =item DH, see L<OSSL_ENCODER-DH(7)>
236
237 =item DSA, see L<OSSL_ENCODER-DSA(7)>
238
239 =item EC, see L<OSSL_ENCODER-EC(7)>
240
241 =item X25519, see L<OSSL_ENCODER-X25519(7)>
242
243 =item X448, see L<OSSL_ENCODER-X448(7)>
244
245 =back
246
247 =head1 SEE ALSO
248
249 L<openssl-core.h(7)>, L<openssl-core_dispatch.h(7)>, L<provider(7)>,
250 L<OSSL_PROVIDER-base(7)>
251
252 =head1 HISTORY
253
254 The RIPEMD160 digest was added to the default provider in OpenSSL 3.0.7.
255
256 =head1 COPYRIGHT
257
258 Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved.
259
260 Licensed under the Apache License 2.0 (the "License").  You may not use
261 this file except in compliance with the License.  You can obtain a copy
262 in the file LICENSE in the source distribution or at
263 L<https://www.openssl.org/source/license.html>.
264
265 =cut