3134e8575ae7350ec9169b0ffa8f0dbf6e76c119
[obnox/wireshark/wip.git] / epan / dissectors / packet-acp133.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
3 /* .\packet-acp133.c                                                          */
4 /* ../../tools/asn2wrs.py -b -e -p acp133 -c acp133.cnf -s packet-acp133-template acp133.asn */
5
6 /* Input file: packet-acp133-template.c */
7
8 #line 1 "packet-acp133-template.c"
9 /* packet-acp133.c
10  * Routines for ACP133 specific syntaxes in X.500 packet dissection
11  * Graeme Lunt 2005
12  *
13  * $Id$
14  *
15  * Wireshark - Network traffic analyzer
16  * By Gerald Combs <gerald@wireshark.org>
17  * Copyright 1998 Gerald Combs
18  *
19  * This program is free software; you can redistribute it and/or
20  * modify it under the terms of the GNU General Public License
21  * as published by the Free Software Foundation; either version 2
22  * of the License, or (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program; if not, write to the Free Software
31  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
32  */
33
34 #ifdef HAVE_CONFIG_H
35 # include "config.h"
36 #endif
37
38 #include <glib.h>
39 #include <epan/packet.h>
40 #include <epan/conversation.h>
41 #include <epan/oid_resolv.h>
42
43 #include <stdio.h>
44 #include <string.h>
45
46 #include "packet-ber.h"
47
48 #include "packet-x509af.h"
49 #include "packet-x509if.h"
50 #include "packet-x509ce.h"
51 #include "packet-x411.h"
52
53 #include "packet-acp133.h"
54
55 #define PNAME  "ACP133 Attribute Syntaxes"
56 #define PSNAME "ACP133"
57 #define PFNAME "acp133"
58
59 /* Initialize the protocol and registered fields */
60 int proto_acp133 = -1;
61
62
63
64 /*--- Included file: packet-acp133-hf.c ---*/
65 #line 1 "packet-acp133-hf.c"
66 static int hf_acp133_ACPPreferredDelivery_PDU = -1;  /* ACPPreferredDelivery */
67 static int hf_acp133_ALType_PDU = -1;             /* ALType */
68 static int hf_acp133_Community_PDU = -1;          /* Community */
69 static int hf_acp133_OnSupported_PDU = -1;        /* OnSupported */
70 static int hf_acp133_ACPLegacyFormat_PDU = -1;    /* ACPLegacyFormat */
71 static int hf_acp133_Addressees_PDU = -1;         /* Addressees */
72 static int hf_acp133_Classification_PDU = -1;     /* Classification */
73 static int hf_acp133_DistributionCode_PDU = -1;   /* DistributionCode */
74 static int hf_acp133_JPEG_PDU = -1;               /* JPEG */
75 static int hf_acp133_MonthlyUKMs_PDU = -1;        /* MonthlyUKMs */
76 static int hf_acp133_Remarks_PDU = -1;            /* Remarks */
77 static int hf_acp133_RIParameters_PDU = -1;       /* RIParameters */
78 static int hf_acp133_Kmid_PDU = -1;               /* Kmid */
79 static int hf_acp133_MLReceiptPolicy_PDU = -1;    /* MLReceiptPolicy */
80 static int hf_acp133_DLSubmitPermission_PDU = -1;  /* DLSubmitPermission */
81 static int hf_acp133_DLPolicy_PDU = -1;           /* DLPolicy */
82 static int hf_acp133_AddressCapabilities_PDU = -1;  /* AddressCapabilities */
83 static int hf_acp133_Capability_PDU = -1;         /* Capability */
84 static int hf_acp133_Addressees_item = -1;        /* PrintableString_SIZE_1_55 */
85 static int hf_acp133_ukm_entries = -1;            /* SEQUENCE_OF_UKMEntry */
86 static int hf_acp133_ukm_entries_item = -1;       /* UKMEntry */
87 static int hf_acp133_algorithm_identifier = -1;   /* AlgorithmIdentifier */
88 static int hf_acp133_encrypted = -1;              /* BIT_STRING */
89 static int hf_acp133_Remarks_item = -1;           /* PrintableString */
90 static int hf_acp133_rI = -1;                     /* PrintableString */
91 static int hf_acp133_rIType = -1;                 /* T_rIType */
92 static int hf_acp133_minimize = -1;               /* BOOLEAN */
93 static int hf_acp133_sHD = -1;                    /* PrintableString */
94 static int hf_acp133_classification = -1;         /* Classification */
95 static int hf_acp133_tag = -1;                    /* PairwiseTag */
96 static int hf_acp133_ukm = -1;                    /* OCTET_STRING */
97 static int hf_acp133_kmid = -1;                   /* Kmid */
98 static int hf_acp133_edition = -1;                /* INTEGER */
99 static int hf_acp133_date = -1;                   /* UTCTime */
100 static int hf_acp133_none = -1;                   /* NULL */
101 static int hf_acp133_insteadOf = -1;              /* SEQUENCE_OF_GeneralNames */
102 static int hf_acp133_insteadOf_item = -1;         /* GeneralNames */
103 static int hf_acp133_inAdditionTo = -1;           /* SEQUENCE_OF_GeneralNames */
104 static int hf_acp133_inAdditionTo_item = -1;      /* GeneralNames */
105 static int hf_acp133_individual = -1;             /* ORName */
106 static int hf_acp133_member_of_dl = -1;           /* ORName */
107 static int hf_acp133_pattern_match = -1;          /* ORNamePattern */
108 static int hf_acp133_member_of_group = -1;        /* Name */
109 static int hf_acp133_report_propagation = -1;     /* T_report_propagation */
110 static int hf_acp133_report_from_dl = -1;         /* T_report_from_dl */
111 static int hf_acp133_originating_MTA_report = -1;  /* T_originating_MTA_report */
112 static int hf_acp133_originator_report = -1;      /* T_originator_report */
113 static int hf_acp133_return_of_content = -1;      /* T_return_of_content */
114 static int hf_acp133_priority = -1;               /* T_priority */
115 static int hf_acp133_disclosure_of_other_recipients = -1;  /* T_disclosure_of_other_recipients */
116 static int hf_acp133_implicit_conversion_prohibited = -1;  /* T_implicit_conversion_prohibited */
117 static int hf_acp133_conversion_with_loss_prohibited = -1;  /* T_conversion_with_loss_prohibited */
118 static int hf_acp133_further_dl_expansion_allowed = -1;  /* BOOLEAN */
119 static int hf_acp133_originator_requested_alternate_recipient_removed = -1;  /* BOOLEAN */
120 static int hf_acp133_proof_of_delivery = -1;      /* T_proof_of_delivery */
121 static int hf_acp133_requested_delivery_method = -1;  /* T_requested_delivery_method */
122 static int hf_acp133_unchanged = -1;              /* NULL */
123 static int hf_acp133_removed = -1;                /* NULL */
124 static int hf_acp133_replaced = -1;               /* RequestedDeliveryMethod */
125 static int hf_acp133_token_encryption_algorithm_preference = -1;  /* SEQUENCE_OF_AlgorithmInformation */
126 static int hf_acp133_token_encryption_algorithm_preference_item = -1;  /* AlgorithmInformation */
127 static int hf_acp133_token_signature_algorithm_preference = -1;  /* SEQUENCE_OF_AlgorithmInformation */
128 static int hf_acp133_token_signature_algorithm_preference_item = -1;  /* AlgorithmInformation */
129 static int hf_acp133_originator_certificate_selector = -1;  /* CertificateAssertion */
130 static int hf_acp133_recipient_certificate_selector = -1;  /* CertificateAssertion */
131 static int hf_acp133_description = -1;            /* GeneralString */
132 static int hf_acp133_address = -1;                /* ORAddress */
133 static int hf_acp133_capabilities = -1;           /* SET_OF_Capability */
134 static int hf_acp133_capabilities_item = -1;      /* Capability */
135 static int hf_acp133_content_types = -1;          /* SET_OF_ExtendedContentType */
136 static int hf_acp133_content_types_item = -1;     /* ExtendedContentType */
137 static int hf_acp133_maximum_content_length = -1;  /* ContentLength */
138 static int hf_acp133_encoded_information_types_constraints = -1;  /* EncodedInformationTypesConstraints */
139 static int hf_acp133_security_labels = -1;        /* SecurityContext */
140 /* named bits */
141 static int hf_acp133_OnSupported_acp127_nn = -1;
142 static int hf_acp133_OnSupported_acp127_pn = -1;
143 static int hf_acp133_OnSupported_acp127_tn = -1;
144
145 /*--- End of included file: packet-acp133-hf.c ---*/
146 #line 56 "packet-acp133-template.c"
147
148 /* Initialize the subtree pointers */
149 static gint ett_acp133 = -1;
150
151 /*--- Included file: packet-acp133-ett.c ---*/
152 #line 1 "packet-acp133-ett.c"
153 static gint ett_acp133_OnSupported = -1;
154 static gint ett_acp133_Addressees = -1;
155 static gint ett_acp133_MonthlyUKMs = -1;
156 static gint ett_acp133_SEQUENCE_OF_UKMEntry = -1;
157 static gint ett_acp133_Remarks = -1;
158 static gint ett_acp133_RIParameters = -1;
159 static gint ett_acp133_UKMEntry = -1;
160 static gint ett_acp133_PairwiseTag = -1;
161 static gint ett_acp133_MLReceiptPolicy = -1;
162 static gint ett_acp133_SEQUENCE_OF_GeneralNames = -1;
163 static gint ett_acp133_DLSubmitPermission = -1;
164 static gint ett_acp133_DLPolicy = -1;
165 static gint ett_acp133_T_requested_delivery_method = -1;
166 static gint ett_acp133_SEQUENCE_OF_AlgorithmInformation = -1;
167 static gint ett_acp133_AlgorithmInformation = -1;
168 static gint ett_acp133_AddressCapabilities = -1;
169 static gint ett_acp133_SET_OF_Capability = -1;
170 static gint ett_acp133_Capability = -1;
171 static gint ett_acp133_SET_OF_ExtendedContentType = -1;
172
173 /*--- End of included file: packet-acp133-ett.c ---*/
174 #line 60 "packet-acp133-template.c"
175
176
177 /*--- Included file: packet-acp133-fn.c ---*/
178 #line 1 "packet-acp133-fn.c"
179 /*--- Fields for imported types ---*/
180
181 static int dissect_algorithm_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
182   return dissect_x509af_AlgorithmIdentifier(FALSE, tvb, offset, pinfo, tree, hf_acp133_algorithm_identifier);
183 }
184 static int dissect_insteadOf_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
185   return dissect_x509ce_GeneralNames(FALSE, tvb, offset, pinfo, tree, hf_acp133_insteadOf_item);
186 }
187 static int dissect_inAdditionTo_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
188   return dissect_x509ce_GeneralNames(FALSE, tvb, offset, pinfo, tree, hf_acp133_inAdditionTo_item);
189 }
190 static int dissect_individual(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
191   return dissect_x411_ORName(FALSE, tvb, offset, pinfo, tree, hf_acp133_individual);
192 }
193 static int dissect_member_of_dl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
194   return dissect_x411_ORName(FALSE, tvb, offset, pinfo, tree, hf_acp133_member_of_dl);
195 }
196 static int dissect_member_of_group(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
197   return dissect_x509if_Name(FALSE, tvb, offset, pinfo, tree, hf_acp133_member_of_group);
198 }
199 static int dissect_replaced(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
200   return dissect_x411_RequestedDeliveryMethod(FALSE, tvb, offset, pinfo, tree, hf_acp133_replaced);
201 }
202 static int dissect_originator_certificate_selector(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
203   return dissect_x509ce_CertificateAssertion(FALSE, tvb, offset, pinfo, tree, hf_acp133_originator_certificate_selector);
204 }
205 static int dissect_recipient_certificate_selector(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
206   return dissect_x509ce_CertificateAssertion(FALSE, tvb, offset, pinfo, tree, hf_acp133_recipient_certificate_selector);
207 }
208 static int dissect_address(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
209   return dissect_x411_ORAddress(FALSE, tvb, offset, pinfo, tree, hf_acp133_address);
210 }
211 static int dissect_content_types_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
212   return dissect_x411_ExtendedContentType(FALSE, tvb, offset, pinfo, tree, hf_acp133_content_types_item);
213 }
214 static int dissect_maximum_content_length(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
215   return dissect_x411_ContentLength(FALSE, tvb, offset, pinfo, tree, hf_acp133_maximum_content_length);
216 }
217 static int dissect_encoded_information_types_constraints(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
218   return dissect_x411_EncodedInformationTypesConstraints(FALSE, tvb, offset, pinfo, tree, hf_acp133_encoded_information_types_constraints);
219 }
220 static int dissect_security_labels(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
221   return dissect_x411_SecurityContext(FALSE, tvb, offset, pinfo, tree, hf_acp133_security_labels);
222 }
223
224
225 static const value_string acp133_ACPPreferredDelivery_vals[] = {
226   {   0, "smtp" },
227   {   1, "acp127" },
228   {   2, "mhs" },
229   { 0, NULL }
230 };
231
232
233 static int
234 dissect_acp133_ACPPreferredDelivery(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
235   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
236                                   NULL);
237
238   return offset;
239 }
240
241
242 static const value_string acp133_ALType_vals[] = {
243   {   0, "aig" },
244   {   1, "type" },
245   {   2, "cad" },
246   {   3, "taskforce" },
247   {   4, "dag" },
248   { 0, NULL }
249 };
250
251
252 static int
253 dissect_acp133_ALType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
254   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
255                                   NULL);
256
257   return offset;
258 }
259
260
261 static const value_string acp133_Community_vals[] = {
262   {   0, "genser" },
263   {   1, "si" },
264   {   2, "both" },
265   { 0, NULL }
266 };
267
268
269 static int
270 dissect_acp133_Community(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
271   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
272                                   NULL);
273
274   return offset;
275 }
276
277
278 static const asn_namedbit OnSupported_bits[] = {
279   {  0, &hf_acp133_OnSupported_acp127_nn, -1, -1, "acp127-nn", NULL },
280   {  1, &hf_acp133_OnSupported_acp127_pn, -1, -1, "acp127-pn", NULL },
281   {  2, &hf_acp133_OnSupported_acp127_tn, -1, -1, "acp127-tn", NULL },
282   { 0, NULL, 0, 0, NULL, NULL }
283 };
284
285 static int
286 dissect_acp133_OnSupported(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
287   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
288                                     OnSupported_bits, hf_index, ett_acp133_OnSupported,
289                                     NULL);
290
291   return offset;
292 }
293
294
295 static const value_string acp133_ACPLegacyFormat_vals[] = {
296   {   0, "janap128" },
297   {   1, "acp126" },
298   {   2, "doi103" },
299   {   3, "doi103-special" },
300   {   4, "acp127" },
301   {   5, "acp127-converted" },
302   {   6, "reserved-1" },
303   {   7, "acp127-state" },
304   {   8, "acp127-modified" },
305   {   9, "socomm-special" },
306   {  10, "socomm-narrative" },
307   {  11, "reserved-2" },
308   {  12, "socomm-narrative-special" },
309   {  13, "socomm-data" },
310   {  14, "socomm-internal" },
311   {  15, "socomm-external" },
312   { 0, NULL }
313 };
314
315
316 static int
317 dissect_acp133_ACPLegacyFormat(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
318   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
319                                   NULL);
320
321   return offset;
322 }
323
324
325
326 static int
327 dissect_acp133_PrintableString_SIZE_1_55(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
328   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
329                                             pinfo, tree, tvb, offset, hf_index,
330                                             NULL);
331
332   return offset;
333 }
334 static int dissect_Addressees_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
335   return dissect_acp133_PrintableString_SIZE_1_55(FALSE, tvb, offset, pinfo, tree, hf_acp133_Addressees_item);
336 }
337
338
339 static const ber_sequence_t Addressees_sequence_of[1] = {
340   { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_Addressees_item },
341 };
342
343 static int
344 dissect_acp133_Addressees(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
345   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
346                                       Addressees_sequence_of, hf_index, ett_acp133_Addressees);
347
348   return offset;
349 }
350
351
352 static const value_string acp133_Classification_vals[] = {
353   {   0, "unmarked" },
354   {   1, "unclassified" },
355   {   2, "restricted" },
356   {   3, "confidential" },
357   {   4, "secret" },
358   {   5, "top-secret" },
359   { 0, NULL }
360 };
361
362
363 static int
364 dissect_acp133_Classification(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
365   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
366                                   NULL);
367
368   return offset;
369 }
370 static int dissect_classification(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
371   return dissect_acp133_Classification(FALSE, tvb, offset, pinfo, tree, hf_acp133_classification);
372 }
373
374
375
376 static int
377 dissect_acp133_DistributionCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
378   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
379                                             pinfo, tree, tvb, offset, hf_index,
380                                             NULL);
381
382   return offset;
383 }
384
385
386
387 static int
388 dissect_acp133_JPEG(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
389   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
390                                        NULL);
391
392   return offset;
393 }
394
395
396
397 static int
398 dissect_acp133_Kmid(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
399   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
400                                        NULL);
401
402   return offset;
403 }
404 static int dissect_kmid(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
405   return dissect_acp133_Kmid(FALSE, tvb, offset, pinfo, tree, hf_acp133_kmid);
406 }
407
408
409
410 static int
411 dissect_acp133_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
412   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
413                                   NULL);
414
415   return offset;
416 }
417 static int dissect_edition(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
418   return dissect_acp133_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_acp133_edition);
419 }
420
421
422
423 static int
424 dissect_acp133_UTCTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
425   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTCTime,
426                                             pinfo, tree, tvb, offset, hf_index,
427                                             NULL);
428
429   return offset;
430 }
431 static int dissect_date(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
432   return dissect_acp133_UTCTime(FALSE, tvb, offset, pinfo, tree, hf_acp133_date);
433 }
434
435
436 static const ber_sequence_t PairwiseTag_sequence[] = {
437   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_kmid },
438   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_edition },
439   { BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_date },
440   { 0, 0, 0, NULL }
441 };
442
443 static int
444 dissect_acp133_PairwiseTag(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
445   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
446                                    PairwiseTag_sequence, hf_index, ett_acp133_PairwiseTag);
447
448   return offset;
449 }
450 static int dissect_tag(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
451   return dissect_acp133_PairwiseTag(FALSE, tvb, offset, pinfo, tree, hf_acp133_tag);
452 }
453
454
455
456 static int
457 dissect_acp133_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
458   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
459                                        NULL);
460
461   return offset;
462 }
463 static int dissect_ukm(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
464   return dissect_acp133_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_acp133_ukm);
465 }
466
467
468 static const ber_sequence_t UKMEntry_sequence[] = {
469   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_tag },
470   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ukm },
471   { 0, 0, 0, NULL }
472 };
473
474 static int
475 dissect_acp133_UKMEntry(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
476   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
477                                    UKMEntry_sequence, hf_index, ett_acp133_UKMEntry);
478
479   return offset;
480 }
481 static int dissect_ukm_entries_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
482   return dissect_acp133_UKMEntry(FALSE, tvb, offset, pinfo, tree, hf_acp133_ukm_entries_item);
483 }
484
485
486 static const ber_sequence_t SEQUENCE_OF_UKMEntry_sequence_of[1] = {
487   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ukm_entries_item },
488 };
489
490 static int
491 dissect_acp133_SEQUENCE_OF_UKMEntry(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
492   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
493                                       SEQUENCE_OF_UKMEntry_sequence_of, hf_index, ett_acp133_SEQUENCE_OF_UKMEntry);
494
495   return offset;
496 }
497 static int dissect_ukm_entries(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
498   return dissect_acp133_SEQUENCE_OF_UKMEntry(FALSE, tvb, offset, pinfo, tree, hf_acp133_ukm_entries);
499 }
500
501
502
503 static int
504 dissect_acp133_BIT_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
505   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
506                                     NULL, hf_index, -1,
507                                     NULL);
508
509   return offset;
510 }
511 static int dissect_encrypted(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
512   return dissect_acp133_BIT_STRING(FALSE, tvb, offset, pinfo, tree, hf_acp133_encrypted);
513 }
514
515
516 static const ber_sequence_t MonthlyUKMs_sequence[] = {
517   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ukm_entries },
518   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithm_identifier },
519   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
520   { 0, 0, 0, NULL }
521 };
522
523 static int
524 dissect_acp133_MonthlyUKMs(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
525   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
526                                    MonthlyUKMs_sequence, hf_index, ett_acp133_MonthlyUKMs);
527
528   return offset;
529 }
530
531
532
533 static int
534 dissect_acp133_PrintableString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
535   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
536                                             pinfo, tree, tvb, offset, hf_index,
537                                             NULL);
538
539   return offset;
540 }
541 static int dissect_Remarks_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
542   return dissect_acp133_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_acp133_Remarks_item);
543 }
544 static int dissect_rI(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
545   return dissect_acp133_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_acp133_rI);
546 }
547 static int dissect_sHD(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
548   return dissect_acp133_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_acp133_sHD);
549 }
550
551
552 static const ber_sequence_t Remarks_sequence_of[1] = {
553   { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_Remarks_item },
554 };
555
556 static int
557 dissect_acp133_Remarks(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
558   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
559                                       Remarks_sequence_of, hf_index, ett_acp133_Remarks);
560
561   return offset;
562 }
563
564
565 static const value_string acp133_T_rIType_vals[] = {
566   {   0, "normal" },
567   {   1, "off-line" },
568   {   2, "partTimeTerminal" },
569   { 0, NULL }
570 };
571
572
573 static int
574 dissect_acp133_T_rIType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
575   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
576                                   NULL);
577
578   return offset;
579 }
580 static int dissect_rIType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
581   return dissect_acp133_T_rIType(FALSE, tvb, offset, pinfo, tree, hf_acp133_rIType);
582 }
583
584
585
586 static int
587 dissect_acp133_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
588   offset = dissect_ber_boolean(implicit_tag, pinfo, tree, tvb, offset, hf_index);
589
590   return offset;
591 }
592 static int dissect_minimize(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
593   return dissect_acp133_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_acp133_minimize);
594 }
595 static int dissect_further_dl_expansion_allowed(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
596   return dissect_acp133_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_acp133_further_dl_expansion_allowed);
597 }
598 static int dissect_originator_requested_alternate_recipient_removed(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
599   return dissect_acp133_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_acp133_originator_requested_alternate_recipient_removed);
600 }
601
602
603 static const ber_sequence_t RIParameters_set[] = {
604   { BER_CLASS_CON, 0, 0, dissect_rI },
605   { BER_CLASS_CON, 1, 0, dissect_rIType },
606   { BER_CLASS_CON, 2, 0, dissect_minimize },
607   { BER_CLASS_CON, 3, 0, dissect_sHD },
608   { BER_CLASS_CON, 4, 0, dissect_classification },
609   { 0, 0, 0, NULL }
610 };
611
612 static int
613 dissect_acp133_RIParameters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
614   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
615                               RIParameters_set, hf_index, ett_acp133_RIParameters);
616
617   return offset;
618 }
619
620
621
622 static int
623 dissect_acp133_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
624   offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index);
625
626   return offset;
627 }
628 static int dissect_none(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
629   return dissect_acp133_NULL(FALSE, tvb, offset, pinfo, tree, hf_acp133_none);
630 }
631 static int dissect_unchanged(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
632   return dissect_acp133_NULL(FALSE, tvb, offset, pinfo, tree, hf_acp133_unchanged);
633 }
634 static int dissect_removed(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
635   return dissect_acp133_NULL(FALSE, tvb, offset, pinfo, tree, hf_acp133_removed);
636 }
637
638
639 static const ber_sequence_t SEQUENCE_OF_GeneralNames_sequence_of[1] = {
640   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_insteadOf_item },
641 };
642
643 static int
644 dissect_acp133_SEQUENCE_OF_GeneralNames(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
645   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
646                                       SEQUENCE_OF_GeneralNames_sequence_of, hf_index, ett_acp133_SEQUENCE_OF_GeneralNames);
647
648   return offset;
649 }
650 static int dissect_insteadOf(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
651   return dissect_acp133_SEQUENCE_OF_GeneralNames(FALSE, tvb, offset, pinfo, tree, hf_acp133_insteadOf);
652 }
653 static int dissect_inAdditionTo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
654   return dissect_acp133_SEQUENCE_OF_GeneralNames(FALSE, tvb, offset, pinfo, tree, hf_acp133_inAdditionTo);
655 }
656
657
658 static const value_string acp133_MLReceiptPolicy_vals[] = {
659   {   0, "none" },
660   {   1, "insteadOf" },
661   {   2, "inAdditionTo" },
662   { 0, NULL }
663 };
664
665 static const ber_choice_t MLReceiptPolicy_choice[] = {
666   {   0, BER_CLASS_CON, 0, 0, dissect_none },
667   {   1, BER_CLASS_CON, 1, 0, dissect_insteadOf },
668   {   2, BER_CLASS_CON, 2, 0, dissect_inAdditionTo },
669   { 0, 0, 0, 0, NULL }
670 };
671
672 static int
673 dissect_acp133_MLReceiptPolicy(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
674   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
675                                  MLReceiptPolicy_choice, hf_index, ett_acp133_MLReceiptPolicy,
676                                  NULL);
677
678   return offset;
679 }
680
681
682
683 static int
684 dissect_acp133_ORNamePattern(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
685   offset = dissect_x411_ORName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
686
687   return offset;
688 }
689 static int dissect_pattern_match(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
690   return dissect_acp133_ORNamePattern(FALSE, tvb, offset, pinfo, tree, hf_acp133_pattern_match);
691 }
692
693
694 static const value_string acp133_DLSubmitPermission_vals[] = {
695   {   0, "individual" },
696   {   1, "member-of-dl" },
697   {   2, "pattern-match" },
698   {   3, "member-of-group" },
699   { 0, NULL }
700 };
701
702 static const ber_choice_t DLSubmitPermission_choice[] = {
703   {   0, BER_CLASS_CON, 0, 0, dissect_individual },
704   {   1, BER_CLASS_CON, 1, 0, dissect_member_of_dl },
705   {   2, BER_CLASS_CON, 2, 0, dissect_pattern_match },
706   {   3, BER_CLASS_CON, 3, 0, dissect_member_of_group },
707   { 0, 0, 0, 0, NULL }
708 };
709
710 static int
711 dissect_acp133_DLSubmitPermission(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
712   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
713                                  DLSubmitPermission_choice, hf_index, ett_acp133_DLSubmitPermission,
714                                  NULL);
715
716   return offset;
717 }
718
719
720 static const value_string acp133_T_report_propagation_vals[] = {
721   {   0, "previous-dl-or-originator" },
722   {   1, "dl-owner" },
723   {   2, "both-previous-and-owner" },
724   { 0, NULL }
725 };
726
727
728 static int
729 dissect_acp133_T_report_propagation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
730   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
731                                   NULL);
732
733   return offset;
734 }
735 static int dissect_report_propagation(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
736   return dissect_acp133_T_report_propagation(FALSE, tvb, offset, pinfo, tree, hf_acp133_report_propagation);
737 }
738
739
740 static const value_string acp133_T_report_from_dl_vals[] = {
741   {   0, "whenever-requested" },
742   {   1, "when-no-propagation" },
743   { 0, NULL }
744 };
745
746
747 static int
748 dissect_acp133_T_report_from_dl(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
749   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
750                                   NULL);
751
752   return offset;
753 }
754 static int dissect_report_from_dl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
755   return dissect_acp133_T_report_from_dl(FALSE, tvb, offset, pinfo, tree, hf_acp133_report_from_dl);
756 }
757
758
759 static const value_string acp133_T_originating_MTA_report_vals[] = {
760   {   0, "unchanged" },
761   {   2, "report" },
762   {   3, "non-delivery-report" },
763   {   4, "audited-report" },
764   { 0, NULL }
765 };
766
767
768 static int
769 dissect_acp133_T_originating_MTA_report(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
770   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
771                                   NULL);
772
773   return offset;
774 }
775 static int dissect_originating_MTA_report(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
776   return dissect_acp133_T_originating_MTA_report(FALSE, tvb, offset, pinfo, tree, hf_acp133_originating_MTA_report);
777 }
778
779
780 static const value_string acp133_T_originator_report_vals[] = {
781   {   0, "unchanged" },
782   {   1, "no-report" },
783   {   2, "report" },
784   {   3, "non-delivery-report" },
785   { 0, NULL }
786 };
787
788
789 static int
790 dissect_acp133_T_originator_report(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
791   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
792                                   NULL);
793
794   return offset;
795 }
796 static int dissect_originator_report(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
797   return dissect_acp133_T_originator_report(FALSE, tvb, offset, pinfo, tree, hf_acp133_originator_report);
798 }
799
800
801 static const value_string acp133_T_return_of_content_vals[] = {
802   {   0, "unchanged" },
803   {   1, "content-return-not-requested" },
804   {   2, "content-return-requested" },
805   { 0, NULL }
806 };
807
808
809 static int
810 dissect_acp133_T_return_of_content(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
811   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
812                                   NULL);
813
814   return offset;
815 }
816 static int dissect_return_of_content(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
817   return dissect_acp133_T_return_of_content(FALSE, tvb, offset, pinfo, tree, hf_acp133_return_of_content);
818 }
819
820
821 static const value_string acp133_T_priority_vals[] = {
822   {   0, "unchanged" },
823   {   1, "normal" },
824   {   2, "non-urgent" },
825   {   3, "urgent" },
826   { 0, NULL }
827 };
828
829
830 static int
831 dissect_acp133_T_priority(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
832   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
833                                   NULL);
834
835   return offset;
836 }
837 static int dissect_priority(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
838   return dissect_acp133_T_priority(FALSE, tvb, offset, pinfo, tree, hf_acp133_priority);
839 }
840
841
842 static const value_string acp133_T_disclosure_of_other_recipients_vals[] = {
843   {   0, "unchanged" },
844   {   1, "disclosure-of-other-recipients-prohibited" },
845   {   2, "disclosure-of-other-recipients-allowed" },
846   { 0, NULL }
847 };
848
849
850 static int
851 dissect_acp133_T_disclosure_of_other_recipients(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
852   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
853                                   NULL);
854
855   return offset;
856 }
857 static int dissect_disclosure_of_other_recipients(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
858   return dissect_acp133_T_disclosure_of_other_recipients(FALSE, tvb, offset, pinfo, tree, hf_acp133_disclosure_of_other_recipients);
859 }
860
861
862 static const value_string acp133_T_implicit_conversion_prohibited_vals[] = {
863   {   0, "unchanged" },
864   {   1, "implicit-conversion-allowed" },
865   {   2, "implicit-conversion-prohibited" },
866   { 0, NULL }
867 };
868
869
870 static int
871 dissect_acp133_T_implicit_conversion_prohibited(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
872   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
873                                   NULL);
874
875   return offset;
876 }
877 static int dissect_implicit_conversion_prohibited(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
878   return dissect_acp133_T_implicit_conversion_prohibited(FALSE, tvb, offset, pinfo, tree, hf_acp133_implicit_conversion_prohibited);
879 }
880
881
882 static const value_string acp133_T_conversion_with_loss_prohibited_vals[] = {
883   {   0, "unchanged" },
884   {   1, "conversion-with-loss-allowed" },
885   {   2, "conversion-with-loss-prohibited" },
886   { 0, NULL }
887 };
888
889
890 static int
891 dissect_acp133_T_conversion_with_loss_prohibited(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
892   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
893                                   NULL);
894
895   return offset;
896 }
897 static int dissect_conversion_with_loss_prohibited(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
898   return dissect_acp133_T_conversion_with_loss_prohibited(FALSE, tvb, offset, pinfo, tree, hf_acp133_conversion_with_loss_prohibited);
899 }
900
901
902 static const value_string acp133_T_proof_of_delivery_vals[] = {
903   {   0, "dl-expansion-point" },
904   {   1, "dl-members" },
905   {   2, "both" },
906   {   3, "neither" },
907   { 0, NULL }
908 };
909
910
911 static int
912 dissect_acp133_T_proof_of_delivery(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
913   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
914                                   NULL);
915
916   return offset;
917 }
918 static int dissect_proof_of_delivery(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
919   return dissect_acp133_T_proof_of_delivery(FALSE, tvb, offset, pinfo, tree, hf_acp133_proof_of_delivery);
920 }
921
922
923 static const value_string acp133_T_requested_delivery_method_vals[] = {
924   {   0, "unchanged" },
925   {   1, "removed" },
926   {   2, "replaced" },
927   { 0, NULL }
928 };
929
930 static const ber_choice_t T_requested_delivery_method_choice[] = {
931   {   0, BER_CLASS_CON, 0, 0, dissect_unchanged },
932   {   1, BER_CLASS_CON, 1, 0, dissect_removed },
933   {   2, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_replaced },
934   { 0, 0, 0, 0, NULL }
935 };
936
937 static int
938 dissect_acp133_T_requested_delivery_method(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
939   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
940                                  T_requested_delivery_method_choice, hf_index, ett_acp133_T_requested_delivery_method,
941                                  NULL);
942
943   return offset;
944 }
945 static int dissect_requested_delivery_method(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
946   return dissect_acp133_T_requested_delivery_method(FALSE, tvb, offset, pinfo, tree, hf_acp133_requested_delivery_method);
947 }
948
949
950 static const ber_sequence_t AlgorithmInformation_sequence[] = {
951   { BER_CLASS_CON, 0, 0, dissect_algorithm_identifier },
952   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_originator_certificate_selector },
953   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_recipient_certificate_selector },
954   { 0, 0, 0, NULL }
955 };
956
957 static int
958 dissect_acp133_AlgorithmInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
959   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
960                                    AlgorithmInformation_sequence, hf_index, ett_acp133_AlgorithmInformation);
961
962   return offset;
963 }
964 static int dissect_token_encryption_algorithm_preference_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
965   return dissect_acp133_AlgorithmInformation(FALSE, tvb, offset, pinfo, tree, hf_acp133_token_encryption_algorithm_preference_item);
966 }
967 static int dissect_token_signature_algorithm_preference_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
968   return dissect_acp133_AlgorithmInformation(FALSE, tvb, offset, pinfo, tree, hf_acp133_token_signature_algorithm_preference_item);
969 }
970
971
972 static const ber_sequence_t SEQUENCE_OF_AlgorithmInformation_sequence_of[1] = {
973   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_token_encryption_algorithm_preference_item },
974 };
975
976 static int
977 dissect_acp133_SEQUENCE_OF_AlgorithmInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
978   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
979                                       SEQUENCE_OF_AlgorithmInformation_sequence_of, hf_index, ett_acp133_SEQUENCE_OF_AlgorithmInformation);
980
981   return offset;
982 }
983 static int dissect_token_encryption_algorithm_preference(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
984   return dissect_acp133_SEQUENCE_OF_AlgorithmInformation(FALSE, tvb, offset, pinfo, tree, hf_acp133_token_encryption_algorithm_preference);
985 }
986 static int dissect_token_signature_algorithm_preference(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
987   return dissect_acp133_SEQUENCE_OF_AlgorithmInformation(FALSE, tvb, offset, pinfo, tree, hf_acp133_token_signature_algorithm_preference);
988 }
989
990
991 static const ber_sequence_t DLPolicy_set[] = {
992   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_report_propagation },
993   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_report_from_dl },
994   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_originating_MTA_report },
995   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_originator_report },
996   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_return_of_content },
997   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_priority },
998   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_disclosure_of_other_recipients },
999   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_implicit_conversion_prohibited },
1000   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_conversion_with_loss_prohibited },
1001   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_further_dl_expansion_allowed },
1002   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_originator_requested_alternate_recipient_removed },
1003   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_proof_of_delivery },
1004   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_requested_delivery_method },
1005   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL, dissect_token_encryption_algorithm_preference },
1006   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_token_signature_algorithm_preference },
1007   { 0, 0, 0, NULL }
1008 };
1009
1010 static int
1011 dissect_acp133_DLPolicy(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1012   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1013                               DLPolicy_set, hf_index, ett_acp133_DLPolicy);
1014
1015   return offset;
1016 }
1017
1018
1019
1020 static int
1021 dissect_acp133_GeneralString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1022   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GeneralString,
1023                                             pinfo, tree, tvb, offset, hf_index,
1024                                             NULL);
1025
1026   return offset;
1027 }
1028 static int dissect_description(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1029   return dissect_acp133_GeneralString(FALSE, tvb, offset, pinfo, tree, hf_acp133_description);
1030 }
1031
1032
1033 static const ber_sequence_t SET_OF_ExtendedContentType_set_of[1] = {
1034   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_content_types_item },
1035 };
1036
1037 static int
1038 dissect_acp133_SET_OF_ExtendedContentType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1039   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1040                                  SET_OF_ExtendedContentType_set_of, hf_index, ett_acp133_SET_OF_ExtendedContentType);
1041
1042   return offset;
1043 }
1044 static int dissect_content_types(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1045   return dissect_acp133_SET_OF_ExtendedContentType(FALSE, tvb, offset, pinfo, tree, hf_acp133_content_types);
1046 }
1047
1048
1049 static const ber_sequence_t Capability_set[] = {
1050   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_content_types },
1051   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_maximum_content_length },
1052   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_encoded_information_types_constraints },
1053   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_security_labels },
1054   { 0, 0, 0, NULL }
1055 };
1056
1057 static int
1058 dissect_acp133_Capability(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1059   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1060                               Capability_set, hf_index, ett_acp133_Capability);
1061
1062   return offset;
1063 }
1064 static int dissect_capabilities_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1065   return dissect_acp133_Capability(FALSE, tvb, offset, pinfo, tree, hf_acp133_capabilities_item);
1066 }
1067
1068
1069 static const ber_sequence_t SET_OF_Capability_set_of[1] = {
1070   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_capabilities_item },
1071 };
1072
1073 static int
1074 dissect_acp133_SET_OF_Capability(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1075   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1076                                  SET_OF_Capability_set_of, hf_index, ett_acp133_SET_OF_Capability);
1077
1078   return offset;
1079 }
1080 static int dissect_capabilities(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1081   return dissect_acp133_SET_OF_Capability(FALSE, tvb, offset, pinfo, tree, hf_acp133_capabilities);
1082 }
1083
1084
1085 static const ber_sequence_t AddressCapabilities_sequence[] = {
1086   { BER_CLASS_UNI, BER_UNI_TAG_GeneralString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_description },
1087   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_address },
1088   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_capabilities },
1089   { 0, 0, 0, NULL }
1090 };
1091
1092 static int
1093 dissect_acp133_AddressCapabilities(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1094   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1095                                    AddressCapabilities_sequence, hf_index, ett_acp133_AddressCapabilities);
1096
1097   return offset;
1098 }
1099
1100 /*--- PDUs ---*/
1101
1102 static void dissect_ACPPreferredDelivery_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
1103   dissect_acp133_ACPPreferredDelivery(FALSE, tvb, 0, pinfo, tree, hf_acp133_ACPPreferredDelivery_PDU);
1104 }
1105 static void dissect_ALType_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
1106   dissect_acp133_ALType(FALSE, tvb, 0, pinfo, tree, hf_acp133_ALType_PDU);
1107 }
1108 static void dissect_Community_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
1109   dissect_acp133_Community(FALSE, tvb, 0, pinfo, tree, hf_acp133_Community_PDU);
1110 }
1111 static void dissect_OnSupported_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
1112   dissect_acp133_OnSupported(FALSE, tvb, 0, pinfo, tree, hf_acp133_OnSupported_PDU);
1113 }
1114 static void dissect_ACPLegacyFormat_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
1115   dissect_acp133_ACPLegacyFormat(FALSE, tvb, 0, pinfo, tree, hf_acp133_ACPLegacyFormat_PDU);
1116 }
1117 static void dissect_Addressees_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
1118   dissect_acp133_Addressees(FALSE, tvb, 0, pinfo, tree, hf_acp133_Addressees_PDU);
1119 }
1120 static void dissect_Classification_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
1121   dissect_acp133_Classification(FALSE, tvb, 0, pinfo, tree, hf_acp133_Classification_PDU);
1122 }
1123 static void dissect_DistributionCode_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
1124   dissect_acp133_DistributionCode(FALSE, tvb, 0, pinfo, tree, hf_acp133_DistributionCode_PDU);
1125 }
1126 static void dissect_JPEG_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
1127   dissect_acp133_JPEG(FALSE, tvb, 0, pinfo, tree, hf_acp133_JPEG_PDU);
1128 }
1129 static void dissect_MonthlyUKMs_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
1130   dissect_acp133_MonthlyUKMs(FALSE, tvb, 0, pinfo, tree, hf_acp133_MonthlyUKMs_PDU);
1131 }
1132 static void dissect_Remarks_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
1133   dissect_acp133_Remarks(FALSE, tvb, 0, pinfo, tree, hf_acp133_Remarks_PDU);
1134 }
1135 static void dissect_RIParameters_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
1136   dissect_acp133_RIParameters(FALSE, tvb, 0, pinfo, tree, hf_acp133_RIParameters_PDU);
1137 }
1138 static void dissect_Kmid_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
1139   dissect_acp133_Kmid(FALSE, tvb, 0, pinfo, tree, hf_acp133_Kmid_PDU);
1140 }
1141 static void dissect_MLReceiptPolicy_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
1142   dissect_acp133_MLReceiptPolicy(FALSE, tvb, 0, pinfo, tree, hf_acp133_MLReceiptPolicy_PDU);
1143 }
1144 static void dissect_DLSubmitPermission_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
1145   dissect_acp133_DLSubmitPermission(FALSE, tvb, 0, pinfo, tree, hf_acp133_DLSubmitPermission_PDU);
1146 }
1147 static void dissect_DLPolicy_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
1148   dissect_acp133_DLPolicy(FALSE, tvb, 0, pinfo, tree, hf_acp133_DLPolicy_PDU);
1149 }
1150 static void dissect_AddressCapabilities_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
1151   dissect_acp133_AddressCapabilities(FALSE, tvb, 0, pinfo, tree, hf_acp133_AddressCapabilities_PDU);
1152 }
1153 static void dissect_Capability_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
1154   dissect_acp133_Capability(FALSE, tvb, 0, pinfo, tree, hf_acp133_Capability_PDU);
1155 }
1156
1157
1158 /*--- End of included file: packet-acp133-fn.c ---*/
1159 #line 62 "packet-acp133-template.c"
1160
1161
1162 /*--- proto_register_acp133 -------------------------------------------*/
1163 void proto_register_acp133(void) {
1164
1165   /* List of fields */
1166   static hf_register_info hf[] =
1167   {
1168
1169 /*--- Included file: packet-acp133-hfarr.c ---*/
1170 #line 1 "packet-acp133-hfarr.c"
1171     { &hf_acp133_ACPPreferredDelivery_PDU,
1172       { "ACPPreferredDelivery", "acp133.ACPPreferredDelivery",
1173         FT_UINT32, BASE_DEC, VALS(acp133_ACPPreferredDelivery_vals), 0,
1174         "ACPPreferredDelivery", HFILL }},
1175     { &hf_acp133_ALType_PDU,
1176       { "ALType", "acp133.ALType",
1177         FT_INT32, BASE_DEC, VALS(acp133_ALType_vals), 0,
1178         "ALType", HFILL }},
1179     { &hf_acp133_Community_PDU,
1180       { "Community", "acp133.Community",
1181         FT_UINT32, BASE_DEC, VALS(acp133_Community_vals), 0,
1182         "Community", HFILL }},
1183     { &hf_acp133_OnSupported_PDU,
1184       { "OnSupported", "acp133.OnSupported",
1185         FT_BYTES, BASE_HEX, NULL, 0,
1186         "OnSupported", HFILL }},
1187     { &hf_acp133_ACPLegacyFormat_PDU,
1188       { "ACPLegacyFormat", "acp133.ACPLegacyFormat",
1189         FT_INT32, BASE_DEC, VALS(acp133_ACPLegacyFormat_vals), 0,
1190         "ACPLegacyFormat", HFILL }},
1191     { &hf_acp133_Addressees_PDU,
1192       { "Addressees", "acp133.Addressees",
1193         FT_UINT32, BASE_DEC, NULL, 0,
1194         "Addressees", HFILL }},
1195     { &hf_acp133_Classification_PDU,
1196       { "Classification", "acp133.Classification",
1197         FT_UINT32, BASE_DEC, VALS(acp133_Classification_vals), 0,
1198         "Classification", HFILL }},
1199     { &hf_acp133_DistributionCode_PDU,
1200       { "DistributionCode", "acp133.DistributionCode",
1201         FT_STRING, BASE_NONE, NULL, 0,
1202         "DistributionCode", HFILL }},
1203     { &hf_acp133_JPEG_PDU,
1204       { "JPEG", "acp133.JPEG",
1205         FT_BYTES, BASE_HEX, NULL, 0,
1206         "JPEG", HFILL }},
1207     { &hf_acp133_MonthlyUKMs_PDU,
1208       { "MonthlyUKMs", "acp133.MonthlyUKMs",
1209         FT_NONE, BASE_NONE, NULL, 0,
1210         "MonthlyUKMs", HFILL }},
1211     { &hf_acp133_Remarks_PDU,
1212       { "Remarks", "acp133.Remarks",
1213         FT_UINT32, BASE_DEC, NULL, 0,
1214         "Remarks", HFILL }},
1215     { &hf_acp133_RIParameters_PDU,
1216       { "RIParameters", "acp133.RIParameters",
1217         FT_NONE, BASE_NONE, NULL, 0,
1218         "RIParameters", HFILL }},
1219     { &hf_acp133_Kmid_PDU,
1220       { "Kmid", "acp133.Kmid",
1221         FT_BYTES, BASE_HEX, NULL, 0,
1222         "Kmid", HFILL }},
1223     { &hf_acp133_MLReceiptPolicy_PDU,
1224       { "MLReceiptPolicy", "acp133.MLReceiptPolicy",
1225         FT_UINT32, BASE_DEC, VALS(acp133_MLReceiptPolicy_vals), 0,
1226         "MLReceiptPolicy", HFILL }},
1227     { &hf_acp133_DLSubmitPermission_PDU,
1228       { "DLSubmitPermission", "acp133.DLSubmitPermission",
1229         FT_UINT32, BASE_DEC, VALS(acp133_DLSubmitPermission_vals), 0,
1230         "DLSubmitPermission", HFILL }},
1231     { &hf_acp133_DLPolicy_PDU,
1232       { "DLPolicy", "acp133.DLPolicy",
1233         FT_NONE, BASE_NONE, NULL, 0,
1234         "DLPolicy", HFILL }},
1235     { &hf_acp133_AddressCapabilities_PDU,
1236       { "AddressCapabilities", "acp133.AddressCapabilities",
1237         FT_NONE, BASE_NONE, NULL, 0,
1238         "AddressCapabilities", HFILL }},
1239     { &hf_acp133_Capability_PDU,
1240       { "Capability", "acp133.Capability",
1241         FT_NONE, BASE_NONE, NULL, 0,
1242         "Capability", HFILL }},
1243     { &hf_acp133_Addressees_item,
1244       { "Item", "acp133.Addressees_item",
1245         FT_STRING, BASE_NONE, NULL, 0,
1246         "Addressees/_item", HFILL }},
1247     { &hf_acp133_ukm_entries,
1248       { "ukm-entries", "acp133.ukm_entries",
1249         FT_UINT32, BASE_DEC, NULL, 0,
1250         "MonthlyUKMs/ukm-entries", HFILL }},
1251     { &hf_acp133_ukm_entries_item,
1252       { "Item", "acp133.ukm_entries_item",
1253         FT_NONE, BASE_NONE, NULL, 0,
1254         "MonthlyUKMs/ukm-entries/_item", HFILL }},
1255     { &hf_acp133_algorithm_identifier,
1256       { "algorithm-identifier", "acp133.algorithm_identifier",
1257         FT_NONE, BASE_NONE, NULL, 0,
1258         "", HFILL }},
1259     { &hf_acp133_encrypted,
1260       { "encrypted", "acp133.encrypted",
1261         FT_BYTES, BASE_HEX, NULL, 0,
1262         "MonthlyUKMs/encrypted", HFILL }},
1263     { &hf_acp133_Remarks_item,
1264       { "Item", "acp133.Remarks_item",
1265         FT_STRING, BASE_NONE, NULL, 0,
1266         "Remarks/_item", HFILL }},
1267     { &hf_acp133_rI,
1268       { "rI", "acp133.rI",
1269         FT_STRING, BASE_NONE, NULL, 0,
1270         "RIParameters/rI", HFILL }},
1271     { &hf_acp133_rIType,
1272       { "rIType", "acp133.rIType",
1273         FT_UINT32, BASE_DEC, VALS(acp133_T_rIType_vals), 0,
1274         "RIParameters/rIType", HFILL }},
1275     { &hf_acp133_minimize,
1276       { "minimize", "acp133.minimize",
1277         FT_BOOLEAN, 8, NULL, 0,
1278         "RIParameters/minimize", HFILL }},
1279     { &hf_acp133_sHD,
1280       { "sHD", "acp133.sHD",
1281         FT_STRING, BASE_NONE, NULL, 0,
1282         "RIParameters/sHD", HFILL }},
1283     { &hf_acp133_classification,
1284       { "classification", "acp133.classification",
1285         FT_UINT32, BASE_DEC, VALS(acp133_Classification_vals), 0,
1286         "RIParameters/classification", HFILL }},
1287     { &hf_acp133_tag,
1288       { "tag", "acp133.tag",
1289         FT_NONE, BASE_NONE, NULL, 0,
1290         "UKMEntry/tag", HFILL }},
1291     { &hf_acp133_ukm,
1292       { "ukm", "acp133.ukm",
1293         FT_BYTES, BASE_HEX, NULL, 0,
1294         "UKMEntry/ukm", HFILL }},
1295     { &hf_acp133_kmid,
1296       { "kmid", "acp133.kmid",
1297         FT_BYTES, BASE_HEX, NULL, 0,
1298         "PairwiseTag/kmid", HFILL }},
1299     { &hf_acp133_edition,
1300       { "edition", "acp133.edition",
1301         FT_INT32, BASE_DEC, NULL, 0,
1302         "PairwiseTag/edition", HFILL }},
1303     { &hf_acp133_date,
1304       { "date", "acp133.date",
1305         FT_STRING, BASE_NONE, NULL, 0,
1306         "PairwiseTag/date", HFILL }},
1307     { &hf_acp133_none,
1308       { "none", "acp133.none",
1309         FT_NONE, BASE_NONE, NULL, 0,
1310         "MLReceiptPolicy/none", HFILL }},
1311     { &hf_acp133_insteadOf,
1312       { "insteadOf", "acp133.insteadOf",
1313         FT_UINT32, BASE_DEC, NULL, 0,
1314         "MLReceiptPolicy/insteadOf", HFILL }},
1315     { &hf_acp133_insteadOf_item,
1316       { "Item", "acp133.insteadOf_item",
1317         FT_UINT32, BASE_DEC, NULL, 0,
1318         "MLReceiptPolicy/insteadOf/_item", HFILL }},
1319     { &hf_acp133_inAdditionTo,
1320       { "inAdditionTo", "acp133.inAdditionTo",
1321         FT_UINT32, BASE_DEC, NULL, 0,
1322         "MLReceiptPolicy/inAdditionTo", HFILL }},
1323     { &hf_acp133_inAdditionTo_item,
1324       { "Item", "acp133.inAdditionTo_item",
1325         FT_UINT32, BASE_DEC, NULL, 0,
1326         "MLReceiptPolicy/inAdditionTo/_item", HFILL }},
1327     { &hf_acp133_individual,
1328       { "individual", "acp133.individual",
1329         FT_NONE, BASE_NONE, NULL, 0,
1330         "DLSubmitPermission/individual", HFILL }},
1331     { &hf_acp133_member_of_dl,
1332       { "member-of-dl", "acp133.member_of_dl",
1333         FT_NONE, BASE_NONE, NULL, 0,
1334         "DLSubmitPermission/member-of-dl", HFILL }},
1335     { &hf_acp133_pattern_match,
1336       { "pattern-match", "acp133.pattern_match",
1337         FT_NONE, BASE_NONE, NULL, 0,
1338         "DLSubmitPermission/pattern-match", HFILL }},
1339     { &hf_acp133_member_of_group,
1340       { "member-of-group", "acp133.member_of_group",
1341         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
1342         "DLSubmitPermission/member-of-group", HFILL }},
1343     { &hf_acp133_report_propagation,
1344       { "report-propagation", "acp133.report_propagation",
1345         FT_INT32, BASE_DEC, VALS(acp133_T_report_propagation_vals), 0,
1346         "DLPolicy/report-propagation", HFILL }},
1347     { &hf_acp133_report_from_dl,
1348       { "report-from-dl", "acp133.report_from_dl",
1349         FT_INT32, BASE_DEC, VALS(acp133_T_report_from_dl_vals), 0,
1350         "DLPolicy/report-from-dl", HFILL }},
1351     { &hf_acp133_originating_MTA_report,
1352       { "originating-MTA-report", "acp133.originating_MTA_report",
1353         FT_INT32, BASE_DEC, VALS(acp133_T_originating_MTA_report_vals), 0,
1354         "DLPolicy/originating-MTA-report", HFILL }},
1355     { &hf_acp133_originator_report,
1356       { "originator-report", "acp133.originator_report",
1357         FT_INT32, BASE_DEC, VALS(acp133_T_originator_report_vals), 0,
1358         "DLPolicy/originator-report", HFILL }},
1359     { &hf_acp133_return_of_content,
1360       { "return-of-content", "acp133.return_of_content",
1361         FT_UINT32, BASE_DEC, VALS(acp133_T_return_of_content_vals), 0,
1362         "DLPolicy/return-of-content", HFILL }},
1363     { &hf_acp133_priority,
1364       { "priority", "acp133.priority",
1365         FT_INT32, BASE_DEC, VALS(acp133_T_priority_vals), 0,
1366         "DLPolicy/priority", HFILL }},
1367     { &hf_acp133_disclosure_of_other_recipients,
1368       { "disclosure-of-other-recipients", "acp133.disclosure_of_other_recipients",
1369         FT_UINT32, BASE_DEC, VALS(acp133_T_disclosure_of_other_recipients_vals), 0,
1370         "DLPolicy/disclosure-of-other-recipients", HFILL }},
1371     { &hf_acp133_implicit_conversion_prohibited,
1372       { "implicit-conversion-prohibited", "acp133.implicit_conversion_prohibited",
1373         FT_UINT32, BASE_DEC, VALS(acp133_T_implicit_conversion_prohibited_vals), 0,
1374         "DLPolicy/implicit-conversion-prohibited", HFILL }},
1375     { &hf_acp133_conversion_with_loss_prohibited,
1376       { "conversion-with-loss-prohibited", "acp133.conversion_with_loss_prohibited",
1377         FT_UINT32, BASE_DEC, VALS(acp133_T_conversion_with_loss_prohibited_vals), 0,
1378         "DLPolicy/conversion-with-loss-prohibited", HFILL }},
1379     { &hf_acp133_further_dl_expansion_allowed,
1380       { "further-dl-expansion-allowed", "acp133.further_dl_expansion_allowed",
1381         FT_BOOLEAN, 8, NULL, 0,
1382         "DLPolicy/further-dl-expansion-allowed", HFILL }},
1383     { &hf_acp133_originator_requested_alternate_recipient_removed,
1384       { "originator-requested-alternate-recipient-removed", "acp133.originator_requested_alternate_recipient_removed",
1385         FT_BOOLEAN, 8, NULL, 0,
1386         "DLPolicy/originator-requested-alternate-recipient-removed", HFILL }},
1387     { &hf_acp133_proof_of_delivery,
1388       { "proof-of-delivery", "acp133.proof_of_delivery",
1389         FT_INT32, BASE_DEC, VALS(acp133_T_proof_of_delivery_vals), 0,
1390         "DLPolicy/proof-of-delivery", HFILL }},
1391     { &hf_acp133_requested_delivery_method,
1392       { "requested-delivery-method", "acp133.requested_delivery_method",
1393         FT_UINT32, BASE_DEC, VALS(acp133_T_requested_delivery_method_vals), 0,
1394         "DLPolicy/requested-delivery-method", HFILL }},
1395     { &hf_acp133_unchanged,
1396       { "unchanged", "acp133.unchanged",
1397         FT_NONE, BASE_NONE, NULL, 0,
1398         "DLPolicy/requested-delivery-method/unchanged", HFILL }},
1399     { &hf_acp133_removed,
1400       { "removed", "acp133.removed",
1401         FT_NONE, BASE_NONE, NULL, 0,
1402         "DLPolicy/requested-delivery-method/removed", HFILL }},
1403     { &hf_acp133_replaced,
1404       { "replaced", "acp133.replaced",
1405         FT_UINT32, BASE_DEC, NULL, 0,
1406         "DLPolicy/requested-delivery-method/replaced", HFILL }},
1407     { &hf_acp133_token_encryption_algorithm_preference,
1408       { "token-encryption-algorithm-preference", "acp133.token_encryption_algorithm_preference",
1409         FT_UINT32, BASE_DEC, NULL, 0,
1410         "DLPolicy/token-encryption-algorithm-preference", HFILL }},
1411     { &hf_acp133_token_encryption_algorithm_preference_item,
1412       { "Item", "acp133.token_encryption_algorithm_preference_item",
1413         FT_NONE, BASE_NONE, NULL, 0,
1414         "DLPolicy/token-encryption-algorithm-preference/_item", HFILL }},
1415     { &hf_acp133_token_signature_algorithm_preference,
1416       { "token-signature-algorithm-preference", "acp133.token_signature_algorithm_preference",
1417         FT_UINT32, BASE_DEC, NULL, 0,
1418         "DLPolicy/token-signature-algorithm-preference", HFILL }},
1419     { &hf_acp133_token_signature_algorithm_preference_item,
1420       { "Item", "acp133.token_signature_algorithm_preference_item",
1421         FT_NONE, BASE_NONE, NULL, 0,
1422         "DLPolicy/token-signature-algorithm-preference/_item", HFILL }},
1423     { &hf_acp133_originator_certificate_selector,
1424       { "originator-certificate-selector", "acp133.originator_certificate_selector",
1425         FT_NONE, BASE_NONE, NULL, 0,
1426         "AlgorithmInformation/originator-certificate-selector", HFILL }},
1427     { &hf_acp133_recipient_certificate_selector,
1428       { "recipient-certificate-selector", "acp133.recipient_certificate_selector",
1429         FT_NONE, BASE_NONE, NULL, 0,
1430         "AlgorithmInformation/recipient-certificate-selector", HFILL }},
1431     { &hf_acp133_description,
1432       { "description", "acp133.description",
1433         FT_STRING, BASE_NONE, NULL, 0,
1434         "AddressCapabilities/description", HFILL }},
1435     { &hf_acp133_address,
1436       { "address", "acp133.address",
1437         FT_NONE, BASE_NONE, NULL, 0,
1438         "AddressCapabilities/address", HFILL }},
1439     { &hf_acp133_capabilities,
1440       { "capabilities", "acp133.capabilities",
1441         FT_UINT32, BASE_DEC, NULL, 0,
1442         "AddressCapabilities/capabilities", HFILL }},
1443     { &hf_acp133_capabilities_item,
1444       { "Item", "acp133.capabilities_item",
1445         FT_NONE, BASE_NONE, NULL, 0,
1446         "AddressCapabilities/capabilities/_item", HFILL }},
1447     { &hf_acp133_content_types,
1448       { "content-types", "acp133.content_types",
1449         FT_UINT32, BASE_DEC, NULL, 0,
1450         "Capability/content-types", HFILL }},
1451     { &hf_acp133_content_types_item,
1452       { "Item", "acp133.content_types_item",
1453         FT_OID, BASE_NONE, NULL, 0,
1454         "Capability/content-types/_item", HFILL }},
1455     { &hf_acp133_maximum_content_length,
1456       { "maximum-content-length", "acp133.maximum_content_length",
1457         FT_UINT32, BASE_DEC, NULL, 0,
1458         "Capability/maximum-content-length", HFILL }},
1459     { &hf_acp133_encoded_information_types_constraints,
1460       { "encoded-information-types-constraints", "acp133.encoded_information_types_constraints",
1461         FT_NONE, BASE_NONE, NULL, 0,
1462         "Capability/encoded-information-types-constraints", HFILL }},
1463     { &hf_acp133_security_labels,
1464       { "security-labels", "acp133.security_labels",
1465         FT_UINT32, BASE_DEC, NULL, 0,
1466         "Capability/security-labels", HFILL }},
1467     { &hf_acp133_OnSupported_acp127_nn,
1468       { "acp127-nn", "acp133.acp127-nn",
1469         FT_BOOLEAN, 8, NULL, 0x80,
1470         "", HFILL }},
1471     { &hf_acp133_OnSupported_acp127_pn,
1472       { "acp127-pn", "acp133.acp127-pn",
1473         FT_BOOLEAN, 8, NULL, 0x40,
1474         "", HFILL }},
1475     { &hf_acp133_OnSupported_acp127_tn,
1476       { "acp127-tn", "acp133.acp127-tn",
1477         FT_BOOLEAN, 8, NULL, 0x20,
1478         "", HFILL }},
1479
1480 /*--- End of included file: packet-acp133-hfarr.c ---*/
1481 #line 71 "packet-acp133-template.c"
1482   };
1483
1484   /* List of subtrees */
1485   static gint *ett[] = {
1486     &ett_acp133,
1487
1488 /*--- Included file: packet-acp133-ettarr.c ---*/
1489 #line 1 "packet-acp133-ettarr.c"
1490     &ett_acp133_OnSupported,
1491     &ett_acp133_Addressees,
1492     &ett_acp133_MonthlyUKMs,
1493     &ett_acp133_SEQUENCE_OF_UKMEntry,
1494     &ett_acp133_Remarks,
1495     &ett_acp133_RIParameters,
1496     &ett_acp133_UKMEntry,
1497     &ett_acp133_PairwiseTag,
1498     &ett_acp133_MLReceiptPolicy,
1499     &ett_acp133_SEQUENCE_OF_GeneralNames,
1500     &ett_acp133_DLSubmitPermission,
1501     &ett_acp133_DLPolicy,
1502     &ett_acp133_T_requested_delivery_method,
1503     &ett_acp133_SEQUENCE_OF_AlgorithmInformation,
1504     &ett_acp133_AlgorithmInformation,
1505     &ett_acp133_AddressCapabilities,
1506     &ett_acp133_SET_OF_Capability,
1507     &ett_acp133_Capability,
1508     &ett_acp133_SET_OF_ExtendedContentType,
1509
1510 /*--- End of included file: packet-acp133-ettarr.c ---*/
1511 #line 77 "packet-acp133-template.c"
1512   };
1513
1514   /* Register protocol */
1515   proto_acp133 = proto_register_protocol(PNAME, PSNAME, PFNAME);
1516
1517   /* Register fields and subtrees */
1518   proto_register_field_array(proto_acp133, hf, array_length(hf));
1519   proto_register_subtree_array(ett, array_length(ett));
1520
1521 }
1522
1523
1524 /*--- proto_reg_handoff_acp133 --- */
1525 void proto_reg_handoff_acp133(void) {
1526
1527
1528 /*--- Included file: packet-acp133-dis-tab.c ---*/
1529 #line 1 "packet-acp133-dis-tab.c"
1530   register_ber_oid_dissector("2.6.5.2.4", dissect_DLSubmitPermission_PDU, proto_acp133, "id-at-mhs-dl-submit-permissions");
1531   register_ber_oid_dissector("2.6.5.2.13", dissect_DLPolicy_PDU, proto_acp133, "id-at-mhs-dl-policy");
1532   register_ber_oid_dissector("2.6.5.2.16", dissect_AddressCapabilities_PDU, proto_acp133, "id-at-mhs-or-addresses-with-capabilities");
1533   register_ber_oid_dissector("2.6.5.2.19", dissect_Capability_PDU, proto_acp133, "id-at-mhs-deliverable-classes");
1534   register_ber_oid_dissector("2.16.840.1.101.2.1.5.14", dissect_Kmid_PDU, proto_acp133, "id-at-alid");
1535   register_ber_oid_dissector("2.16.840.1.101.2.1.5.20", dissect_MonthlyUKMs_PDU, proto_acp133, "id-at-janUKMs");
1536   register_ber_oid_dissector("2.16.840.1.101.2.1.5.21", dissect_MonthlyUKMs_PDU, proto_acp133, "id-at-febUKMs");
1537   register_ber_oid_dissector("2.16.840.1.101.2.1.5.22", dissect_MonthlyUKMs_PDU, proto_acp133, "id-at-marUKMs");
1538   register_ber_oid_dissector("2.16.840.1.101.2.1.5.23", dissect_MonthlyUKMs_PDU, proto_acp133, "id-at-aprUKMs");
1539   register_ber_oid_dissector("2.16.840.1.101.2.1.5.24", dissect_MonthlyUKMs_PDU, proto_acp133, "id-at-mayUKMs");
1540   register_ber_oid_dissector("2.16.840.1.101.2.1.5.25", dissect_MonthlyUKMs_PDU, proto_acp133, "id-at-junUKMs");
1541   register_ber_oid_dissector("2.16.840.1.101.2.1.5.26", dissect_MonthlyUKMs_PDU, proto_acp133, "id-at-julUKMs");
1542   register_ber_oid_dissector("2.16.840.1.101.2.1.5.27", dissect_MonthlyUKMs_PDU, proto_acp133, "id-at-augUKMs");
1543   register_ber_oid_dissector("2.16.840.1.101.2.1.5.28", dissect_MonthlyUKMs_PDU, proto_acp133, "id-at-sepUKMs");
1544   register_ber_oid_dissector("2.16.840.1.101.2.1.5.29", dissect_MonthlyUKMs_PDU, proto_acp133, "id-at-octUKMs");
1545   register_ber_oid_dissector("2.16.840.1.101.2.1.5.30", dissect_MonthlyUKMs_PDU, proto_acp133, "id-at-novUKMs");
1546   register_ber_oid_dissector("2.16.840.1.101.2.1.5.31", dissect_MonthlyUKMs_PDU, proto_acp133, "id-at-decUKMs");
1547   register_ber_oid_dissector("2.16.840.1.101.2.2.1.46", dissect_Addressees_PDU, proto_acp133, "id-at-actionAddressees");
1548   register_ber_oid_dissector("2.16.840.1.101.2.2.1.47", dissect_Addressees_PDU, proto_acp133, "id-at-additionalAddressees");
1549   register_ber_oid_dissector("2.16.840.1.101.2.2.1.48", dissect_Addressees_PDU, proto_acp133, "id-at-additionalSecondPartyAddressees");
1550   register_ber_oid_dissector("2.16.840.1.101.2.2.1.50", dissect_Addressees_PDU, proto_acp133, "id-at-allowableOriginators");
1551   register_ber_oid_dissector("2.16.840.1.101.2.2.1.52", dissect_Community_PDU, proto_acp133, "id-at-community");
1552   register_ber_oid_dissector("2.16.840.1.101.2.2.1.56", dissect_Classification_PDU, proto_acp133, "id-at-entryClassification");
1553   register_ber_oid_dissector("2.16.840.1.101.2.2.1.59", dissect_Addressees_PDU, proto_acp133, "id-at-infoAddressees");
1554   register_ber_oid_dissector("2.16.840.1.101.2.2.1.67", dissect_Classification_PDU, proto_acp133, "id-at-nameClassification");
1555   register_ber_oid_dissector("2.16.840.1.101.2.2.1.71", dissect_Addressees_PDU, proto_acp133, "id-at-plaAddressees");
1556   register_ber_oid_dissector("2.16.840.1.101.2.2.1.76", dissect_Remarks_PDU, proto_acp133, "id-at-remarks");
1557   register_ber_oid_dissector("2.16.840.1.101.2.2.1.78", dissect_Classification_PDU, proto_acp133, "id-at-rIClassification");
1558   register_ber_oid_dissector("2.16.840.1.101.2.2.1.79", dissect_RIParameters_PDU, proto_acp133, "id-at-rIInfo");
1559   register_ber_oid_dissector("2.16.840.1.101.2.2.1.80", dissect_Addressees_PDU, proto_acp133, "id-at-secondPartyAddressees");
1560   register_ber_oid_dissector("2.16.840.1.101.2.2.1.104", dissect_DistributionCode_PDU, proto_acp133, "id-at-distributionCodeAction");
1561   register_ber_oid_dissector("2.16.840.1.101.2.2.1.105", dissect_DistributionCode_PDU, proto_acp133, "id-at-distributionCodeInfo");
1562   register_ber_oid_dissector("2.16.840.1.101.2.2.1.108", dissect_ACPPreferredDelivery_PDU, proto_acp133, "id-at-aCPPreferredDelivery");
1563   register_ber_oid_dissector("2.16.840.1.101.2.2.1.112", dissect_ALType_PDU, proto_acp133, "id-at-aLType");
1564   register_ber_oid_dissector("2.16.840.1.101.2.2.1.123", dissect_OnSupported_PDU, proto_acp133, "id-at-onSupported");
1565   register_ber_oid_dissector("2.16.840.1.101.2.2.1.135", dissect_MLReceiptPolicy_PDU, proto_acp133, "id-at-aLReceiptPolicy");
1566   register_ber_oid_dissector("2.16.840.1.101.2.2.1.142", dissect_ACPLegacyFormat_PDU, proto_acp133, "id-at-aCPLegacyFormat");
1567   register_ber_oid_dissector("2.16.840.1.101.2.2.1.146", dissect_JPEG_PDU, proto_acp133, "id-at-aCPNetwAccessSchemaEdB");
1568   register_ber_oid_dissector("2.16.840.1.101.2.2.1.147", dissect_JPEG_PDU, proto_acp133, "id-at-aCPNetworkSchemaEdB");
1569
1570
1571 /*--- End of included file: packet-acp133-dis-tab.c ---*/
1572 #line 93 "packet-acp133-template.c"
1573
1574   /* X.402 Object Classes */
1575   add_oid_str_name("2.6.5.1.0","id-oc-mhs-distribution-list");
1576   add_oid_str_name("2.6.5.1.1","id-oc-mhs-message-store");
1577   add_oid_str_name("2.6.5.1.2","id-oc-mhs-message-transfer-agent");
1578   add_oid_str_name("2.6.5.1.3","id-oc-mhs-user");
1579
1580   /* SDN.701 Object Classes */
1581   add_oid_str_name("2.16.840.1.101.2.1.4.13", "id-oc-secure-user");
1582   add_oid_str_name("2.16.840.1.101.2.1.4.16", "id-oc-ukms");
1583
1584   /* ACP133 Object Classes */
1585   add_oid_str_name("2.16.840.1.101.2.2.3.26", "id-oc-plaData");
1586   add_oid_str_name("2.16.840.1.101.2.2.3.28", "id-oc-cadACP127");
1587   add_oid_str_name("2.16.840.1.101.2.2.3.31", "id-oc-mLA");
1588   add_oid_str_name("2.16.840.1.101.2.2.3.34", "id-oc-orgACP127");
1589   add_oid_str_name("2.16.840.1.101.2.2.3.35", "id-oc-plaCollectiveACP127");
1590   add_oid_str_name("2.16.840.1.101.2.2.3.37", "id-oc-routingIndicator");
1591   add_oid_str_name("2.16.840.1.101.2.2.3.38", "id-oc-sigintPLA");
1592   add_oid_str_name("2.16.840.1.101.2.2.3.39", "id-oc-sIPLA");
1593   add_oid_str_name("2.16.840.1.101.2.2.3.40", "id-oc-spotPLA");
1594   add_oid_str_name("2.16.840.1.101.2.2.3.41", "id-oc-taskForceACP127");
1595   add_oid_str_name("2.16.840.1.101.2.2.3.42", "id-oc-tenantACP127");
1596   add_oid_str_name("2.16.840.1.101.2.2.3.47", "id-oc-plaACP127");
1597   add_oid_str_name("2.16.840.1.101.2.2.3.52", "id-oc-aliasCommonName");
1598   add_oid_str_name("2.16.840.1.101.2.2.3.53", "id-oc-aliasOrganizationalUnit");
1599   add_oid_str_name("2.16.840.1.101.2.2.3.54", "id-oc-distributionCodesHandled");
1600   add_oid_str_name("2.16.840.1.101.2.2.3.55", "id-oc-distributionCodeDescription");
1601   add_oid_str_name("2.16.840.1.101.2.2.3.56", "id-oc-plaUser");
1602   add_oid_str_name("2.16.840.1.101.2.2.3.57", "id-oc-addressList");
1603   add_oid_str_name("2.16.840.1.101.2.2.3.58", "id-oc-altSpellingACP127");
1604   add_oid_str_name("2.16.840.1.101.2.2.3.59", "id-oc-messagingGateway");
1605   add_oid_str_name("2.16.840.1.101.2.2.3.60", "id-oc-network");
1606   add_oid_str_name("2.16.840.1.101.2.2.3.61", "id-oc-networkInstructions");
1607   add_oid_str_name("2.16.840.1.101.2.2.3.62", "id-oc-otherContactInformation");
1608   add_oid_str_name("2.16.840.1.101.2.2.3.63", "id-oc-releaseAuthorityPerson");
1609   add_oid_str_name("2.16.840.1.101.2.2.3.64", "id-oc-mLAgent");
1610   add_oid_str_name("2.16.840.1.101.2.2.3.65", "id-oc-releaseAuthorityPersonA");
1611   add_oid_str_name("2.16.840.1.101.2.2.3.66", "id-oc-securePkiUser");
1612   add_oid_str_name("2.16.840.1.101.2.2.3.67", "id-oc-dSSCSPLA");
1613   add_oid_str_name("2.16.840.1.101.2.2.3.68", "id-oc-aCPNetworkEdB");
1614   add_oid_str_name("2.16.840.1.101.2.2.3.69", "id-oc-aCPNetworkInstructionsEdB");
1615
1616   /* gateway types */
1617   add_oid_str_name("2.16.840.1.101.2.2.5.0", "acp120-acp127");
1618   add_oid_str_name("2.16.840.1.101.2.2.5.1", "acp120-janap128");
1619   add_oid_str_name("2.16.840.1.101.2.2.5.2", "acp120-mhs");
1620   add_oid_str_name("2.16.840.1.101.2.2.5.3", "acp120-mmhs");
1621   add_oid_str_name("2.16.840.1.101.2.2.5.4", "acp120-rfc822");
1622   add_oid_str_name("2.16.840.1.101.2.2.5.5", "boundaryMTA");
1623   add_oid_str_name("2.16.840.1.101.2.2.5.6", "mmhs-mhs");
1624   add_oid_str_name("2.16.840.1.101.2.2.5.7", "mmhs-rfc822");
1625   add_oid_str_name("2.16.840.1.101.2.2.5.8", "mta-acp127");
1626
1627 }