diff options
Diffstat (limited to 'src/lib/libcrypto/pkcs12/p12_asn.c')
| -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 | ||
