diff options
author | Jon Spillett <jon.spillett@oracle.com> | 2021-02-17 17:56:36 +1000 |
---|---|---|
committer | Pauli <pauli@openssl.org> | 2021-04-30 09:15:50 +1000 |
commit | b536880c45722777df5ebe62897a6efcef757945 (patch) | |
tree | 015ad29f74586e3407079864fa686ffcde658fad /crypto/pkcs12/p12_init.c | |
parent | d77ba503a2cf1c83098baca345327761b991d191 (diff) |
Add library context and property query support into the PKCS12 API
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14434)
Diffstat (limited to 'crypto/pkcs12/p12_init.c')
-rw-r--r-- | crypto/pkcs12/p12_init.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/crypto/pkcs12/p12_init.c b/crypto/pkcs12/p12_init.c index 3ab7692ab9..dcfdd5ba13 100644 --- a/crypto/pkcs12/p12_init.c +++ b/crypto/pkcs12/p12_init.c @@ -10,11 +10,12 @@ #include <stdio.h> #include "internal/cryptlib.h" #include <openssl/pkcs12.h> +#include "crypto/pkcs7.h" #include "p12_local.h" /* Initialise a PKCS12 structure to take data */ -PKCS12 *PKCS12_init(int mode) +PKCS12 *PKCS12_init_ex(int mode, OSSL_LIB_CTX *ctx, const char *propq) { PKCS12 *pkcs12; @@ -25,6 +26,13 @@ PKCS12 *PKCS12_init(int mode) if (!ASN1_INTEGER_set(pkcs12->version, 3)) goto err; pkcs12->authsafes->type = OBJ_nid2obj(mode); + + ossl_pkcs7_set0_libctx(pkcs12->authsafes, ctx); + if (!ossl_pkcs7_set1_propq(pkcs12->authsafes, propq)) { + ERR_raise(ERR_LIB_PKCS12, ERR_R_MALLOC_FAILURE); + goto err; + } + switch (mode) { case NID_pkcs7_data: if ((pkcs12->authsafes->d.data = ASN1_OCTET_STRING_new()) == NULL) { @@ -42,3 +50,9 @@ PKCS12 *PKCS12_init(int mode) PKCS12_free(pkcs12); return NULL; } + +PKCS12 *PKCS12_init(int mode) +{ + return PKCS12_init_ex(mode, NULL, NULL); +} + |