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