diff options
Diffstat (limited to 'src/lib/libcrypto/pkcs12')
| -rw-r--r-- | src/lib/libcrypto/pkcs12/p12_asn.c | 106 |
1 files changed, 101 insertions, 5 deletions
diff --git a/src/lib/libcrypto/pkcs12/p12_asn.c b/src/lib/libcrypto/pkcs12/p12_asn.c index 5b3285ebe2..8e6ee29cb7 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.6 2014/07/11 08:44:49 jsing Exp $ */ | 1 | /* $OpenBSD: p12_asn.c,v 1.7 2015/02/09 16:04:46 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 | */ |
| @@ -69,7 +69,31 @@ ASN1_SEQUENCE(PKCS12) = { | |||
| 69 | ASN1_OPT(PKCS12, mac, PKCS12_MAC_DATA) | 69 | ASN1_OPT(PKCS12, mac, PKCS12_MAC_DATA) |
| 70 | } ASN1_SEQUENCE_END(PKCS12) | 70 | } ASN1_SEQUENCE_END(PKCS12) |
| 71 | 71 | ||
| 72 | IMPLEMENT_ASN1_FUNCTIONS(PKCS12) | 72 | |
| 73 | PKCS12 * | ||
| 74 | d2i_PKCS12(PKCS12 **a, const unsigned char **in, long len) | ||
| 75 | { | ||
| 76 | return (PKCS12 *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
| 77 | &PKCS12_it); | ||
| 78 | } | ||
| 79 | |||
| 80 | int | ||
| 81 | i2d_PKCS12(PKCS12 *a, unsigned char **out) | ||
| 82 | { | ||
| 83 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS12_it); | ||
| 84 | } | ||
| 85 | |||
| 86 | PKCS12 * | ||
| 87 | PKCS12_new(void) | ||
| 88 | { | ||
| 89 | return (PKCS12 *)ASN1_item_new(&PKCS12_it); | ||
| 90 | } | ||
| 91 | |||
| 92 | void | ||
| 93 | PKCS12_free(PKCS12 *a) | ||
| 94 | { | ||
| 95 | ASN1_item_free((ASN1_VALUE *)a, &PKCS12_it); | ||
| 96 | } | ||
| 73 | 97 | ||
| 74 | ASN1_SEQUENCE(PKCS12_MAC_DATA) = { | 98 | ASN1_SEQUENCE(PKCS12_MAC_DATA) = { |
| 75 | ASN1_SIMPLE(PKCS12_MAC_DATA, dinfo, X509_SIG), | 99 | ASN1_SIMPLE(PKCS12_MAC_DATA, dinfo, X509_SIG), |
| @@ -77,7 +101,31 @@ ASN1_SEQUENCE(PKCS12_MAC_DATA) = { | |||
| 77 | ASN1_OPT(PKCS12_MAC_DATA, iter, ASN1_INTEGER) | 101 | ASN1_OPT(PKCS12_MAC_DATA, iter, ASN1_INTEGER) |
| 78 | } ASN1_SEQUENCE_END(PKCS12_MAC_DATA) | 102 | } ASN1_SEQUENCE_END(PKCS12_MAC_DATA) |
| 79 | 103 | ||
| 80 | IMPLEMENT_ASN1_FUNCTIONS(PKCS12_MAC_DATA) | 104 | |
| 105 | PKCS12_MAC_DATA * | ||
| 106 | d2i_PKCS12_MAC_DATA(PKCS12_MAC_DATA **a, const unsigned char **in, long len) | ||
| 107 | { | ||
| 108 | return (PKCS12_MAC_DATA *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
| 109 | &PKCS12_MAC_DATA_it); | ||
| 110 | } | ||
| 111 | |||
| 112 | int | ||
| 113 | i2d_PKCS12_MAC_DATA(PKCS12_MAC_DATA *a, unsigned char **out) | ||
| 114 | { | ||
| 115 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS12_MAC_DATA_it); | ||
| 116 | } | ||
| 117 | |||
| 118 | PKCS12_MAC_DATA * | ||
| 119 | PKCS12_MAC_DATA_new(void) | ||
| 120 | { | ||
| 121 | return (PKCS12_MAC_DATA *)ASN1_item_new(&PKCS12_MAC_DATA_it); | ||
| 122 | } | ||
| 123 | |||
| 124 | void | ||
| 125 | PKCS12_MAC_DATA_free(PKCS12_MAC_DATA *a) | ||
| 126 | { | ||
| 127 | ASN1_item_free((ASN1_VALUE *)a, &PKCS12_MAC_DATA_it); | ||
| 128 | } | ||
| 81 | 129 | ||
| 82 | ASN1_ADB_TEMPLATE(bag_default) = | 130 | ASN1_ADB_TEMPLATE(bag_default) = |
| 83 | ASN1_EXP(PKCS12_BAGS, value.other, ASN1_ANY, 0); | 131 | ASN1_EXP(PKCS12_BAGS, value.other, ASN1_ANY, 0); |
| @@ -96,7 +144,31 @@ ASN1_SEQUENCE(PKCS12_BAGS) = { | |||
| 96 | ASN1_ADB_OBJECT(PKCS12_BAGS), | 144 | ASN1_ADB_OBJECT(PKCS12_BAGS), |
| 97 | } ASN1_SEQUENCE_END(PKCS12_BAGS) | 145 | } ASN1_SEQUENCE_END(PKCS12_BAGS) |
| 98 | 146 | ||
| 99 | IMPLEMENT_ASN1_FUNCTIONS(PKCS12_BAGS) | 147 | |
| 148 | PKCS12_BAGS * | ||
| 149 | d2i_PKCS12_BAGS(PKCS12_BAGS **a, const unsigned char **in, long len) | ||
| 150 | { | ||
| 151 | return (PKCS12_BAGS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
| 152 | &PKCS12_BAGS_it); | ||
| 153 | } | ||
| 154 | |||
| 155 | int | ||
| 156 | i2d_PKCS12_BAGS(PKCS12_BAGS *a, unsigned char **out) | ||
| 157 | { | ||
| 158 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS12_BAGS_it); | ||
| 159 | } | ||
| 160 | |||
| 161 | PKCS12_BAGS * | ||
| 162 | PKCS12_BAGS_new(void) | ||
| 163 | { | ||
| 164 | return (PKCS12_BAGS *)ASN1_item_new(&PKCS12_BAGS_it); | ||
| 165 | } | ||
| 166 | |||
| 167 | void | ||
| 168 | PKCS12_BAGS_free(PKCS12_BAGS *a) | ||
| 169 | { | ||
| 170 | ASN1_item_free((ASN1_VALUE *)a, &PKCS12_BAGS_it); | ||
| 171 | } | ||
| 100 | 172 | ||
| 101 | ASN1_ADB_TEMPLATE(safebag_default) = | 173 | ASN1_ADB_TEMPLATE(safebag_default) = |
| 102 | ASN1_EXP(PKCS12_SAFEBAG, value.other, ASN1_ANY, 0); | 174 | ASN1_EXP(PKCS12_SAFEBAG, value.other, ASN1_ANY, 0); |
| @@ -122,7 +194,31 @@ ASN1_SEQUENCE(PKCS12_SAFEBAG) = { | |||
| 122 | ASN1_SET_OF_OPT(PKCS12_SAFEBAG, attrib, X509_ATTRIBUTE) | 194 | ASN1_SET_OF_OPT(PKCS12_SAFEBAG, attrib, X509_ATTRIBUTE) |
| 123 | } ASN1_SEQUENCE_END(PKCS12_SAFEBAG) | 195 | } ASN1_SEQUENCE_END(PKCS12_SAFEBAG) |
| 124 | 196 | ||
| 125 | IMPLEMENT_ASN1_FUNCTIONS(PKCS12_SAFEBAG) | 197 | |
| 198 | PKCS12_SAFEBAG * | ||
| 199 | d2i_PKCS12_SAFEBAG(PKCS12_SAFEBAG **a, const unsigned char **in, long len) | ||
| 200 | { | ||
| 201 | return (PKCS12_SAFEBAG *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
| 202 | &PKCS12_SAFEBAG_it); | ||
| 203 | } | ||
| 204 | |||
| 205 | int | ||
| 206 | i2d_PKCS12_SAFEBAG(PKCS12_SAFEBAG *a, unsigned char **out) | ||
| 207 | { | ||
| 208 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS12_SAFEBAG_it); | ||
| 209 | } | ||
| 210 | |||
| 211 | PKCS12_SAFEBAG * | ||
| 212 | PKCS12_SAFEBAG_new(void) | ||
| 213 | { | ||
| 214 | return (PKCS12_SAFEBAG *)ASN1_item_new(&PKCS12_SAFEBAG_it); | ||
| 215 | } | ||
| 216 | |||
| 217 | void | ||
| 218 | PKCS12_SAFEBAG_free(PKCS12_SAFEBAG *a) | ||
| 219 | { | ||
| 220 | ASN1_item_free((ASN1_VALUE *)a, &PKCS12_SAFEBAG_it); | ||
| 221 | } | ||
| 126 | 222 | ||
| 127 | /* SEQUENCE OF SafeBag */ | 223 | /* SEQUENCE OF SafeBag */ |
| 128 | ASN1_ITEM_TEMPLATE(PKCS12_SAFEBAGS) = | 224 | ASN1_ITEM_TEMPLATE(PKCS12_SAFEBAGS) = |
