1/*
2 * Copyright 2016 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
10struct PKCS12_MAC_DATA_st {
11 X509_SIG *dinfo;
12 ASN1_OCTET_STRING *salt;
13 ASN1_INTEGER *iter; /* defaults to 1 */
14};
15
16struct PKCS12_st {
17 ASN1_INTEGER *version;
18 PKCS12_MAC_DATA *mac;
19 PKCS7 *authsafes;
20};
21
22struct 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
34struct 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