Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
EVP_KEYMGMT(3)			    OpenSSL			EVP_KEYMGMT(3)

NAME
       EVP_KEYMGMT, EVP_KEYMGMT_fetch, EVP_KEYMGMT_up_ref, EVP_KEYMGMT_free,
       EVP_KEYMGMT_provider, EVP_KEYMGMT_is_a, EVP_KEYMGMT_number,
       EVP_KEYMGMT_do_all_provided, EVP_KEYMGMT_names_do_all - EVP key
       management routines

SYNOPSIS
	#include <openssl/evp.h>

	typedef	struct evp_keymgmt_st EVP_KEYMGMT;

	EVP_KEYMGMT *EVP_KEYMGMT_fetch(OPENSSL_CTX *ctx, const char *algorithm,
				       const char *properties);
	int EVP_KEYMGMT_up_ref(EVP_KEYMGMT *keymgmt);
	void EVP_KEYMGMT_free(EVP_KEYMGMT *keymgmt);
	const OSSL_PROVIDER *EVP_KEYMGMT_provider(const	EVP_KEYMGMT *keymgmt);
	int EVP_KEYMGMT_is_a(const EVP_KEYMGMT *keymgmt, const char *name);
	int EVP_KEYMGMT_number(const EVP_KEYMGMT *keymgmt);
	void EVP_KEYMGMT_do_all_provided(OPENSSL_CTX *libctx,
					 void (*fn)(EVP_KEYMGMT	*keymgmt, void *arg),
					 void *arg);
	void EVP_KEYMGMT_names_do_all(const EVP_KEYMGMT	*keymgmt,
				      void (*fn)(const char *name, void	*data),
				      void *data);

DESCRIPTION
       EVP_KEYMGMT is a	method object that represents key management
       implementations for different cryptographic algorithms.	This method
       object provides functionality to	have providers import key material
       from the	outside, as well as export key material	to the outside.	 Most
       of the functionality can	only be	used internally	and has	no public
       interface, this object is simply	passed into other functions when
       needed.

       EVP_KEYMGMT_fetch() looks for an	algorithm within the provider that has
       been loaded into	the OPENSSL_CTX	given by ctx, having the name given by
       algorithm and the properties given by properties.

       EVP_KEYMGMT_up_ref() increments the reference count for the given
       EVP_KEYMGMT keymgmt.

       EVP_KEYMGMT_free() decrements the reference count for the given
       EVP_KEYMGMT keymgmt, and	when the count reaches zero, frees it.

       EVP_KEYMGMT_provider() returns the provider that	has this particular
       implementation.

       EVP_KEYMGMT_is_a() checks if keymgmt is an implementation of an
       algorithm that's	identifiable with name.

       EVP_KEYMGMT_number() returns the	internal dynamic number	assigned to
       the keymgmt.

       EVP_KEYMGMT_names_do_all() traverses all	names for the keymgmt, and
       calls fn	with each name and data.

       EVP_KEYMGMT_do_all_provided() traverses all key keymgmt implementations
       by all activated	providers in the library context libctx, and for each
       of the implementations, calls fn	with the implementation	method and
       data as arguments.

NOTES
       EVP_KEYMGMT_fetch() may be called implicitly by other fetching
       functions, using	the same library context and properties.  Any other
       API that	uses keys will typically do this.

RETURN VALUES
       EVP_KEYMGMT_fetch() returns a pointer to	the key	management
       implementation represented by an	EVP_KEYMGMT object, or NULL on error.

       EVP_KEYMGMT_up_ref() returns 1 on success, or 0 on error.

       EVP_KEYMGMT_free() doesn't return any value.

       EVP_KEYMGMT_provider() returns a	pointer	to a provider object, or NULL
       on error.

       EVP_KEYMGMT_is_a() returns 1 of keymgmt was identifiable, otherwise 0.

       EVP_KEYMGMT_number() returns an integer.

SEE ALSO
       EVP_MD_fetch(3),	OPENSSL_CTX(3)

HISTORY
       The functions described here were added in OpenSSL 3.0.

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
       <https://www.openssl.org/source/license.html>.

3.0.0-alpha6			  2020-08-06			EVP_KEYMGMT(3)

NAME | SYNOPSIS | DESCRIPTION | NOTES | RETURN VALUES | SEE ALSO | HISTORY | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=EVP_KEYMGMT&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help