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