From Didier Gautheron:
[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/asn2wrs.py -b -p pkixqualified -c ./pkixqualified.cnf -s ./packet-pkixqualified-template -D . 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/asn1.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_XmppAddr_PDU = -1;    /* XmppAddr */
67 static int hf_pkixqualified_BiometricSyntax_item = -1;  /* BiometricData */
68 static int hf_pkixqualified_typeOfBiometricData = -1;  /* TypeOfBiometricData */
69 static int hf_pkixqualified_hashAlgorithm = -1;   /* AlgorithmIdentifier */
70 static int hf_pkixqualified_biometricDataHash = -1;  /* OCTET_STRING */
71 static int hf_pkixqualified_sourceDataUri = -1;   /* IA5String */
72 static int hf_pkixqualified_predefinedBiometricType = -1;  /* PredefinedBiometricType */
73 static int hf_pkixqualified_biometricDataOid = -1;  /* OBJECT_IDENTIFIER */
74 static int hf_pkixqualified_QCStatements_item = -1;  /* QCStatement */
75 static int hf_pkixqualified_statementId = -1;     /* T_statementId */
76 static int hf_pkixqualified_statementInfo = -1;   /* T_statementInfo */
77 static int hf_pkixqualified_semanticsIdentifier = -1;  /* OBJECT_IDENTIFIER */
78 static int hf_pkixqualified_nameRegistrationAuthorities = -1;  /* NameRegistrationAuthorities */
79 static int hf_pkixqualified_NameRegistrationAuthorities_item = -1;  /* GeneralName */
80
81 /*--- End of included file: packet-pkixqualified-hf.c ---*/
82 #line 50 "packet-pkixqualified-template.c"
83
84 /* Initialize the subtree pointers */
85
86 /*--- Included file: packet-pkixqualified-ett.c ---*/
87 #line 1 "packet-pkixqualified-ett.c"
88 static gint ett_pkixqualified_BiometricSyntax = -1;
89 static gint ett_pkixqualified_BiometricData = -1;
90 static gint ett_pkixqualified_TypeOfBiometricData = -1;
91 static gint ett_pkixqualified_QCStatements = -1;
92 static gint ett_pkixqualified_QCStatement = -1;
93 static gint ett_pkixqualified_SemanticsInformation = -1;
94 static gint ett_pkixqualified_NameRegistrationAuthorities = -1;
95
96 /*--- End of included file: packet-pkixqualified-ett.c ---*/
97 #line 53 "packet-pkixqualified-template.c"
98
99 static const char *object_identifier_id;
100
101
102 /*--- Included file: packet-pkixqualified-fn.c ---*/
103 #line 1 "packet-pkixqualified-fn.c"
104
105
106 static int
107 dissect_pkixqualified_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_) {
108   offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
109
110   return offset;
111 }
112
113
114
115 static int
116 dissect_pkixqualified_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_) {
117   offset = dissect_x509sat_DirectoryString(implicit_tag, tvb, offset, actx, tree, hf_index);
118
119   return offset;
120 }
121
122
123
124 static int
125 dissect_pkixqualified_Printablestring(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
126   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
127                                             actx, tree, tvb, offset, hf_index,
128                                             NULL);
129
130   return offset;
131 }
132
133
134 static const value_string pkixqualified_PredefinedBiometricType_vals[] = {
135   {   0, "picture" },
136   {   1, "handwritten-signature" },
137   { 0, NULL }
138 };
139
140
141 static int
142 dissect_pkixqualified_PredefinedBiometricType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
143   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
144                                                 NULL);
145
146   return offset;
147 }
148
149
150
151 static int
152 dissect_pkixqualified_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_) {
153   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
154
155   return offset;
156 }
157
158
159 static const value_string pkixqualified_TypeOfBiometricData_vals[] = {
160   {   0, "predefinedBiometricType" },
161   {   1, "biometricDataOid" },
162   { 0, NULL }
163 };
164
165 static const ber_choice_t TypeOfBiometricData_choice[] = {
166   {   0, &hf_pkixqualified_predefinedBiometricType, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pkixqualified_PredefinedBiometricType },
167   {   1, &hf_pkixqualified_biometricDataOid, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_pkixqualified_OBJECT_IDENTIFIER },
168   { 0, NULL, 0, 0, 0, NULL }
169 };
170
171 static int
172 dissect_pkixqualified_TypeOfBiometricData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
173   offset = dissect_ber_choice(actx, tree, tvb, offset,
174                                  TypeOfBiometricData_choice, hf_index, ett_pkixqualified_TypeOfBiometricData,
175                                  NULL);
176
177   return offset;
178 }
179
180
181
182 static int
183 dissect_pkixqualified_OCTET_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_) {
184   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
185                                        NULL);
186
187   return offset;
188 }
189
190
191
192 static int
193 dissect_pkixqualified_IA5String(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
194   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
195                                             actx, tree, tvb, offset, hf_index,
196                                             NULL);
197
198   return offset;
199 }
200
201
202 static const ber_sequence_t BiometricData_sequence[] = {
203   { &hf_pkixqualified_typeOfBiometricData, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_pkixqualified_TypeOfBiometricData },
204   { &hf_pkixqualified_hashAlgorithm, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
205   { &hf_pkixqualified_biometricDataHash, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_pkixqualified_OCTET_STRING },
206   { &hf_pkixqualified_sourceDataUri, BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_pkixqualified_IA5String },
207   { NULL, 0, 0, 0, NULL }
208 };
209
210 static int
211 dissect_pkixqualified_BiometricData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
212   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
213                                    BiometricData_sequence, hf_index, ett_pkixqualified_BiometricData);
214
215   return offset;
216 }
217
218
219 static const ber_sequence_t BiometricSyntax_sequence_of[1] = {
220   { &hf_pkixqualified_BiometricSyntax_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_pkixqualified_BiometricData },
221 };
222
223 static int
224 dissect_pkixqualified_BiometricSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
225   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
226                                       BiometricSyntax_sequence_of, hf_index, ett_pkixqualified_BiometricSyntax);
227
228   return offset;
229 }
230
231
232
233 static int
234 dissect_pkixqualified_T_statementId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
235   offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_pkixqualified_statementId, &object_identifier_id);
236
237   return offset;
238 }
239
240
241
242 static int
243 dissect_pkixqualified_T_statementInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
244 #line 34 "pkixqualified.cnf"
245   offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
246
247
248
249   return offset;
250 }
251
252
253 static const ber_sequence_t QCStatement_sequence[] = {
254   { &hf_pkixqualified_statementId, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_pkixqualified_T_statementId },
255   { &hf_pkixqualified_statementInfo, BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_pkixqualified_T_statementInfo },
256   { NULL, 0, 0, 0, NULL }
257 };
258
259 static int
260 dissect_pkixqualified_QCStatement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
261   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
262                                    QCStatement_sequence, hf_index, ett_pkixqualified_QCStatement);
263
264   return offset;
265 }
266
267
268 static const ber_sequence_t QCStatements_sequence_of[1] = {
269   { &hf_pkixqualified_QCStatements_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_pkixqualified_QCStatement },
270 };
271
272 static int
273 dissect_pkixqualified_QCStatements(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
274   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
275                                       QCStatements_sequence_of, hf_index, ett_pkixqualified_QCStatements);
276
277   return offset;
278 }
279
280
281 static const ber_sequence_t NameRegistrationAuthorities_sequence_of[1] = {
282   { &hf_pkixqualified_NameRegistrationAuthorities_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x509ce_GeneralName },
283 };
284
285 static int
286 dissect_pkixqualified_NameRegistrationAuthorities(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
287   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
288                                       NameRegistrationAuthorities_sequence_of, hf_index, ett_pkixqualified_NameRegistrationAuthorities);
289
290   return offset;
291 }
292
293
294 static const ber_sequence_t SemanticsInformation_sequence[] = {
295   { &hf_pkixqualified_semanticsIdentifier, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_pkixqualified_OBJECT_IDENTIFIER },
296   { &hf_pkixqualified_nameRegistrationAuthorities, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_pkixqualified_NameRegistrationAuthorities },
297   { NULL, 0, 0, 0, NULL }
298 };
299
300 static int
301 dissect_pkixqualified_SemanticsInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
302   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
303                                    SemanticsInformation_sequence, hf_index, ett_pkixqualified_SemanticsInformation);
304
305   return offset;
306 }
307
308
309
310 static int
311 dissect_pkixqualified_XmppAddr(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_restricted_string(implicit_tag, BER_UNI_TAG_UTF8String,
313                                             actx, tree, tvb, offset, hf_index,
314                                             NULL);
315
316   return offset;
317 }
318
319 /*--- PDUs ---*/
320
321 static void dissect_Generalizedtime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
322   asn1_ctx_t asn1_ctx;
323   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
324   dissect_pkixqualified_Generalizedtime(FALSE, tvb, 0, &asn1_ctx, tree, hf_pkixqualified_Generalizedtime_PDU);
325 }
326 static void dissect_Directorystring_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
327   asn1_ctx_t asn1_ctx;
328   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
329   dissect_pkixqualified_Directorystring(FALSE, tvb, 0, &asn1_ctx, tree, hf_pkixqualified_Directorystring_PDU);
330 }
331 static void dissect_Printablestring_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
332   asn1_ctx_t asn1_ctx;
333   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
334   dissect_pkixqualified_Printablestring(FALSE, tvb, 0, &asn1_ctx, tree, hf_pkixqualified_Printablestring_PDU);
335 }
336 static void dissect_BiometricSyntax_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
337   asn1_ctx_t asn1_ctx;
338   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
339   dissect_pkixqualified_BiometricSyntax(FALSE, tvb, 0, &asn1_ctx, tree, hf_pkixqualified_BiometricSyntax_PDU);
340 }
341 static void dissect_QCStatements_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
342   asn1_ctx_t asn1_ctx;
343   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
344   dissect_pkixqualified_QCStatements(FALSE, tvb, 0, &asn1_ctx, tree, hf_pkixqualified_QCStatements_PDU);
345 }
346 static void dissect_SemanticsInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
347   asn1_ctx_t asn1_ctx;
348   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
349   dissect_pkixqualified_SemanticsInformation(FALSE, tvb, 0, &asn1_ctx, tree, hf_pkixqualified_SemanticsInformation_PDU);
350 }
351 static void dissect_XmppAddr_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
352   asn1_ctx_t asn1_ctx;
353   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
354   dissect_pkixqualified_XmppAddr(FALSE, tvb, 0, &asn1_ctx, tree, hf_pkixqualified_XmppAddr_PDU);
355 }
356
357
358 /*--- End of included file: packet-pkixqualified-fn.c ---*/
359 #line 57 "packet-pkixqualified-template.c"
360
361
362 /*--- proto_register_pkixqualified ----------------------------------------------*/
363 void proto_register_pkixqualified(void) {
364
365   /* List of fields */
366   static hf_register_info hf[] = {
367
368 /*--- Included file: packet-pkixqualified-hfarr.c ---*/
369 #line 1 "packet-pkixqualified-hfarr.c"
370     { &hf_pkixqualified_Generalizedtime_PDU,
371       { "Generalizedtime", "pkixqualified.Generalizedtime",
372         FT_STRING, BASE_NONE, NULL, 0,
373         "pkixqualified.Generalizedtime", HFILL }},
374     { &hf_pkixqualified_Directorystring_PDU,
375       { "Directorystring", "pkixqualified.Directorystring",
376         FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
377         "pkixqualified.Directorystring", HFILL }},
378     { &hf_pkixqualified_Printablestring_PDU,
379       { "Printablestring", "pkixqualified.Printablestring",
380         FT_STRING, BASE_NONE, NULL, 0,
381         "pkixqualified.Printablestring", HFILL }},
382     { &hf_pkixqualified_BiometricSyntax_PDU,
383       { "BiometricSyntax", "pkixqualified.BiometricSyntax",
384         FT_UINT32, BASE_DEC, NULL, 0,
385         "pkixqualified.BiometricSyntax", HFILL }},
386     { &hf_pkixqualified_QCStatements_PDU,
387       { "QCStatements", "pkixqualified.QCStatements",
388         FT_UINT32, BASE_DEC, NULL, 0,
389         "pkixqualified.QCStatements", HFILL }},
390     { &hf_pkixqualified_SemanticsInformation_PDU,
391       { "SemanticsInformation", "pkixqualified.SemanticsInformation",
392         FT_NONE, BASE_NONE, NULL, 0,
393         "pkixqualified.SemanticsInformation", HFILL }},
394     { &hf_pkixqualified_XmppAddr_PDU,
395       { "XmppAddr", "pkixqualified.XmppAddr",
396         FT_STRING, BASE_NONE, NULL, 0,
397         "pkixqualified.XmppAddr", HFILL }},
398     { &hf_pkixqualified_BiometricSyntax_item,
399       { "BiometricData", "pkixqualified.BiometricData",
400         FT_NONE, BASE_NONE, NULL, 0,
401         "pkixqualified.BiometricData", HFILL }},
402     { &hf_pkixqualified_typeOfBiometricData,
403       { "typeOfBiometricData", "pkixqualified.typeOfBiometricData",
404         FT_UINT32, BASE_DEC, VALS(pkixqualified_TypeOfBiometricData_vals), 0,
405         "pkixqualified.TypeOfBiometricData", HFILL }},
406     { &hf_pkixqualified_hashAlgorithm,
407       { "hashAlgorithm", "pkixqualified.hashAlgorithm",
408         FT_NONE, BASE_NONE, NULL, 0,
409         "x509af.AlgorithmIdentifier", HFILL }},
410     { &hf_pkixqualified_biometricDataHash,
411       { "biometricDataHash", "pkixqualified.biometricDataHash",
412         FT_BYTES, BASE_NONE, NULL, 0,
413         "pkixqualified.OCTET_STRING", HFILL }},
414     { &hf_pkixqualified_sourceDataUri,
415       { "sourceDataUri", "pkixqualified.sourceDataUri",
416         FT_STRING, BASE_NONE, NULL, 0,
417         "pkixqualified.IA5String", HFILL }},
418     { &hf_pkixqualified_predefinedBiometricType,
419       { "predefinedBiometricType", "pkixqualified.predefinedBiometricType",
420         FT_INT32, BASE_DEC, VALS(pkixqualified_PredefinedBiometricType_vals), 0,
421         "pkixqualified.PredefinedBiometricType", HFILL }},
422     { &hf_pkixqualified_biometricDataOid,
423       { "biometricDataOid", "pkixqualified.biometricDataOid",
424         FT_OID, BASE_NONE, NULL, 0,
425         "pkixqualified.OBJECT_IDENTIFIER", HFILL }},
426     { &hf_pkixqualified_QCStatements_item,
427       { "QCStatement", "pkixqualified.QCStatement",
428         FT_NONE, BASE_NONE, NULL, 0,
429         "pkixqualified.QCStatement", HFILL }},
430     { &hf_pkixqualified_statementId,
431       { "statementId", "pkixqualified.statementId",
432         FT_OID, BASE_NONE, NULL, 0,
433         "pkixqualified.T_statementId", HFILL }},
434     { &hf_pkixqualified_statementInfo,
435       { "statementInfo", "pkixqualified.statementInfo",
436         FT_NONE, BASE_NONE, NULL, 0,
437         "pkixqualified.T_statementInfo", HFILL }},
438     { &hf_pkixqualified_semanticsIdentifier,
439       { "semanticsIdentifier", "pkixqualified.semanticsIdentifier",
440         FT_OID, BASE_NONE, NULL, 0,
441         "pkixqualified.OBJECT_IDENTIFIER", HFILL }},
442     { &hf_pkixqualified_nameRegistrationAuthorities,
443       { "nameRegistrationAuthorities", "pkixqualified.nameRegistrationAuthorities",
444         FT_UINT32, BASE_DEC, NULL, 0,
445         "pkixqualified.NameRegistrationAuthorities", HFILL }},
446     { &hf_pkixqualified_NameRegistrationAuthorities_item,
447       { "GeneralName", "pkixqualified.GeneralName",
448         FT_UINT32, BASE_DEC, VALS(x509ce_GeneralName_vals), 0,
449         "x509ce.GeneralName", HFILL }},
450
451 /*--- End of included file: packet-pkixqualified-hfarr.c ---*/
452 #line 65 "packet-pkixqualified-template.c"
453   };
454
455   /* List of subtrees */
456   static gint *ett[] = {
457
458 /*--- Included file: packet-pkixqualified-ettarr.c ---*/
459 #line 1 "packet-pkixqualified-ettarr.c"
460     &ett_pkixqualified_BiometricSyntax,
461     &ett_pkixqualified_BiometricData,
462     &ett_pkixqualified_TypeOfBiometricData,
463     &ett_pkixqualified_QCStatements,
464     &ett_pkixqualified_QCStatement,
465     &ett_pkixqualified_SemanticsInformation,
466     &ett_pkixqualified_NameRegistrationAuthorities,
467
468 /*--- End of included file: packet-pkixqualified-ettarr.c ---*/
469 #line 70 "packet-pkixqualified-template.c"
470   };
471
472   /* Register protocol */
473   proto_pkixqualified = proto_register_protocol(PNAME, PSNAME, PFNAME);
474
475   /* Register fields and subtrees */
476   proto_register_field_array(proto_pkixqualified, hf, array_length(hf));
477   proto_register_subtree_array(ett, array_length(ett));
478
479 }
480
481
482 /*--- proto_reg_handoff_pkixqualified -------------------------------------------*/
483 void proto_reg_handoff_pkixqualified(void) {
484
485 /*--- Included file: packet-pkixqualified-dis-tab.c ---*/
486 #line 1 "packet-pkixqualified-dis-tab.c"
487   register_ber_oid_dissector("1.3.6.1.5.5.7.1.2", dissect_BiometricSyntax_PDU, proto_pkixqualified, "id-pe-biometricInfo");
488   register_ber_oid_dissector("1.3.6.1.5.5.7.1.3", dissect_QCStatements_PDU, proto_pkixqualified, "id-pe-qcStatements");
489   register_ber_oid_dissector("1.3.6.1.5.5.7.11.1", dissect_SemanticsInformation_PDU, proto_pkixqualified, "id-qcs-pkixQCSyntax-v1");
490   register_ber_oid_dissector("1.3.6.1.5.5.7.11.2", dissect_SemanticsInformation_PDU, proto_pkixqualified, "id-qcs-pkixQCSyntax-v2");
491   register_ber_oid_dissector("1.3.6.1.5.5.7.8.5", dissect_XmppAddr_PDU, proto_pkixqualified, "id-on-xmppAddr");
492   register_ber_oid_dissector("1.3.6.1.5.5.7.9.1", dissect_Generalizedtime_PDU, proto_pkixqualified, "id-pda-dateOfBirth");
493   register_ber_oid_dissector("1.3.6.1.5.5.7.9.2", dissect_Directorystring_PDU, proto_pkixqualified, "id-pda-placeOfBirth");
494   register_ber_oid_dissector("1.3.6.1.5.5.7.9.3", dissect_Printablestring_PDU, proto_pkixqualified, "id-pda-gender");
495   register_ber_oid_dissector("1.3.6.1.5.5.7.9.4", dissect_Printablestring_PDU, proto_pkixqualified, "id-pda-countryOfCitizenship");
496   register_ber_oid_dissector("1.3.6.1.5.5.7.9.5", dissect_Printablestring_PDU, proto_pkixqualified, "id-pda-countryOfResidence");
497
498
499 /*--- End of included file: packet-pkixqualified-dis-tab.c ---*/
500 #line 85 "packet-pkixqualified-template.c"
501 }
502