summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/pkcs12/p12_asn.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/pkcs12/p12_asn.c')
-rw-r--r--src/lib/libcrypto/pkcs12/p12_asn.c106
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
72IMPLEMENT_ASN1_FUNCTIONS(PKCS12) 72
73PKCS12 *
74d2i_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
80int
81i2d_PKCS12(PKCS12 *a, unsigned char **out)
82{
83 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS12_it);
84}
85
86PKCS12 *
87PKCS12_new(void)
88{
89 return (PKCS12 *)ASN1_item_new(&PKCS12_it);
90}
91
92void
93PKCS12_free(PKCS12 *a)
94{
95 ASN1_item_free((ASN1_VALUE *)a, &PKCS12_it);
96}
73 97
74ASN1_SEQUENCE(PKCS12_MAC_DATA) = { 98ASN1_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
80IMPLEMENT_ASN1_FUNCTIONS(PKCS12_MAC_DATA) 104
105PKCS12_MAC_DATA *
106d2i_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
112int
113i2d_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
118PKCS12_MAC_DATA *
119PKCS12_MAC_DATA_new(void)
120{
121 return (PKCS12_MAC_DATA *)ASN1_item_new(&PKCS12_MAC_DATA_it);
122}
123
124void
125PKCS12_MAC_DATA_free(PKCS12_MAC_DATA *a)
126{
127 ASN1_item_free((ASN1_VALUE *)a, &PKCS12_MAC_DATA_it);
128}
81 129
82ASN1_ADB_TEMPLATE(bag_default) = 130ASN1_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
99IMPLEMENT_ASN1_FUNCTIONS(PKCS12_BAGS) 147
148PKCS12_BAGS *
149d2i_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
155int
156i2d_PKCS12_BAGS(PKCS12_BAGS *a, unsigned char **out)
157{
158 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS12_BAGS_it);
159}
160
161PKCS12_BAGS *
162PKCS12_BAGS_new(void)
163{
164 return (PKCS12_BAGS *)ASN1_item_new(&PKCS12_BAGS_it);
165}
166
167void
168PKCS12_BAGS_free(PKCS12_BAGS *a)
169{
170 ASN1_item_free((ASN1_VALUE *)a, &PKCS12_BAGS_it);
171}
100 172
101ASN1_ADB_TEMPLATE(safebag_default) = 173ASN1_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
125IMPLEMENT_ASN1_FUNCTIONS(PKCS12_SAFEBAG) 197
198PKCS12_SAFEBAG *
199d2i_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
205int
206i2d_PKCS12_SAFEBAG(PKCS12_SAFEBAG *a, unsigned char **out)
207{
208 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS12_SAFEBAG_it);
209}
210
211PKCS12_SAFEBAG *
212PKCS12_SAFEBAG_new(void)
213{
214 return (PKCS12_SAFEBAG *)ASN1_item_new(&PKCS12_SAFEBAG_it);
215}
216
217void
218PKCS12_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 */
128ASN1_ITEM_TEMPLATE(PKCS12_SAFEBAGS) = 224ASN1_ITEM_TEMPLATE(PKCS12_SAFEBAGS) =