1 /* 2 * Copyright 2016-2023 The OpenSSL Project Authors. All Rights Reserved. 3 * 4 * Licensed under the Apache License 2.0 (the "License"). You may not use 5 * this file except in compliance with the License. You can obtain a copy 6 * in the file LICENSE in the source distribution or at 7 * https://www.openssl.org/source/license.html 8 */ 9 10 struct PKCS12_MAC_DATA_st { 11 X509_SIG *dinfo; 12 ASN1_OCTET_STRING *salt; 13 ASN1_INTEGER *iter; /* defaults to 1 */ 14 }; 15 16 struct PKCS12_st { 17 ASN1_INTEGER *version; 18 PKCS12_MAC_DATA *mac; 19 PKCS7 *authsafes; 20 }; 21 22 struct PKCS12_SAFEBAG_st { 23 ASN1_OBJECT *type; 24 union { 25 struct pkcs12_bag_st *bag; /* secret, crl and certbag */ 26 struct pkcs8_priv_key_info_st *keybag; /* keybag */ 27 X509_SIG *shkeybag; /* shrouded key bag */ 28 STACK_OF(PKCS12_SAFEBAG) *safes; 29 ASN1_TYPE *other; 30 } value; 31 STACK_OF(X509_ATTRIBUTE) *attrib; 32 }; 33 34 struct pkcs12_bag_st { 35 ASN1_OBJECT *type; 36 union { 37 ASN1_OCTET_STRING *x509cert; 38 ASN1_OCTET_STRING *x509crl; 39 ASN1_OCTET_STRING *octet; 40 ASN1_IA5STRING *sdsicert; 41 ASN1_TYPE *other; /* Secret or other bag */ 42 } value; 43 }; 44 45 const PKCS7_CTX *ossl_pkcs12_get0_pkcs7ctx(const PKCS12 *p12); 46