summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/gost/gost_asn1.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/gost/gost_asn1.c')
-rw-r--r--src/lib/libcrypto/gost/gost_asn1.c299
1 files changed, 0 insertions, 299 deletions
diff --git a/src/lib/libcrypto/gost/gost_asn1.c b/src/lib/libcrypto/gost/gost_asn1.c
deleted file mode 100644
index 28e3a58e53..0000000000
--- a/src/lib/libcrypto/gost/gost_asn1.c
+++ /dev/null
@@ -1,299 +0,0 @@
1/**********************************************************************
2 * gost_keytrans.c *
3 * Copyright (c) 2005-2006 Cryptocom LTD *
4 * This file is distributed under the same license as OpenSSL *
5 * *
6 * ASN1 structure definition for GOST key transport *
7 * Requires OpenSSL 0.9.9 for compilation *
8 **********************************************************************/
9
10#include <openssl/opensslconf.h>
11
12#ifndef OPENSSL_NO_GOST
13#include <openssl/asn1t.h>
14#include <openssl/x509.h>
15#include <openssl/gost.h>
16
17#include "gost_local.h"
18#include "gost_asn1.h"
19
20static const ASN1_TEMPLATE GOST_KEY_TRANSPORT_seq_tt[] = {
21 {
22 .flags = 0,
23 .tag = 0,
24 .offset = offsetof(GOST_KEY_TRANSPORT, key_info),
25 .field_name = "key_info",
26 .item = &GOST_KEY_INFO_it,
27 },
28 {
29 .flags = ASN1_TFLG_IMPLICIT,
30 .tag = 0,
31 .offset = offsetof(GOST_KEY_TRANSPORT, key_agreement_info),
32 .field_name = "key_agreement_info",
33 .item = &GOST_KEY_AGREEMENT_INFO_it,
34 },
35};
36
37const ASN1_ITEM GOST_KEY_TRANSPORT_it = {
38 .itype = ASN1_ITYPE_NDEF_SEQUENCE,
39 .utype = V_ASN1_SEQUENCE,
40 .templates = GOST_KEY_TRANSPORT_seq_tt,
41 .tcount = sizeof(GOST_KEY_TRANSPORT_seq_tt) / sizeof(ASN1_TEMPLATE),
42 .funcs = NULL,
43 .size = sizeof(GOST_KEY_TRANSPORT),
44 .sname = "GOST_KEY_TRANSPORT",
45};
46
47GOST_KEY_TRANSPORT *
48d2i_GOST_KEY_TRANSPORT(GOST_KEY_TRANSPORT **a, const unsigned char **in, long len)
49{
50 return (GOST_KEY_TRANSPORT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
51 &GOST_KEY_TRANSPORT_it);
52}
53
54int
55i2d_GOST_KEY_TRANSPORT(GOST_KEY_TRANSPORT *a, unsigned char **out)
56{
57 return ASN1_item_i2d((ASN1_VALUE *)a, out, &GOST_KEY_TRANSPORT_it);
58}
59
60GOST_KEY_TRANSPORT *
61GOST_KEY_TRANSPORT_new(void)
62{
63 return (GOST_KEY_TRANSPORT *)ASN1_item_new(&GOST_KEY_TRANSPORT_it);
64}
65
66void
67GOST_KEY_TRANSPORT_free(GOST_KEY_TRANSPORT *a)
68{
69 ASN1_item_free((ASN1_VALUE *)a, &GOST_KEY_TRANSPORT_it);
70}
71
72static const ASN1_TEMPLATE GOST_KEY_INFO_seq_tt[] = {
73 {
74 .flags = 0,
75 .tag = 0,
76 .offset = offsetof(GOST_KEY_INFO, encrypted_key),
77 .field_name = "encrypted_key",
78 .item = &ASN1_OCTET_STRING_it,
79 },
80 {
81 .flags = 0,
82 .tag = 0,
83 .offset = offsetof(GOST_KEY_INFO, imit),
84 .field_name = "imit",
85 .item = &ASN1_OCTET_STRING_it,
86 },
87};
88
89const ASN1_ITEM GOST_KEY_INFO_it = {
90 .itype = ASN1_ITYPE_NDEF_SEQUENCE,
91 .utype = V_ASN1_SEQUENCE,
92 .templates = GOST_KEY_INFO_seq_tt,
93 .tcount = sizeof(GOST_KEY_INFO_seq_tt) / sizeof(ASN1_TEMPLATE),
94 .funcs = NULL,
95 .size = sizeof(GOST_KEY_INFO),
96 .sname = "GOST_KEY_INFO",
97};
98
99GOST_KEY_INFO *
100d2i_GOST_KEY_INFO(GOST_KEY_INFO **a, const unsigned char **in, long len)
101{
102 return (GOST_KEY_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
103 &GOST_KEY_INFO_it);
104}
105
106int
107i2d_GOST_KEY_INFO(GOST_KEY_INFO *a, unsigned char **out)
108{
109 return ASN1_item_i2d((ASN1_VALUE *)a, out, &GOST_KEY_INFO_it);
110}
111
112GOST_KEY_INFO *
113GOST_KEY_INFO_new(void)
114{
115 return (GOST_KEY_INFO *)ASN1_item_new(&GOST_KEY_INFO_it);
116}
117
118void
119GOST_KEY_INFO_free(GOST_KEY_INFO *a)
120{
121 ASN1_item_free((ASN1_VALUE *)a, &GOST_KEY_INFO_it);
122}
123
124static const ASN1_TEMPLATE GOST_KEY_AGREEMENT_INFO_seq_tt[] = {
125 {
126 .flags = 0,
127 .tag = 0,
128 .offset = offsetof(GOST_KEY_AGREEMENT_INFO, cipher),
129 .field_name = "cipher",
130 .item = &ASN1_OBJECT_it,
131 },
132 {
133 .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL,
134 .tag = 0,
135 .offset = offsetof(GOST_KEY_AGREEMENT_INFO, ephem_key),
136 .field_name = "ephem_key",
137 .item = &X509_PUBKEY_it,
138 },
139 {
140 .flags = 0,
141 .tag = 0,
142 .offset = offsetof(GOST_KEY_AGREEMENT_INFO, eph_iv),
143 .field_name = "eph_iv",
144 .item = &ASN1_OCTET_STRING_it,
145 },
146};
147
148const ASN1_ITEM GOST_KEY_AGREEMENT_INFO_it = {
149 .itype = ASN1_ITYPE_NDEF_SEQUENCE,
150 .utype = V_ASN1_SEQUENCE,
151 .templates = GOST_KEY_AGREEMENT_INFO_seq_tt,
152 .tcount = sizeof(GOST_KEY_AGREEMENT_INFO_seq_tt) / sizeof(ASN1_TEMPLATE),
153 .funcs = NULL,
154 .size = sizeof(GOST_KEY_AGREEMENT_INFO),
155 .sname = "GOST_KEY_AGREEMENT_INFO",
156};
157
158GOST_KEY_AGREEMENT_INFO *
159d2i_GOST_KEY_AGREEMENT_INFO(GOST_KEY_AGREEMENT_INFO **a, const unsigned char **in, long len)
160{
161 return (GOST_KEY_AGREEMENT_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
162 &GOST_KEY_AGREEMENT_INFO_it);
163}
164
165int
166i2d_GOST_KEY_AGREEMENT_INFO(GOST_KEY_AGREEMENT_INFO *a, unsigned char **out)
167{
168 return ASN1_item_i2d((ASN1_VALUE *)a, out, &GOST_KEY_AGREEMENT_INFO_it);
169}
170
171GOST_KEY_AGREEMENT_INFO *
172GOST_KEY_AGREEMENT_INFO_new(void)
173{
174 return (GOST_KEY_AGREEMENT_INFO *)ASN1_item_new(&GOST_KEY_AGREEMENT_INFO_it);
175}
176
177void
178GOST_KEY_AGREEMENT_INFO_free(GOST_KEY_AGREEMENT_INFO *a)
179{
180 ASN1_item_free((ASN1_VALUE *)a, &GOST_KEY_AGREEMENT_INFO_it);
181}
182
183
184static const ASN1_TEMPLATE GOST_KEY_PARAMS_seq_tt[] = {
185 {
186 .flags = 0,
187 .tag = 0,
188 .offset = offsetof(GOST_KEY_PARAMS, key_params),
189 .field_name = "key_params",
190 .item = &ASN1_OBJECT_it,
191 },
192 {
193 .flags = 0,
194 .tag = 0,
195 .offset = offsetof(GOST_KEY_PARAMS, hash_params),
196 .field_name = "hash_params",
197 .item = &ASN1_OBJECT_it,
198 },
199 {
200 .flags = ASN1_TFLG_OPTIONAL,
201 .tag = 0,
202 .offset = offsetof(GOST_KEY_PARAMS, cipher_params),
203 .field_name = "cipher_params",
204 .item = &ASN1_OBJECT_it,
205 },
206};
207
208const ASN1_ITEM GOST_KEY_PARAMS_it = {
209 .itype = ASN1_ITYPE_NDEF_SEQUENCE,
210 .utype = V_ASN1_SEQUENCE,
211 .templates = GOST_KEY_PARAMS_seq_tt,
212 .tcount = sizeof(GOST_KEY_PARAMS_seq_tt) / sizeof(ASN1_TEMPLATE),
213 .funcs = NULL,
214 .size = sizeof(GOST_KEY_PARAMS),
215 .sname = "GOST_KEY_PARAMS",
216};
217
218GOST_KEY_PARAMS *
219d2i_GOST_KEY_PARAMS(GOST_KEY_PARAMS **a, const unsigned char **in, long len)
220{
221 return (GOST_KEY_PARAMS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
222 &GOST_KEY_PARAMS_it);
223}
224
225int
226i2d_GOST_KEY_PARAMS(GOST_KEY_PARAMS *a, unsigned char **out)
227{
228 return ASN1_item_i2d((ASN1_VALUE *)a, out, &GOST_KEY_PARAMS_it);
229}
230
231GOST_KEY_PARAMS *
232GOST_KEY_PARAMS_new(void)
233{
234 return (GOST_KEY_PARAMS *)ASN1_item_new(&GOST_KEY_PARAMS_it);
235}
236
237void
238GOST_KEY_PARAMS_free(GOST_KEY_PARAMS *a)
239{
240 ASN1_item_free((ASN1_VALUE *)a, &GOST_KEY_PARAMS_it);
241}
242
243static const ASN1_TEMPLATE GOST_CIPHER_PARAMS_seq_tt[] = {
244 {
245 .flags = 0,
246 .tag = 0,
247 .offset = offsetof(GOST_CIPHER_PARAMS, iv),
248 .field_name = "iv",
249 .item = &ASN1_OCTET_STRING_it,
250 },
251 {
252 .flags = 0,
253 .tag = 0,
254 .offset = offsetof(GOST_CIPHER_PARAMS, enc_param_set),
255 .field_name = "enc_param_set",
256 .item = &ASN1_OBJECT_it,
257 },
258};
259
260const ASN1_ITEM GOST_CIPHER_PARAMS_it = {
261 .itype = ASN1_ITYPE_NDEF_SEQUENCE,
262 .utype = V_ASN1_SEQUENCE,
263 .templates = GOST_CIPHER_PARAMS_seq_tt,
264 .tcount = sizeof(GOST_CIPHER_PARAMS_seq_tt) / sizeof(ASN1_TEMPLATE),
265 .funcs = NULL,
266 .size = sizeof(GOST_CIPHER_PARAMS),
267 .sname = "GOST_CIPHER_PARAMS",
268};
269
270GOST_CIPHER_PARAMS *
271d2i_GOST_CIPHER_PARAMS(GOST_CIPHER_PARAMS **a, const unsigned char **in, long len)
272{
273 return (GOST_CIPHER_PARAMS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
274 &GOST_CIPHER_PARAMS_it);
275}
276LCRYPTO_ALIAS(d2i_GOST_CIPHER_PARAMS);
277
278int
279i2d_GOST_CIPHER_PARAMS(GOST_CIPHER_PARAMS *a, unsigned char **out)
280{
281 return ASN1_item_i2d((ASN1_VALUE *)a, out, &GOST_CIPHER_PARAMS_it);
282}
283LCRYPTO_ALIAS(i2d_GOST_CIPHER_PARAMS);
284
285GOST_CIPHER_PARAMS *
286GOST_CIPHER_PARAMS_new(void)
287{
288 return (GOST_CIPHER_PARAMS *)ASN1_item_new(&GOST_CIPHER_PARAMS_it);
289}
290LCRYPTO_ALIAS(GOST_CIPHER_PARAMS_new);
291
292void
293GOST_CIPHER_PARAMS_free(GOST_CIPHER_PARAMS *a)
294{
295 ASN1_item_free((ASN1_VALUE *)a, &GOST_CIPHER_PARAMS_it);
296}
297LCRYPTO_ALIAS(GOST_CIPHER_PARAMS_free);
298
299#endif