mirror of
https://github.com/openssl/openssl.git
synced 2024-12-21 06:09:35 +08:00
fe2a7341b5
Fixes #19718 Fixes #19716 Added PKCS12_SAFEBAG_get1_cert_ex(), PKCS12_SAFEBAG_get1_crl_ex() and ASN1_item_unpack_ex(). parse_bag and parse_bags now use the libctx/propq stored in the P7_CTX. PKCS12_free() needed to be manually constructed in order to free the propq. pkcs12_api_test.c changed so that it actually tests the libctx, propq. Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19942)
46 lines
1.2 KiB
C
46 lines
1.2 KiB
C
/*
|
|
* Copyright 2016 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
|
|
*/
|
|
|
|
struct PKCS12_MAC_DATA_st {
|
|
X509_SIG *dinfo;
|
|
ASN1_OCTET_STRING *salt;
|
|
ASN1_INTEGER *iter; /* defaults to 1 */
|
|
};
|
|
|
|
struct PKCS12_st {
|
|
ASN1_INTEGER *version;
|
|
PKCS12_MAC_DATA *mac;
|
|
PKCS7 *authsafes;
|
|
};
|
|
|
|
struct PKCS12_SAFEBAG_st {
|
|
ASN1_OBJECT *type;
|
|
union {
|
|
struct pkcs12_bag_st *bag; /* secret, crl and certbag */
|
|
struct pkcs8_priv_key_info_st *keybag; /* keybag */
|
|
X509_SIG *shkeybag; /* shrouded key bag */
|
|
STACK_OF(PKCS12_SAFEBAG) *safes;
|
|
ASN1_TYPE *other;
|
|
} value;
|
|
STACK_OF(X509_ATTRIBUTE) *attrib;
|
|
};
|
|
|
|
struct pkcs12_bag_st {
|
|
ASN1_OBJECT *type;
|
|
union {
|
|
ASN1_OCTET_STRING *x509cert;
|
|
ASN1_OCTET_STRING *x509crl;
|
|
ASN1_OCTET_STRING *octet;
|
|
ASN1_IA5STRING *sdsicert;
|
|
ASN1_TYPE *other; /* Secret or other bag */
|
|
} value;
|
|
};
|
|
|
|
const PKCS7_CTX *ossl_pkcs12_get0_pkcs7ctx(const PKCS12 *p12);
|