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