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

FreeBSD Manual Pages

  
 
  

home | help
OSSL_DESERIALIZER_CTX_NEW_BY_EVP_PKEOpenSL_DESERIALIZER_CTX_NEW_BY_EVP_PKEY(3)

NAME
       OSSL_DESERIALIZER_CTX_new_by_EVP_PKEY,
       OSSL_DESERIALIZER_CTX_set_passphrase,
       OSSL_DESERIALIZER_CTX_set_pem_password_cb,
       OSSL_DESERIALIZER_CTX_set_passphrase_ui - Deserializer routines to
       deserialize EVP_PKEYs

SYNOPSIS
	#include <openssl/deserializer.h>

	OSSL_DESERIALIZER_CTX *
	OSSL_DESERIALIZER_CTX_new_by_EVP_PKEY(const EVP_PKEY *pkey,
					      const char *input_type,
					      OPENSSL_CTX *libctx,
					      const char *propquery);

	int OSSL_DESERIALIZER_CTX_set_passphrase(OSSL_DESERIALIZER_CTX *ctx,
						 const unsigned	char *kstr,
						 size_t	klen);
	int OSSL_DESERIALIZER_CTX_set_pem_password_cb(OSSL_DESERIALIZER_CTX *ctx,
						      pem_password_cb *cb,
						      void *cbarg);
	int OSSL_DESERIALIZER_CTX_set_passphrase_ui(OSSL_DESERIALIZER_CTX *ctx,
						    const UI_METHOD *ui_method,
						    void *ui_data);

DESCRIPTION
       OSSL_DESERIALIZER_CTX_new_by_EVP_PKEY() is a utility function that
       creates a OSSL_DESERIALIZER_CTX,	finds all applicable deserializer
       implementations and sets	them up, so all	the caller has to do next is
       call functions like OSSL_DESERIALIZE_from_bio().

       Internally OSSL_DESERIALIZER_CTX_new_by_EVP_PKEY() searches for all
       available EVP_KEYMGMT(3)	implementations, and then builds a list	of all
       potential deserializer implementations that may be able to process the
       serialized input	into data suitable for EVP_PKEYs.  All these
       implementations are implicitly fetched using libctx and propquery.

       The search of deserializer implementations can be limited with
       input_type, which specifies a starting input type.  This	is further
       explained in OSSL_DESERIALIZER_CTX_set_input_type(3).

       If no suitable deserializer was found,
       OSSL_DESERIALIZER_CTX_new_by_EVP_PKEY() still creates a
       OSSL_DESERIALIZER_CTX, but with no associated deserializer
       (OSSL_DESERIALIZER_CTX_num_deserializers(3) returns zero).  This	helps
       the caller distinguish between an error when creating the
       OSSL_DESERIALIZER_CTX, and the lack the deserializer support and	act
       accordingly.

       OSSL_DESERIALIZER_CTX_set_passphrase() gives the	implementation a pass
       phrase to use when decrypting the serialized private key.
       Alternatively, a	pass phrase callback may be specified with the
       following functions.

       OSSL_DESERIALIZER_CTX_set_pem_password_cb() and
       OSSL_DESERIALIZER_CTX_set_passphrase_ui() set up	a callback method that
       the implementation can use to prompt for	a pass phrase, giving the
       caller the choice of prefered pass phrase callback form.	 These are
       called indirectly, through an internal OSSL_PASSPHRASE_CALLBACK
       function.

       The internal OSSL_PASSPHRASE_CALLBACK function caches the pass phrase,
       to be re-used in	all deserializations that are performed	in the same
       deserialization run (for	example, within	one
       OSSL_DESERIALIZER_from_bio(3) call).

RETURN VALUES
       OSSL_DESERIALIZER_CTX_new_by_EVP_PKEY() returns a pointer to a
       OSSL_DESERIALIZER_CTX, or NULL if it couldn't be	created.

       OSSL_DESERIALIZER_CTX_set_passphrase(),
       OSSL_DESERIALIZER_CTX_set_pem_password_cb() and
       OSSL_DESERIALIZER_CTX_set_passphrase_ui() all return 1 on success, or 0
       on failure.

NOTES
       Parts of	the function names are made to match already existing OpenSSL
       names.

       EVP_PKEY	in OSSL_DESERIALIZER_CTX_new_by_EVP_PKEY() matches the type
       name, thus making for the naming	pattern
       OSSL_DESERIALIZER_CTX_new_by_TYPE() when	new types are handled.

SEE ALSO
       provider(7), OSSL_DESERIALIZER(3), OSSL_DESERIALIZER_CTX(3)

HISTORY
       The functions described here were added in OpenSSL 3.0.

COPYRIGHT
       Copyright 2020 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			  2020OSSL_DESERIALIZER_CTX_NEW_BY_EVP_PKEY(3)

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

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

home | help