|  | /* | 
|  | * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. | 
|  | * | 
|  | * Licensed under the OpenSSL license (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; | 
|  | }; |