b3d83382ae31263babe56ae61479b78aa220ecaa
[obnox/wireshark/wip.git] / epan / dissectors / packet-pkixqualified.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler    */
3 /* ./packet-pkixqualified.c                                                   */
4 /* ../../tools/asn2eth.py -X -b -e -p pkixqualified -c pkixqualified.cnf -s packet-pkixqualified-template PKIXqualified.asn */
5
6 /* Input file: packet-pkixqualified-template.c */
7
8 #line 1 "packet-pkixqualified-template.c"
9 /* packet-pkixqualified.c
10  * Routines for RFC3739 PKIXqualified packet dissection
11  *  Ronnie Sahlberg 2004
12  *
13  * $Id$
14  *
15  * Wireshark - Network traffic analyzer
16  * By Gerald Combs <gerald@wireshark.org>
17  * Copyright 1998 Gerald Combs
18  *
19  * This program is free software; you can redistribute it and/or
20  * modify it under the terms of the GNU General Public License
21  * as published by the Free Software Foundation; either version 2
22  * of the License, or (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program; if not, write to the Free Software
31  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
32  */
33
34 #ifdef HAVE_CONFIG_H
35 # include "config.h"
36 #endif
37
38 #include <glib.h>
39 #include <epan/packet.h>
40 #include <epan/conversation.h>
41
42 #include <stdio.h>
43 #include <string.h>
44
45 #include "packet-ber.h"
46 #include "packet-pkixqualified.h"
47 #include "packet-x509af.h"
48 #include "packet-x509ce.h"
49 #include "packet-x509sat.h"
50
51 #define PNAME  "PKIX Qualified"
52 #define PSNAME "PKIXQUALIFIED"
53 #define PFNAME "pkixqualified"
54
55 /* Initialize the protocol and registered fields */
56 int proto_pkixqualified = -1;
57
58 /*--- Included file: packet-pkixqualified-hf.c ---*/
59 #line 1 "packet-pkixqualified-hf.c"
60 static int hf_pkixqualified_Generalizedtime_PDU = -1;  /* Generalizedtime */
61 static int hf_pkixqualified_Directorystring_PDU = -1;  /* Directorystring */
62 static int hf_pkixqualified_Printablestring_PDU = -1;  /* Printablestring */
63 static int hf_pkixqualified_BiometricSyntax_PDU = -1;  /* BiometricSyntax */
64 static int hf_pkixqualified_QCStatements_PDU = -1;  /* QCStatements */
65 static int hf_pkixqualified_SemanticsInformation_PDU = -1;  /* SemanticsInformation */
66 static int hf_pkixqualified_BiometricSyntax_item = -1;  /* BiometricData */
67 static int hf_pkixqualified_typeOfBiometricData = -1;  /* TypeOfBiometricData */
68 static int hf_pkixqualified_hashAlgorithm = -1;   /* AlgorithmIdentifier */
69 static int hf_pkixqualified_biometricDataHash = -1;  /* OCTET_STRING */
70 static int hf_pkixqualified_sourceDataUri = -1;   /* IA5String */
71 static int hf_pkixqualified_predefinedBiometricType = -1;  /* PredefinedBiometricType */
72 static int hf_pkixqualified_biometricDataOid = -1;  /* OBJECT_IDENTIFIER */
73 static int hf_pkixqualified_QCStatements_item = -1;  /* QCStatement */
74 static int hf_pkixqualified_statementId = -1;     /* T_statementId */
75 static int hf_pkixqualified_statementInfo = -1;   /* T_statementInfo */
76 static int hf_pkixqualified_semanticsIdentifier = -1;  /* OBJECT_IDENTIFIER */
77 static int hf_pkixqualified_nameRegistrationAuthorities = -1;  /* NameRegistrationAuthorities */
78 static int hf_pkixqualified_NameRegistrationAuthorities_item = -1;  /* GeneralName */
79
80 /*--- End of included file: packet-pkixqualified-hf.c ---*/
81 #line 50 "packet-pkixqualified-template.c"
82
83 /* Initialize the subtree pointers */
84
85 /*--- Included file: packet-pkixqualified-ett.c ---*/
86 #line 1 "packet-pkixqualified-ett.c"
87 static gint ett_pkixqualified_BiometricSyntax = -1;
88 static gint ett_pkixqualified_BiometricData = -1;
89 static gint ett_pkixqualified_TypeOfBiometricData = -1;
90 static gint ett_pkixqualified_QCStatements = -1;
91 static gint ett_pkixqualified_QCStatement = -1;
92 static gint ett_pkixqualified_SemanticsInformation = -1;
93 static gint ett_pkixqualified_NameRegistrationAuthorities = -1;
94
95 /*--- End of included file: packet-pkixqualified-ett.c ---*/
96 #line 53 "packet-pkixqualified-template.c"
97
98 static const char *object_identifier_id;
99
100
101 /*--- Included file: packet-pkixqualified-fn.c ---*/
102 #line 1 "packet-pkixqualified-fn.c"
103 /*--- Fields for imported types ---*/
104
105 static int dissect_hashAlgorithm(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
106   return dissect_x509af_AlgorithmIdentifier(FALSE, tvb, offset, pinfo, tree, hf_pkixqualified_hashAlgorithm);
107 }
108 static int dissect_NameRegistrationAuthorities_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
109   return dissect_x509ce_GeneralName(FALSE, tvb, offset, pinfo, tree, hf_pkixqualified_NameRegistrationAuthorities_item);
110 }
111
112
113
114 static int
115 dissect_pkixqualified_Generalizedtime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
116   offset = dissect_ber_GeneralizedTime(implicit_tag, pinfo, tree, tvb, offset, hf_index);
117
118   return offset;
119 }
120
121
122
123 static int
124 dissect_pkixqualified_Directorystring(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
125   offset = dissect_x509sat_DirectoryString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
126
127   return offset;
128 }
129
130
131
132 static int
133 dissect_pkixqualified_Printablestring(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
134   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
135                                             pinfo, tree, tvb, offset, hf_index,
136                                             NULL);
137
138   return offset;
139 }
140
141
142 static const value_string pkixqualified_PredefinedBiometricType_vals[] = {
143   {   0, "picture" },
144   {   1, "handwritten-signature" },
145   { 0, NULL }
146 };
147
148
149 static int
150 dissect_pkixqualified_PredefinedBiometricType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
151   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
152                                   NULL);
153
154   return offset;
155 }
156 static int dissect_predefinedBiometricType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
157   return dissect_pkixqualified_PredefinedBiometricType(FALSE, tvb, offset, pinfo, tree, hf_pkixqualified_predefinedBiometricType);
158 }
159
160
161
162 static int
163 dissect_pkixqualified_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
164   offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
165
166   return offset;
167 }
168 static int dissect_biometricDataOid(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
169   return dissect_pkixqualified_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_pkixqualified_biometricDataOid);
170 }
171 static int dissect_semanticsIdentifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
172   return dissect_pkixqualified_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_pkixqualified_semanticsIdentifier);
173 }
174
175
176 static const value_string pkixqualified_TypeOfBiometricData_vals[] = {
177   {   0, "predefinedBiometricType" },
178   {   1, "biometricDataOid" },
179   { 0, NULL }
180 };
181
182 static const ber_choice_t TypeOfBiometricData_choice[] = {
183   {   0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_predefinedBiometricType },
184   {   1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_biometricDataOid },
185   { 0, 0, 0, 0, NULL }
186 };
187
188 static int
189 dissect_pkixqualified_TypeOfBiometricData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
190   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
191                                  TypeOfBiometricData_choice, hf_index, ett_pkixqualified_TypeOfBiometricData,
192                                  NULL);
193
194   return offset;
195 }
196 static int dissect_typeOfBiometricData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
197   return dissect_pkixqualified_TypeOfBiometricData(FALSE, tvb, offset, pinfo, tree, hf_pkixqualified_typeOfBiometricData);
198 }
199
200
201
202 static int
203 dissect_pkixqualified_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
204   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
205                                        NULL);
206
207   return offset;
208 }
209 static int dissect_biometricDataHash(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
210   return dissect_pkixqualified_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_pkixqualified_biometricDataHash);
211 }
212
213
214
215 static int
216 dissect_pkixqualified_IA5String(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
217   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
218                                             pinfo, tree, tvb, offset, hf_index,
219                                             NULL);
220
221   return offset;
222 }
223 static int dissect_sourceDataUri(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
224   return dissect_pkixqualified_IA5String(FALSE, tvb, offset, pinfo, tree, hf_pkixqualified_sourceDataUri);
225 }
226
227
228 static const ber_sequence_t BiometricData_sequence[] = {
229   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_typeOfBiometricData },
230   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_hashAlgorithm },
231   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_biometricDataHash },
232   { BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_sourceDataUri },
233   { 0, 0, 0, NULL }
234 };
235
236 static int
237 dissect_pkixqualified_BiometricData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
238   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
239                                    BiometricData_sequence, hf_index, ett_pkixqualified_BiometricData);
240
241   return offset;
242 }
243 static int dissect_BiometricSyntax_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
244   return dissect_pkixqualified_BiometricData(FALSE, tvb, offset, pinfo, tree, hf_pkixqualified_BiometricSyntax_item);
245 }
246
247
248 static const ber_sequence_t BiometricSyntax_sequence_of[1] = {
249   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_BiometricSyntax_item },
250 };
251
252 static int
253 dissect_pkixqualified_BiometricSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
254   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
255                                       BiometricSyntax_sequence_of, hf_index, ett_pkixqualified_BiometricSyntax);
256
257   return offset;
258 }
259
260
261
262 static int
263 dissect_pkixqualified_T_statementId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
264   offset = dissect_ber_object_identifier_str(implicit_tag, pinfo, tree, tvb, offset, hf_pkixqualified_statementId, &object_identifier_id);
265
266   return offset;
267 }
268 static int dissect_statementId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
269   return dissect_pkixqualified_T_statementId(FALSE, tvb, offset, pinfo, tree, hf_pkixqualified_statementId);
270 }
271
272
273
274 static int
275 dissect_pkixqualified_T_statementInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
276 #line 38 "pkixqualified.cnf"
277   offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
278
279
280
281   return offset;
282 }
283 static int dissect_statementInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
284   return dissect_pkixqualified_T_statementInfo(FALSE, tvb, offset, pinfo, tree, hf_pkixqualified_statementInfo);
285 }
286
287
288 static const ber_sequence_t QCStatement_sequence[] = {
289   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_statementId },
290   { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_statementInfo },
291   { 0, 0, 0, NULL }
292 };
293
294 static int
295 dissect_pkixqualified_QCStatement(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
296   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
297                                    QCStatement_sequence, hf_index, ett_pkixqualified_QCStatement);
298
299   return offset;
300 }
301 static int dissect_QCStatements_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
302   return dissect_pkixqualified_QCStatement(FALSE, tvb, offset, pinfo, tree, hf_pkixqualified_QCStatements_item);
303 }
304
305
306 static const ber_sequence_t QCStatements_sequence_of[1] = {
307   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_QCStatements_item },
308 };
309
310 static int
311 dissect_pkixqualified_QCStatements(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
312   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
313                                       QCStatements_sequence_of, hf_index, ett_pkixqualified_QCStatements);
314
315   return offset;
316 }
317
318
319 static const ber_sequence_t NameRegistrationAuthorities_sequence_of[1] = {
320   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_NameRegistrationAuthorities_item },
321 };
322
323 static int
324 dissect_pkixqualified_NameRegistrationAuthorities(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
325   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
326                                       NameRegistrationAuthorities_sequence_of, hf_index, ett_pkixqualified_NameRegistrationAuthorities);
327
328   return offset;
329 }
330 static int dissect_nameRegistrationAuthorities(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
331   return dissect_pkixqualified_NameRegistrationAuthorities(FALSE, tvb, offset, pinfo, tree, hf_pkixqualified_nameRegistrationAuthorities);
332 }
333
334
335 static const ber_sequence_t SemanticsInformation_sequence[] = {
336   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_semanticsIdentifier },
337   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_nameRegistrationAuthorities },
338   { 0, 0, 0, NULL }
339 };
340
341 static int
342 dissect_pkixqualified_SemanticsInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
343   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
344                                    SemanticsInformation_sequence, hf_index, ett_pkixqualified_SemanticsInformation);
345
346   return offset;
347 }
348
349 /*--- PDUs ---*/
350
351 static void dissect_Generalizedtime_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
352   dissect_pkixqualified_Generalizedtime(FALSE, tvb, 0, pinfo, tree, hf_pkixqualified_Generalizedtime_PDU);
353 }
354 static void dissect_Directorystring_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
355   dissect_pkixqualified_Directorystring(FALSE, tvb, 0, pinfo, tree, hf_pkixqualified_Directorystring_PDU);
356 }
357 static void dissect_Printablestring_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
358   dissect_pkixqualified_Printablestring(FALSE, tvb, 0, pinfo, tree, hf_pkixqualified_Printablestring_PDU);
359 }
360 static void dissect_BiometricSyntax_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
361   dissect_pkixqualified_BiometricSyntax(FALSE, tvb, 0, pinfo, tree, hf_pkixqualified_BiometricSyntax_PDU);
362 }
363 static void dissect_QCStatements_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
364   dissect_pkixqualified_QCStatements(FALSE, tvb, 0, pinfo, tree, hf_pkixqualified_QCStatements_PDU);
365 }
366 static void dissect_SemanticsInformation_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
367   dissect_pkixqualified_SemanticsInformation(FALSE, tvb, 0, pinfo, tree, hf_pkixqualified_SemanticsInformation_PDU);
368 }
369
370
371 /*--- End of included file: packet-pkixqualified-fn.c ---*/
372 #line 57 "packet-pkixqualified-template.c"
373
374
375 /*--- proto_register_pkixqualified ----------------------------------------------*/
376 void proto_register_pkixqualified(void) {
377
378   /* List of fields */
379   static hf_register_info hf[] = {
380
381 /*--- Included file: packet-pkixqualified-hfarr.c ---*/
382 #line 1 "packet-pkixqualified-hfarr.c"
383     { &hf_pkixqualified_Generalizedtime_PDU,
384       { "Generalizedtime", "pkixqualified.Generalizedtime",
385         FT_STRING, BASE_NONE, NULL, 0,
386         "Generalizedtime", HFILL }},
387     { &hf_pkixqualified_Directorystring_PDU,
388       { "Directorystring", "pkixqualified.Directorystring",
389         FT_STRING, BASE_NONE, NULL, 0,
390         "Directorystring", HFILL }},
391     { &hf_pkixqualified_Printablestring_PDU,
392       { "Printablestring", "pkixqualified.Printablestring",
393         FT_STRING, BASE_NONE, NULL, 0,
394         "Printablestring", HFILL }},
395     { &hf_pkixqualified_BiometricSyntax_PDU,
396       { "BiometricSyntax", "pkixqualified.BiometricSyntax",
397         FT_UINT32, BASE_DEC, NULL, 0,
398         "BiometricSyntax", HFILL }},
399     { &hf_pkixqualified_QCStatements_PDU,
400       { "QCStatements", "pkixqualified.QCStatements",
401         FT_UINT32, BASE_DEC, NULL, 0,
402         "QCStatements", HFILL }},
403     { &hf_pkixqualified_SemanticsInformation_PDU,
404       { "SemanticsInformation", "pkixqualified.SemanticsInformation",
405         FT_NONE, BASE_NONE, NULL, 0,
406         "SemanticsInformation", HFILL }},
407     { &hf_pkixqualified_BiometricSyntax_item,
408       { "Item", "pkixqualified.BiometricSyntax_item",
409         FT_NONE, BASE_NONE, NULL, 0,
410         "BiometricSyntax/_item", HFILL }},
411     { &hf_pkixqualified_typeOfBiometricData,
412       { "typeOfBiometricData", "pkixqualified.typeOfBiometricData",
413         FT_UINT32, BASE_DEC, VALS(pkixqualified_TypeOfBiometricData_vals), 0,
414         "BiometricData/typeOfBiometricData", HFILL }},
415     { &hf_pkixqualified_hashAlgorithm,
416       { "hashAlgorithm", "pkixqualified.hashAlgorithm",
417         FT_NONE, BASE_NONE, NULL, 0,
418         "BiometricData/hashAlgorithm", HFILL }},
419     { &hf_pkixqualified_biometricDataHash,
420       { "biometricDataHash", "pkixqualified.biometricDataHash",
421         FT_BYTES, BASE_HEX, NULL, 0,
422         "BiometricData/biometricDataHash", HFILL }},
423     { &hf_pkixqualified_sourceDataUri,
424       { "sourceDataUri", "pkixqualified.sourceDataUri",
425         FT_STRING, BASE_NONE, NULL, 0,
426         "BiometricData/sourceDataUri", HFILL }},
427     { &hf_pkixqualified_predefinedBiometricType,
428       { "predefinedBiometricType", "pkixqualified.predefinedBiometricType",
429         FT_INT32, BASE_DEC, VALS(pkixqualified_PredefinedBiometricType_vals), 0,
430         "TypeOfBiometricData/predefinedBiometricType", HFILL }},
431     { &hf_pkixqualified_biometricDataOid,
432       { "biometricDataOid", "pkixqualified.biometricDataOid",
433         FT_OID, BASE_NONE, NULL, 0,
434         "TypeOfBiometricData/biometricDataOid", HFILL }},
435     { &hf_pkixqualified_QCStatements_item,
436       { "Item", "pkixqualified.QCStatements_item",
437         FT_NONE, BASE_NONE, NULL, 0,
438         "QCStatements/_item", HFILL }},
439     { &hf_pkixqualified_statementId,
440       { "statementId", "pkixqualified.statementId",
441         FT_OID, BASE_NONE, NULL, 0,
442         "QCStatement/statementId", HFILL }},
443     { &hf_pkixqualified_statementInfo,
444       { "statementInfo", "pkixqualified.statementInfo",
445         FT_NONE, BASE_NONE, NULL, 0,
446         "QCStatement/statementInfo", HFILL }},
447     { &hf_pkixqualified_semanticsIdentifier,
448       { "semanticsIdentifier", "pkixqualified.semanticsIdentifier",
449         FT_OID, BASE_NONE, NULL, 0,
450         "SemanticsInformation/semanticsIdentifier", HFILL }},
451     { &hf_pkixqualified_nameRegistrationAuthorities,
452       { "nameRegistrationAuthorities", "pkixqualified.nameRegistrationAuthorities",
453         FT_UINT32, BASE_DEC, NULL, 0,
454         "SemanticsInformation/nameRegistrationAuthorities", HFILL }},
455     { &hf_pkixqualified_NameRegistrationAuthorities_item,
456       { "Item", "pkixqualified.NameRegistrationAuthorities_item",
457         FT_UINT32, BASE_DEC, VALS(x509ce_GeneralName_vals), 0,
458         "NameRegistrationAuthorities/_item", HFILL }},
459
460 /*--- End of included file: packet-pkixqualified-hfarr.c ---*/
461 #line 65 "packet-pkixqualified-template.c"
462   };
463
464   /* List of subtrees */
465   static gint *ett[] = {
466
467 /*--- Included file: packet-pkixqualified-ettarr.c ---*/
468 #line 1 "packet-pkixqualified-ettarr.c"
469     &ett_pkixqualified_BiometricSyntax,
470     &ett_pkixqualified_BiometricData,
471     &ett_pkixqualified_TypeOfBiometricData,
472     &ett_pkixqualified_QCStatements,
473     &ett_pkixqualified_QCStatement,
474     &ett_pkixqualified_SemanticsInformation,
475     &ett_pkixqualified_NameRegistrationAuthorities,
476
477 /*--- End of included file: packet-pkixqualified-ettarr.c ---*/
478 #line 70 "packet-pkixqualified-template.c"
479   };
480
481   /* Register protocol */
482   proto_pkixqualified = proto_register_protocol(PNAME, PSNAME, PFNAME);
483
484   /* Register fields and subtrees */
485   proto_register_field_array(proto_pkixqualified, hf, array_length(hf));
486   proto_register_subtree_array(ett, array_length(ett));
487
488 }
489
490
491 /*--- proto_reg_handoff_pkixqualified -------------------------------------------*/
492 void proto_reg_handoff_pkixqualified(void) {
493
494 /*--- Included file: packet-pkixqualified-dis-tab.c ---*/
495 #line 1 "packet-pkixqualified-dis-tab.c"
496   register_ber_oid_dissector("1.3.6.1.5.5.7.1.2", dissect_BiometricSyntax_PDU, proto_pkixqualified, "id-pe-biometricInfo");
497   register_ber_oid_dissector("1.3.6.1.5.5.7.1.3", dissect_QCStatements_PDU, proto_pkixqualified, "id-pe-qcStatements");
498   register_ber_oid_dissector("1.3.6.1.5.5.7.11.1", dissect_SemanticsInformation_PDU, proto_pkixqualified, "id-qcs-pkixQCSyntax-v1");
499   register_ber_oid_dissector("1.3.6.1.5.5.7.11.2", dissect_SemanticsInformation_PDU, proto_pkixqualified, "id-qcs-pkixQCSyntax-v2");
500   register_ber_oid_dissector("1.3.6.1.5.5.7.9.1", dissect_Generalizedtime_PDU, proto_pkixqualified, "id-pda-dateOfBirth");
501   register_ber_oid_dissector("1.3.6.1.5.5.7.9.2", dissect_Directorystring_PDU, proto_pkixqualified, "id-pda-placeOfBirth");
502   register_ber_oid_dissector("1.3.6.1.5.5.7.9.3", dissect_Printablestring_PDU, proto_pkixqualified, "id-pda-gender");
503   register_ber_oid_dissector("1.3.6.1.5.5.7.9.4", dissect_Printablestring_PDU, proto_pkixqualified, "id-pda-countryOfCitizenship");
504   register_ber_oid_dissector("1.3.6.1.5.5.7.9.5", dissect_Printablestring_PDU, proto_pkixqualified, "id-pda-countryOfResidence");
505
506
507 /*--- End of included file: packet-pkixqualified-dis-tab.c ---*/
508 #line 85 "packet-pkixqualified-template.c"
509 }
510