Line data Source code
1 : /* Generated from /builds/eaglegai/samba/third_party/heimdal/lib/asn1/ocsp.asn1 */
2 : /* Do not edit */
3 :
4 : #if defined(_WIN32) && !defined(ASN1_LIB)
5 : # error "ASN1_LIB must be defined"
6 : #endif
7 : #include <stdio.h>
8 : #include <stdlib.h>
9 : #include <time.h>
10 : #include <string.h>
11 : #include <errno.h>
12 : #include <limits.h>
13 : #include <krb5-types.h>
14 : #include "ocsp_asn1.h"
15 : #include "ocsp_asn1-priv.h"
16 : #include <asn1_err.h>
17 : #include <der.h>
18 : #include <asn1-template.h>
19 :
20 : #include <parse_units.h>
21 :
22 : static const struct asn1_type_func asn1_extern_Certificate = {
23 : (asn1_type_encode)encode_Certificate,
24 : (asn1_type_decode)decode_Certificate,
25 : (asn1_type_length)length_Certificate,
26 : (asn1_type_copy)copy_Certificate,
27 : (asn1_type_release)free_Certificate,
28 : (asn1_type_print)print_Certificate,
29 : sizeof(Certificate)
30 : };
31 : static const struct asn1_type_func asn1_extern_AlgorithmIdentifier = {
32 : (asn1_type_encode)encode_AlgorithmIdentifier,
33 : (asn1_type_decode)decode_AlgorithmIdentifier,
34 : (asn1_type_length)length_AlgorithmIdentifier,
35 : (asn1_type_copy)copy_AlgorithmIdentifier,
36 : (asn1_type_release)free_AlgorithmIdentifier,
37 : (asn1_type_print)print_AlgorithmIdentifier,
38 : sizeof(AlgorithmIdentifier)
39 : };
40 : static const struct asn1_type_func asn1_extern_CRLReason = {
41 : (asn1_type_encode)encode_CRLReason,
42 : (asn1_type_decode)decode_CRLReason,
43 : (asn1_type_length)length_CRLReason,
44 : (asn1_type_copy)copy_CRLReason,
45 : (asn1_type_release)free_CRLReason,
46 : (asn1_type_print)print_CRLReason,
47 : sizeof(CRLReason)
48 : };
49 : static const struct asn1_type_func asn1_extern_Name = {
50 : (asn1_type_encode)encode_Name,
51 : (asn1_type_decode)decode_Name,
52 : (asn1_type_length)length_Name,
53 : (asn1_type_copy)copy_Name,
54 : (asn1_type_release)free_Name,
55 : (asn1_type_print)print_Name,
56 : sizeof(Name)
57 : };
58 : static const struct asn1_type_func asn1_extern_GeneralName = {
59 : (asn1_type_encode)encode_GeneralName,
60 : (asn1_type_decode)decode_GeneralName,
61 : (asn1_type_length)length_GeneralName,
62 : (asn1_type_copy)copy_GeneralName,
63 : (asn1_type_release)free_GeneralName,
64 : (asn1_type_print)print_GeneralName,
65 : sizeof(GeneralName)
66 : };
67 : static const struct asn1_type_func asn1_extern_CertificateSerialNumber = {
68 : (asn1_type_encode)encode_CertificateSerialNumber,
69 : (asn1_type_decode)decode_CertificateSerialNumber,
70 : (asn1_type_length)length_CertificateSerialNumber,
71 : (asn1_type_copy)copy_CertificateSerialNumber,
72 : (asn1_type_release)free_CertificateSerialNumber,
73 : (asn1_type_print)print_CertificateSerialNumber,
74 : sizeof(CertificateSerialNumber)
75 : };
76 : static const struct asn1_type_func asn1_extern_Extensions = {
77 : (asn1_type_encode)encode_Extensions,
78 : (asn1_type_decode)decode_Extensions,
79 : (asn1_type_length)length_Extensions,
80 : (asn1_type_copy)copy_Extensions,
81 : (asn1_type_release)free_Extensions,
82 : (asn1_type_print)print_Extensions,
83 : sizeof(Extensions)
84 : };
85 : extern const struct asn1_template asn1_OCSPVersion[];
86 : extern const struct asn1_template asn1_OCSPVersion[];
87 : extern const struct asn1_template asn1_OCSPCertStatus[];
88 : extern const struct asn1_template asn1_OCSPCertID[];
89 : extern const struct asn1_template asn1_OCSPSingleResponse[];
90 : extern const struct asn1_template asn1_OCSPInnerRequest[];
91 : extern const struct asn1_template asn1_OCSPTBSRequest[];
92 : extern const struct asn1_template asn1_OCSPSignature[];
93 : extern const struct asn1_template asn1_OCSPRequest[];
94 : extern const struct asn1_template asn1_OCSPResponseBytes[];
95 : extern const struct asn1_template asn1_OCSPResponseStatus[];
96 : extern const struct asn1_template asn1_OCSPResponseStatus[];
97 : extern const struct asn1_template asn1_OCSPResponse[];
98 : extern const struct asn1_template asn1_OCSPKeyHash[];
99 : extern const struct asn1_template asn1_OCSPKeyHash[];
100 : extern const struct asn1_template asn1_OCSPResponderID[];
101 : extern const struct asn1_template asn1_OCSPResponseData[];
102 : extern const struct asn1_template asn1_OCSPBasicOCSPResponse[];
103 : static unsigned oid_id_pkix_ocsp_variable_num[9] = { 1, 3, 6, 1, 5, 5, 7, 48, 1};
104 : const heim_oid asn1_oid_id_pkix_ocsp = { 9, oid_id_pkix_ocsp_variable_num };
105 :
106 : static unsigned oid_id_pkix_ocsp_basic_variable_num[10] = { 1, 3, 6, 1, 5, 5, 7, 48, 1, 1};
107 : const heim_oid asn1_oid_id_pkix_ocsp_basic = { 10, oid_id_pkix_ocsp_basic_variable_num };
108 :
109 : static unsigned oid_id_pkix_ocsp_nonce_variable_num[10] = { 1, 3, 6, 1, 5, 5, 7, 48, 1, 2};
110 : const heim_oid asn1_oid_id_pkix_ocsp_nonce = { 10, oid_id_pkix_ocsp_nonce_variable_num };
111 :
112 : /* template_members: OCSPVersion exp exp */
113 : const struct asn1_template asn1_OCSPVersion_enum_names[] = {
114 : /* 0 */ { 0, 0, ((void *)(uintptr_t)1) },
115 : /* 1 */ { A1_OP_NAME, 0, "ocsp-v1" }
116 : };
117 : /* generate_template_type: OCSPVersion_tag__0 */
118 : const struct asn1_template asn1_OCSPVersion_tag__0[] = {
119 : /* 0 */ { 0, sizeof(int), ((void *)(uintptr_t)1) },
120 : /* 1 */ { A1_PARSE_T(A1T_IMEMBER), 0, asn1_OCSPVersion_enum_names }
121 : };
122 : /* generate_template_type: OCSPVersion */
123 : const struct asn1_template asn1_OCSPVersion[] = {
124 : /* 0 */ { 0, sizeof(OCSPVersion), ((void *)(uintptr_t)1) },
125 : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_Integer), 0, asn1_OCSPVersion_tag__0 }
126 : };
127 :
128 : int ASN1CALL
129 0 : decode_OCSPVersion(const unsigned char *p, size_t len, OCSPVersion *data, size_t *size)
130 : {
131 0 : memset(data, 0, sizeof(*data));
132 0 : return _asn1_decode_top(asn1_OCSPVersion, 0|0, p, len, data, size);
133 : }
134 :
135 :
136 : int ASN1CALL
137 0 : encode_OCSPVersion(unsigned char *p, size_t len, const OCSPVersion *data, size_t *size)
138 : {
139 0 : return _asn1_encode(asn1_OCSPVersion, p, len, data, size);
140 : }
141 :
142 :
143 : size_t ASN1CALL
144 0 : length_OCSPVersion(const OCSPVersion *data)
145 : {
146 0 : return _asn1_length(asn1_OCSPVersion, data);
147 : }
148 :
149 :
150 : void ASN1CALL
151 0 : free_OCSPVersion(OCSPVersion *data)
152 : {
153 0 : _asn1_free_top(asn1_OCSPVersion, data);
154 0 : }
155 :
156 :
157 : int ASN1CALL
158 0 : copy_OCSPVersion(const OCSPVersion *from, OCSPVersion *to)
159 : {
160 0 : return _asn1_copy_top(asn1_OCSPVersion, from, to);
161 : }
162 :
163 :
164 : char * ASN1CALL
165 0 : print_OCSPVersion(const OCSPVersion *data, int flags)
166 : {
167 0 : return _asn1_print_top(asn1_OCSPVersion, flags, data);
168 : }
169 :
170 : /* template_members: heim_integer imp imp */
171 : /* template_members: heim_integer exp exp */
172 : /* generate_template_type: heim_integer_tag__2 */
173 : const struct asn1_template asn1_heim_integer_tag__2[] = {
174 : /* 0 */ { 0, sizeof(heim_integer), ((void *)(uintptr_t)0) },
175 : };
176 : /* generate_template_type: heim_integer_tag__1 */
177 : const struct asn1_template asn1_heim_integer_tag__1[] = {
178 : /* 0 */ { 0, sizeof(heim_integer), ((void *)(uintptr_t)1) },
179 : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_Null), 0, asn1_heim_integer_tag__2 }
180 : };
181 : /* generate_template_type: OCSPCertStatus_choice_good */
182 : const struct asn1_template asn1_OCSPCertStatus_choice_good[] = {
183 : /* 0 */ { 0, sizeof(heim_integer), ((void *)(uintptr_t)1) },
184 : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,PRIM,0)|A1_FLAG_IMPLICIT, 0, asn1_heim_integer_tag__1 }
185 : };
186 : /* template_members: OCSPCertStatus_revoked imp imp */
187 : /* template_members: OCSPCertStatus_revoked exp exp */
188 : /* tsequence: members isstruct: 1 */
189 : /* template_members: OCSPCertStatus_revoked exp exp */
190 : /* generate_template_type: OCSPCertStatus_revoked_tag_revocationTime_5 */
191 : const struct asn1_template asn1_OCSPCertStatus_revoked_tag_revocationTime_5[] = {
192 : /* 0 */ { 0, sizeof(time_t), ((void *)(uintptr_t)1) },
193 : /* 1 */ { A1_PARSE_T(A1T_GENERALIZED_TIME), 0, NULL }
194 : };
195 : /* template_members: OCSPCertStatus_revoked exp exp */
196 : /* generate_template_type: OCSPCertStatus_revoked_tag_revocationReason_6 */
197 : const struct asn1_template asn1_OCSPCertStatus_revoked_tag_revocationReason_6[] = {
198 : /* 0 */ { 0, sizeof(CRLReason), ((void *)(uintptr_t)1) },
199 : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_CRLReason}
200 : };
201 : /* generate_template_type: OCSPCertStatus_revoked_tag__4 */
202 : const struct asn1_template asn1_OCSPCertStatus_revoked_tag__4[] = {
203 : /* 0 */ { 0, sizeof(struct OCSPCertStatus_revoked), ((void *)(uintptr_t)5) },
204 : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_GeneralizedTime), offsetof(struct OCSPCertStatus_revoked, revocationTime), asn1_OCSPCertStatus_revoked_tag_revocationTime_5 },
205 : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0)|A1_FLAG_OPTIONAL, offsetof(struct OCSPCertStatus_revoked, revocationReason), asn1_OCSPCertStatus_revoked_tag_revocationReason_6 },
206 : /* 3 */ { A1_OP_NAME, 0, "OCSPCertStatus_revoked" },
207 : /* 4 */ { A1_OP_NAME, 0, "revocationTime" },
208 : /* 5 */ { A1_OP_NAME, 0, "revocationReason" }
209 : };
210 : /* generate_template_type: OCSPCertStatus_revoked_tag__3 */
211 : const struct asn1_template asn1_OCSPCertStatus_revoked_tag__3[] = {
212 : /* 0 */ { 0, sizeof(struct OCSPCertStatus_revoked), ((void *)(uintptr_t)1) },
213 : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_OCSPCertStatus_revoked_tag__4 }
214 : };
215 : /* generate_template_type: OCSPCertStatus_choice_revoked */
216 : const struct asn1_template asn1_OCSPCertStatus_choice_revoked[] = {
217 : /* 0 */ { 0, sizeof(struct OCSPCertStatus_revoked), ((void *)(uintptr_t)1) },
218 : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1)|A1_FLAG_IMPLICIT, 0, asn1_OCSPCertStatus_revoked_tag__3 }
219 : };
220 : /* template_members: heim_integer imp imp */
221 : /* template_members: heim_integer exp exp */
222 : /* generate_template_type: heim_integer_tag__8 */
223 : /* generate_template_type: heim_integer_tag__7 */
224 : /* generate_template_type: OCSPCertStatus_choice_unknown */
225 : const struct asn1_template asn1_OCSPCertStatus_choice_unknown[] = {
226 : /* 0 */ { 0, sizeof(heim_integer), ((void *)(uintptr_t)1) },
227 : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,PRIM,2)|A1_FLAG_IMPLICIT, 0, asn1_heim_integer_tag__1 }
228 : };
229 : static const struct asn1_template asn1_choice_OCSPCertStatus_0[] = {
230 : /* 0 */ { 0, offsetof(OCSPCertStatus, element), ((void *)(uintptr_t)6) },
231 : /* 1 */ { choice_OCSPCertStatus_good, offsetof(OCSPCertStatus, u.good), asn1_OCSPCertStatus_choice_good },
232 : /* 2 */ { choice_OCSPCertStatus_revoked, offsetof(OCSPCertStatus, u.revoked), asn1_OCSPCertStatus_choice_revoked },
233 : /* 3 */ { choice_OCSPCertStatus_unknown, offsetof(OCSPCertStatus, u.unknown), asn1_OCSPCertStatus_choice_unknown },
234 : /* 4 */ { 0, 0, "good" },
235 : /* 5 */ { 0, 0, "revoked" },
236 : /* 6 */ { 0, 0, "unknown" }
237 : };
238 : /* generate_template_type: OCSPCertStatus */
239 : const struct asn1_template asn1_OCSPCertStatus[] = {
240 : /* 0 */ { 0, sizeof(OCSPCertStatus), ((void *)(uintptr_t)1) },
241 : /* 1 */ { A1_OP_CHOICE, 0, asn1_choice_OCSPCertStatus_0 }
242 : };
243 :
244 : int ASN1CALL
245 0 : decode_OCSPCertStatus(const unsigned char *p, size_t len, OCSPCertStatus *data, size_t *size)
246 : {
247 0 : memset(data, 0, sizeof(*data));
248 0 : return _asn1_decode_top(asn1_OCSPCertStatus, 0|0, p, len, data, size);
249 : }
250 :
251 :
252 : int ASN1CALL
253 0 : encode_OCSPCertStatus(unsigned char *p, size_t len, const OCSPCertStatus *data, size_t *size)
254 : {
255 0 : return _asn1_encode(asn1_OCSPCertStatus, p, len, data, size);
256 : }
257 :
258 :
259 : size_t ASN1CALL
260 0 : length_OCSPCertStatus(const OCSPCertStatus *data)
261 : {
262 0 : return _asn1_length(asn1_OCSPCertStatus, data);
263 : }
264 :
265 :
266 : void ASN1CALL
267 0 : free_OCSPCertStatus(OCSPCertStatus *data)
268 : {
269 0 : _asn1_free_top(asn1_OCSPCertStatus, data);
270 0 : }
271 :
272 :
273 : int ASN1CALL
274 0 : copy_OCSPCertStatus(const OCSPCertStatus *from, OCSPCertStatus *to)
275 : {
276 0 : return _asn1_copy_top(asn1_OCSPCertStatus, from, to);
277 : }
278 :
279 :
280 : char * ASN1CALL
281 0 : print_OCSPCertStatus(const OCSPCertStatus *data, int flags)
282 : {
283 0 : return _asn1_print_top(asn1_OCSPCertStatus, flags, data);
284 : }
285 :
286 : /* template_members: OCSPCertID exp exp */
287 : /* tsequence: members isstruct: 1 */
288 : /* template_members: OCSPCertID exp exp */
289 : /* generate_template_type: OCSPCertID_tag_issuerNameHash_10 */
290 : const struct asn1_template asn1_OCSPCertID_tag_issuerNameHash_10[] = {
291 : /* 0 */ { 0, sizeof(heim_octet_string), ((void *)(uintptr_t)1) },
292 : /* 1 */ { A1_PARSE_T(A1T_OCTET_STRING), 0, NULL }
293 : };
294 : /* template_members: OCSPCertID exp exp */
295 : /* generate_template_type: OCSPCertID_tag_issuerKeyHash_11 */
296 : /* generate_template_type: OCSPCertID_tag__9 */
297 : const struct asn1_template asn1_OCSPCertID_tag__9[] = {
298 : /* 0 */ { 0, sizeof(struct OCSPCertID), ((void *)(uintptr_t)9) },
299 : /* 1 */ { A1_OP_TYPE_EXTERN , offsetof(struct OCSPCertID, hashAlgorithm), &asn1_extern_AlgorithmIdentifier},
300 : /* 2 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_OctetString), offsetof(struct OCSPCertID, issuerNameHash), asn1_OCSPCertID_tag_issuerNameHash_10 },
301 : /* 3 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_OctetString), offsetof(struct OCSPCertID, issuerKeyHash), asn1_OCSPCertID_tag_issuerNameHash_10 },
302 : /* 4 */ { A1_OP_TYPE_EXTERN , offsetof(struct OCSPCertID, serialNumber), &asn1_extern_CertificateSerialNumber},
303 : /* 5 */ { A1_OP_NAME, 0, "OCSPCertID" },
304 : /* 6 */ { A1_OP_NAME, 0, "hashAlgorithm" },
305 : /* 7 */ { A1_OP_NAME, 0, "issuerNameHash" },
306 : /* 8 */ { A1_OP_NAME, 0, "issuerKeyHash" },
307 : /* 9 */ { A1_OP_NAME, 0, "serialNumber" }
308 : };
309 : /* generate_template_type: OCSPCertID */
310 : const struct asn1_template asn1_OCSPCertID[] = {
311 : /* 0 */ { 0, sizeof(OCSPCertID), ((void *)(uintptr_t)1) },
312 : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_OCSPCertID_tag__9 }
313 : };
314 :
315 : int ASN1CALL
316 0 : decode_OCSPCertID(const unsigned char *p, size_t len, OCSPCertID *data, size_t *size)
317 : {
318 0 : memset(data, 0, sizeof(*data));
319 0 : return _asn1_decode_top(asn1_OCSPCertID, 0|0, p, len, data, size);
320 : }
321 :
322 :
323 : int ASN1CALL
324 0 : encode_OCSPCertID(unsigned char *p, size_t len, const OCSPCertID *data, size_t *size)
325 : {
326 0 : return _asn1_encode(asn1_OCSPCertID, p, len, data, size);
327 : }
328 :
329 :
330 : size_t ASN1CALL
331 0 : length_OCSPCertID(const OCSPCertID *data)
332 : {
333 0 : return _asn1_length(asn1_OCSPCertID, data);
334 : }
335 :
336 :
337 : void ASN1CALL
338 0 : free_OCSPCertID(OCSPCertID *data)
339 : {
340 0 : _asn1_free_top(asn1_OCSPCertID, data);
341 0 : }
342 :
343 :
344 : int ASN1CALL
345 0 : copy_OCSPCertID(const OCSPCertID *from, OCSPCertID *to)
346 : {
347 0 : return _asn1_copy_top(asn1_OCSPCertID, from, to);
348 : }
349 :
350 :
351 : char * ASN1CALL
352 0 : print_OCSPCertID(const OCSPCertID *data, int flags)
353 : {
354 0 : return _asn1_print_top(asn1_OCSPCertID, flags, data);
355 : }
356 :
357 : /* template_members: OCSPSingleResponse exp exp */
358 : /* tsequence: members isstruct: 1 */
359 : /* template_members: OCSPSingleResponse exp exp */
360 : /* generate_template_type: OCSPSingleResponse_tag_thisUpdate_13 */
361 : /* template_members: OCSPSingleResponse exp exp */
362 : /* template_members: time_t exp exp */
363 : /* generate_template_type: time_t_tag_nextUpdate_15 */
364 : /* generate_template_type: OCSPSingleResponse_tag_nextUpdate_14 */
365 : const struct asn1_template asn1_OCSPSingleResponse_tag_nextUpdate_14[] = {
366 : /* 0 */ { 0, sizeof(time_t), ((void *)(uintptr_t)1) },
367 : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_GeneralizedTime), 0, asn1_OCSPCertStatus_revoked_tag_revocationTime_5 }
368 : };
369 : /* template_members: OCSPSingleResponse exp exp */
370 : /* generate_template_type: OCSPSingleResponse_tag_singleExtensions_16 */
371 : const struct asn1_template asn1_OCSPSingleResponse_tag_singleExtensions_16[] = {
372 : /* 0 */ { 0, sizeof(Extensions), ((void *)(uintptr_t)1) },
373 : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_Extensions}
374 : };
375 : /* generate_template_type: OCSPSingleResponse_tag__12 */
376 : const struct asn1_template asn1_OCSPSingleResponse_tag__12[] = {
377 : /* 0 */ { 0, sizeof(struct OCSPSingleResponse), ((void *)(uintptr_t)11) },
378 : /* 1 */ { A1_OP_TYPE , offsetof(struct OCSPSingleResponse, certID), asn1_OCSPCertID },
379 : /* 2 */ { A1_OP_TYPE , offsetof(struct OCSPSingleResponse, certStatus), asn1_OCSPCertStatus },
380 : /* 3 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_GeneralizedTime), offsetof(struct OCSPSingleResponse, thisUpdate), asn1_OCSPCertStatus_revoked_tag_revocationTime_5 },
381 : /* 4 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0)|A1_FLAG_OPTIONAL, offsetof(struct OCSPSingleResponse, nextUpdate), asn1_OCSPSingleResponse_tag_nextUpdate_14 },
382 : /* 5 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1)|A1_FLAG_OPTIONAL, offsetof(struct OCSPSingleResponse, singleExtensions), asn1_OCSPSingleResponse_tag_singleExtensions_16 },
383 : /* 6 */ { A1_OP_NAME, 0, "OCSPSingleResponse" },
384 : /* 7 */ { A1_OP_NAME, 0, "certID" },
385 : /* 8 */ { A1_OP_NAME, 0, "certStatus" },
386 : /* 9 */ { A1_OP_NAME, 0, "thisUpdate" },
387 : /* 10 */ { A1_OP_NAME, 0, "nextUpdate" },
388 : /* 11 */ { A1_OP_NAME, 0, "singleExtensions" }
389 : };
390 : /* generate_template_type: OCSPSingleResponse */
391 : const struct asn1_template asn1_OCSPSingleResponse[] = {
392 : /* 0 */ { 0, sizeof(OCSPSingleResponse), ((void *)(uintptr_t)1) },
393 : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_OCSPSingleResponse_tag__12 }
394 : };
395 :
396 : int ASN1CALL
397 0 : decode_OCSPSingleResponse(const unsigned char *p, size_t len, OCSPSingleResponse *data, size_t *size)
398 : {
399 0 : memset(data, 0, sizeof(*data));
400 0 : return _asn1_decode_top(asn1_OCSPSingleResponse, 0|0, p, len, data, size);
401 : }
402 :
403 :
404 : int ASN1CALL
405 0 : encode_OCSPSingleResponse(unsigned char *p, size_t len, const OCSPSingleResponse *data, size_t *size)
406 : {
407 0 : return _asn1_encode(asn1_OCSPSingleResponse, p, len, data, size);
408 : }
409 :
410 :
411 : size_t ASN1CALL
412 0 : length_OCSPSingleResponse(const OCSPSingleResponse *data)
413 : {
414 0 : return _asn1_length(asn1_OCSPSingleResponse, data);
415 : }
416 :
417 :
418 : void ASN1CALL
419 0 : free_OCSPSingleResponse(OCSPSingleResponse *data)
420 : {
421 0 : _asn1_free_top(asn1_OCSPSingleResponse, data);
422 0 : }
423 :
424 :
425 : int ASN1CALL
426 0 : copy_OCSPSingleResponse(const OCSPSingleResponse *from, OCSPSingleResponse *to)
427 : {
428 0 : return _asn1_copy_top(asn1_OCSPSingleResponse, from, to);
429 : }
430 :
431 :
432 : char * ASN1CALL
433 0 : print_OCSPSingleResponse(const OCSPSingleResponse *data, int flags)
434 : {
435 0 : return _asn1_print_top(asn1_OCSPSingleResponse, flags, data);
436 : }
437 :
438 : /* template_members: OCSPInnerRequest exp exp */
439 : /* tsequence: members isstruct: 1 */
440 : /* template_members: OCSPInnerRequest exp exp */
441 : /* generate_template_type: OCSPInnerRequest_tag_singleRequestExtensions_18 */
442 : /* generate_template_type: OCSPInnerRequest_tag__17 */
443 : const struct asn1_template asn1_OCSPInnerRequest_tag__17[] = {
444 : /* 0 */ { 0, sizeof(struct OCSPInnerRequest), ((void *)(uintptr_t)5) },
445 : /* 1 */ { A1_OP_TYPE , offsetof(struct OCSPInnerRequest, reqCert), asn1_OCSPCertID },
446 : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0)|A1_FLAG_OPTIONAL, offsetof(struct OCSPInnerRequest, singleRequestExtensions), asn1_OCSPSingleResponse_tag_singleExtensions_16 },
447 : /* 3 */ { A1_OP_NAME, 0, "OCSPInnerRequest" },
448 : /* 4 */ { A1_OP_NAME, 0, "reqCert" },
449 : /* 5 */ { A1_OP_NAME, 0, "singleRequestExtensions" }
450 : };
451 : /* generate_template_type: OCSPInnerRequest */
452 : const struct asn1_template asn1_OCSPInnerRequest[] = {
453 : /* 0 */ { 0, sizeof(OCSPInnerRequest), ((void *)(uintptr_t)1) },
454 : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_OCSPInnerRequest_tag__17 }
455 : };
456 :
457 : int ASN1CALL
458 0 : decode_OCSPInnerRequest(const unsigned char *p, size_t len, OCSPInnerRequest *data, size_t *size)
459 : {
460 0 : memset(data, 0, sizeof(*data));
461 0 : return _asn1_decode_top(asn1_OCSPInnerRequest, 0|0, p, len, data, size);
462 : }
463 :
464 :
465 : int ASN1CALL
466 0 : encode_OCSPInnerRequest(unsigned char *p, size_t len, const OCSPInnerRequest *data, size_t *size)
467 : {
468 0 : return _asn1_encode(asn1_OCSPInnerRequest, p, len, data, size);
469 : }
470 :
471 :
472 : size_t ASN1CALL
473 0 : length_OCSPInnerRequest(const OCSPInnerRequest *data)
474 : {
475 0 : return _asn1_length(asn1_OCSPInnerRequest, data);
476 : }
477 :
478 :
479 : void ASN1CALL
480 0 : free_OCSPInnerRequest(OCSPInnerRequest *data)
481 : {
482 0 : _asn1_free_top(asn1_OCSPInnerRequest, data);
483 0 : }
484 :
485 :
486 : int ASN1CALL
487 0 : copy_OCSPInnerRequest(const OCSPInnerRequest *from, OCSPInnerRequest *to)
488 : {
489 0 : return _asn1_copy_top(asn1_OCSPInnerRequest, from, to);
490 : }
491 :
492 :
493 : char * ASN1CALL
494 0 : print_OCSPInnerRequest(const OCSPInnerRequest *data, int flags)
495 : {
496 0 : return _asn1_print_top(asn1_OCSPInnerRequest, flags, data);
497 : }
498 :
499 : /* template_members: OCSPTBSRequest exp exp */
500 : /* tsequence: members isstruct: 1 */
501 : /* template_members: OCSPTBSRequest exp exp */
502 : /* generate_template_type: OCSPTBSRequest_tag_version_20 */
503 : const struct asn1_template asn1_OCSPTBSRequest_tag_version_20[] = {
504 : /* 0 */ { 0, sizeof(OCSPVersion), ((void *)(uintptr_t)1) },
505 : /* 1 */ { A1_OP_TYPE , 0, asn1_OCSPVersion }
506 : };
507 : /* template_members: OCSPTBSRequest exp exp */
508 : /* generate_template_type: OCSPTBSRequest_tag_requestorName_21 */
509 : const struct asn1_template asn1_OCSPTBSRequest_tag_requestorName_21[] = {
510 : /* 0 */ { 0, sizeof(GeneralName), ((void *)(uintptr_t)1) },
511 : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_GeneralName}
512 : };
513 : /* template_members: OCSPTBSRequest exp exp */
514 : /* generate_template_type: OCSPTBSRequest_requestList_0 */
515 : const struct asn1_template asn1_OCSPTBSRequest_requestList_0[] = {
516 : /* 0 */ { 0, sizeof(OCSPInnerRequest), ((void *)(uintptr_t)1) },
517 : /* 1 */ { A1_OP_TYPE , 0, asn1_OCSPInnerRequest }
518 : };
519 : /* generate_template_type: OCSPTBSRequest_tag_requestList_22 */
520 : const struct asn1_template asn1_OCSPTBSRequest_tag_requestList_22[] = {
521 : /* 0 */ { 0, sizeof(struct OCSPTBSRequest_requestList), ((void *)(uintptr_t)1) },
522 : /* 1 */ { A1_OP_SEQOF, 0, asn1_OCSPTBSRequest_requestList_0 }
523 : };
524 : /* template_members: OCSPTBSRequest exp exp */
525 : /* generate_template_type: OCSPTBSRequest_tag_requestExtensions_23 */
526 : /* generate_template_type: OCSPTBSRequest_tag__19 */
527 : const struct asn1_template asn1_OCSPTBSRequest_tag__19[] = {
528 : /* 0 */ { 0, sizeof(struct OCSPTBSRequest), ((void *)(uintptr_t)9) },
529 : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0)|A1_FLAG_OPTIONAL, offsetof(struct OCSPTBSRequest, version), asn1_OCSPTBSRequest_tag_version_20 },
530 : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1)|A1_FLAG_OPTIONAL, offsetof(struct OCSPTBSRequest, requestorName), asn1_OCSPTBSRequest_tag_requestorName_21 },
531 : /* 3 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), offsetof(struct OCSPTBSRequest, requestList), asn1_OCSPTBSRequest_tag_requestList_22 },
532 : /* 4 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2)|A1_FLAG_OPTIONAL, offsetof(struct OCSPTBSRequest, requestExtensions), asn1_OCSPSingleResponse_tag_singleExtensions_16 },
533 : /* 5 */ { A1_OP_NAME, 0, "OCSPTBSRequest" },
534 : /* 6 */ { A1_OP_NAME, 0, "version" },
535 : /* 7 */ { A1_OP_NAME, 0, "requestorName" },
536 : /* 8 */ { A1_OP_NAME, 0, "requestList" },
537 : /* 9 */ { A1_OP_NAME, 0, "requestExtensions" }
538 : };
539 : /* generate_template_type: OCSPTBSRequest */
540 : const struct asn1_template asn1_OCSPTBSRequest[] = {
541 : /* 0 */ { 0|A1_HF_PRESERVE, sizeof(OCSPTBSRequest), ((void *)(uintptr_t)1) },
542 : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_OCSPTBSRequest_tag__19 }
543 : };
544 :
545 : int ASN1CALL
546 0 : decode_OCSPTBSRequest(const unsigned char *p, size_t len, OCSPTBSRequest *data, size_t *size)
547 : {
548 0 : memset(data, 0, sizeof(*data));
549 0 : return _asn1_decode_top(asn1_OCSPTBSRequest, 0|0, p, len, data, size);
550 : }
551 :
552 :
553 : int ASN1CALL
554 0 : encode_OCSPTBSRequest(unsigned char *p, size_t len, const OCSPTBSRequest *data, size_t *size)
555 : {
556 0 : return _asn1_encode(asn1_OCSPTBSRequest, p, len, data, size);
557 : }
558 :
559 :
560 : size_t ASN1CALL
561 0 : length_OCSPTBSRequest(const OCSPTBSRequest *data)
562 : {
563 0 : return _asn1_length(asn1_OCSPTBSRequest, data);
564 : }
565 :
566 :
567 : void ASN1CALL
568 0 : free_OCSPTBSRequest(OCSPTBSRequest *data)
569 : {
570 0 : _asn1_free_top(asn1_OCSPTBSRequest, data);
571 0 : }
572 :
573 :
574 : int ASN1CALL
575 0 : copy_OCSPTBSRequest(const OCSPTBSRequest *from, OCSPTBSRequest *to)
576 : {
577 0 : return _asn1_copy_top(asn1_OCSPTBSRequest, from, to);
578 : }
579 :
580 :
581 : char * ASN1CALL
582 0 : print_OCSPTBSRequest(const OCSPTBSRequest *data, int flags)
583 : {
584 0 : return _asn1_print_top(asn1_OCSPTBSRequest, flags, data);
585 : }
586 :
587 : /* template_members: OCSPSignature exp exp */
588 : /* tsequence: members isstruct: 1 */
589 : /* template_members: OCSPSignature exp exp */
590 : /* generate_template_type: OCSPSignature_tag_signature_25 */
591 : const struct asn1_template asn1_OCSPSignature_tag_signature_25[] = {
592 : /* 0 */ { 0, sizeof(OCSPSignature), ((void *)(uintptr_t)1) },
593 : /* 1 */ { A1_PARSE_T(A1T_HEIM_BIT_STRING), 0, NULL }
594 : };
595 : /* template_members: OCSPSignature exp exp */
596 : /* template_members: OCSPSignature exp exp */
597 : /* generate_template_type: OCSPSignature_certs_1 */
598 : const struct asn1_template asn1_OCSPSignature_certs_1[] = {
599 : /* 0 */ { 0, sizeof(Certificate), ((void *)(uintptr_t)1) },
600 : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_Certificate}
601 : };
602 : /* generate_template_type: OCSPSignature_tag_certs_27 */
603 : const struct asn1_template asn1_OCSPSignature_tag_certs_27[] = {
604 : /* 0 */ { 0, sizeof(struct OCSPSignature_certs), ((void *)(uintptr_t)1) },
605 : /* 1 */ { A1_OP_SEQOF, 0, asn1_OCSPSignature_certs_1 }
606 : };
607 : /* generate_template_type: OCSPSignature_tag_certs_26 */
608 : const struct asn1_template asn1_OCSPSignature_tag_certs_26[] = {
609 : /* 0 */ { 0, sizeof(struct OCSPSignature_certs), ((void *)(uintptr_t)1) },
610 : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_OCSPSignature_tag_certs_27 }
611 : };
612 : /* generate_template_type: OCSPSignature_tag__24 */
613 : const struct asn1_template asn1_OCSPSignature_tag__24[] = {
614 : /* 0 */ { 0, sizeof(struct OCSPSignature), ((void *)(uintptr_t)7) },
615 : /* 1 */ { A1_OP_TYPE_EXTERN , offsetof(struct OCSPSignature, signatureAlgorithm), &asn1_extern_AlgorithmIdentifier},
616 : /* 2 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_BitString), offsetof(struct OCSPSignature, signature), asn1_OCSPSignature_tag_signature_25 },
617 : /* 3 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0)|A1_FLAG_OPTIONAL, offsetof(struct OCSPSignature, certs), asn1_OCSPSignature_tag_certs_26 },
618 : /* 4 */ { A1_OP_NAME, 0, "OCSPSignature" },
619 : /* 5 */ { A1_OP_NAME, 0, "signatureAlgorithm" },
620 : /* 6 */ { A1_OP_NAME, 0, "signature" },
621 : /* 7 */ { A1_OP_NAME, 0, "certs" }
622 : };
623 : /* generate_template_type: OCSPSignature */
624 : const struct asn1_template asn1_OCSPSignature[] = {
625 : /* 0 */ { 0, sizeof(OCSPSignature), ((void *)(uintptr_t)1) },
626 : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_OCSPSignature_tag__24 }
627 : };
628 :
629 : int ASN1CALL
630 0 : decode_OCSPSignature(const unsigned char *p, size_t len, OCSPSignature *data, size_t *size)
631 : {
632 0 : memset(data, 0, sizeof(*data));
633 0 : return _asn1_decode_top(asn1_OCSPSignature, 0|0, p, len, data, size);
634 : }
635 :
636 :
637 : int ASN1CALL
638 0 : encode_OCSPSignature(unsigned char *p, size_t len, const OCSPSignature *data, size_t *size)
639 : {
640 0 : return _asn1_encode(asn1_OCSPSignature, p, len, data, size);
641 : }
642 :
643 :
644 : size_t ASN1CALL
645 0 : length_OCSPSignature(const OCSPSignature *data)
646 : {
647 0 : return _asn1_length(asn1_OCSPSignature, data);
648 : }
649 :
650 :
651 : void ASN1CALL
652 0 : free_OCSPSignature(OCSPSignature *data)
653 : {
654 0 : _asn1_free_top(asn1_OCSPSignature, data);
655 0 : }
656 :
657 :
658 : int ASN1CALL
659 0 : copy_OCSPSignature(const OCSPSignature *from, OCSPSignature *to)
660 : {
661 0 : return _asn1_copy_top(asn1_OCSPSignature, from, to);
662 : }
663 :
664 :
665 : char * ASN1CALL
666 0 : print_OCSPSignature(const OCSPSignature *data, int flags)
667 : {
668 0 : return _asn1_print_top(asn1_OCSPSignature, flags, data);
669 : }
670 :
671 : /* template_members: OCSPRequest exp exp */
672 : /* tsequence: members isstruct: 1 */
673 : /* template_members: OCSPRequest exp exp */
674 : /* generate_template_type: OCSPRequest_tag_optionalSignature_29 */
675 : const struct asn1_template asn1_OCSPRequest_tag_optionalSignature_29[] = {
676 : /* 0 */ { 0, sizeof(OCSPSignature), ((void *)(uintptr_t)1) },
677 : /* 1 */ { A1_OP_TYPE , 0, asn1_OCSPSignature }
678 : };
679 : /* generate_template_type: OCSPRequest_tag__28 */
680 : const struct asn1_template asn1_OCSPRequest_tag__28[] = {
681 : /* 0 */ { 0, sizeof(struct OCSPRequest), ((void *)(uintptr_t)5) },
682 : /* 1 */ { A1_OP_TYPE , offsetof(struct OCSPRequest, tbsRequest), asn1_OCSPTBSRequest },
683 : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0)|A1_FLAG_OPTIONAL, offsetof(struct OCSPRequest, optionalSignature), asn1_OCSPRequest_tag_optionalSignature_29 },
684 : /* 3 */ { A1_OP_NAME, 0, "OCSPRequest" },
685 : /* 4 */ { A1_OP_NAME, 0, "tbsRequest" },
686 : /* 5 */ { A1_OP_NAME, 0, "optionalSignature" }
687 : };
688 : /* generate_template_type: OCSPRequest */
689 : const struct asn1_template asn1_OCSPRequest[] = {
690 : /* 0 */ { 0, sizeof(OCSPRequest), ((void *)(uintptr_t)1) },
691 : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_OCSPRequest_tag__28 }
692 : };
693 :
694 : int ASN1CALL
695 0 : decode_OCSPRequest(const unsigned char *p, size_t len, OCSPRequest *data, size_t *size)
696 : {
697 0 : memset(data, 0, sizeof(*data));
698 0 : return _asn1_decode_top(asn1_OCSPRequest, 0|0, p, len, data, size);
699 : }
700 :
701 :
702 : int ASN1CALL
703 0 : encode_OCSPRequest(unsigned char *p, size_t len, const OCSPRequest *data, size_t *size)
704 : {
705 0 : return _asn1_encode(asn1_OCSPRequest, p, len, data, size);
706 : }
707 :
708 :
709 : size_t ASN1CALL
710 0 : length_OCSPRequest(const OCSPRequest *data)
711 : {
712 0 : return _asn1_length(asn1_OCSPRequest, data);
713 : }
714 :
715 :
716 : void ASN1CALL
717 0 : free_OCSPRequest(OCSPRequest *data)
718 : {
719 0 : _asn1_free_top(asn1_OCSPRequest, data);
720 0 : }
721 :
722 :
723 : int ASN1CALL
724 0 : copy_OCSPRequest(const OCSPRequest *from, OCSPRequest *to)
725 : {
726 0 : return _asn1_copy_top(asn1_OCSPRequest, from, to);
727 : }
728 :
729 :
730 : char * ASN1CALL
731 0 : print_OCSPRequest(const OCSPRequest *data, int flags)
732 : {
733 0 : return _asn1_print_top(asn1_OCSPRequest, flags, data);
734 : }
735 :
736 : /* template_members: OCSPResponseBytes exp exp */
737 : /* tsequence: members isstruct: 1 */
738 : /* template_members: OCSPResponseBytes exp exp */
739 : /* generate_template_type: OCSPResponseBytes_tag_responseType_31 */
740 : const struct asn1_template asn1_OCSPResponseBytes_tag_responseType_31[] = {
741 : /* 0 */ { 0, sizeof(heim_oid), ((void *)(uintptr_t)1) },
742 : /* 1 */ { A1_PARSE_T(A1T_OID), 0, NULL }
743 : };
744 : /* template_members: OCSPResponseBytes exp exp */
745 : /* generate_template_type: OCSPResponseBytes_tag_response_32 */
746 : /* generate_template_type: OCSPResponseBytes_tag__30 */
747 : const struct asn1_template asn1_OCSPResponseBytes_tag__30[] = {
748 : /* 0 */ { 0, sizeof(struct OCSPResponseBytes), ((void *)(uintptr_t)5) },
749 : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_OID), offsetof(struct OCSPResponseBytes, responseType), asn1_OCSPResponseBytes_tag_responseType_31 },
750 : /* 2 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_OctetString), offsetof(struct OCSPResponseBytes, response), asn1_OCSPCertID_tag_issuerNameHash_10 },
751 : /* 3 */ { A1_OP_NAME, 0, "OCSPResponseBytes" },
752 : /* 4 */ { A1_OP_NAME, 0, "responseType" },
753 : /* 5 */ { A1_OP_NAME, 0, "response" }
754 : };
755 : /* generate_template_type: OCSPResponseBytes */
756 : const struct asn1_template asn1_OCSPResponseBytes[] = {
757 : /* 0 */ { 0, sizeof(OCSPResponseBytes), ((void *)(uintptr_t)1) },
758 : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_OCSPResponseBytes_tag__30 }
759 : };
760 :
761 : int ASN1CALL
762 0 : decode_OCSPResponseBytes(const unsigned char *p, size_t len, OCSPResponseBytes *data, size_t *size)
763 : {
764 0 : memset(data, 0, sizeof(*data));
765 0 : return _asn1_decode_top(asn1_OCSPResponseBytes, 0|0, p, len, data, size);
766 : }
767 :
768 :
769 : int ASN1CALL
770 0 : encode_OCSPResponseBytes(unsigned char *p, size_t len, const OCSPResponseBytes *data, size_t *size)
771 : {
772 0 : return _asn1_encode(asn1_OCSPResponseBytes, p, len, data, size);
773 : }
774 :
775 :
776 : size_t ASN1CALL
777 0 : length_OCSPResponseBytes(const OCSPResponseBytes *data)
778 : {
779 0 : return _asn1_length(asn1_OCSPResponseBytes, data);
780 : }
781 :
782 :
783 : void ASN1CALL
784 0 : free_OCSPResponseBytes(OCSPResponseBytes *data)
785 : {
786 0 : _asn1_free_top(asn1_OCSPResponseBytes, data);
787 0 : }
788 :
789 :
790 : int ASN1CALL
791 0 : copy_OCSPResponseBytes(const OCSPResponseBytes *from, OCSPResponseBytes *to)
792 : {
793 0 : return _asn1_copy_top(asn1_OCSPResponseBytes, from, to);
794 : }
795 :
796 :
797 : char * ASN1CALL
798 0 : print_OCSPResponseBytes(const OCSPResponseBytes *data, int flags)
799 : {
800 0 : return _asn1_print_top(asn1_OCSPResponseBytes, flags, data);
801 : }
802 :
803 : /* template_members: OCSPResponseStatus exp exp */
804 : const struct asn1_template asn1_OCSPResponseStatus_enum_names[] = {
805 : /* 0 */ { 0, 0, ((void *)(uintptr_t)6) },
806 : /* 1 */ { A1_OP_NAME, 0, "successful" },
807 : /* 2 */ { A1_OP_NAME, 1, "malformedRequest" },
808 : /* 3 */ { A1_OP_NAME, 2, "internalError" },
809 : /* 4 */ { A1_OP_NAME, 3, "tryLater" },
810 : /* 5 */ { A1_OP_NAME, 5, "sigRequired" },
811 : /* 6 */ { A1_OP_NAME, 6, "unauthorized" }
812 : };
813 : /* generate_template_type: OCSPResponseStatus_tag__33 */
814 : const struct asn1_template asn1_OCSPResponseStatus_tag__33[] = {
815 : /* 0 */ { 0, sizeof(int), ((void *)(uintptr_t)1) },
816 : /* 1 */ { A1_PARSE_T(A1T_IMEMBER), 0, asn1_OCSPResponseStatus_enum_names }
817 : };
818 : /* generate_template_type: OCSPResponseStatus */
819 : const struct asn1_template asn1_OCSPResponseStatus[] = {
820 : /* 0 */ { 0, sizeof(OCSPResponseStatus), ((void *)(uintptr_t)1) },
821 : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_Enumerated), 0, asn1_OCSPResponseStatus_tag__33 }
822 : };
823 :
824 : int ASN1CALL
825 0 : decode_OCSPResponseStatus(const unsigned char *p, size_t len, OCSPResponseStatus *data, size_t *size)
826 : {
827 0 : memset(data, 0, sizeof(*data));
828 0 : return _asn1_decode_top(asn1_OCSPResponseStatus, 0|0, p, len, data, size);
829 : }
830 :
831 :
832 : int ASN1CALL
833 0 : encode_OCSPResponseStatus(unsigned char *p, size_t len, const OCSPResponseStatus *data, size_t *size)
834 : {
835 0 : return _asn1_encode(asn1_OCSPResponseStatus, p, len, data, size);
836 : }
837 :
838 :
839 : size_t ASN1CALL
840 0 : length_OCSPResponseStatus(const OCSPResponseStatus *data)
841 : {
842 0 : return _asn1_length(asn1_OCSPResponseStatus, data);
843 : }
844 :
845 :
846 : void ASN1CALL
847 0 : free_OCSPResponseStatus(OCSPResponseStatus *data)
848 : {
849 0 : _asn1_free_top(asn1_OCSPResponseStatus, data);
850 0 : }
851 :
852 :
853 : int ASN1CALL
854 0 : copy_OCSPResponseStatus(const OCSPResponseStatus *from, OCSPResponseStatus *to)
855 : {
856 0 : return _asn1_copy_top(asn1_OCSPResponseStatus, from, to);
857 : }
858 :
859 :
860 : char * ASN1CALL
861 0 : print_OCSPResponseStatus(const OCSPResponseStatus *data, int flags)
862 : {
863 0 : return _asn1_print_top(asn1_OCSPResponseStatus, flags, data);
864 : }
865 :
866 : /* template_members: OCSPResponse exp exp */
867 : /* tsequence: members isstruct: 1 */
868 : /* template_members: OCSPResponse exp exp */
869 : /* generate_template_type: OCSPResponse_tag_responseBytes_35 */
870 : const struct asn1_template asn1_OCSPResponse_tag_responseBytes_35[] = {
871 : /* 0 */ { 0, sizeof(OCSPResponseBytes), ((void *)(uintptr_t)1) },
872 : /* 1 */ { A1_OP_TYPE , 0, asn1_OCSPResponseBytes }
873 : };
874 : /* generate_template_type: OCSPResponse_tag__34 */
875 : const struct asn1_template asn1_OCSPResponse_tag__34[] = {
876 : /* 0 */ { 0, sizeof(struct OCSPResponse), ((void *)(uintptr_t)5) },
877 : /* 1 */ { A1_OP_TYPE , offsetof(struct OCSPResponse, responseStatus), asn1_OCSPResponseStatus },
878 : /* 2 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0)|A1_FLAG_OPTIONAL, offsetof(struct OCSPResponse, responseBytes), asn1_OCSPResponse_tag_responseBytes_35 },
879 : /* 3 */ { A1_OP_NAME, 0, "OCSPResponse" },
880 : /* 4 */ { A1_OP_NAME, 0, "responseStatus" },
881 : /* 5 */ { A1_OP_NAME, 0, "responseBytes" }
882 : };
883 : /* generate_template_type: OCSPResponse */
884 : const struct asn1_template asn1_OCSPResponse[] = {
885 : /* 0 */ { 0, sizeof(OCSPResponse), ((void *)(uintptr_t)1) },
886 : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_OCSPResponse_tag__34 }
887 : };
888 :
889 : int ASN1CALL
890 0 : decode_OCSPResponse(const unsigned char *p, size_t len, OCSPResponse *data, size_t *size)
891 : {
892 0 : memset(data, 0, sizeof(*data));
893 0 : return _asn1_decode_top(asn1_OCSPResponse, 0|0, p, len, data, size);
894 : }
895 :
896 :
897 : int ASN1CALL
898 0 : encode_OCSPResponse(unsigned char *p, size_t len, const OCSPResponse *data, size_t *size)
899 : {
900 0 : return _asn1_encode(asn1_OCSPResponse, p, len, data, size);
901 : }
902 :
903 :
904 : size_t ASN1CALL
905 0 : length_OCSPResponse(const OCSPResponse *data)
906 : {
907 0 : return _asn1_length(asn1_OCSPResponse, data);
908 : }
909 :
910 :
911 : void ASN1CALL
912 0 : free_OCSPResponse(OCSPResponse *data)
913 : {
914 0 : _asn1_free_top(asn1_OCSPResponse, data);
915 0 : }
916 :
917 :
918 : int ASN1CALL
919 0 : copy_OCSPResponse(const OCSPResponse *from, OCSPResponse *to)
920 : {
921 0 : return _asn1_copy_top(asn1_OCSPResponse, from, to);
922 : }
923 :
924 :
925 : char * ASN1CALL
926 0 : print_OCSPResponse(const OCSPResponse *data, int flags)
927 : {
928 0 : return _asn1_print_top(asn1_OCSPResponse, flags, data);
929 : }
930 :
931 : /* template_members: OCSPKeyHash exp exp */
932 : /* generate_template_type: OCSPKeyHash_tag__36 */
933 : /* generate_template_type: OCSPKeyHash */
934 : const struct asn1_template asn1_OCSPKeyHash[] = {
935 : /* 0 */ { 0, sizeof(OCSPKeyHash), ((void *)(uintptr_t)1) },
936 : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_OctetString), 0, asn1_OCSPCertID_tag_issuerNameHash_10 }
937 : };
938 :
939 : int ASN1CALL
940 0 : decode_OCSPKeyHash(const unsigned char *p, size_t len, OCSPKeyHash *data, size_t *size)
941 : {
942 0 : memset(data, 0, sizeof(*data));
943 0 : return _asn1_decode_top(asn1_OCSPKeyHash, 0|0, p, len, data, size);
944 : }
945 :
946 :
947 : int ASN1CALL
948 0 : encode_OCSPKeyHash(unsigned char *p, size_t len, const OCSPKeyHash *data, size_t *size)
949 : {
950 0 : return _asn1_encode(asn1_OCSPKeyHash, p, len, data, size);
951 : }
952 :
953 :
954 : size_t ASN1CALL
955 0 : length_OCSPKeyHash(const OCSPKeyHash *data)
956 : {
957 0 : return _asn1_length(asn1_OCSPKeyHash, data);
958 : }
959 :
960 :
961 : void ASN1CALL
962 0 : free_OCSPKeyHash(OCSPKeyHash *data)
963 : {
964 0 : _asn1_free_top(asn1_OCSPKeyHash, data);
965 0 : }
966 :
967 :
968 : int ASN1CALL
969 0 : copy_OCSPKeyHash(const OCSPKeyHash *from, OCSPKeyHash *to)
970 : {
971 0 : return _asn1_copy_top(asn1_OCSPKeyHash, from, to);
972 : }
973 :
974 :
975 : char * ASN1CALL
976 0 : print_OCSPKeyHash(const OCSPKeyHash *data, int flags)
977 : {
978 0 : return _asn1_print_top(asn1_OCSPKeyHash, flags, data);
979 : }
980 :
981 : /* template_members: Name exp exp */
982 : /* generate_template_type: Name_tag__37 */
983 : const struct asn1_template asn1_Name_tag__37[] = {
984 : /* 0 */ { 0, sizeof(Name), ((void *)(uintptr_t)1) },
985 : /* 1 */ { A1_OP_TYPE_EXTERN , 0, &asn1_extern_Name}
986 : };
987 : /* generate_template_type: OCSPResponderID_choice_byName */
988 : const struct asn1_template asn1_OCSPResponderID_choice_byName[] = {
989 : /* 0 */ { 0, sizeof(Name), ((void *)(uintptr_t)1) },
990 : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1), 0, asn1_Name_tag__37 }
991 : };
992 : /* template_members: OCSPKeyHash exp exp */
993 : /* generate_template_type: OCSPKeyHash_tag__38 */
994 : const struct asn1_template asn1_OCSPKeyHash_tag__38[] = {
995 : /* 0 */ { 0, sizeof(OCSPKeyHash), ((void *)(uintptr_t)1) },
996 : /* 1 */ { A1_OP_TYPE , 0, asn1_OCSPKeyHash }
997 : };
998 : /* generate_template_type: OCSPResponderID_choice_byKey */
999 : const struct asn1_template asn1_OCSPResponderID_choice_byKey[] = {
1000 : /* 0 */ { 0, sizeof(OCSPKeyHash), ((void *)(uintptr_t)1) },
1001 : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,2), 0, asn1_OCSPKeyHash_tag__38 }
1002 : };
1003 : static const struct asn1_template asn1_choice_OCSPResponderID_1[] = {
1004 : /* 0 */ { 0, offsetof(OCSPResponderID, element), ((void *)(uintptr_t)4) },
1005 : /* 1 */ { choice_OCSPResponderID_byName, offsetof(OCSPResponderID, u.byName), asn1_OCSPResponderID_choice_byName },
1006 : /* 2 */ { choice_OCSPResponderID_byKey, offsetof(OCSPResponderID, u.byKey), asn1_OCSPResponderID_choice_byKey },
1007 : /* 3 */ { 0, 0, "byName" },
1008 : /* 4 */ { 0, 0, "byKey" }
1009 : };
1010 : /* generate_template_type: OCSPResponderID */
1011 : const struct asn1_template asn1_OCSPResponderID[] = {
1012 : /* 0 */ { 0, sizeof(OCSPResponderID), ((void *)(uintptr_t)1) },
1013 : /* 1 */ { A1_OP_CHOICE, 0, asn1_choice_OCSPResponderID_1 }
1014 : };
1015 :
1016 : int ASN1CALL
1017 0 : decode_OCSPResponderID(const unsigned char *p, size_t len, OCSPResponderID *data, size_t *size)
1018 : {
1019 0 : memset(data, 0, sizeof(*data));
1020 0 : return _asn1_decode_top(asn1_OCSPResponderID, 0|0, p, len, data, size);
1021 : }
1022 :
1023 :
1024 : int ASN1CALL
1025 0 : encode_OCSPResponderID(unsigned char *p, size_t len, const OCSPResponderID *data, size_t *size)
1026 : {
1027 0 : return _asn1_encode(asn1_OCSPResponderID, p, len, data, size);
1028 : }
1029 :
1030 :
1031 : size_t ASN1CALL
1032 0 : length_OCSPResponderID(const OCSPResponderID *data)
1033 : {
1034 0 : return _asn1_length(asn1_OCSPResponderID, data);
1035 : }
1036 :
1037 :
1038 : void ASN1CALL
1039 0 : free_OCSPResponderID(OCSPResponderID *data)
1040 : {
1041 0 : _asn1_free_top(asn1_OCSPResponderID, data);
1042 0 : }
1043 :
1044 :
1045 : int ASN1CALL
1046 0 : copy_OCSPResponderID(const OCSPResponderID *from, OCSPResponderID *to)
1047 : {
1048 0 : return _asn1_copy_top(asn1_OCSPResponderID, from, to);
1049 : }
1050 :
1051 :
1052 : char * ASN1CALL
1053 0 : print_OCSPResponderID(const OCSPResponderID *data, int flags)
1054 : {
1055 0 : return _asn1_print_top(asn1_OCSPResponderID, flags, data);
1056 : }
1057 :
1058 : /* template_members: OCSPResponseData exp exp */
1059 : /* tsequence: members isstruct: 1 */
1060 : /* template_members: OCSPResponseData exp exp */
1061 : /* generate_template_type: OCSPResponseData_tag_version_40 */
1062 : /* template_members: OCSPResponseData exp exp */
1063 : /* generate_template_type: OCSPResponseData_tag_producedAt_41 */
1064 : /* template_members: OCSPResponseData exp exp */
1065 : /* generate_template_type: OCSPResponseData_responses_2 */
1066 : const struct asn1_template asn1_OCSPResponseData_responses_2[] = {
1067 : /* 0 */ { 0, sizeof(OCSPSingleResponse), ((void *)(uintptr_t)1) },
1068 : /* 1 */ { A1_OP_TYPE , 0, asn1_OCSPSingleResponse }
1069 : };
1070 : /* generate_template_type: OCSPResponseData_tag_responses_42 */
1071 : const struct asn1_template asn1_OCSPResponseData_tag_responses_42[] = {
1072 : /* 0 */ { 0, sizeof(struct OCSPResponseData_responses), ((void *)(uintptr_t)1) },
1073 : /* 1 */ { A1_OP_SEQOF, 0, asn1_OCSPResponseData_responses_2 }
1074 : };
1075 : /* template_members: OCSPResponseData exp exp */
1076 : /* generate_template_type: OCSPResponseData_tag_responseExtensions_43 */
1077 : /* generate_template_type: OCSPResponseData_tag__39 */
1078 : const struct asn1_template asn1_OCSPResponseData_tag__39[] = {
1079 : /* 0 */ { 0, sizeof(struct OCSPResponseData), ((void *)(uintptr_t)11) },
1080 : /* 1 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0)|A1_FLAG_OPTIONAL, offsetof(struct OCSPResponseData, version), asn1_OCSPTBSRequest_tag_version_20 },
1081 : /* 2 */ { A1_OP_TYPE , offsetof(struct OCSPResponseData, responderID), asn1_OCSPResponderID },
1082 : /* 3 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_GeneralizedTime), offsetof(struct OCSPResponseData, producedAt), asn1_OCSPCertStatus_revoked_tag_revocationTime_5 },
1083 : /* 4 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), offsetof(struct OCSPResponseData, responses), asn1_OCSPResponseData_tag_responses_42 },
1084 : /* 5 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,1)|A1_FLAG_OPTIONAL, offsetof(struct OCSPResponseData, responseExtensions), asn1_OCSPSingleResponse_tag_singleExtensions_16 },
1085 : /* 6 */ { A1_OP_NAME, 0, "OCSPResponseData" },
1086 : /* 7 */ { A1_OP_NAME, 0, "version" },
1087 : /* 8 */ { A1_OP_NAME, 0, "responderID" },
1088 : /* 9 */ { A1_OP_NAME, 0, "producedAt" },
1089 : /* 10 */ { A1_OP_NAME, 0, "responses" },
1090 : /* 11 */ { A1_OP_NAME, 0, "responseExtensions" }
1091 : };
1092 : /* generate_template_type: OCSPResponseData */
1093 : const struct asn1_template asn1_OCSPResponseData[] = {
1094 : /* 0 */ { 0|A1_HF_PRESERVE, sizeof(OCSPResponseData), ((void *)(uintptr_t)1) },
1095 : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_OCSPResponseData_tag__39 }
1096 : };
1097 :
1098 : int ASN1CALL
1099 0 : decode_OCSPResponseData(const unsigned char *p, size_t len, OCSPResponseData *data, size_t *size)
1100 : {
1101 0 : memset(data, 0, sizeof(*data));
1102 0 : return _asn1_decode_top(asn1_OCSPResponseData, 0|0, p, len, data, size);
1103 : }
1104 :
1105 :
1106 : int ASN1CALL
1107 0 : encode_OCSPResponseData(unsigned char *p, size_t len, const OCSPResponseData *data, size_t *size)
1108 : {
1109 0 : return _asn1_encode(asn1_OCSPResponseData, p, len, data, size);
1110 : }
1111 :
1112 :
1113 : size_t ASN1CALL
1114 0 : length_OCSPResponseData(const OCSPResponseData *data)
1115 : {
1116 0 : return _asn1_length(asn1_OCSPResponseData, data);
1117 : }
1118 :
1119 :
1120 : void ASN1CALL
1121 0 : free_OCSPResponseData(OCSPResponseData *data)
1122 : {
1123 0 : _asn1_free_top(asn1_OCSPResponseData, data);
1124 0 : }
1125 :
1126 :
1127 : int ASN1CALL
1128 0 : copy_OCSPResponseData(const OCSPResponseData *from, OCSPResponseData *to)
1129 : {
1130 0 : return _asn1_copy_top(asn1_OCSPResponseData, from, to);
1131 : }
1132 :
1133 :
1134 : char * ASN1CALL
1135 0 : print_OCSPResponseData(const OCSPResponseData *data, int flags)
1136 : {
1137 0 : return _asn1_print_top(asn1_OCSPResponseData, flags, data);
1138 : }
1139 :
1140 : /* template_members: OCSPBasicOCSPResponse exp exp */
1141 : /* tsequence: members isstruct: 1 */
1142 : /* template_members: OCSPBasicOCSPResponse exp exp */
1143 : /* generate_template_type: OCSPBasicOCSPResponse_tag_signature_45 */
1144 : const struct asn1_template asn1_OCSPBasicOCSPResponse_tag_signature_45[] = {
1145 : /* 0 */ { 0, sizeof(OCSPBasicOCSPResponse), ((void *)(uintptr_t)1) },
1146 : /* 1 */ { A1_PARSE_T(A1T_HEIM_BIT_STRING), 0, NULL }
1147 : };
1148 : /* template_members: OCSPBasicOCSPResponse exp exp */
1149 : /* template_members: OCSPBasicOCSPResponse exp exp */
1150 : /* generate_template_type: OCSPBasicOCSPResponse_certs_3 */
1151 : /* generate_template_type: OCSPBasicOCSPResponse_tag_certs_47 */
1152 : const struct asn1_template asn1_OCSPBasicOCSPResponse_tag_certs_47[] = {
1153 : /* 0 */ { 0, sizeof(struct OCSPBasicOCSPResponse_certs), ((void *)(uintptr_t)1) },
1154 : /* 1 */ { A1_OP_SEQOF, 0, asn1_OCSPSignature_certs_1 }
1155 : };
1156 : /* generate_template_type: OCSPBasicOCSPResponse_tag_certs_46 */
1157 : const struct asn1_template asn1_OCSPBasicOCSPResponse_tag_certs_46[] = {
1158 : /* 0 */ { 0, sizeof(struct OCSPBasicOCSPResponse_certs), ((void *)(uintptr_t)1) },
1159 : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_OCSPBasicOCSPResponse_tag_certs_47 }
1160 : };
1161 : /* generate_template_type: OCSPBasicOCSPResponse_tag__44 */
1162 : const struct asn1_template asn1_OCSPBasicOCSPResponse_tag__44[] = {
1163 : /* 0 */ { 0, sizeof(struct OCSPBasicOCSPResponse), ((void *)(uintptr_t)9) },
1164 : /* 1 */ { A1_OP_TYPE , offsetof(struct OCSPBasicOCSPResponse, tbsResponseData), asn1_OCSPResponseData },
1165 : /* 2 */ { A1_OP_TYPE_EXTERN , offsetof(struct OCSPBasicOCSPResponse, signatureAlgorithm), &asn1_extern_AlgorithmIdentifier},
1166 : /* 3 */ { A1_TAG_T(ASN1_C_UNIV,PRIM,UT_BitString), offsetof(struct OCSPBasicOCSPResponse, signature), asn1_OCSPBasicOCSPResponse_tag_signature_45 },
1167 : /* 4 */ { A1_TAG_T(ASN1_C_CONTEXT,CONS,0)|A1_FLAG_OPTIONAL, offsetof(struct OCSPBasicOCSPResponse, certs), asn1_OCSPBasicOCSPResponse_tag_certs_46 },
1168 : /* 5 */ { A1_OP_NAME, 0, "OCSPBasicOCSPResponse" },
1169 : /* 6 */ { A1_OP_NAME, 0, "tbsResponseData" },
1170 : /* 7 */ { A1_OP_NAME, 0, "signatureAlgorithm" },
1171 : /* 8 */ { A1_OP_NAME, 0, "signature" },
1172 : /* 9 */ { A1_OP_NAME, 0, "certs" }
1173 : };
1174 : /* generate_template_type: OCSPBasicOCSPResponse */
1175 : const struct asn1_template asn1_OCSPBasicOCSPResponse[] = {
1176 : /* 0 */ { 0, sizeof(OCSPBasicOCSPResponse), ((void *)(uintptr_t)1) },
1177 : /* 1 */ { A1_TAG_T(ASN1_C_UNIV,CONS,UT_Sequence), 0, asn1_OCSPBasicOCSPResponse_tag__44 }
1178 : };
1179 :
1180 : int ASN1CALL
1181 0 : decode_OCSPBasicOCSPResponse(const unsigned char *p, size_t len, OCSPBasicOCSPResponse *data, size_t *size)
1182 : {
1183 0 : memset(data, 0, sizeof(*data));
1184 0 : return _asn1_decode_top(asn1_OCSPBasicOCSPResponse, 0|0, p, len, data, size);
1185 : }
1186 :
1187 :
1188 : int ASN1CALL
1189 0 : encode_OCSPBasicOCSPResponse(unsigned char *p, size_t len, const OCSPBasicOCSPResponse *data, size_t *size)
1190 : {
1191 0 : return _asn1_encode(asn1_OCSPBasicOCSPResponse, p, len, data, size);
1192 : }
1193 :
1194 :
1195 : size_t ASN1CALL
1196 0 : length_OCSPBasicOCSPResponse(const OCSPBasicOCSPResponse *data)
1197 : {
1198 0 : return _asn1_length(asn1_OCSPBasicOCSPResponse, data);
1199 : }
1200 :
1201 :
1202 : void ASN1CALL
1203 0 : free_OCSPBasicOCSPResponse(OCSPBasicOCSPResponse *data)
1204 : {
1205 0 : _asn1_free_top(asn1_OCSPBasicOCSPResponse, data);
1206 0 : }
1207 :
1208 :
1209 : int ASN1CALL
1210 0 : copy_OCSPBasicOCSPResponse(const OCSPBasicOCSPResponse *from, OCSPBasicOCSPResponse *to)
1211 : {
1212 0 : return _asn1_copy_top(asn1_OCSPBasicOCSPResponse, from, to);
1213 : }
1214 :
1215 :
1216 : char * ASN1CALL
1217 0 : print_OCSPBasicOCSPResponse(const OCSPBasicOCSPResponse *data, int flags)
1218 : {
1219 0 : return _asn1_print_top(asn1_OCSPBasicOCSPResponse, flags, data);
1220 : }
1221 :
|