EVP: add missing common functionality
[oweals/openssl.git] / doc / man3 / EVP_KEYEXCH_free.pod
index 6571f9c111a3cc6cc12b85128d52b54229ea314a..5e81d249e25dc4e9a24cd2720decb152711b4223 100644 (file)
@@ -2,7 +2,8 @@
 
 =head1 NAME
 
-EVP_KEYEXCH_fetch, EVP_KEYEXCH_free, EVP_KEYEXCH_up_ref, EVP_KEYEXCH_provider
+EVP_KEYEXCH_fetch, EVP_KEYEXCH_free, EVP_KEYEXCH_up_ref, EVP_KEYEXCH_provider,
+EVP_KEYEXCH_is_a, EVP_KEYEXCH_do_all_provided,
 - Functions to manage EVP_KEYEXCH algorithm objects
 
 =head1 SYNOPSIS
@@ -14,6 +15,10 @@ EVP_KEYEXCH_fetch, EVP_KEYEXCH_free, EVP_KEYEXCH_up_ref, EVP_KEYEXCH_provider
  void EVP_KEYEXCH_free(EVP_KEYEXCH *exchange);
  int EVP_KEYEXCH_up_ref(EVP_KEYEXCH *exchange);
  OSSL_PROVIDER *EVP_KEYEXCH_provider(const EVP_KEYEXCH *exchange);
+ int EVP_KEYEXCH_is_a(const EVP_KEYEXCH *exchange, const char *name);
+ void EVP_KEYEXCH_do_all_provided(OPENSSL_CTX *libctx,
+                                  void (*fn)(EVP_KEYEXCH *exchange, void *arg),
+                                  void *arg);
 
 =head1 DESCRIPTION
 
@@ -34,6 +39,14 @@ structure.
 
 EVP_KEYEXCH_provider() returns the provider that I<exchange> was fetched from.
 
+EVP_KEYEXCH_is_a() checks if I<exchange> is an implementation of an
+algorithm that's identifiable with I<name>.
+
+EVP_KEYEXCH_do_all_provided() traverses all key exchange implementations by
+all activated providers in the library context I<libctx>, and for each
+of the implementations, calls I<fn> with the implementation method and
+I<data> as arguments.
+
 =head1 RETURN VALUES
 
 EVP_KEYEXCH_fetch() returns a pointer to a B<EVP_KEYEXCH> for success
@@ -41,6 +54,9 @@ or NULL for failure.
 
 EVP_KEYEXCH_up_ref() returns 1 for success or 0 otherwise.
 
+EVP_KEYEXCH_is_a() returns 1 of I<exchange> was identifiable,
+otherwise 0.
+
 =head1 SEE ALSO
 
 L<provider(7)/Fetching algorithms>, L<OSSL_PROVIDER(3)>