6784664fcbb33751e4e0fcdc4c7cee11548aecf2
[obnox/wireshark/wip.git] / epan / dissectors / packet-logotypecertextn.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
3 /* packet-logotypecertextn.c                                                  */
4 /* ../../tools/asn2wrs.py -b -p logotypecertextn -c ./logotypecertextn.cnf -s ./packet-logotypecertextn-template -D . LogotypeCertExtn.asn */
5
6 /* Input file: packet-logotypecertextn-template.c */
7
8 #line 1 "packet-logotypecertextn-template.c"
9 /* packet-logotypecertextn.c
10  * Routines for RFC3709 Logotype Certificate Extensions 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
41 #include <string.h>
42
43 #include "packet-ber.h"
44 #include "packet-logotypecertextn.h"
45 #include "packet-x509af.h"
46
47 #define PNAME  "Logotype Certificate Extensions"
48 #define PSNAME "LogotypeCertExtn"
49 #define PFNAME "logotypecertextn"
50
51 /* Initialize the protocol and registered fields */
52 static int proto_logotypecertextn = -1;
53
54 /*--- Included file: packet-logotypecertextn-hf.c ---*/
55 #line 1 "packet-logotypecertextn-hf.c"
56 static int hf_logotypecertextn_LogotypeExtn_PDU = -1;  /* LogotypeExtn */
57 static int hf_logotypecertextn_communityLogos = -1;  /* SEQUENCE_OF_LogotypeInfo */
58 static int hf_logotypecertextn_communityLogos_item = -1;  /* LogotypeInfo */
59 static int hf_logotypecertextn_issuerLogo = -1;   /* LogotypeInfo */
60 static int hf_logotypecertextn_subjectLogo = -1;  /* LogotypeInfo */
61 static int hf_logotypecertextn_otherLogos = -1;   /* SEQUENCE_OF_OtherLogotypeInfo */
62 static int hf_logotypecertextn_otherLogos_item = -1;  /* OtherLogotypeInfo */
63 static int hf_logotypecertextn_direct = -1;       /* LogotypeData */
64 static int hf_logotypecertextn_indirect = -1;     /* LogotypeReference */
65 static int hf_logotypecertextn_image = -1;        /* SEQUENCE_OF_LogotypeImage */
66 static int hf_logotypecertextn_image_item = -1;   /* LogotypeImage */
67 static int hf_logotypecertextn_audio = -1;        /* SEQUENCE_OF_LogotypeAudio */
68 static int hf_logotypecertextn_audio_item = -1;   /* LogotypeAudio */
69 static int hf_logotypecertextn_imageDetails = -1;  /* LogotypeDetails */
70 static int hf_logotypecertextn_imageInfo = -1;    /* LogotypeImageInfo */
71 static int hf_logotypecertextn_audioDetails = -1;  /* LogotypeDetails */
72 static int hf_logotypecertextn_audioInfo = -1;    /* LogotypeAudioInfo */
73 static int hf_logotypecertextn_mediaType = -1;    /* IA5String */
74 static int hf_logotypecertextn_logotypeHash = -1;  /* SEQUENCE_SIZE_1_MAX_OF_HashAlgAndValue */
75 static int hf_logotypecertextn_logotypeHash_item = -1;  /* HashAlgAndValue */
76 static int hf_logotypecertextn_logotypeURI = -1;  /* T_logotypeURI */
77 static int hf_logotypecertextn_logotypeURI_item = -1;  /* T_logotypeURI_item */
78 static int hf_logotypecertextn_type = -1;         /* LogotypeImageType */
79 static int hf_logotypecertextn_fileSize = -1;     /* INTEGER */
80 static int hf_logotypecertextn_xSize = -1;        /* INTEGER */
81 static int hf_logotypecertextn_ySize = -1;        /* INTEGER */
82 static int hf_logotypecertextn_resolution = -1;   /* LogotypeImageResolution */
83 static int hf_logotypecertextn_language = -1;     /* IA5String */
84 static int hf_logotypecertextn_numBits = -1;      /* INTEGER */
85 static int hf_logotypecertextn_tableSize = -1;    /* INTEGER */
86 static int hf_logotypecertextn_playTime = -1;     /* INTEGER */
87 static int hf_logotypecertextn_channels = -1;     /* INTEGER */
88 static int hf_logotypecertextn_sampleRate = -1;   /* INTEGER */
89 static int hf_logotypecertextn_logotypeType = -1;  /* OBJECT_IDENTIFIER */
90 static int hf_logotypecertextn_info = -1;         /* LogotypeInfo */
91 static int hf_logotypecertextn_refStructHash = -1;  /* SEQUENCE_SIZE_1_MAX_OF_HashAlgAndValue */
92 static int hf_logotypecertextn_refStructHash_item = -1;  /* HashAlgAndValue */
93 static int hf_logotypecertextn_refStructURI = -1;  /* T_refStructURI */
94 static int hf_logotypecertextn_refStructURI_item = -1;  /* T_refStructURI_item */
95 static int hf_logotypecertextn_hashAlg = -1;      /* AlgorithmIdentifier */
96 static int hf_logotypecertextn_hashValue = -1;    /* OCTET_STRING */
97
98 /*--- End of included file: packet-logotypecertextn-hf.c ---*/
99 #line 46 "packet-logotypecertextn-template.c"
100
101 /* Initialize the subtree pointers */
102
103 /*--- Included file: packet-logotypecertextn-ett.c ---*/
104 #line 1 "packet-logotypecertextn-ett.c"
105 static gint ett_logotypecertextn_LogotypeExtn = -1;
106 static gint ett_logotypecertextn_SEQUENCE_OF_LogotypeInfo = -1;
107 static gint ett_logotypecertextn_SEQUENCE_OF_OtherLogotypeInfo = -1;
108 static gint ett_logotypecertextn_LogotypeInfo = -1;
109 static gint ett_logotypecertextn_LogotypeData = -1;
110 static gint ett_logotypecertextn_SEQUENCE_OF_LogotypeImage = -1;
111 static gint ett_logotypecertextn_SEQUENCE_OF_LogotypeAudio = -1;
112 static gint ett_logotypecertextn_LogotypeImage = -1;
113 static gint ett_logotypecertextn_LogotypeAudio = -1;
114 static gint ett_logotypecertextn_LogotypeDetails = -1;
115 static gint ett_logotypecertextn_SEQUENCE_SIZE_1_MAX_OF_HashAlgAndValue = -1;
116 static gint ett_logotypecertextn_T_logotypeURI = -1;
117 static gint ett_logotypecertextn_LogotypeImageInfo = -1;
118 static gint ett_logotypecertextn_LogotypeImageResolution = -1;
119 static gint ett_logotypecertextn_LogotypeAudioInfo = -1;
120 static gint ett_logotypecertextn_OtherLogotypeInfo = -1;
121 static gint ett_logotypecertextn_LogotypeReference = -1;
122 static gint ett_logotypecertextn_T_refStructURI = -1;
123 static gint ett_logotypecertextn_HashAlgAndValue = -1;
124
125 /*--- End of included file: packet-logotypecertextn-ett.c ---*/
126 #line 49 "packet-logotypecertextn-template.c"
127
128
129
130 /*--- Included file: packet-logotypecertextn-fn.c ---*/
131 #line 1 "packet-logotypecertextn-fn.c"
132
133
134 static int
135 dissect_logotypecertextn_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_) {
136   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
137                                             actx, tree, tvb, offset, hf_index,
138                                             NULL);
139
140   return offset;
141 }
142
143
144
145 static int
146 dissect_logotypecertextn_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_) {
147   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
148                                        NULL);
149
150   return offset;
151 }
152
153
154 static const ber_sequence_t HashAlgAndValue_sequence[] = {
155   { &hf_logotypecertextn_hashAlg, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
156   { &hf_logotypecertextn_hashValue, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_OCTET_STRING },
157   { NULL, 0, 0, 0, NULL }
158 };
159
160 static int
161 dissect_logotypecertextn_HashAlgAndValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
162   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
163                                    HashAlgAndValue_sequence, hf_index, ett_logotypecertextn_HashAlgAndValue);
164
165   return offset;
166 }
167
168
169 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_HashAlgAndValue_sequence_of[1] = {
170   { &hf_logotypecertextn_logotypeHash_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_HashAlgAndValue },
171 };
172
173 static int
174 dissect_logotypecertextn_SEQUENCE_SIZE_1_MAX_OF_HashAlgAndValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
175   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
176                                       SEQUENCE_SIZE_1_MAX_OF_HashAlgAndValue_sequence_of, hf_index, ett_logotypecertextn_SEQUENCE_SIZE_1_MAX_OF_HashAlgAndValue);
177
178   return offset;
179 }
180
181
182
183 static int
184 dissect_logotypecertextn_T_logotypeURI_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_) {
185   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
186                                             actx, tree, tvb, offset, hf_index,
187                                             NULL);
188
189 #line 18 "logotypecertextn.cnf"
190            PROTO_ITEM_SET_URL(actx->created_item);
191
192
193   return offset;
194 }
195
196
197 static const ber_sequence_t T_logotypeURI_sequence_of[1] = {
198   { &hf_logotypecertextn_logotypeURI_item, BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_T_logotypeURI_item },
199 };
200
201 static int
202 dissect_logotypecertextn_T_logotypeURI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
203   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
204                                       T_logotypeURI_sequence_of, hf_index, ett_logotypecertextn_T_logotypeURI);
205
206   return offset;
207 }
208
209
210 static const ber_sequence_t LogotypeDetails_sequence[] = {
211   { &hf_logotypecertextn_mediaType, BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_IA5String },
212   { &hf_logotypecertextn_logotypeHash, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_SEQUENCE_SIZE_1_MAX_OF_HashAlgAndValue },
213   { &hf_logotypecertextn_logotypeURI, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_T_logotypeURI },
214   { NULL, 0, 0, 0, NULL }
215 };
216
217 static int
218 dissect_logotypecertextn_LogotypeDetails(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
219   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
220                                    LogotypeDetails_sequence, hf_index, ett_logotypecertextn_LogotypeDetails);
221
222   return offset;
223 }
224
225
226 static const value_string logotypecertextn_LogotypeImageType_vals[] = {
227   {   0, "grayScale" },
228   {   1, "color" },
229   { 0, NULL }
230 };
231
232
233 static int
234 dissect_logotypecertextn_LogotypeImageType(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_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
236                                                 NULL);
237
238   return offset;
239 }
240
241
242
243 static int
244 dissect_logotypecertextn_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_) {
245   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
246                                                 NULL);
247
248   return offset;
249 }
250
251
252 static const value_string logotypecertextn_LogotypeImageResolution_vals[] = {
253   {   1, "numBits" },
254   {   2, "tableSize" },
255   { 0, NULL }
256 };
257
258 static const ber_choice_t LogotypeImageResolution_choice[] = {
259   {   1, &hf_logotypecertextn_numBits, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_logotypecertextn_INTEGER },
260   {   2, &hf_logotypecertextn_tableSize, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_logotypecertextn_INTEGER },
261   { 0, NULL, 0, 0, 0, NULL }
262 };
263
264 static int
265 dissect_logotypecertextn_LogotypeImageResolution(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
266   offset = dissect_ber_choice(actx, tree, tvb, offset,
267                                  LogotypeImageResolution_choice, hf_index, ett_logotypecertextn_LogotypeImageResolution,
268                                  NULL);
269
270   return offset;
271 }
272
273
274 static const ber_sequence_t LogotypeImageInfo_sequence[] = {
275   { &hf_logotypecertextn_type, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_logotypecertextn_LogotypeImageType },
276   { &hf_logotypecertextn_fileSize, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_INTEGER },
277   { &hf_logotypecertextn_xSize, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_INTEGER },
278   { &hf_logotypecertextn_ySize, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_INTEGER },
279   { &hf_logotypecertextn_resolution, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_logotypecertextn_LogotypeImageResolution },
280   { &hf_logotypecertextn_language, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_logotypecertextn_IA5String },
281   { NULL, 0, 0, 0, NULL }
282 };
283
284 static int
285 dissect_logotypecertextn_LogotypeImageInfo(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   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
287                                    LogotypeImageInfo_sequence, hf_index, ett_logotypecertextn_LogotypeImageInfo);
288
289   return offset;
290 }
291
292
293 static const ber_sequence_t LogotypeImage_sequence[] = {
294   { &hf_logotypecertextn_imageDetails, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_LogotypeDetails },
295   { &hf_logotypecertextn_imageInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_LogotypeImageInfo },
296   { NULL, 0, 0, 0, NULL }
297 };
298
299 static int
300 dissect_logotypecertextn_LogotypeImage(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
301   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
302                                    LogotypeImage_sequence, hf_index, ett_logotypecertextn_LogotypeImage);
303
304   return offset;
305 }
306
307
308 static const ber_sequence_t SEQUENCE_OF_LogotypeImage_sequence_of[1] = {
309   { &hf_logotypecertextn_image_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_LogotypeImage },
310 };
311
312 static int
313 dissect_logotypecertextn_SEQUENCE_OF_LogotypeImage(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
314   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
315                                       SEQUENCE_OF_LogotypeImage_sequence_of, hf_index, ett_logotypecertextn_SEQUENCE_OF_LogotypeImage);
316
317   return offset;
318 }
319
320
321 static const ber_sequence_t LogotypeAudioInfo_sequence[] = {
322   { &hf_logotypecertextn_fileSize, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_INTEGER },
323   { &hf_logotypecertextn_playTime, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_INTEGER },
324   { &hf_logotypecertextn_channels, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_INTEGER },
325   { &hf_logotypecertextn_sampleRate, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_logotypecertextn_INTEGER },
326   { &hf_logotypecertextn_language, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_logotypecertextn_IA5String },
327   { NULL, 0, 0, 0, NULL }
328 };
329
330 static int
331 dissect_logotypecertextn_LogotypeAudioInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
332   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
333                                    LogotypeAudioInfo_sequence, hf_index, ett_logotypecertextn_LogotypeAudioInfo);
334
335   return offset;
336 }
337
338
339 static const ber_sequence_t LogotypeAudio_sequence[] = {
340   { &hf_logotypecertextn_audioDetails, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_LogotypeDetails },
341   { &hf_logotypecertextn_audioInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_LogotypeAudioInfo },
342   { NULL, 0, 0, 0, NULL }
343 };
344
345 static int
346 dissect_logotypecertextn_LogotypeAudio(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
347   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
348                                    LogotypeAudio_sequence, hf_index, ett_logotypecertextn_LogotypeAudio);
349
350   return offset;
351 }
352
353
354 static const ber_sequence_t SEQUENCE_OF_LogotypeAudio_sequence_of[1] = {
355   { &hf_logotypecertextn_audio_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_LogotypeAudio },
356 };
357
358 static int
359 dissect_logotypecertextn_SEQUENCE_OF_LogotypeAudio(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
360   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
361                                       SEQUENCE_OF_LogotypeAudio_sequence_of, hf_index, ett_logotypecertextn_SEQUENCE_OF_LogotypeAudio);
362
363   return offset;
364 }
365
366
367 static const ber_sequence_t LogotypeData_sequence[] = {
368   { &hf_logotypecertextn_image, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_SEQUENCE_OF_LogotypeImage },
369   { &hf_logotypecertextn_audio, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_logotypecertextn_SEQUENCE_OF_LogotypeAudio },
370   { NULL, 0, 0, 0, NULL }
371 };
372
373 static int
374 dissect_logotypecertextn_LogotypeData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
375   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
376                                    LogotypeData_sequence, hf_index, ett_logotypecertextn_LogotypeData);
377
378   return offset;
379 }
380
381
382
383 static int
384 dissect_logotypecertextn_T_refStructURI_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_) {
385   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
386                                             actx, tree, tvb, offset, hf_index,
387                                             NULL);
388
389 #line 21 "logotypecertextn.cnf"
390            PROTO_ITEM_SET_URL(actx->created_item);
391
392
393   return offset;
394 }
395
396
397 static const ber_sequence_t T_refStructURI_sequence_of[1] = {
398   { &hf_logotypecertextn_refStructURI_item, BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_T_refStructURI_item },
399 };
400
401 static int
402 dissect_logotypecertextn_T_refStructURI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
403   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
404                                       T_refStructURI_sequence_of, hf_index, ett_logotypecertextn_T_refStructURI);
405
406   return offset;
407 }
408
409
410 static const ber_sequence_t LogotypeReference_sequence[] = {
411   { &hf_logotypecertextn_refStructHash, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_SEQUENCE_SIZE_1_MAX_OF_HashAlgAndValue },
412   { &hf_logotypecertextn_refStructURI, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_T_refStructURI },
413   { NULL, 0, 0, 0, NULL }
414 };
415
416 static int
417 dissect_logotypecertextn_LogotypeReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
418   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
419                                    LogotypeReference_sequence, hf_index, ett_logotypecertextn_LogotypeReference);
420
421   return offset;
422 }
423
424
425 static const value_string logotypecertextn_LogotypeInfo_vals[] = {
426   {   0, "direct" },
427   {   1, "indirect" },
428   { 0, NULL }
429 };
430
431 static const ber_choice_t LogotypeInfo_choice[] = {
432   {   0, &hf_logotypecertextn_direct, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_logotypecertextn_LogotypeData },
433   {   1, &hf_logotypecertextn_indirect, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_logotypecertextn_LogotypeReference },
434   { 0, NULL, 0, 0, 0, NULL }
435 };
436
437 static int
438 dissect_logotypecertextn_LogotypeInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
439   offset = dissect_ber_choice(actx, tree, tvb, offset,
440                                  LogotypeInfo_choice, hf_index, ett_logotypecertextn_LogotypeInfo,
441                                  NULL);
442
443   return offset;
444 }
445
446
447 static const ber_sequence_t SEQUENCE_OF_LogotypeInfo_sequence_of[1] = {
448   { &hf_logotypecertextn_communityLogos_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_logotypecertextn_LogotypeInfo },
449 };
450
451 static int
452 dissect_logotypecertextn_SEQUENCE_OF_LogotypeInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
453   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
454                                       SEQUENCE_OF_LogotypeInfo_sequence_of, hf_index, ett_logotypecertextn_SEQUENCE_OF_LogotypeInfo);
455
456   return offset;
457 }
458
459
460
461 static int
462 dissect_logotypecertextn_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_) {
463   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
464
465   return offset;
466 }
467
468
469 static const ber_sequence_t OtherLogotypeInfo_sequence[] = {
470   { &hf_logotypecertextn_logotypeType, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_OBJECT_IDENTIFIER },
471   { &hf_logotypecertextn_info, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_logotypecertextn_LogotypeInfo },
472   { NULL, 0, 0, 0, NULL }
473 };
474
475 static int
476 dissect_logotypecertextn_OtherLogotypeInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
477   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
478                                    OtherLogotypeInfo_sequence, hf_index, ett_logotypecertextn_OtherLogotypeInfo);
479
480   return offset;
481 }
482
483
484 static const ber_sequence_t SEQUENCE_OF_OtherLogotypeInfo_sequence_of[1] = {
485   { &hf_logotypecertextn_otherLogos_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_logotypecertextn_OtherLogotypeInfo },
486 };
487
488 static int
489 dissect_logotypecertextn_SEQUENCE_OF_OtherLogotypeInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
490   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
491                                       SEQUENCE_OF_OtherLogotypeInfo_sequence_of, hf_index, ett_logotypecertextn_SEQUENCE_OF_OtherLogotypeInfo);
492
493   return offset;
494 }
495
496
497 static const ber_sequence_t LogotypeExtn_sequence[] = {
498   { &hf_logotypecertextn_communityLogos, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_logotypecertextn_SEQUENCE_OF_LogotypeInfo },
499   { &hf_logotypecertextn_issuerLogo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_logotypecertextn_LogotypeInfo },
500   { &hf_logotypecertextn_subjectLogo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_logotypecertextn_LogotypeInfo },
501   { &hf_logotypecertextn_otherLogos, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_logotypecertextn_SEQUENCE_OF_OtherLogotypeInfo },
502   { NULL, 0, 0, 0, NULL }
503 };
504
505 static int
506 dissect_logotypecertextn_LogotypeExtn(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
507   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
508                                    LogotypeExtn_sequence, hf_index, ett_logotypecertextn_LogotypeExtn);
509
510   return offset;
511 }
512
513 /*--- PDUs ---*/
514
515 static void dissect_LogotypeExtn_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
516   asn1_ctx_t asn1_ctx;
517   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
518   dissect_logotypecertextn_LogotypeExtn(FALSE, tvb, 0, &asn1_ctx, tree, hf_logotypecertextn_LogotypeExtn_PDU);
519 }
520
521
522 /*--- End of included file: packet-logotypecertextn-fn.c ---*/
523 #line 52 "packet-logotypecertextn-template.c"
524
525
526 /*--- proto_register_logotypecertextn ----------------------------------------------*/
527 void proto_register_logotypecertextn(void) {
528
529   /* List of fields */
530   static hf_register_info hf[] = {
531
532 /*--- Included file: packet-logotypecertextn-hfarr.c ---*/
533 #line 1 "packet-logotypecertextn-hfarr.c"
534     { &hf_logotypecertextn_LogotypeExtn_PDU,
535       { "LogotypeExtn", "logotypecertextn.LogotypeExtn",
536         FT_NONE, BASE_NONE, NULL, 0,
537         "logotypecertextn.LogotypeExtn", HFILL }},
538     { &hf_logotypecertextn_communityLogos,
539       { "communityLogos", "logotypecertextn.communityLogos",
540         FT_UINT32, BASE_DEC, NULL, 0,
541         "logotypecertextn.SEQUENCE_OF_LogotypeInfo", HFILL }},
542     { &hf_logotypecertextn_communityLogos_item,
543       { "LogotypeInfo", "logotypecertextn.LogotypeInfo",
544         FT_UINT32, BASE_DEC, VALS(logotypecertextn_LogotypeInfo_vals), 0,
545         "logotypecertextn.LogotypeInfo", HFILL }},
546     { &hf_logotypecertextn_issuerLogo,
547       { "issuerLogo", "logotypecertextn.issuerLogo",
548         FT_UINT32, BASE_DEC, VALS(logotypecertextn_LogotypeInfo_vals), 0,
549         "logotypecertextn.LogotypeInfo", HFILL }},
550     { &hf_logotypecertextn_subjectLogo,
551       { "subjectLogo", "logotypecertextn.subjectLogo",
552         FT_UINT32, BASE_DEC, VALS(logotypecertextn_LogotypeInfo_vals), 0,
553         "logotypecertextn.LogotypeInfo", HFILL }},
554     { &hf_logotypecertextn_otherLogos,
555       { "otherLogos", "logotypecertextn.otherLogos",
556         FT_UINT32, BASE_DEC, NULL, 0,
557         "logotypecertextn.SEQUENCE_OF_OtherLogotypeInfo", HFILL }},
558     { &hf_logotypecertextn_otherLogos_item,
559       { "OtherLogotypeInfo", "logotypecertextn.OtherLogotypeInfo",
560         FT_NONE, BASE_NONE, NULL, 0,
561         "logotypecertextn.OtherLogotypeInfo", HFILL }},
562     { &hf_logotypecertextn_direct,
563       { "direct", "logotypecertextn.direct",
564         FT_NONE, BASE_NONE, NULL, 0,
565         "logotypecertextn.LogotypeData", HFILL }},
566     { &hf_logotypecertextn_indirect,
567       { "indirect", "logotypecertextn.indirect",
568         FT_NONE, BASE_NONE, NULL, 0,
569         "logotypecertextn.LogotypeReference", HFILL }},
570     { &hf_logotypecertextn_image,
571       { "image", "logotypecertextn.image",
572         FT_UINT32, BASE_DEC, NULL, 0,
573         "logotypecertextn.SEQUENCE_OF_LogotypeImage", HFILL }},
574     { &hf_logotypecertextn_image_item,
575       { "LogotypeImage", "logotypecertextn.LogotypeImage",
576         FT_NONE, BASE_NONE, NULL, 0,
577         "logotypecertextn.LogotypeImage", HFILL }},
578     { &hf_logotypecertextn_audio,
579       { "audio", "logotypecertextn.audio",
580         FT_UINT32, BASE_DEC, NULL, 0,
581         "logotypecertextn.SEQUENCE_OF_LogotypeAudio", HFILL }},
582     { &hf_logotypecertextn_audio_item,
583       { "LogotypeAudio", "logotypecertextn.LogotypeAudio",
584         FT_NONE, BASE_NONE, NULL, 0,
585         "logotypecertextn.LogotypeAudio", HFILL }},
586     { &hf_logotypecertextn_imageDetails,
587       { "imageDetails", "logotypecertextn.imageDetails",
588         FT_NONE, BASE_NONE, NULL, 0,
589         "logotypecertextn.LogotypeDetails", HFILL }},
590     { &hf_logotypecertextn_imageInfo,
591       { "imageInfo", "logotypecertextn.imageInfo",
592         FT_NONE, BASE_NONE, NULL, 0,
593         "logotypecertextn.LogotypeImageInfo", HFILL }},
594     { &hf_logotypecertextn_audioDetails,
595       { "audioDetails", "logotypecertextn.audioDetails",
596         FT_NONE, BASE_NONE, NULL, 0,
597         "logotypecertextn.LogotypeDetails", HFILL }},
598     { &hf_logotypecertextn_audioInfo,
599       { "audioInfo", "logotypecertextn.audioInfo",
600         FT_NONE, BASE_NONE, NULL, 0,
601         "logotypecertextn.LogotypeAudioInfo", HFILL }},
602     { &hf_logotypecertextn_mediaType,
603       { "mediaType", "logotypecertextn.mediaType",
604         FT_STRING, BASE_NONE, NULL, 0,
605         "logotypecertextn.IA5String", HFILL }},
606     { &hf_logotypecertextn_logotypeHash,
607       { "logotypeHash", "logotypecertextn.logotypeHash",
608         FT_UINT32, BASE_DEC, NULL, 0,
609         "logotypecertextn.SEQUENCE_SIZE_1_MAX_OF_HashAlgAndValue", HFILL }},
610     { &hf_logotypecertextn_logotypeHash_item,
611       { "HashAlgAndValue", "logotypecertextn.HashAlgAndValue",
612         FT_NONE, BASE_NONE, NULL, 0,
613         "logotypecertextn.HashAlgAndValue", HFILL }},
614     { &hf_logotypecertextn_logotypeURI,
615       { "logotypeURI", "logotypecertextn.logotypeURI",
616         FT_UINT32, BASE_DEC, NULL, 0,
617         "logotypecertextn.T_logotypeURI", HFILL }},
618     { &hf_logotypecertextn_logotypeURI_item,
619       { "logotypeURI item", "logotypecertextn.logotypeURI_item",
620         FT_STRING, BASE_NONE, NULL, 0,
621         "logotypecertextn.T_logotypeURI_item", HFILL }},
622     { &hf_logotypecertextn_type,
623       { "type", "logotypecertextn.type",
624         FT_INT32, BASE_DEC, VALS(logotypecertextn_LogotypeImageType_vals), 0,
625         "logotypecertextn.LogotypeImageType", HFILL }},
626     { &hf_logotypecertextn_fileSize,
627       { "fileSize", "logotypecertextn.fileSize",
628         FT_INT32, BASE_DEC, NULL, 0,
629         "logotypecertextn.INTEGER", HFILL }},
630     { &hf_logotypecertextn_xSize,
631       { "xSize", "logotypecertextn.xSize",
632         FT_INT32, BASE_DEC, NULL, 0,
633         "logotypecertextn.INTEGER", HFILL }},
634     { &hf_logotypecertextn_ySize,
635       { "ySize", "logotypecertextn.ySize",
636         FT_INT32, BASE_DEC, NULL, 0,
637         "logotypecertextn.INTEGER", HFILL }},
638     { &hf_logotypecertextn_resolution,
639       { "resolution", "logotypecertextn.resolution",
640         FT_UINT32, BASE_DEC, VALS(logotypecertextn_LogotypeImageResolution_vals), 0,
641         "logotypecertextn.LogotypeImageResolution", HFILL }},
642     { &hf_logotypecertextn_language,
643       { "language", "logotypecertextn.language",
644         FT_STRING, BASE_NONE, NULL, 0,
645         "logotypecertextn.IA5String", HFILL }},
646     { &hf_logotypecertextn_numBits,
647       { "numBits", "logotypecertextn.numBits",
648         FT_INT32, BASE_DEC, NULL, 0,
649         "logotypecertextn.INTEGER", HFILL }},
650     { &hf_logotypecertextn_tableSize,
651       { "tableSize", "logotypecertextn.tableSize",
652         FT_INT32, BASE_DEC, NULL, 0,
653         "logotypecertextn.INTEGER", HFILL }},
654     { &hf_logotypecertextn_playTime,
655       { "playTime", "logotypecertextn.playTime",
656         FT_INT32, BASE_DEC, NULL, 0,
657         "logotypecertextn.INTEGER", HFILL }},
658     { &hf_logotypecertextn_channels,
659       { "channels", "logotypecertextn.channels",
660         FT_INT32, BASE_DEC, NULL, 0,
661         "logotypecertextn.INTEGER", HFILL }},
662     { &hf_logotypecertextn_sampleRate,
663       { "sampleRate", "logotypecertextn.sampleRate",
664         FT_INT32, BASE_DEC, NULL, 0,
665         "logotypecertextn.INTEGER", HFILL }},
666     { &hf_logotypecertextn_logotypeType,
667       { "logotypeType", "logotypecertextn.logotypeType",
668         FT_OID, BASE_NONE, NULL, 0,
669         "logotypecertextn.OBJECT_IDENTIFIER", HFILL }},
670     { &hf_logotypecertextn_info,
671       { "info", "logotypecertextn.info",
672         FT_UINT32, BASE_DEC, VALS(logotypecertextn_LogotypeInfo_vals), 0,
673         "logotypecertextn.LogotypeInfo", HFILL }},
674     { &hf_logotypecertextn_refStructHash,
675       { "refStructHash", "logotypecertextn.refStructHash",
676         FT_UINT32, BASE_DEC, NULL, 0,
677         "logotypecertextn.SEQUENCE_SIZE_1_MAX_OF_HashAlgAndValue", HFILL }},
678     { &hf_logotypecertextn_refStructHash_item,
679       { "HashAlgAndValue", "logotypecertextn.HashAlgAndValue",
680         FT_NONE, BASE_NONE, NULL, 0,
681         "logotypecertextn.HashAlgAndValue", HFILL }},
682     { &hf_logotypecertextn_refStructURI,
683       { "refStructURI", "logotypecertextn.refStructURI",
684         FT_UINT32, BASE_DEC, NULL, 0,
685         "logotypecertextn.T_refStructURI", HFILL }},
686     { &hf_logotypecertextn_refStructURI_item,
687       { "refStructURI item", "logotypecertextn.refStructURI_item",
688         FT_STRING, BASE_NONE, NULL, 0,
689         "logotypecertextn.T_refStructURI_item", HFILL }},
690     { &hf_logotypecertextn_hashAlg,
691       { "hashAlg", "logotypecertextn.hashAlg",
692         FT_NONE, BASE_NONE, NULL, 0,
693         "x509af.AlgorithmIdentifier", HFILL }},
694     { &hf_logotypecertextn_hashValue,
695       { "hashValue", "logotypecertextn.hashValue",
696         FT_BYTES, BASE_NONE, NULL, 0,
697         "logotypecertextn.OCTET_STRING", HFILL }},
698
699 /*--- End of included file: packet-logotypecertextn-hfarr.c ---*/
700 #line 60 "packet-logotypecertextn-template.c"
701   };
702
703   /* List of subtrees */
704   static gint *ett[] = {
705
706 /*--- Included file: packet-logotypecertextn-ettarr.c ---*/
707 #line 1 "packet-logotypecertextn-ettarr.c"
708     &ett_logotypecertextn_LogotypeExtn,
709     &ett_logotypecertextn_SEQUENCE_OF_LogotypeInfo,
710     &ett_logotypecertextn_SEQUENCE_OF_OtherLogotypeInfo,
711     &ett_logotypecertextn_LogotypeInfo,
712     &ett_logotypecertextn_LogotypeData,
713     &ett_logotypecertextn_SEQUENCE_OF_LogotypeImage,
714     &ett_logotypecertextn_SEQUENCE_OF_LogotypeAudio,
715     &ett_logotypecertextn_LogotypeImage,
716     &ett_logotypecertextn_LogotypeAudio,
717     &ett_logotypecertextn_LogotypeDetails,
718     &ett_logotypecertextn_SEQUENCE_SIZE_1_MAX_OF_HashAlgAndValue,
719     &ett_logotypecertextn_T_logotypeURI,
720     &ett_logotypecertextn_LogotypeImageInfo,
721     &ett_logotypecertextn_LogotypeImageResolution,
722     &ett_logotypecertextn_LogotypeAudioInfo,
723     &ett_logotypecertextn_OtherLogotypeInfo,
724     &ett_logotypecertextn_LogotypeReference,
725     &ett_logotypecertextn_T_refStructURI,
726     &ett_logotypecertextn_HashAlgAndValue,
727
728 /*--- End of included file: packet-logotypecertextn-ettarr.c ---*/
729 #line 65 "packet-logotypecertextn-template.c"
730   };
731
732   /* Register protocol */
733   proto_logotypecertextn = proto_register_protocol(PNAME, PSNAME, PFNAME);
734
735   /* Register fields and subtrees */
736   proto_register_field_array(proto_logotypecertextn, hf, array_length(hf));
737   proto_register_subtree_array(ett, array_length(ett));
738
739 }
740
741
742 /*--- proto_reg_handoff_logotypecertextn -------------------------------------------*/
743 void proto_reg_handoff_logotypecertextn(void) {
744
745 /*--- Included file: packet-logotypecertextn-dis-tab.c ---*/
746 #line 1 "packet-logotypecertextn-dis-tab.c"
747   register_ber_oid_dissector("1.3.6.1.5.5.7.1.12", dissect_LogotypeExtn_PDU, proto_logotypecertextn, "id-pe-logotype");
748   register_ber_oid_dissector("1.3.6.1.5.5.7.20.1", dissect_LogotypeExtn_PDU, proto_logotypecertextn, "id-pe-logo-loyalty");
749   register_ber_oid_dissector("1.3.6.1.5.5.7.20.2", dissect_LogotypeExtn_PDU, proto_logotypecertextn, "id-pe-logo-background");
750
751
752 /*--- End of included file: packet-logotypecertextn-dis-tab.c ---*/
753 #line 80 "packet-logotypecertextn-template.c"
754 }
755