diff options
Diffstat (limited to '')
-rw-r--r-- | src/lib/libcrypto/pkcs12/p12_asn.c | 45 |
1 files changed, 28 insertions, 17 deletions
diff --git a/src/lib/libcrypto/pkcs12/p12_asn.c b/src/lib/libcrypto/pkcs12/p12_asn.c index e3987752b6..b72db76383 100644 --- a/src/lib/libcrypto/pkcs12/p12_asn.c +++ b/src/lib/libcrypto/pkcs12/p12_asn.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: p12_asn.c,v 1.4 2014/06/12 15:49:30 deraadt Exp $ */ | 1 | /* $OpenBSD: p12_asn.c,v 1.5 2014/07/08 09:24:53 jsing Exp $ */ |
2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
3 | * project 1999. | 3 | * project 1999. |
4 | */ | 4 | */ |
@@ -10,7 +10,7 @@ | |||
10 | * are met: | 10 | * are met: |
11 | * | 11 | * |
12 | * 1. Redistributions of source code must retain the above copyright | 12 | * 1. Redistributions of source code must retain the above copyright |
13 | * notice, this list of conditions and the following disclaimer. | 13 | * notice, this list of conditions and the following disclaimer. |
14 | * | 14 | * |
15 | * 2. Redistributions in binary form must reproduce the above copyright | 15 | * 2. Redistributions in binary form must reproduce the above copyright |
16 | * notice, this list of conditions and the following disclaimer in | 16 | * notice, this list of conditions and the following disclaimer in |
@@ -79,12 +79,16 @@ ASN1_SEQUENCE(PKCS12_MAC_DATA) = { | |||
79 | 79 | ||
80 | IMPLEMENT_ASN1_FUNCTIONS(PKCS12_MAC_DATA) | 80 | IMPLEMENT_ASN1_FUNCTIONS(PKCS12_MAC_DATA) |
81 | 81 | ||
82 | ASN1_ADB_TEMPLATE(bag_default) = ASN1_EXP(PKCS12_BAGS, value.other, ASN1_ANY, 0); | 82 | ASN1_ADB_TEMPLATE(bag_default) = |
83 | ASN1_EXP(PKCS12_BAGS, value.other, ASN1_ANY, 0); | ||
83 | 84 | ||
84 | ASN1_ADB(PKCS12_BAGS) = { | 85 | ASN1_ADB(PKCS12_BAGS) = { |
85 | ADB_ENTRY(NID_x509Certificate, ASN1_EXP(PKCS12_BAGS, value.x509cert, ASN1_OCTET_STRING, 0)), | 86 | ADB_ENTRY(NID_x509Certificate, |
86 | ADB_ENTRY(NID_x509Crl, ASN1_EXP(PKCS12_BAGS, value.x509crl, ASN1_OCTET_STRING, 0)), | 87 | ASN1_EXP(PKCS12_BAGS, value.x509cert, ASN1_OCTET_STRING, 0)), |
87 | ADB_ENTRY(NID_sdsiCertificate, ASN1_EXP(PKCS12_BAGS, value.sdsicert, ASN1_IA5STRING, 0)), | 88 | ADB_ENTRY(NID_x509Crl, |
89 | ASN1_EXP(PKCS12_BAGS, value.x509crl, ASN1_OCTET_STRING, 0)), | ||
90 | ADB_ENTRY(NID_sdsiCertificate, | ||
91 | ASN1_EXP(PKCS12_BAGS, value.sdsicert, ASN1_IA5STRING, 0)), | ||
88 | } ASN1_ADB_END(PKCS12_BAGS, 0, type, 0, &bag_default_tt, NULL); | 92 | } ASN1_ADB_END(PKCS12_BAGS, 0, type, 0, &bag_default_tt, NULL); |
89 | 93 | ||
90 | ASN1_SEQUENCE(PKCS12_BAGS) = { | 94 | ASN1_SEQUENCE(PKCS12_BAGS) = { |
@@ -94,15 +98,22 @@ ASN1_SEQUENCE(PKCS12_BAGS) = { | |||
94 | 98 | ||
95 | IMPLEMENT_ASN1_FUNCTIONS(PKCS12_BAGS) | 99 | IMPLEMENT_ASN1_FUNCTIONS(PKCS12_BAGS) |
96 | 100 | ||
97 | ASN1_ADB_TEMPLATE(safebag_default) = ASN1_EXP(PKCS12_SAFEBAG, value.other, ASN1_ANY, 0); | 101 | ASN1_ADB_TEMPLATE(safebag_default) = |
102 | ASN1_EXP(PKCS12_SAFEBAG, value.other, ASN1_ANY, 0); | ||
98 | 103 | ||
99 | ASN1_ADB(PKCS12_SAFEBAG) = { | 104 | ASN1_ADB(PKCS12_SAFEBAG) = { |
100 | ADB_ENTRY(NID_keyBag, ASN1_EXP(PKCS12_SAFEBAG, value.keybag, PKCS8_PRIV_KEY_INFO, 0)), | 105 | ADB_ENTRY(NID_keyBag, |
101 | ADB_ENTRY(NID_pkcs8ShroudedKeyBag, ASN1_EXP(PKCS12_SAFEBAG, value.shkeybag, X509_SIG, 0)), | 106 | ASN1_EXP(PKCS12_SAFEBAG, value.keybag, PKCS8_PRIV_KEY_INFO, 0)), |
102 | ADB_ENTRY(NID_safeContentsBag, ASN1_EXP_SET_OF(PKCS12_SAFEBAG, value.safes, PKCS12_SAFEBAG, 0)), | 107 | ADB_ENTRY(NID_pkcs8ShroudedKeyBag, |
103 | ADB_ENTRY(NID_certBag, ASN1_EXP(PKCS12_SAFEBAG, value.bag, PKCS12_BAGS, 0)), | 108 | ASN1_EXP(PKCS12_SAFEBAG, value.shkeybag, X509_SIG, 0)), |
104 | ADB_ENTRY(NID_crlBag, ASN1_EXP(PKCS12_SAFEBAG, value.bag, PKCS12_BAGS, 0)), | 109 | ADB_ENTRY(NID_safeContentsBag, |
105 | ADB_ENTRY(NID_secretBag, ASN1_EXP(PKCS12_SAFEBAG, value.bag, PKCS12_BAGS, 0)) | 110 | ASN1_EXP_SET_OF(PKCS12_SAFEBAG, value.safes, PKCS12_SAFEBAG, 0)), |
111 | ADB_ENTRY(NID_certBag, | ||
112 | ASN1_EXP(PKCS12_SAFEBAG, value.bag, PKCS12_BAGS, 0)), | ||
113 | ADB_ENTRY(NID_crlBag, | ||
114 | ASN1_EXP(PKCS12_SAFEBAG, value.bag, PKCS12_BAGS, 0)), | ||
115 | ADB_ENTRY(NID_secretBag, | ||
116 | ASN1_EXP(PKCS12_SAFEBAG, value.bag, PKCS12_BAGS, 0)) | ||
106 | } ASN1_ADB_END(PKCS12_SAFEBAG, 0, type, 0, &safebag_default_tt, NULL); | 117 | } ASN1_ADB_END(PKCS12_SAFEBAG, 0, type, 0, &safebag_default_tt, NULL); |
107 | 118 | ||
108 | ASN1_SEQUENCE(PKCS12_SAFEBAG) = { | 119 | ASN1_SEQUENCE(PKCS12_SAFEBAG) = { |
@@ -114,12 +125,12 @@ ASN1_SEQUENCE(PKCS12_SAFEBAG) = { | |||
114 | IMPLEMENT_ASN1_FUNCTIONS(PKCS12_SAFEBAG) | 125 | IMPLEMENT_ASN1_FUNCTIONS(PKCS12_SAFEBAG) |
115 | 126 | ||
116 | /* SEQUENCE OF SafeBag */ | 127 | /* SEQUENCE OF SafeBag */ |
117 | ASN1_ITEM_TEMPLATE(PKCS12_SAFEBAGS) = | 128 | ASN1_ITEM_TEMPLATE(PKCS12_SAFEBAGS) = |
118 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, PKCS12_SAFEBAGS, PKCS12_SAFEBAG) | 129 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, PKCS12_SAFEBAGS, PKCS12_SAFEBAG) |
119 | ASN1_ITEM_TEMPLATE_END(PKCS12_SAFEBAGS) | 130 | ASN1_ITEM_TEMPLATE_END(PKCS12_SAFEBAGS) |
120 | 131 | ||
121 | /* Authsafes: SEQUENCE OF PKCS7 */ | 132 | /* Authsafes: SEQUENCE OF PKCS7 */ |
122 | ASN1_ITEM_TEMPLATE(PKCS12_AUTHSAFES) = | 133 | ASN1_ITEM_TEMPLATE(PKCS12_AUTHSAFES) = |
123 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, PKCS12_AUTHSAFES, PKCS7) | 134 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, PKCS12_AUTHSAFES, PKCS7) |
124 | ASN1_ITEM_TEMPLATE_END(PKCS12_AUTHSAFES) | 135 | ASN1_ITEM_TEMPLATE_END(PKCS12_AUTHSAFES) |
125 | 136 | ||