@@ -260,25 +260,31 @@ algorithm identifier to the appropriate fetching function.
260260
261261The default provider is built in as part of the F<libcrypto> library.
262262Should it be needed (if other providers are loaded and offer
263- implementations of the same algorithms), the property "default=yes"
264- can be used as a search criterion for these implementations.
263+ implementations of the same algorithms), the property "provider=default"
264+ can be used as a search criterion for these implementations. Some
265+ non-cryptographic algorithms (such as serializers for loading keys and
266+ parameters from files) are not FIPS algorithm implementations in themselves but
267+ support algorithms from the FIPS provider and are allowed for use in "FIPS
268+ mode". The property "fips=yes" can be used to select such algorithms.
265269
266270=head2 FIPS provider
267271
268272The FIPS provider is a dynamically loadable module, and must therefore
269273be loaded explicitly, either in code or through OpenSSL configuration
270274(see L<config(5)>).
271275Should it be needed (if other providers are loaded and offer
272- implementations of the same algorithms), the property "fips=yes" can
273- be used as a search criterion for these implementations.
276+ implementations of the same algorithms), the property "provider=fips" can
277+ be used as a search criterion for these implementations. All algorithm
278+ implementations in the FIPS provider can also be selected with the property
279+ "fips=yes".
274280
275281=head2 Legacy provider
276282
277283The legacy provider is a dynamically loadable module, and must therefore
278284be loaded explicitly, either in code or through OpenSSL configuration
279285(see L<config(5)>).
280286Should it be needed (if other providers are loaded and offer
281- implementations of the same algorithms), the property "legacy=yes " can be
287+ implementations of the same algorithms), the property "provider=legacy " can be
282288used as a search criterion for these implementations.
283289
284290=head1 EXAMPLES
@@ -300,21 +306,21 @@ Fetch any available implementation of AES-128-CBC in the default context:
300306Fetch an implementation of SHA2-256 from the default provider in the default
301307context:
302308
303- EVP_MD *md = EVP_MD_fetch(NULL, "SHA2-256", "default=yes ");
309+ EVP_MD *md = EVP_MD_fetch(NULL, "SHA2-256", "provider=default ");
304310 ...
305311 EVP_MD_meth_free(md);
306312
307313Fetch an implementation of SHA2-256 that is not from the default provider in the
308314default context:
309315
310- EVP_MD *md = EVP_MD_fetch(NULL, "SHA2-256", "default=no ");
316+ EVP_MD *md = EVP_MD_fetch(NULL, "SHA2-256", "provider!=default ");
311317 ...
312318 EVP_MD_meth_free(md);
313319
314320Fetch an implementation of SHA2-256 from the default provider in the specified
315321context:
316322
317- EVP_MD *md = EVP_MD_fetch(ctx, "SHA2-256", "default=yes ");
323+ EVP_MD *md = EVP_MD_fetch(ctx, "SHA2-256", "provider=default ");
318324 ...
319325 EVP_MD_meth_free(md);
320326
@@ -324,11 +330,11 @@ implementation of WHIRLPOOL from it:
324330 /* This only needs to be done once - usually at application start up */
325331 OSSL_PROVIDER *legacy = OSSL_PROVIDER_load(NULL, "legacy");
326332
327- EVP_MD *md = EVP_MD_fetch(NULL, "WHIRLPOOL", "legacy=yes ");
333+ EVP_MD *md = EVP_MD_fetch(NULL, "WHIRLPOOL", "provider=legacy ");
328334 ...
329335 EVP_MD_meth_free(md);
330336
331- Note that in the above example the property string "legacy=yes " is optional
337+ Note that in the above example the property string "provider=legacy " is optional
332338since, assuming no other providers have been loaded, the only implementation of
333339the "whirlpool" algorithm is in the "legacy" provider. Also note that the
334340default provider should be explicitly loaded if it is required in addition to
0 commit comments