Regenerate asn.1 dissectors.
[metze/wireshark/wip.git] / epan / dissectors / packet-pkix1explicit.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
3 /* packet-pkix1explicit.c                                                     */
4 /* ../../tools/asn2wrs.py -b -p pkix1explicit -c ./pkix1explicit.cnf -s ./packet-pkix1explicit-template -D . -O ../../epan/dissectors PKIX1EXPLICIT93.asn IPAddrAndASCertExtn.asn */
5
6 /* Input file: packet-pkix1explicit-template.c */
7
8 #line 1 "../../asn1/pkix1explicit/packet-pkix1explicit-template.c"
9 #define BER_UNI_TAG_TeletexString           20  /* workaround bug in asn2wrs */
10
11 /* packet-pkix1explicit.c
12  * Routines for PKIX1Explitic packet dissection
13  *
14  * $Id$
15  *
16  * Wireshark - Network traffic analyzer
17  * By Gerald Combs <gerald@wireshark.org>
18  * Copyright 1998 Gerald Combs
19  *
20  * This program is free software; you can redistribute it and/or
21  * modify it under the terms of the GNU General Public License
22  * as published by the Free Software Foundation; either version 2
23  * of the License, or (at your option) any later version.
24  *
25  * This program is distributed in the hope that it will be useful,
26  * but WITHOUT ANY WARRANTY; without even the implied warranty of
27  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
28  * GNU General Public License for more details.
29  *
30  * You should have received a copy of the GNU General Public License
31  * along with this program; if not, write to the Free Software
32  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
33  */
34
35 #include "config.h"
36
37 #include <glib.h>
38 #include <epan/packet.h>
39 #include <epan/asn1.h>
40 #include <epan/oids.h>
41 #include <epan/afn.h>
42
43 #include "packet-ber.h"
44 #include "packet-pkix1explicit.h"
45 #include "packet-x509af.h"
46 #include "packet-x509if.h"
47 #include "packet-x509ce.h"
48
49 #define PNAME  "PKIX1Explicit"
50 #define PSNAME "PKIX1EXPLICIT"
51 #define PFNAME "pkix1explicit"
52
53 /* Initialize the protocol and registered fields */
54 static int proto_pkix1explicit = -1;
55 static int hf_pkix1explicit_object_identifier_id = -1;
56 static int hf_pkix1explicit_addressFamily_afn = -1;
57 static int hf_pkix1explicit_addressFamily_safi = -1;
58
59 static int ett_pkix1explicit_addressFamily = -1;
60
61
62 /*--- Included file: packet-pkix1explicit-hf.c ---*/
63 #line 1 "../../asn1/pkix1explicit/packet-pkix1explicit-hf.c"
64 static int hf_pkix1explicit_DomainParameters_PDU = -1;  /* DomainParameters */
65 static int hf_pkix1explicit_DirectoryString_PDU = -1;  /* DirectoryString */
66 static int hf_pkix1explicit_IPAddrBlocks_PDU = -1;  /* IPAddrBlocks */
67 static int hf_pkix1explicit_ASIdentifiers_PDU = -1;  /* ASIdentifiers */
68 static int hf_pkix1explicit_utcTime = -1;         /* UTCTime */
69 static int hf_pkix1explicit_generalTime = -1;     /* GeneralizedTime */
70 static int hf_pkix1explicit_Extensions_item = -1;  /* Extension */
71 static int hf_pkix1explicit_extnId = -1;          /* T_extnId */
72 static int hf_pkix1explicit_critical = -1;        /* BOOLEAN */
73 static int hf_pkix1explicit_extnValue = -1;       /* T_extnValue */
74 static int hf_pkix1explicit_p = -1;               /* INTEGER */
75 static int hf_pkix1explicit_g = -1;               /* INTEGER */
76 static int hf_pkix1explicit_q = -1;               /* INTEGER */
77 static int hf_pkix1explicit_j = -1;               /* INTEGER */
78 static int hf_pkix1explicit_validationParms = -1;  /* ValidationParms */
79 static int hf_pkix1explicit_seed = -1;            /* BIT_STRING */
80 static int hf_pkix1explicit_pgenCounter = -1;     /* INTEGER */
81 static int hf_pkix1explicit_type = -1;            /* OBJECT_IDENTIFIER */
82 static int hf_pkix1explicit_values = -1;          /* T_values */
83 static int hf_pkix1explicit_values_item = -1;     /* T_values_item */
84 static int hf_pkix1explicit_value = -1;           /* T_value */
85 static int hf_pkix1explicit_RDNSequence_item = -1;  /* RelativeDistinguishedName */
86 static int hf_pkix1explicit_RelativeDistinguishedName_item = -1;  /* AttributeTypeAndValue */
87 static int hf_pkix1explicit_type_01 = -1;         /* TeletexString */
88 static int hf_pkix1explicit_value_01 = -1;        /* TeletexString */
89 static int hf_pkix1explicit_IPAddrBlocks_item = -1;  /* IPAddressFamily */
90 static int hf_pkix1explicit_addressFamily = -1;   /* T_addressFamily */
91 static int hf_pkix1explicit_ipAddressChoice = -1;  /* IPAddressChoice */
92 static int hf_pkix1explicit_inherit = -1;         /* NULL */
93 static int hf_pkix1explicit_addressesOrRanges = -1;  /* SEQUENCE_OF_IPAddressOrRange */
94 static int hf_pkix1explicit_addressesOrRanges_item = -1;  /* IPAddressOrRange */
95 static int hf_pkix1explicit_addressPrefix = -1;   /* IPAddress */
96 static int hf_pkix1explicit_addressRange = -1;    /* IPAddressRange */
97 static int hf_pkix1explicit_min = -1;             /* IPAddress */
98 static int hf_pkix1explicit_max = -1;             /* IPAddress */
99 static int hf_pkix1explicit_asnum = -1;           /* ASIdentifierChoice */
100 static int hf_pkix1explicit_rdi = -1;             /* ASIdentifierChoice */
101 static int hf_pkix1explicit_asIdsOrRanges = -1;   /* SEQUENCE_OF_ASIdOrRange */
102 static int hf_pkix1explicit_asIdsOrRanges_item = -1;  /* ASIdOrRange */
103 static int hf_pkix1explicit_id = -1;              /* ASId */
104 static int hf_pkix1explicit_range = -1;           /* ASRange */
105 static int hf_pkix1explicit_min_01 = -1;          /* ASId */
106 static int hf_pkix1explicit_max_01 = -1;          /* ASId */
107
108 /*--- End of included file: packet-pkix1explicit-hf.c ---*/
109 #line 54 "../../asn1/pkix1explicit/packet-pkix1explicit-template.c"
110
111 /* Initialize the subtree pointers */
112
113 /*--- Included file: packet-pkix1explicit-ett.c ---*/
114 #line 1 "../../asn1/pkix1explicit/packet-pkix1explicit-ett.c"
115 static gint ett_pkix1explicit_Time = -1;
116 static gint ett_pkix1explicit_Extensions = -1;
117 static gint ett_pkix1explicit_Extension = -1;
118 static gint ett_pkix1explicit_DomainParameters = -1;
119 static gint ett_pkix1explicit_ValidationParms = -1;
120 static gint ett_pkix1explicit_Attribute = -1;
121 static gint ett_pkix1explicit_T_values = -1;
122 static gint ett_pkix1explicit_AttributeTypeAndValue = -1;
123 static gint ett_pkix1explicit_RDNSequence = -1;
124 static gint ett_pkix1explicit_RelativeDistinguishedName = -1;
125 static gint ett_pkix1explicit_TeletexDomainDefinedAttribute = -1;
126 static gint ett_pkix1explicit_IPAddrBlocks = -1;
127 static gint ett_pkix1explicit_IPAddressFamily = -1;
128 static gint ett_pkix1explicit_IPAddressChoice = -1;
129 static gint ett_pkix1explicit_SEQUENCE_OF_IPAddressOrRange = -1;
130 static gint ett_pkix1explicit_IPAddressOrRange = -1;
131 static gint ett_pkix1explicit_IPAddressRange = -1;
132 static gint ett_pkix1explicit_ASIdentifiers = -1;
133 static gint ett_pkix1explicit_ASIdentifierChoice = -1;
134 static gint ett_pkix1explicit_SEQUENCE_OF_ASIdOrRange = -1;
135 static gint ett_pkix1explicit_ASIdOrRange = -1;
136 static gint ett_pkix1explicit_ASRange = -1;
137
138 /*--- End of included file: packet-pkix1explicit-ett.c ---*/
139 #line 57 "../../asn1/pkix1explicit/packet-pkix1explicit-template.c"
140
141
142 static const char *object_identifier_id;
143
144 int
145 dissect_pkix1explicit_Certificate(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
146   offset = dissect_x509af_Certificate(implicit_tag, tvb, offset, actx, tree, hf_index);
147
148   return offset;
149 }
150 int
151 dissect_pkix1explicit_CertificateList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
152   offset = dissect_x509af_CertificateList(implicit_tag, tvb, offset, actx, tree, hf_index);
153
154   return offset;
155 }
156 int
157 dissect_pkix1explicit_GeneralName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
158   offset = dissect_x509ce_GeneralName(implicit_tag, tvb, offset, actx, tree, hf_index);
159
160   return offset;
161 }
162 int
163 dissect_pkix1explicit_Name(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
164   offset = dissect_x509if_Name(implicit_tag, tvb, offset, actx, tree, hf_index);
165
166   return offset;
167 }
168 int
169 dissect_pkix1explicit_AlgorithmIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
170   offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
171
172   return offset;
173 }
174
175 int
176 dissect_pkix1explicit_SubjectPublicKeyInfo(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
177   offset = dissect_x509af_SubjectPublicKeyInfo(implicit_tag, tvb, offset, actx, tree, hf_index);
178
179   return offset;
180 }
181
182
183
184 /*--- Included file: packet-pkix1explicit-fn.c ---*/
185 #line 1 "../../asn1/pkix1explicit/packet-pkix1explicit-fn.c"
186
187
188 int
189 dissect_pkix1explicit_UniqueIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
190   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
191                                     NULL, hf_index, -1,
192                                     NULL);
193
194   return offset;
195 }
196
197
198 const value_string pkix1explicit_Version_vals[] = {
199   {   0, "v1" },
200   {   1, "v2" },
201   {   2, "v3" },
202   { 0, NULL }
203 };
204
205
206 int
207 dissect_pkix1explicit_Version(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
208   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
209                                                 NULL);
210
211   return offset;
212 }
213
214
215
216 int
217 dissect_pkix1explicit_CertificateSerialNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
218   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
219                                                 NULL);
220
221   return offset;
222 }
223
224
225
226 static int
227 dissect_pkix1explicit_UTCTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
228   offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index);
229
230   return offset;
231 }
232
233
234
235 static int
236 dissect_pkix1explicit_GeneralizedTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
237   offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
238
239   return offset;
240 }
241
242
243 const value_string pkix1explicit_Time_vals[] = {
244   {   0, "utcTime" },
245   {   1, "generalTime" },
246   { 0, NULL }
247 };
248
249 static const ber_choice_t Time_choice[] = {
250   {   0, &hf_pkix1explicit_utcTime, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_UTCTime },
251   {   1, &hf_pkix1explicit_generalTime, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_GeneralizedTime },
252   { 0, NULL, 0, 0, 0, NULL }
253 };
254
255 int
256 dissect_pkix1explicit_Time(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
257   offset = dissect_ber_choice(actx, tree, tvb, offset,
258                                  Time_choice, hf_index, ett_pkix1explicit_Time,
259                                  NULL);
260
261   return offset;
262 }
263
264
265
266 static int
267 dissect_pkix1explicit_T_extnId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
268   offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_pkix1explicit_object_identifier_id, &object_identifier_id);
269
270   return offset;
271 }
272
273
274
275 static int
276 dissect_pkix1explicit_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
277   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
278
279   return offset;
280 }
281
282
283
284 static int
285 dissect_pkix1explicit_T_extnValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
286 #line 56 "../../asn1/pkix1explicit/pkix1explicit.cnf"
287   gint8 class;
288   gboolean pc, ind;
289   gint32 tag;
290   guint32 len;
291   /* skip past the T and L  */
292   offset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &class, &pc, &tag);
293   offset = dissect_ber_length(actx->pinfo, tree, tvb, offset, &len, &ind);
294   offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
295
296
297
298
299   return offset;
300 }
301
302
303 static const ber_sequence_t Extension_sequence[] = {
304   { &hf_pkix1explicit_extnId, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_T_extnId },
305   { &hf_pkix1explicit_critical, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_BOOLEAN },
306   { &hf_pkix1explicit_extnValue, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_T_extnValue },
307   { NULL, 0, 0, 0, NULL }
308 };
309
310 int
311 dissect_pkix1explicit_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
312   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
313                                    Extension_sequence, hf_index, ett_pkix1explicit_Extension);
314
315   return offset;
316 }
317
318
319 static const ber_sequence_t Extensions_sequence_of[1] = {
320   { &hf_pkix1explicit_Extensions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_Extension },
321 };
322
323 int
324 dissect_pkix1explicit_Extensions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
325   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
326                                       Extensions_sequence_of, hf_index, ett_pkix1explicit_Extensions);
327
328   return offset;
329 }
330
331
332
333 static int
334 dissect_pkix1explicit_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
335   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
336                                                 NULL);
337
338   return offset;
339 }
340
341
342
343 static int
344 dissect_pkix1explicit_BIT_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
345   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
346                                     NULL, hf_index, -1,
347                                     NULL);
348
349   return offset;
350 }
351
352
353 static const ber_sequence_t ValidationParms_sequence[] = {
354   { &hf_pkix1explicit_seed  , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_BIT_STRING },
355   { &hf_pkix1explicit_pgenCounter, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_INTEGER },
356   { NULL, 0, 0, 0, NULL }
357 };
358
359 static int
360 dissect_pkix1explicit_ValidationParms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
361   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
362                                    ValidationParms_sequence, hf_index, ett_pkix1explicit_ValidationParms);
363
364   return offset;
365 }
366
367
368 static const ber_sequence_t DomainParameters_sequence[] = {
369   { &hf_pkix1explicit_p     , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_INTEGER },
370   { &hf_pkix1explicit_g     , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_INTEGER },
371   { &hf_pkix1explicit_q     , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_INTEGER },
372   { &hf_pkix1explicit_j     , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_INTEGER },
373   { &hf_pkix1explicit_validationParms, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_ValidationParms },
374   { NULL, 0, 0, 0, NULL }
375 };
376
377 static int
378 dissect_pkix1explicit_DomainParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
379   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
380                                    DomainParameters_sequence, hf_index, ett_pkix1explicit_DomainParameters);
381
382   return offset;
383 }
384
385
386
387 static int
388 dissect_pkix1explicit_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
389   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
390
391   return offset;
392 }
393
394
395
396 static int
397 dissect_pkix1explicit_T_values_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
398 #line 44 "../../asn1/pkix1explicit/pkix1explicit.cnf"
399   offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
400
401
402
403   return offset;
404 }
405
406
407 static const ber_sequence_t T_values_set_of[1] = {
408   { &hf_pkix1explicit_values_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_T_values_item },
409 };
410
411 static int
412 dissect_pkix1explicit_T_values(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
413   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
414                                  T_values_set_of, hf_pkix1explicit_object_identifier_id, ett_pkix1explicit_T_values);
415
416   return offset;
417 }
418
419
420 static const ber_sequence_t Attribute_sequence[] = {
421   { &hf_pkix1explicit_type  , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_OBJECT_IDENTIFIER },
422   { &hf_pkix1explicit_values, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_T_values },
423   { NULL, 0, 0, 0, NULL }
424 };
425
426 int
427 dissect_pkix1explicit_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
428   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
429                                    Attribute_sequence, hf_index, ett_pkix1explicit_Attribute);
430
431   return offset;
432 }
433
434
435
436 static int
437 dissect_pkix1explicit_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
438 #line 50 "../../asn1/pkix1explicit/pkix1explicit.cnf"
439   offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
440
441
442
443   return offset;
444 }
445
446
447 static const ber_sequence_t AttributeTypeAndValue_sequence[] = {
448   { &hf_pkix1explicit_type  , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_OBJECT_IDENTIFIER },
449   { &hf_pkix1explicit_value , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_T_value },
450   { NULL, 0, 0, 0, NULL }
451 };
452
453 int
454 dissect_pkix1explicit_AttributeTypeAndValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
455   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
456                                    AttributeTypeAndValue_sequence, hf_index, ett_pkix1explicit_AttributeTypeAndValue);
457
458   return offset;
459 }
460
461
462 static const ber_sequence_t RelativeDistinguishedName_set_of[1] = {
463   { &hf_pkix1explicit_RelativeDistinguishedName_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_AttributeTypeAndValue },
464 };
465
466 int
467 dissect_pkix1explicit_RelativeDistinguishedName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
468   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
469                                  RelativeDistinguishedName_set_of, hf_index, ett_pkix1explicit_RelativeDistinguishedName);
470
471   return offset;
472 }
473
474
475 static const ber_sequence_t RDNSequence_sequence_of[1] = {
476   { &hf_pkix1explicit_RDNSequence_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_RelativeDistinguishedName },
477 };
478
479 int
480 dissect_pkix1explicit_RDNSequence(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
481   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
482                                       RDNSequence_sequence_of, hf_index, ett_pkix1explicit_RDNSequence);
483
484   return offset;
485 }
486
487
488
489 int
490 dissect_pkix1explicit_DirectoryString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
491 #line 38 "../../asn1/pkix1explicit/pkix1explicit.cnf"
492         offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
493
494
495
496   return offset;
497 }
498
499
500 const value_string pkix1explicit_TerminalType_vals[] = {
501   {   3, "telex" },
502   {   4, "teletex" },
503   {   5, "g3-facsimile" },
504   {   6, "g4-facsimile" },
505   {   7, "ia5-terminal" },
506   {   8, "videotex" },
507   { 0, NULL }
508 };
509
510
511 int
512 dissect_pkix1explicit_TerminalType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
513   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
514                                                 NULL);
515
516   return offset;
517 }
518
519
520
521 static int
522 dissect_pkix1explicit_TeletexString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
523   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
524                                             actx, tree, tvb, offset, hf_index,
525                                             NULL);
526
527   return offset;
528 }
529
530
531 static const ber_sequence_t TeletexDomainDefinedAttribute_sequence[] = {
532   { &hf_pkix1explicit_type_01, BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_TeletexString },
533   { &hf_pkix1explicit_value_01, BER_CLASS_UNI, BER_UNI_TAG_TeletexString, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_TeletexString },
534   { NULL, 0, 0, 0, NULL }
535 };
536
537 int
538 dissect_pkix1explicit_TeletexDomainDefinedAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
539   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
540                                    TeletexDomainDefinedAttribute_sequence, hf_index, ett_pkix1explicit_TeletexDomainDefinedAttribute);
541
542   return offset;
543 }
544
545
546
547 static int
548 dissect_pkix1explicit_T_addressFamily(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
549 #line 68 "../../asn1/pkix1explicit/pkix1explicit.cnf"
550         tvbuff_t        *parameter_tvb;
551         proto_tree *subtree;
552
553   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
554                                        &parameter_tvb);
555
556
557         if (!parameter_tvb)
558                 return offset;
559         subtree = proto_item_add_subtree(actx->created_item, ett_pkix1explicit_addressFamily);
560         proto_tree_add_item(subtree, hf_pkix1explicit_addressFamily_afn, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
561         if(tvb_length(parameter_tvb)>2)
562                 proto_tree_add_item(subtree, hf_pkix1explicit_addressFamily_safi, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
563
564
565
566
567   return offset;
568 }
569
570
571
572 static int
573 dissect_pkix1explicit_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
574   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
575
576   return offset;
577 }
578
579
580
581 static int
582 dissect_pkix1explicit_IPAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
583   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
584                                     NULL, hf_index, -1,
585                                     NULL);
586
587   return offset;
588 }
589
590
591 static const ber_sequence_t IPAddressRange_sequence[] = {
592   { &hf_pkix1explicit_min   , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_IPAddress },
593   { &hf_pkix1explicit_max   , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_IPAddress },
594   { NULL, 0, 0, 0, NULL }
595 };
596
597 static int
598 dissect_pkix1explicit_IPAddressRange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
599   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
600                                    IPAddressRange_sequence, hf_index, ett_pkix1explicit_IPAddressRange);
601
602   return offset;
603 }
604
605
606 static const value_string pkix1explicit_IPAddressOrRange_vals[] = {
607   {   0, "addressPrefix" },
608   {   1, "addressRange" },
609   { 0, NULL }
610 };
611
612 static const ber_choice_t IPAddressOrRange_choice[] = {
613   {   0, &hf_pkix1explicit_addressPrefix, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_IPAddress },
614   {   1, &hf_pkix1explicit_addressRange, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_IPAddressRange },
615   { 0, NULL, 0, 0, 0, NULL }
616 };
617
618 static int
619 dissect_pkix1explicit_IPAddressOrRange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
620   offset = dissect_ber_choice(actx, tree, tvb, offset,
621                                  IPAddressOrRange_choice, hf_index, ett_pkix1explicit_IPAddressOrRange,
622                                  NULL);
623
624   return offset;
625 }
626
627
628 static const ber_sequence_t SEQUENCE_OF_IPAddressOrRange_sequence_of[1] = {
629   { &hf_pkix1explicit_addressesOrRanges_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_pkix1explicit_IPAddressOrRange },
630 };
631
632 static int
633 dissect_pkix1explicit_SEQUENCE_OF_IPAddressOrRange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
634   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
635                                       SEQUENCE_OF_IPAddressOrRange_sequence_of, hf_index, ett_pkix1explicit_SEQUENCE_OF_IPAddressOrRange);
636
637   return offset;
638 }
639
640
641 static const value_string pkix1explicit_IPAddressChoice_vals[] = {
642   {   0, "inherit" },
643   {   1, "addressesOrRanges" },
644   { 0, NULL }
645 };
646
647 static const ber_choice_t IPAddressChoice_choice[] = {
648   {   0, &hf_pkix1explicit_inherit, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_NULL },
649   {   1, &hf_pkix1explicit_addressesOrRanges, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_SEQUENCE_OF_IPAddressOrRange },
650   { 0, NULL, 0, 0, 0, NULL }
651 };
652
653 static int
654 dissect_pkix1explicit_IPAddressChoice(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
655   offset = dissect_ber_choice(actx, tree, tvb, offset,
656                                  IPAddressChoice_choice, hf_index, ett_pkix1explicit_IPAddressChoice,
657                                  NULL);
658
659   return offset;
660 }
661
662
663 static const ber_sequence_t IPAddressFamily_sequence[] = {
664   { &hf_pkix1explicit_addressFamily, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_T_addressFamily },
665   { &hf_pkix1explicit_ipAddressChoice, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_pkix1explicit_IPAddressChoice },
666   { NULL, 0, 0, 0, NULL }
667 };
668
669 static int
670 dissect_pkix1explicit_IPAddressFamily(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
671   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
672                                    IPAddressFamily_sequence, hf_index, ett_pkix1explicit_IPAddressFamily);
673
674   return offset;
675 }
676
677
678 static const ber_sequence_t IPAddrBlocks_sequence_of[1] = {
679   { &hf_pkix1explicit_IPAddrBlocks_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_IPAddressFamily },
680 };
681
682 static int
683 dissect_pkix1explicit_IPAddrBlocks(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
684   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
685                                       IPAddrBlocks_sequence_of, hf_index, ett_pkix1explicit_IPAddrBlocks);
686
687   return offset;
688 }
689
690
691
692 static int
693 dissect_pkix1explicit_ASId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
694   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
695                                                 NULL);
696
697   return offset;
698 }
699
700
701 static const ber_sequence_t ASRange_sequence[] = {
702   { &hf_pkix1explicit_min_01, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_ASId },
703   { &hf_pkix1explicit_max_01, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_ASId },
704   { NULL, 0, 0, 0, NULL }
705 };
706
707 static int
708 dissect_pkix1explicit_ASRange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
709   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
710                                    ASRange_sequence, hf_index, ett_pkix1explicit_ASRange);
711
712   return offset;
713 }
714
715
716 static const value_string pkix1explicit_ASIdOrRange_vals[] = {
717   {   0, "id" },
718   {   1, "range" },
719   { 0, NULL }
720 };
721
722 static const ber_choice_t ASIdOrRange_choice[] = {
723   {   0, &hf_pkix1explicit_id    , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_ASId },
724   {   1, &hf_pkix1explicit_range , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_ASRange },
725   { 0, NULL, 0, 0, 0, NULL }
726 };
727
728 static int
729 dissect_pkix1explicit_ASIdOrRange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
730   offset = dissect_ber_choice(actx, tree, tvb, offset,
731                                  ASIdOrRange_choice, hf_index, ett_pkix1explicit_ASIdOrRange,
732                                  NULL);
733
734   return offset;
735 }
736
737
738 static const ber_sequence_t SEQUENCE_OF_ASIdOrRange_sequence_of[1] = {
739   { &hf_pkix1explicit_asIdsOrRanges_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_pkix1explicit_ASIdOrRange },
740 };
741
742 static int
743 dissect_pkix1explicit_SEQUENCE_OF_ASIdOrRange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
744   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
745                                       SEQUENCE_OF_ASIdOrRange_sequence_of, hf_index, ett_pkix1explicit_SEQUENCE_OF_ASIdOrRange);
746
747   return offset;
748 }
749
750
751 static const value_string pkix1explicit_ASIdentifierChoice_vals[] = {
752   {   0, "inherit" },
753   {   1, "asIdsOrRanges" },
754   { 0, NULL }
755 };
756
757 static const ber_choice_t ASIdentifierChoice_choice[] = {
758   {   0, &hf_pkix1explicit_inherit, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_NULL },
759   {   1, &hf_pkix1explicit_asIdsOrRanges, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_pkix1explicit_SEQUENCE_OF_ASIdOrRange },
760   { 0, NULL, 0, 0, 0, NULL }
761 };
762
763 static int
764 dissect_pkix1explicit_ASIdentifierChoice(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
765   offset = dissect_ber_choice(actx, tree, tvb, offset,
766                                  ASIdentifierChoice_choice, hf_index, ett_pkix1explicit_ASIdentifierChoice,
767                                  NULL);
768
769   return offset;
770 }
771
772
773 static const ber_sequence_t ASIdentifiers_sequence[] = {
774   { &hf_pkix1explicit_asnum , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_pkix1explicit_ASIdentifierChoice },
775   { &hf_pkix1explicit_rdi   , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_pkix1explicit_ASIdentifierChoice },
776   { NULL, 0, 0, 0, NULL }
777 };
778
779 static int
780 dissect_pkix1explicit_ASIdentifiers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
781   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
782                                    ASIdentifiers_sequence, hf_index, ett_pkix1explicit_ASIdentifiers);
783
784   return offset;
785 }
786
787 /*--- PDUs ---*/
788
789 static void dissect_DomainParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
790   asn1_ctx_t asn1_ctx;
791   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
792   dissect_pkix1explicit_DomainParameters(FALSE, tvb, 0, &asn1_ctx, tree, hf_pkix1explicit_DomainParameters_PDU);
793 }
794 static void dissect_DirectoryString_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
795   asn1_ctx_t asn1_ctx;
796   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
797   dissect_pkix1explicit_DirectoryString(FALSE, tvb, 0, &asn1_ctx, tree, hf_pkix1explicit_DirectoryString_PDU);
798 }
799 static void dissect_IPAddrBlocks_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
800   asn1_ctx_t asn1_ctx;
801   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
802   dissect_pkix1explicit_IPAddrBlocks(FALSE, tvb, 0, &asn1_ctx, tree, hf_pkix1explicit_IPAddrBlocks_PDU);
803 }
804 static void dissect_ASIdentifiers_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
805   asn1_ctx_t asn1_ctx;
806   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
807   dissect_pkix1explicit_ASIdentifiers(FALSE, tvb, 0, &asn1_ctx, tree, hf_pkix1explicit_ASIdentifiers_PDU);
808 }
809
810
811 /*--- End of included file: packet-pkix1explicit-fn.c ---*/
812 #line 101 "../../asn1/pkix1explicit/packet-pkix1explicit-template.c"
813
814
815 /*--- proto_register_pkix1explicit ----------------------------------------------*/
816 void proto_register_pkix1explicit(void) {
817
818   /* List of fields */
819   static hf_register_info hf[] = {
820     { &hf_pkix1explicit_object_identifier_id,
821       { "Id", "pkix1explicit.id", FT_STRING, BASE_NONE, NULL, 0,
822         "Object identifier Id", HFILL }},
823
824     { &hf_pkix1explicit_addressFamily_afn,
825       { "Address family(AFN)", "pkix1explicit.addressfamily", FT_UINT16, BASE_DEC, VALS(afn_vals), 0,
826         NULL, HFILL }},
827
828     { &hf_pkix1explicit_addressFamily_safi,
829       { "Subsequent Address Family Identifiers (SAFI)", "pkix1explicit.addressfamily.safi", FT_UINT16, BASE_DEC, NULL, 0,
830         "Subsequent Address Family Identifiers (SAFI) RFC4760", HFILL }},
831
832 /*--- Included file: packet-pkix1explicit-hfarr.c ---*/
833 #line 1 "../../asn1/pkix1explicit/packet-pkix1explicit-hfarr.c"
834     { &hf_pkix1explicit_DomainParameters_PDU,
835       { "DomainParameters", "pkix1explicit.DomainParameters",
836         FT_NONE, BASE_NONE, NULL, 0,
837         NULL, HFILL }},
838     { &hf_pkix1explicit_DirectoryString_PDU,
839       { "DirectoryString", "pkix1explicit.DirectoryString",
840         FT_STRING, BASE_NONE, NULL, 0,
841         NULL, HFILL }},
842     { &hf_pkix1explicit_IPAddrBlocks_PDU,
843       { "IPAddrBlocks", "pkix1explicit.IPAddrBlocks",
844         FT_UINT32, BASE_DEC, NULL, 0,
845         NULL, HFILL }},
846     { &hf_pkix1explicit_ASIdentifiers_PDU,
847       { "ASIdentifiers", "pkix1explicit.ASIdentifiers",
848         FT_NONE, BASE_NONE, NULL, 0,
849         NULL, HFILL }},
850     { &hf_pkix1explicit_utcTime,
851       { "utcTime", "pkix1explicit.utcTime",
852         FT_STRING, BASE_NONE, NULL, 0,
853         NULL, HFILL }},
854     { &hf_pkix1explicit_generalTime,
855       { "generalTime", "pkix1explicit.generalTime",
856         FT_STRING, BASE_NONE, NULL, 0,
857         "GeneralizedTime", HFILL }},
858     { &hf_pkix1explicit_Extensions_item,
859       { "Extension", "pkix1explicit.Extension",
860         FT_NONE, BASE_NONE, NULL, 0,
861         NULL, HFILL }},
862     { &hf_pkix1explicit_extnId,
863       { "extnId", "pkix1explicit.extnId",
864         FT_OID, BASE_NONE, NULL, 0,
865         NULL, HFILL }},
866     { &hf_pkix1explicit_critical,
867       { "critical", "pkix1explicit.critical",
868         FT_BOOLEAN, BASE_NONE, NULL, 0,
869         "BOOLEAN", HFILL }},
870     { &hf_pkix1explicit_extnValue,
871       { "extnValue", "pkix1explicit.extnValue",
872         FT_BYTES, BASE_NONE, NULL, 0,
873         NULL, HFILL }},
874     { &hf_pkix1explicit_p,
875       { "p", "pkix1explicit.p",
876         FT_INT32, BASE_DEC, NULL, 0,
877         "INTEGER", HFILL }},
878     { &hf_pkix1explicit_g,
879       { "g", "pkix1explicit.g",
880         FT_INT32, BASE_DEC, NULL, 0,
881         "INTEGER", HFILL }},
882     { &hf_pkix1explicit_q,
883       { "q", "pkix1explicit.q",
884         FT_INT32, BASE_DEC, NULL, 0,
885         "INTEGER", HFILL }},
886     { &hf_pkix1explicit_j,
887       { "j", "pkix1explicit.j",
888         FT_INT32, BASE_DEC, NULL, 0,
889         "INTEGER", HFILL }},
890     { &hf_pkix1explicit_validationParms,
891       { "validationParms", "pkix1explicit.validationParms",
892         FT_NONE, BASE_NONE, NULL, 0,
893         NULL, HFILL }},
894     { &hf_pkix1explicit_seed,
895       { "seed", "pkix1explicit.seed",
896         FT_BYTES, BASE_NONE, NULL, 0,
897         "BIT_STRING", HFILL }},
898     { &hf_pkix1explicit_pgenCounter,
899       { "pgenCounter", "pkix1explicit.pgenCounter",
900         FT_INT32, BASE_DEC, NULL, 0,
901         "INTEGER", HFILL }},
902     { &hf_pkix1explicit_type,
903       { "type", "pkix1explicit.type",
904         FT_OID, BASE_NONE, NULL, 0,
905         "OBJECT_IDENTIFIER", HFILL }},
906     { &hf_pkix1explicit_values,
907       { "values", "pkix1explicit.values",
908         FT_UINT32, BASE_DEC, NULL, 0,
909         NULL, HFILL }},
910     { &hf_pkix1explicit_values_item,
911       { "values item", "pkix1explicit.values_item",
912         FT_NONE, BASE_NONE, NULL, 0,
913         NULL, HFILL }},
914     { &hf_pkix1explicit_value,
915       { "value", "pkix1explicit.value",
916         FT_NONE, BASE_NONE, NULL, 0,
917         NULL, HFILL }},
918     { &hf_pkix1explicit_RDNSequence_item,
919       { "RelativeDistinguishedName", "pkix1explicit.RelativeDistinguishedName",
920         FT_UINT32, BASE_DEC, NULL, 0,
921         NULL, HFILL }},
922     { &hf_pkix1explicit_RelativeDistinguishedName_item,
923       { "AttributeTypeAndValue", "pkix1explicit.AttributeTypeAndValue",
924         FT_NONE, BASE_NONE, NULL, 0,
925         NULL, HFILL }},
926     { &hf_pkix1explicit_type_01,
927       { "type", "pkix1explicit.type",
928         FT_STRING, BASE_NONE, NULL, 0,
929         "TeletexString", HFILL }},
930     { &hf_pkix1explicit_value_01,
931       { "value", "pkix1explicit.value",
932         FT_STRING, BASE_NONE, NULL, 0,
933         "TeletexString", HFILL }},
934     { &hf_pkix1explicit_IPAddrBlocks_item,
935       { "IPAddressFamily", "pkix1explicit.IPAddressFamily",
936         FT_NONE, BASE_NONE, NULL, 0,
937         NULL, HFILL }},
938     { &hf_pkix1explicit_addressFamily,
939       { "addressFamily", "pkix1explicit.addressFamily",
940         FT_BYTES, BASE_NONE, NULL, 0,
941         NULL, HFILL }},
942     { &hf_pkix1explicit_ipAddressChoice,
943       { "ipAddressChoice", "pkix1explicit.ipAddressChoice",
944         FT_UINT32, BASE_DEC, VALS(pkix1explicit_IPAddressChoice_vals), 0,
945         NULL, HFILL }},
946     { &hf_pkix1explicit_inherit,
947       { "inherit", "pkix1explicit.inherit",
948         FT_NONE, BASE_NONE, NULL, 0,
949         NULL, HFILL }},
950     { &hf_pkix1explicit_addressesOrRanges,
951       { "addressesOrRanges", "pkix1explicit.addressesOrRanges",
952         FT_UINT32, BASE_DEC, NULL, 0,
953         "SEQUENCE_OF_IPAddressOrRange", HFILL }},
954     { &hf_pkix1explicit_addressesOrRanges_item,
955       { "IPAddressOrRange", "pkix1explicit.IPAddressOrRange",
956         FT_UINT32, BASE_DEC, VALS(pkix1explicit_IPAddressOrRange_vals), 0,
957         NULL, HFILL }},
958     { &hf_pkix1explicit_addressPrefix,
959       { "addressPrefix", "pkix1explicit.addressPrefix",
960         FT_BYTES, BASE_NONE, NULL, 0,
961         "IPAddress", HFILL }},
962     { &hf_pkix1explicit_addressRange,
963       { "addressRange", "pkix1explicit.addressRange",
964         FT_NONE, BASE_NONE, NULL, 0,
965         "IPAddressRange", HFILL }},
966     { &hf_pkix1explicit_min,
967       { "min", "pkix1explicit.min",
968         FT_BYTES, BASE_NONE, NULL, 0,
969         "IPAddress", HFILL }},
970     { &hf_pkix1explicit_max,
971       { "max", "pkix1explicit.max",
972         FT_BYTES, BASE_NONE, NULL, 0,
973         "IPAddress", HFILL }},
974     { &hf_pkix1explicit_asnum,
975       { "asnum", "pkix1explicit.asnum",
976         FT_UINT32, BASE_DEC, VALS(pkix1explicit_ASIdentifierChoice_vals), 0,
977         "ASIdentifierChoice", HFILL }},
978     { &hf_pkix1explicit_rdi,
979       { "rdi", "pkix1explicit.rdi",
980         FT_UINT32, BASE_DEC, VALS(pkix1explicit_ASIdentifierChoice_vals), 0,
981         "ASIdentifierChoice", HFILL }},
982     { &hf_pkix1explicit_asIdsOrRanges,
983       { "asIdsOrRanges", "pkix1explicit.asIdsOrRanges",
984         FT_UINT32, BASE_DEC, NULL, 0,
985         "SEQUENCE_OF_ASIdOrRange", HFILL }},
986     { &hf_pkix1explicit_asIdsOrRanges_item,
987       { "ASIdOrRange", "pkix1explicit.ASIdOrRange",
988         FT_UINT32, BASE_DEC, VALS(pkix1explicit_ASIdOrRange_vals), 0,
989         NULL, HFILL }},
990     { &hf_pkix1explicit_id,
991       { "id", "pkix1explicit.id",
992         FT_INT32, BASE_DEC, NULL, 0,
993         "ASId", HFILL }},
994     { &hf_pkix1explicit_range,
995       { "range", "pkix1explicit.range",
996         FT_NONE, BASE_NONE, NULL, 0,
997         "ASRange", HFILL }},
998     { &hf_pkix1explicit_min_01,
999       { "min", "pkix1explicit.min",
1000         FT_INT32, BASE_DEC, NULL, 0,
1001         "ASId", HFILL }},
1002     { &hf_pkix1explicit_max_01,
1003       { "max", "pkix1explicit.max",
1004         FT_INT32, BASE_DEC, NULL, 0,
1005         "ASId", HFILL }},
1006
1007 /*--- End of included file: packet-pkix1explicit-hfarr.c ---*/
1008 #line 120 "../../asn1/pkix1explicit/packet-pkix1explicit-template.c"
1009   };
1010
1011   /* List of subtrees */
1012   static gint *ett[] = {
1013           &ett_pkix1explicit_addressFamily,
1014
1015 /*--- Included file: packet-pkix1explicit-ettarr.c ---*/
1016 #line 1 "../../asn1/pkix1explicit/packet-pkix1explicit-ettarr.c"
1017     &ett_pkix1explicit_Time,
1018     &ett_pkix1explicit_Extensions,
1019     &ett_pkix1explicit_Extension,
1020     &ett_pkix1explicit_DomainParameters,
1021     &ett_pkix1explicit_ValidationParms,
1022     &ett_pkix1explicit_Attribute,
1023     &ett_pkix1explicit_T_values,
1024     &ett_pkix1explicit_AttributeTypeAndValue,
1025     &ett_pkix1explicit_RDNSequence,
1026     &ett_pkix1explicit_RelativeDistinguishedName,
1027     &ett_pkix1explicit_TeletexDomainDefinedAttribute,
1028     &ett_pkix1explicit_IPAddrBlocks,
1029     &ett_pkix1explicit_IPAddressFamily,
1030     &ett_pkix1explicit_IPAddressChoice,
1031     &ett_pkix1explicit_SEQUENCE_OF_IPAddressOrRange,
1032     &ett_pkix1explicit_IPAddressOrRange,
1033     &ett_pkix1explicit_IPAddressRange,
1034     &ett_pkix1explicit_ASIdentifiers,
1035     &ett_pkix1explicit_ASIdentifierChoice,
1036     &ett_pkix1explicit_SEQUENCE_OF_ASIdOrRange,
1037     &ett_pkix1explicit_ASIdOrRange,
1038     &ett_pkix1explicit_ASRange,
1039
1040 /*--- End of included file: packet-pkix1explicit-ettarr.c ---*/
1041 #line 126 "../../asn1/pkix1explicit/packet-pkix1explicit-template.c"
1042   };
1043
1044   /* Register protocol */
1045   proto_pkix1explicit = proto_register_protocol(PNAME, PSNAME, PFNAME);
1046
1047   /* Register fields and subtrees */
1048   proto_register_field_array(proto_pkix1explicit, hf, array_length(hf));
1049   proto_register_subtree_array(ett, array_length(ett));
1050
1051 }
1052
1053
1054 /*--- proto_reg_handoff_pkix1explicit -------------------------------------------*/
1055 void proto_reg_handoff_pkix1explicit(void) {
1056         oid_add_from_string("id-pkix","1.3.6.1.5.5.7");
1057         oid_add_from_string("id-dsa-with-sha1","1.2.840.10040.4.3");
1058
1059 /*--- Included file: packet-pkix1explicit-dis-tab.c ---*/
1060 #line 1 "../../asn1/pkix1explicit/packet-pkix1explicit-dis-tab.c"
1061   register_ber_oid_dissector("1.3.6.1.5.5.7.2.1", dissect_DirectoryString_PDU, proto_pkix1explicit, "id-qt-cps");
1062   register_ber_oid_dissector("1.2.840.10046.2.1", dissect_DomainParameters_PDU, proto_pkix1explicit, "dhpublicnumber");
1063   register_ber_oid_dissector("1.3.6.1.5.5.7.1.7", dissect_IPAddrBlocks_PDU, proto_pkix1explicit, "id-pe-ipAddrBlocks");
1064   register_ber_oid_dissector("1.3.6.1.5.5.7.1.8", dissect_ASIdentifiers_PDU, proto_pkix1explicit, "id-pe-autonomousSysIds");
1065
1066
1067 /*--- End of included file: packet-pkix1explicit-dis-tab.c ---*/
1068 #line 143 "../../asn1/pkix1explicit/packet-pkix1explicit-template.c"
1069 }
1070