diff options
author | Richard Levitte <levitte@openssl.org> | 2020-08-18 20:39:45 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2020-08-20 12:32:00 +0200 |
commit | 22b814443eea4ef4ea86d5d5677601d6645606d9 (patch) | |
tree | 8c29025ed8bc952d64f10b5822b78d84574ccc02 /doc/man3 | |
parent | 3b1fd0b003572554ad9bb3914527c160bc6a7727 (diff) | |
download | openssl-22b814443eea4ef4ea86d5d5677601d6645606d9.tar.gz |
X509: Add d2i_PUBKEY_ex(), which take a libctx and propq
Just like d2i_PrivateKey() / d2i_PrivateKey_ex(), there's a need to
associate an EVP_PKEY extracted from a PUBKEY to a library context and
a property query string. Without it, a provider-native EVP_PKEY can
only fetch necessary internal algorithms from the default library
context, even though an application specific context should be used.
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12671)
Diffstat (limited to 'doc/man3')
-rw-r--r-- | doc/man3/X509_PUBKEY_new.pod | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/doc/man3/X509_PUBKEY_new.pod b/doc/man3/X509_PUBKEY_new.pod index 76034fa878..e6acb89213 100644 --- a/doc/man3/X509_PUBKEY_new.pod +++ b/doc/man3/X509_PUBKEY_new.pod @@ -4,7 +4,7 @@ X509_PUBKEY_new, X509_PUBKEY_free, X509_PUBKEY_dup, X509_PUBKEY_set, X509_PUBKEY_get0, X509_PUBKEY_get, -d2i_PUBKEY, i2d_PUBKEY, d2i_PUBKEY_bio, d2i_PUBKEY_fp, +d2i_PUBKEY_ex, d2i_PUBKEY, i2d_PUBKEY, d2i_PUBKEY_bio, d2i_PUBKEY_fp, i2d_PUBKEY_fp, i2d_PUBKEY_bio, X509_PUBKEY_set0_param, X509_PUBKEY_get0_param, X509_PUBKEY_eq - SubjectPublicKeyInfo public key functions @@ -20,6 +20,8 @@ X509_PUBKEY_eq - SubjectPublicKeyInfo public key functions EVP_PKEY *X509_PUBKEY_get0(const X509_PUBKEY *key); EVP_PKEY *X509_PUBKEY_get(const X509_PUBKEY *key); + EVP_PKEY *d2i_PUBKEY_ex(EVP_PKEY **a, const unsigned char **pp, long length, + OPENSSL_CTX *libctx, const char *propq); EVP_PKEY *d2i_PUBKEY(EVP_PKEY **a, const unsigned char **pp, long length); int i2d_PUBKEY(const EVP_PKEY *a, unsigned char **pp); @@ -58,9 +60,15 @@ X509_PUBKEY_get() is similar to X509_PUBKEY_get0() except the reference count on the returned key is incremented so it B<MUST> be freed using EVP_PKEY_free() after use. -d2i_PUBKEY() and i2d_PUBKEY() decode and encode an B<EVP_PKEY> structure -using B<SubjectPublicKeyInfo> format. They otherwise follow the conventions of -other ASN.1 functions such as d2i_X509(). +d2i_PUBKEY_ex() decodes an B<EVP_PKEY> structure using B<SubjectPublicKeyInfo> +format. Some public key decoding implementations may use cryptographic +algorithms. In this case the supplied library context I<libctx> and property +query string I<propq> are used. +d2i_PUBKEY() does the same as d2i_PUBKEY_ex() except that the default +library context and property query string are used. + +i2d_PUBKEY() encodes an B<EVP_PKEY> structure using B<SubjectPublicKeyInfo> +format. d2i_PUBKEY_bio(), d2i_PUBKEY_fp(), i2d_PUBKEY_bio() and i2d_PUBKEY_fp() are similar to d2i_PUBKEY() and i2d_PUBKEY() except they decode or encode using a |