diff options
author | Richard Levitte <levitte@openssl.org> | 2019-07-10 23:11:27 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2019-07-23 06:34:09 +0200 |
commit | a883c02faa2549c98256577fd881af17b95444cf (patch) | |
tree | 1bcae7a34e61f8f10cda832bf52fa3eb3d0e1957 /doc | |
parent | b37066fdf731dc186f87d816c59ea412418f3d9d (diff) |
Add internal function ossl_algorithm_do_all()
This function is used to traverse all the implementations provided by
one provider, or all implementation for a specific operation across
all loaded providers, or both, and execute a given function for each
occurence.
This will be used by ossl_method_construct(), but also by information
processing functions.
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/9356)
Diffstat (limited to 'doc')
-rw-r--r-- | doc/internal/man3/ossl_algorithm_do_all.pod | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/doc/internal/man3/ossl_algorithm_do_all.pod b/doc/internal/man3/ossl_algorithm_do_all.pod new file mode 100644 index 0000000000..6ef85a7259 --- /dev/null +++ b/doc/internal/man3/ossl_algorithm_do_all.pod @@ -0,0 +1,63 @@ +=pod + +=head1 NAME + +ossl_algorithm_do_all - generic algorithm implementation iterator + +=head1 SYNOPSIS + + void ossl_algorithm_do_all(OPENSSL_CTX *libctx, int operation_id, + OSSL_PROVIDER *provider, + void (*fn)(OSSL_PROVIDER *provider, + const OSSL_ALGORITHM *algo, + int no_store, void *data), + void *data) + +=head1 DESCRIPTION + +ossl_algorithm_do_all() looks up every algorithm it can find, given a +library context I<libctx>, an operation identity I<operation_id> and a +provider I<provider>. +I<libctx> may be NULL to signify that the default library context should +be used. +I<operation_id> may be zero to signify that all kinds of operations +will be looked up. +I<provider> may be NULL to signify that all loaded providers will be +queried. + +For each implementation found, the function I<fn> is called with the +I<provider> for the implementation, the algorithm descriptor I<algo>, +the flag I<no_store> indicating whether the algorithm descriptor may +be remembered or not, and the caller I<data> that was passed to +ossl_algorithm_do_all(). + +=head1 RETURN VALUES + +ossl_algorithm_do_all() doesn't return any value. + +=head1 NOTES + +The function described here are mainly useful for discovery, and +possibly display of what has been discovered, for example an +application that wants to display the loaded providers and what they +may offer, but also for constructors, such as +L<ossl_construct_method(3)>. + +=head1 SEE ALSO + +L<ossl_construct_method(3)>, L<EVP_MAC_do_all(3)> + +=head1 HISTORY + +This functionality was added to OpenSSL 3.0. + +=head1 COPYRIGHT + +Copyright 2019 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 |