1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
4 /* ../../tools/asn2wrs.py -b -p dop -c ./dop.cnf -s ./packet-dop-template -D . -O ../../epan/dissectors dop.asn */
6 /* Input file: packet-dop-template.c */
8 #line 1 "../../asn1/dop/packet-dop-template.c"
10 * Routines for X.501 (DSA Operational Attributes) packet dissection
15 * Wireshark - Network traffic analyzer
16 * By Gerald Combs <gerald@wireshark.org>
17 * Copyright 1998 Gerald Combs
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.
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.
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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
37 #include <epan/packet.h>
38 #include <epan/prefs.h>
39 #include <epan/oids.h>
40 #include <epan/asn1.h>
41 #include <epan/expert.h>
42 #include <epan/wmem/wmem.h>
44 #include "packet-ber.h"
45 #include "packet-acse.h"
46 #include "packet-ros.h"
48 #include "packet-x509sat.h"
49 #include "packet-x509af.h"
50 #include "packet-x509if.h"
51 #include "packet-dap.h"
52 #include "packet-dsp.h"
53 #include "packet-crmf.h"
56 #include "packet-dop.h"
58 #define PNAME "X.501 Directory Operational Binding Management Protocol"
62 void proto_register_dop(void);
63 void proto_reg_handoff_dop(void);
65 static guint global_dop_tcp_port = 102;
66 static dissector_handle_t tpkt_handle;
67 static void prefs_register_dop(void); /* forward declaration for use in preferences registration */
69 /* Initialize the protocol and registered fields */
70 static int proto_dop = -1;
72 static const char *binding_type = NULL; /* binding_type */
74 static int call_dop_oid_callback(const char *base_string, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, const char *col_info, void* data);
77 /*--- Included file: packet-dop-hf.c ---*/
78 #line 1 "../../asn1/dop/packet-dop-hf.c"
79 static int hf_dop_DSEType_PDU = -1; /* DSEType */
80 static int hf_dop_SupplierInformation_PDU = -1; /* SupplierInformation */
81 static int hf_dop_ConsumerInformation_PDU = -1; /* ConsumerInformation */
82 static int hf_dop_SupplierAndConsumers_PDU = -1; /* SupplierAndConsumers */
83 static int hf_dop_HierarchicalAgreement_PDU = -1; /* HierarchicalAgreement */
84 static int hf_dop_SuperiorToSubordinate_PDU = -1; /* SuperiorToSubordinate */
85 static int hf_dop_SubordinateToSuperior_PDU = -1; /* SubordinateToSuperior */
86 static int hf_dop_SuperiorToSubordinateModification_PDU = -1; /* SuperiorToSubordinateModification */
87 static int hf_dop_NonSpecificHierarchicalAgreement_PDU = -1; /* NonSpecificHierarchicalAgreement */
88 static int hf_dop_NHOBSuperiorToSubordinate_PDU = -1; /* NHOBSuperiorToSubordinate */
89 static int hf_dop_NHOBSubordinateToSuperior_PDU = -1; /* NHOBSubordinateToSuperior */
90 static int hf_dop_ACIItem_PDU = -1; /* ACIItem */
91 static int hf_dop_ae_title = -1; /* Name */
92 static int hf_dop_address = -1; /* PresentationAddress */
93 static int hf_dop_protocolInformation = -1; /* SET_OF_ProtocolInformation */
94 static int hf_dop_protocolInformation_item = -1; /* ProtocolInformation */
95 static int hf_dop_agreementID = -1; /* OperationalBindingID */
96 static int hf_dop_supplier_is_master = -1; /* BOOLEAN */
97 static int hf_dop_non_supplying_master = -1; /* AccessPoint */
98 static int hf_dop_consumers = -1; /* SET_OF_AccessPoint */
99 static int hf_dop_consumers_item = -1; /* AccessPoint */
100 static int hf_dop_bindingType = -1; /* BindingType */
101 static int hf_dop_bindingID = -1; /* OperationalBindingID */
102 static int hf_dop_accessPoint = -1; /* AccessPoint */
103 static int hf_dop_establishInitiator = -1; /* EstablishArgumentInitiator */
104 static int hf_dop_establishSymmetric = -1; /* EstablishSymmetric */
105 static int hf_dop_establishRoleAInitiates = -1; /* EstablishRoleAInitiates */
106 static int hf_dop_establishRoleBInitiates = -1; /* EstablishRoleBInitiates */
107 static int hf_dop_agreement = -1; /* T_agreement */
108 static int hf_dop_valid = -1; /* Validity */
109 static int hf_dop_securityParameters = -1; /* SecurityParameters */
110 static int hf_dop_unsignedEstablishOperationalBindingArgument = -1; /* EstablishOperationalBindingArgumentData */
111 static int hf_dop_signedEstablishOperationalBindingArgument = -1; /* T_signedEstablishOperationalBindingArgument */
112 static int hf_dop_establishOperationalBindingArgument = -1; /* EstablishOperationalBindingArgumentData */
113 static int hf_dop_algorithmIdentifier = -1; /* AlgorithmIdentifier */
114 static int hf_dop_encrypted = -1; /* BIT_STRING */
115 static int hf_dop_identifier = -1; /* T_identifier */
116 static int hf_dop_version = -1; /* T_version */
117 static int hf_dop_validFrom = -1; /* T_validFrom */
118 static int hf_dop_now = -1; /* NULL */
119 static int hf_dop_time = -1; /* Time */
120 static int hf_dop_validUntil = -1; /* T_validUntil */
121 static int hf_dop_explicitTermination = -1; /* NULL */
122 static int hf_dop_utcTime = -1; /* UTCTime */
123 static int hf_dop_generalizedTime = -1; /* GeneralizedTime */
124 static int hf_dop_initiator = -1; /* T_initiator */
125 static int hf_dop_symmetric = -1; /* T_symmetric */
126 static int hf_dop_roleA_replies = -1; /* T_roleA_replies */
127 static int hf_dop_roleB_replies = -1; /* T_roleB_replies */
128 static int hf_dop_performer = -1; /* DistinguishedName */
129 static int hf_dop_aliasDereferenced = -1; /* BOOLEAN */
130 static int hf_dop_notification = -1; /* SEQUENCE_SIZE_1_MAX_OF_Attribute */
131 static int hf_dop_notification_item = -1; /* Attribute */
132 static int hf_dop_modifyInitiator = -1; /* ModifyArgumentInitiator */
133 static int hf_dop_modifySymmetric = -1; /* ModifySymmetric */
134 static int hf_dop_modifyRoleAInitiates = -1; /* ModifyRoleAInitiates */
135 static int hf_dop_modifyRoleBInitiates = -1; /* ModifyRoleBInitiates */
136 static int hf_dop_newBindingID = -1; /* OperationalBindingID */
137 static int hf_dop_argumentNewAgreement = -1; /* ArgumentNewAgreement */
138 static int hf_dop_unsignedModifyOperationalBindingArgument = -1; /* ModifyOperationalBindingArgumentData */
139 static int hf_dop_signedModifyOperationalBindingArgument = -1; /* T_signedModifyOperationalBindingArgument */
140 static int hf_dop_modifyOperationalBindingArgument = -1; /* ModifyOperationalBindingArgumentData */
141 static int hf_dop_null = -1; /* NULL */
142 static int hf_dop_protectedModifyResult = -1; /* ProtectedModifyResult */
143 static int hf_dop_modifyOperationalBindingResultData = -1; /* ModifyOperationalBindingResultData */
144 static int hf_dop_resultNewAgreement = -1; /* ResultNewAgreement */
145 static int hf_dop_terminateInitiator = -1; /* TerminateArgumentInitiator */
146 static int hf_dop_terminateSymmetric = -1; /* TerminateSymmetric */
147 static int hf_dop_terminateRoleAInitiates = -1; /* TerminateRoleAInitiates */
148 static int hf_dop_terminateRoleBInitiates = -1; /* TerminateRoleBInitiates */
149 static int hf_dop_terminateAtTime = -1; /* Time */
150 static int hf_dop_unsignedTerminateOperationalBindingArgument = -1; /* TerminateOperationalBindingArgumentData */
151 static int hf_dop_signedTerminateOperationalBindingArgument = -1; /* T_signedTerminateOperationalBindingArgument */
152 static int hf_dop_terminateOperationalBindingArgument = -1; /* TerminateOperationalBindingArgumentData */
153 static int hf_dop_protectedTerminateResult = -1; /* ProtectedTerminateResult */
154 static int hf_dop_terminateOperationalBindingResultData = -1; /* TerminateOperationalBindingResultData */
155 static int hf_dop_terminateAtGeneralizedTime = -1; /* GeneralizedTime */
156 static int hf_dop_problem = -1; /* T_problem */
157 static int hf_dop_agreementProposal = -1; /* T_agreementProposal */
158 static int hf_dop_retryAt = -1; /* Time */
159 static int hf_dop_rdn = -1; /* RelativeDistinguishedName */
160 static int hf_dop_immediateSuperior = -1; /* DistinguishedName */
161 static int hf_dop_contextPrefixInfo = -1; /* DITcontext */
162 static int hf_dop_entryInfo = -1; /* SET_OF_Attribute */
163 static int hf_dop_entryInfo_item = -1; /* Attribute */
164 static int hf_dop_immediateSuperiorInfo = -1; /* SET_OF_Attribute */
165 static int hf_dop_immediateSuperiorInfo_item = -1; /* Attribute */
166 static int hf_dop_DITcontext_item = -1; /* Vertex */
167 static int hf_dop_admPointInfo = -1; /* SET_OF_Attribute */
168 static int hf_dop_admPointInfo_item = -1; /* Attribute */
169 static int hf_dop_subentries = -1; /* SET_OF_SubentryInfo */
170 static int hf_dop_subentries_item = -1; /* SubentryInfo */
171 static int hf_dop_accessPoints = -1; /* MasterAndShadowAccessPoints */
172 static int hf_dop_info = -1; /* SET_OF_Attribute */
173 static int hf_dop_info_item = -1; /* Attribute */
174 static int hf_dop_alias = -1; /* BOOLEAN */
175 static int hf_dop_identificationTag = -1; /* DirectoryString */
176 static int hf_dop_precedence = -1; /* Precedence */
177 static int hf_dop_authenticationLevel = -1; /* AuthenticationLevel */
178 static int hf_dop_itemOrUserFirst = -1; /* T_itemOrUserFirst */
179 static int hf_dop_itemFirst = -1; /* T_itemFirst */
180 static int hf_dop_protectedItems = -1; /* ProtectedItems */
181 static int hf_dop_itemPermissions = -1; /* SET_OF_ItemPermission */
182 static int hf_dop_itemPermissions_item = -1; /* ItemPermission */
183 static int hf_dop_userFirst = -1; /* T_userFirst */
184 static int hf_dop_userClasses = -1; /* UserClasses */
185 static int hf_dop_userPermissions = -1; /* SET_OF_UserPermission */
186 static int hf_dop_userPermissions_item = -1; /* UserPermission */
187 static int hf_dop_entry = -1; /* NULL */
188 static int hf_dop_allUserAttributeTypes = -1; /* NULL */
189 static int hf_dop_attributeType = -1; /* SET_OF_AttributeType */
190 static int hf_dop_attributeType_item = -1; /* AttributeType */
191 static int hf_dop_allAttributeValues = -1; /* SET_OF_AttributeType */
192 static int hf_dop_allAttributeValues_item = -1; /* AttributeType */
193 static int hf_dop_allUserAttributeTypesAndValues = -1; /* NULL */
194 static int hf_dop_attributeValue = -1; /* SET_OF_AttributeTypeAndValue */
195 static int hf_dop_attributeValue_item = -1; /* AttributeTypeAndValue */
196 static int hf_dop_selfValue = -1; /* SET_OF_AttributeType */
197 static int hf_dop_selfValue_item = -1; /* AttributeType */
198 static int hf_dop_rangeOfValues = -1; /* Filter */
199 static int hf_dop_maxValueCount = -1; /* SET_OF_MaxValueCount */
200 static int hf_dop_maxValueCount_item = -1; /* MaxValueCount */
201 static int hf_dop_maxImmSub = -1; /* INTEGER */
202 static int hf_dop_restrictedBy = -1; /* SET_OF_RestrictedValue */
203 static int hf_dop_restrictedBy_item = -1; /* RestrictedValue */
204 static int hf_dop_contexts = -1; /* SET_OF_ContextAssertion */
205 static int hf_dop_contexts_item = -1; /* ContextAssertion */
206 static int hf_dop_classes = -1; /* Refinement */
207 static int hf_dop_type = -1; /* AttributeType */
208 static int hf_dop_maxCount = -1; /* INTEGER */
209 static int hf_dop_valuesIn = -1; /* AttributeType */
210 static int hf_dop_allUsers = -1; /* NULL */
211 static int hf_dop_thisEntry = -1; /* NULL */
212 static int hf_dop_name = -1; /* SET_OF_NameAndOptionalUID */
213 static int hf_dop_name_item = -1; /* NameAndOptionalUID */
214 static int hf_dop_userGroup = -1; /* SET_OF_NameAndOptionalUID */
215 static int hf_dop_userGroup_item = -1; /* NameAndOptionalUID */
216 static int hf_dop_subtree = -1; /* SET_OF_SubtreeSpecification */
217 static int hf_dop_subtree_item = -1; /* SubtreeSpecification */
218 static int hf_dop_grantsAndDenials = -1; /* GrantsAndDenials */
219 static int hf_dop_basicLevels = -1; /* T_basicLevels */
220 static int hf_dop_level = -1; /* T_level */
221 static int hf_dop_localQualifier = -1; /* INTEGER */
222 static int hf_dop_signed = -1; /* BOOLEAN */
223 static int hf_dop_other = -1; /* EXTERNAL */
225 static int hf_dop_DSEType_root = -1;
226 static int hf_dop_DSEType_glue = -1;
227 static int hf_dop_DSEType_cp = -1;
228 static int hf_dop_DSEType_entry = -1;
229 static int hf_dop_DSEType_alias = -1;
230 static int hf_dop_DSEType_subr = -1;
231 static int hf_dop_DSEType_nssr = -1;
232 static int hf_dop_DSEType_supr = -1;
233 static int hf_dop_DSEType_xr = -1;
234 static int hf_dop_DSEType_admPoint = -1;
235 static int hf_dop_DSEType_subentry = -1;
236 static int hf_dop_DSEType_shadow = -1;
237 static int hf_dop_DSEType_immSupr = -1;
238 static int hf_dop_DSEType_rhob = -1;
239 static int hf_dop_DSEType_sa = -1;
240 static int hf_dop_DSEType_dsSubentry = -1;
241 static int hf_dop_DSEType_familyMember = -1;
242 static int hf_dop_DSEType_ditBridge = -1;
243 static int hf_dop_DSEType_writeableCopy = -1;
244 static int hf_dop_GrantsAndDenials_grantAdd = -1;
245 static int hf_dop_GrantsAndDenials_denyAdd = -1;
246 static int hf_dop_GrantsAndDenials_grantDiscloseOnError = -1;
247 static int hf_dop_GrantsAndDenials_denyDiscloseOnError = -1;
248 static int hf_dop_GrantsAndDenials_grantRead = -1;
249 static int hf_dop_GrantsAndDenials_denyRead = -1;
250 static int hf_dop_GrantsAndDenials_grantRemove = -1;
251 static int hf_dop_GrantsAndDenials_denyRemove = -1;
252 static int hf_dop_GrantsAndDenials_grantBrowse = -1;
253 static int hf_dop_GrantsAndDenials_denyBrowse = -1;
254 static int hf_dop_GrantsAndDenials_grantExport = -1;
255 static int hf_dop_GrantsAndDenials_denyExport = -1;
256 static int hf_dop_GrantsAndDenials_grantImport = -1;
257 static int hf_dop_GrantsAndDenials_denyImport = -1;
258 static int hf_dop_GrantsAndDenials_grantModify = -1;
259 static int hf_dop_GrantsAndDenials_denyModify = -1;
260 static int hf_dop_GrantsAndDenials_grantRename = -1;
261 static int hf_dop_GrantsAndDenials_denyRename = -1;
262 static int hf_dop_GrantsAndDenials_grantReturnDN = -1;
263 static int hf_dop_GrantsAndDenials_denyReturnDN = -1;
264 static int hf_dop_GrantsAndDenials_grantCompare = -1;
265 static int hf_dop_GrantsAndDenials_denyCompare = -1;
266 static int hf_dop_GrantsAndDenials_grantFilterMatch = -1;
267 static int hf_dop_GrantsAndDenials_denyFilterMatch = -1;
268 static int hf_dop_GrantsAndDenials_grantInvoke = -1;
269 static int hf_dop_GrantsAndDenials_denyInvoke = -1;
271 /*--- End of included file: packet-dop-hf.c ---*/
272 #line 69 "../../asn1/dop/packet-dop-template.c"
274 /* Initialize the subtree pointers */
275 static gint ett_dop = -1;
276 static gint ett_dop_unknown = -1;
278 /*--- Included file: packet-dop-ett.c ---*/
279 #line 1 "../../asn1/dop/packet-dop-ett.c"
280 static gint ett_dop_DSEType = -1;
281 static gint ett_dop_SupplierOrConsumer = -1;
282 static gint ett_dop_SET_OF_ProtocolInformation = -1;
283 static gint ett_dop_SupplierInformation = -1;
284 static gint ett_dop_SupplierAndConsumers = -1;
285 static gint ett_dop_SET_OF_AccessPoint = -1;
286 static gint ett_dop_EstablishOperationalBindingArgumentData = -1;
287 static gint ett_dop_EstablishArgumentInitiator = -1;
288 static gint ett_dop_EstablishOperationalBindingArgument = -1;
289 static gint ett_dop_T_signedEstablishOperationalBindingArgument = -1;
290 static gint ett_dop_OperationalBindingID = -1;
291 static gint ett_dop_Validity = -1;
292 static gint ett_dop_T_validFrom = -1;
293 static gint ett_dop_T_validUntil = -1;
294 static gint ett_dop_Time = -1;
295 static gint ett_dop_EstablishOperationalBindingResult = -1;
296 static gint ett_dop_T_initiator = -1;
297 static gint ett_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute = -1;
298 static gint ett_dop_ModifyOperationalBindingArgumentData = -1;
299 static gint ett_dop_ModifyArgumentInitiator = -1;
300 static gint ett_dop_ModifyOperationalBindingArgument = -1;
301 static gint ett_dop_T_signedModifyOperationalBindingArgument = -1;
302 static gint ett_dop_ModifyOperationalBindingResult = -1;
303 static gint ett_dop_ProtectedModifyResult = -1;
304 static gint ett_dop_ModifyOperationalBindingResultData = -1;
305 static gint ett_dop_TerminateOperationalBindingArgumentData = -1;
306 static gint ett_dop_TerminateArgumentInitiator = -1;
307 static gint ett_dop_TerminateOperationalBindingArgument = -1;
308 static gint ett_dop_T_signedTerminateOperationalBindingArgument = -1;
309 static gint ett_dop_TerminateOperationalBindingResult = -1;
310 static gint ett_dop_ProtectedTerminateResult = -1;
311 static gint ett_dop_TerminateOperationalBindingResultData = -1;
312 static gint ett_dop_OpBindingErrorParam = -1;
313 static gint ett_dop_HierarchicalAgreement = -1;
314 static gint ett_dop_SuperiorToSubordinate = -1;
315 static gint ett_dop_SET_OF_Attribute = -1;
316 static gint ett_dop_DITcontext = -1;
317 static gint ett_dop_Vertex = -1;
318 static gint ett_dop_SET_OF_SubentryInfo = -1;
319 static gint ett_dop_SubentryInfo = -1;
320 static gint ett_dop_SubordinateToSuperior = -1;
321 static gint ett_dop_SuperiorToSubordinateModification = -1;
322 static gint ett_dop_NonSpecificHierarchicalAgreement = -1;
323 static gint ett_dop_NHOBSuperiorToSubordinate = -1;
324 static gint ett_dop_NHOBSubordinateToSuperior = -1;
325 static gint ett_dop_ACIItem = -1;
326 static gint ett_dop_T_itemOrUserFirst = -1;
327 static gint ett_dop_T_itemFirst = -1;
328 static gint ett_dop_SET_OF_ItemPermission = -1;
329 static gint ett_dop_T_userFirst = -1;
330 static gint ett_dop_SET_OF_UserPermission = -1;
331 static gint ett_dop_ProtectedItems = -1;
332 static gint ett_dop_SET_OF_AttributeType = -1;
333 static gint ett_dop_SET_OF_AttributeTypeAndValue = -1;
334 static gint ett_dop_SET_OF_MaxValueCount = -1;
335 static gint ett_dop_SET_OF_RestrictedValue = -1;
336 static gint ett_dop_SET_OF_ContextAssertion = -1;
337 static gint ett_dop_MaxValueCount = -1;
338 static gint ett_dop_RestrictedValue = -1;
339 static gint ett_dop_UserClasses = -1;
340 static gint ett_dop_SET_OF_NameAndOptionalUID = -1;
341 static gint ett_dop_SET_OF_SubtreeSpecification = -1;
342 static gint ett_dop_ItemPermission = -1;
343 static gint ett_dop_UserPermission = -1;
344 static gint ett_dop_AuthenticationLevel = -1;
345 static gint ett_dop_T_basicLevels = -1;
346 static gint ett_dop_GrantsAndDenials = -1;
348 /*--- End of included file: packet-dop-ett.c ---*/
349 #line 74 "../../asn1/dop/packet-dop-template.c"
351 static expert_field ei_dop_unknown_binding_parameter = EI_INIT;
353 /* Dissector table */
354 static dissector_table_t dop_dissector_table;
356 static void append_oid(packet_info *pinfo, const char *oid)
358 const char *name = NULL;
360 name = oid_resolved_from_string(oid);
361 col_append_fstr(pinfo->cinfo, COL_INFO, " %s", name ? name : oid);
365 /*--- Included file: packet-dop-fn.c ---*/
366 #line 1 "../../asn1/dop/packet-dop-fn.c"
368 static const asn_namedbit DSEType_bits[] = {
369 { 0, &hf_dop_DSEType_root, -1, -1, "root", NULL },
370 { 1, &hf_dop_DSEType_glue, -1, -1, "glue", NULL },
371 { 2, &hf_dop_DSEType_cp, -1, -1, "cp", NULL },
372 { 3, &hf_dop_DSEType_entry, -1, -1, "entry", NULL },
373 { 4, &hf_dop_DSEType_alias, -1, -1, "alias", NULL },
374 { 5, &hf_dop_DSEType_subr, -1, -1, "subr", NULL },
375 { 6, &hf_dop_DSEType_nssr, -1, -1, "nssr", NULL },
376 { 7, &hf_dop_DSEType_supr, -1, -1, "supr", NULL },
377 { 8, &hf_dop_DSEType_xr, -1, -1, "xr", NULL },
378 { 9, &hf_dop_DSEType_admPoint, -1, -1, "admPoint", NULL },
379 { 10, &hf_dop_DSEType_subentry, -1, -1, "subentry", NULL },
380 { 11, &hf_dop_DSEType_shadow, -1, -1, "shadow", NULL },
381 { 13, &hf_dop_DSEType_immSupr, -1, -1, "immSupr", NULL },
382 { 14, &hf_dop_DSEType_rhob, -1, -1, "rhob", NULL },
383 { 15, &hf_dop_DSEType_sa, -1, -1, "sa", NULL },
384 { 16, &hf_dop_DSEType_dsSubentry, -1, -1, "dsSubentry", NULL },
385 { 17, &hf_dop_DSEType_familyMember, -1, -1, "familyMember", NULL },
386 { 18, &hf_dop_DSEType_ditBridge, -1, -1, "ditBridge", NULL },
387 { 19, &hf_dop_DSEType_writeableCopy, -1, -1, "writeableCopy", NULL },
388 { 0, NULL, 0, 0, NULL, NULL }
392 dissect_dop_DSEType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
393 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
394 DSEType_bits, hf_index, ett_dop_DSEType,
401 static const ber_sequence_t SET_OF_ProtocolInformation_set_of[1] = {
402 { &hf_dop_protocolInformation_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509sat_ProtocolInformation },
406 dissect_dop_SET_OF_ProtocolInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
407 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
408 SET_OF_ProtocolInformation_set_of, hf_index, ett_dop_SET_OF_ProtocolInformation);
416 dissect_dop_T_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_) {
417 #line 174 "../../asn1/dop/dop.cnf"
420 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
424 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " id=%d", value);
436 dissect_dop_T_version(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 #line 183 "../../asn1/dop/dop.cnf"
440 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
444 col_append_fstr(actx->pinfo->cinfo, COL_INFO, ",%d", value);
452 static const ber_sequence_t OperationalBindingID_sequence[] = {
453 { &hf_dop_identifier , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_dop_T_identifier },
454 { &hf_dop_version , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_dop_T_version },
455 { NULL, 0, 0, 0, NULL }
459 dissect_dop_OperationalBindingID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
460 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
461 OperationalBindingID_sequence, hf_index, ett_dop_OperationalBindingID);
467 static const ber_sequence_t SupplierOrConsumer_set[] = {
468 { &hf_dop_ae_title , BER_CLASS_CON, 0, 0, dissect_x509if_Name },
469 { &hf_dop_address , BER_CLASS_CON, 1, 0, dissect_x509sat_PresentationAddress },
470 { &hf_dop_protocolInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_ProtocolInformation },
471 { &hf_dop_agreementID , BER_CLASS_CON, 3, 0, dissect_dop_OperationalBindingID },
472 { NULL, 0, 0, 0, NULL }
476 dissect_dop_SupplierOrConsumer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
477 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
478 SupplierOrConsumer_set, hf_index, ett_dop_SupplierOrConsumer);
486 dissect_dop_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
487 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
493 static const ber_sequence_t SupplierInformation_set[] = {
494 { &hf_dop_ae_title , BER_CLASS_CON, 0, 0, dissect_x509if_Name },
495 { &hf_dop_address , BER_CLASS_CON, 1, 0, dissect_x509sat_PresentationAddress },
496 { &hf_dop_protocolInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_ProtocolInformation },
497 { &hf_dop_agreementID , BER_CLASS_CON, 3, 0, dissect_dop_OperationalBindingID },
498 { &hf_dop_supplier_is_master, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dop_BOOLEAN },
499 { &hf_dop_non_supplying_master, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_dsp_AccessPoint },
500 { NULL, 0, 0, 0, NULL }
504 dissect_dop_SupplierInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
505 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
506 SupplierInformation_set, hf_index, ett_dop_SupplierInformation);
514 dissect_dop_ConsumerInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
515 offset = dissect_dop_SupplierOrConsumer(implicit_tag, tvb, offset, actx, tree, hf_index);
521 static const ber_sequence_t SET_OF_AccessPoint_set_of[1] = {
522 { &hf_dop_consumers_item , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_AccessPoint },
526 dissect_dop_SET_OF_AccessPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
527 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
528 SET_OF_AccessPoint_set_of, hf_index, ett_dop_SET_OF_AccessPoint);
534 static const ber_sequence_t SupplierAndConsumers_set[] = {
535 { &hf_dop_ae_title , BER_CLASS_CON, 0, 0, dissect_x509if_Name },
536 { &hf_dop_address , BER_CLASS_CON, 1, 0, dissect_x509sat_PresentationAddress },
537 { &hf_dop_protocolInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_ProtocolInformation },
538 { &hf_dop_consumers , BER_CLASS_CON, 3, 0, dissect_dop_SET_OF_AccessPoint },
539 { NULL, 0, 0, 0, NULL }
543 dissect_dop_SupplierAndConsumers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
544 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
545 SupplierAndConsumers_set, hf_index, ett_dop_SupplierAndConsumers);
553 dissect_dop_DSAOperationalManagementBindArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
554 offset = dissect_dap_DirectoryBindArgument(implicit_tag, tvb, offset, actx, tree, hf_index);
562 dissect_dop_DSAOperationalManagementBindResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
563 offset = dissect_dap_DirectoryBindArgument(implicit_tag, tvb, offset, actx, tree, hf_index);
571 dissect_dop_DSAOperationalManagementBindError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
572 offset = dissect_dap_DirectoryBindError(implicit_tag, tvb, offset, actx, tree, hf_index);
580 dissect_dop_BindingType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
581 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &binding_type);
583 #line 105 "../../asn1/dop/dop.cnf"
584 append_oid(actx->pinfo, binding_type);
592 dissect_dop_EstablishSymmetric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
593 #line 109 "../../asn1/dop/dop.cnf"
595 offset = call_dop_oid_callback("establish.symmetric", tvb, offset, actx->pinfo, tree, "symmetric", actx->private_data);
605 dissect_dop_EstablishRoleAInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
606 #line 113 "../../asn1/dop/dop.cnf"
608 offset = call_dop_oid_callback("establish.rolea", tvb, offset, actx->pinfo, tree, "roleA", actx->private_data);
618 dissect_dop_EstablishRoleBInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
619 #line 117 "../../asn1/dop/dop.cnf"
621 offset = call_dop_oid_callback("establish.roleb", tvb, offset, actx->pinfo, tree, "roleB", actx->private_data);
629 static const value_string dop_EstablishArgumentInitiator_vals[] = {
631 { 4, "roleA-initiates" },
632 { 5, "roleB-initiates" },
636 static const ber_choice_t EstablishArgumentInitiator_choice[] = {
637 { 3, &hf_dop_establishSymmetric, BER_CLASS_CON, 3, 0, dissect_dop_EstablishSymmetric },
638 { 4, &hf_dop_establishRoleAInitiates, BER_CLASS_CON, 4, 0, dissect_dop_EstablishRoleAInitiates },
639 { 5, &hf_dop_establishRoleBInitiates, BER_CLASS_CON, 5, 0, dissect_dop_EstablishRoleBInitiates },
640 { 0, NULL, 0, 0, 0, NULL }
644 dissect_dop_EstablishArgumentInitiator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
645 offset = dissect_ber_choice(actx, tree, tvb, offset,
646 EstablishArgumentInitiator_choice, hf_index, ett_dop_EstablishArgumentInitiator,
655 dissect_dop_T_agreement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
656 #line 145 "../../asn1/dop/dop.cnf"
658 offset = call_dop_oid_callback("agreement", tvb, offset, actx->pinfo, tree, NULL, actx->private_data);
668 dissect_dop_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
669 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
677 dissect_dop_UTCTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
678 offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index);
686 dissect_dop_GeneralizedTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
687 offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
693 static const value_string dop_Time_vals[] = {
695 { 1, "generalizedTime" },
699 static const ber_choice_t Time_choice[] = {
700 { 0, &hf_dop_utcTime , BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_dop_UTCTime },
701 { 1, &hf_dop_generalizedTime , BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_dop_GeneralizedTime },
702 { 0, NULL, 0, 0, 0, NULL }
706 dissect_dop_Time(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
707 offset = dissect_ber_choice(actx, tree, tvb, offset,
708 Time_choice, hf_index, ett_dop_Time,
715 static const value_string dop_T_validFrom_vals[] = {
721 static const ber_choice_t T_validFrom_choice[] = {
722 { 0, &hf_dop_now , BER_CLASS_CON, 0, 0, dissect_dop_NULL },
723 { 1, &hf_dop_time , BER_CLASS_CON, 1, 0, dissect_dop_Time },
724 { 0, NULL, 0, 0, 0, NULL }
728 dissect_dop_T_validFrom(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
729 offset = dissect_ber_choice(actx, tree, tvb, offset,
730 T_validFrom_choice, hf_index, ett_dop_T_validFrom,
737 static const value_string dop_T_validUntil_vals[] = {
738 { 0, "explicitTermination" },
743 static const ber_choice_t T_validUntil_choice[] = {
744 { 0, &hf_dop_explicitTermination, BER_CLASS_CON, 0, 0, dissect_dop_NULL },
745 { 1, &hf_dop_time , BER_CLASS_CON, 1, 0, dissect_dop_Time },
746 { 0, NULL, 0, 0, 0, NULL }
750 dissect_dop_T_validUntil(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
751 offset = dissect_ber_choice(actx, tree, tvb, offset,
752 T_validUntil_choice, hf_index, ett_dop_T_validUntil,
759 static const ber_sequence_t Validity_sequence[] = {
760 { &hf_dop_validFrom , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dop_T_validFrom },
761 { &hf_dop_validUntil , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dop_T_validUntil },
762 { NULL, 0, 0, 0, NULL }
766 dissect_dop_Validity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
767 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
768 Validity_sequence, hf_index, ett_dop_Validity);
774 static const ber_sequence_t EstablishOperationalBindingArgumentData_sequence[] = {
775 { &hf_dop_bindingType , BER_CLASS_CON, 0, 0, dissect_dop_BindingType },
776 { &hf_dop_bindingID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dop_OperationalBindingID },
777 { &hf_dop_accessPoint , BER_CLASS_CON, 2, 0, dissect_dsp_AccessPoint },
778 { &hf_dop_establishInitiator, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dop_EstablishArgumentInitiator },
779 { &hf_dop_agreement , BER_CLASS_CON, 6, 0, dissect_dop_T_agreement },
780 { &hf_dop_valid , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_dop_Validity },
781 { &hf_dop_securityParameters, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
782 { NULL, 0, 0, 0, NULL }
786 dissect_dop_EstablishOperationalBindingArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
787 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
788 EstablishOperationalBindingArgumentData_sequence, hf_index, ett_dop_EstablishOperationalBindingArgumentData);
796 dissect_dop_BIT_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_) {
797 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
805 static const ber_sequence_t T_signedEstablishOperationalBindingArgument_sequence[] = {
806 { &hf_dop_establishOperationalBindingArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_EstablishOperationalBindingArgumentData },
807 { &hf_dop_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
808 { &hf_dop_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dop_BIT_STRING },
809 { NULL, 0, 0, 0, NULL }
813 dissect_dop_T_signedEstablishOperationalBindingArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
814 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
815 T_signedEstablishOperationalBindingArgument_sequence, hf_index, ett_dop_T_signedEstablishOperationalBindingArgument);
821 static const value_string dop_EstablishOperationalBindingArgument_vals[] = {
822 { 0, "unsignedEstablishOperationalBindingArgument" },
823 { 1, "signedEstablishOperationalBindingArgument" },
827 static const ber_choice_t EstablishOperationalBindingArgument_choice[] = {
828 { 0, &hf_dop_unsignedEstablishOperationalBindingArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_EstablishOperationalBindingArgumentData },
829 { 1, &hf_dop_signedEstablishOperationalBindingArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_T_signedEstablishOperationalBindingArgument },
830 { 0, NULL, 0, 0, 0, NULL }
834 dissect_dop_EstablishOperationalBindingArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
835 offset = dissect_ber_choice(actx, tree, tvb, offset,
836 EstablishOperationalBindingArgument_choice, hf_index, ett_dop_EstablishOperationalBindingArgument,
845 dissect_dop_T_symmetric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
846 #line 149 "../../asn1/dop/dop.cnf"
848 offset = call_dop_oid_callback("establish.symmetric", tvb, offset, actx->pinfo, tree, "symmetric", actx->private_data);
858 dissect_dop_T_roleA_replies(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
859 #line 153 "../../asn1/dop/dop.cnf"
861 offset = call_dop_oid_callback("establish.rolea", tvb, offset, actx->pinfo, tree, "roleA", actx->private_data);
871 dissect_dop_T_roleB_replies(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
872 #line 157 "../../asn1/dop/dop.cnf"
874 offset = call_dop_oid_callback("establish.roleb", tvb, offset, actx->pinfo, tree, "roleB", actx->private_data);
882 static const value_string dop_T_initiator_vals[] = {
884 { 4, "roleA-replies" },
885 { 5, "roleB-replies" },
889 static const ber_choice_t T_initiator_choice[] = {
890 { 3, &hf_dop_symmetric , BER_CLASS_CON, 3, 0, dissect_dop_T_symmetric },
891 { 4, &hf_dop_roleA_replies , BER_CLASS_CON, 4, 0, dissect_dop_T_roleA_replies },
892 { 5, &hf_dop_roleB_replies , BER_CLASS_CON, 5, 0, dissect_dop_T_roleB_replies },
893 { 0, NULL, 0, 0, 0, NULL }
897 dissect_dop_T_initiator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
898 offset = dissect_ber_choice(actx, tree, tvb, offset,
899 T_initiator_choice, hf_index, ett_dop_T_initiator,
906 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_Attribute_sequence_of[1] = {
907 { &hf_dop_notification_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
911 dissect_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
912 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
913 SEQUENCE_SIZE_1_MAX_OF_Attribute_sequence_of, hf_index, ett_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute);
919 static const ber_sequence_t EstablishOperationalBindingResult_sequence[] = {
920 { &hf_dop_bindingType , BER_CLASS_CON, 0, 0, dissect_dop_BindingType },
921 { &hf_dop_bindingID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dop_OperationalBindingID },
922 { &hf_dop_accessPoint , BER_CLASS_CON, 2, 0, dissect_dsp_AccessPoint },
923 { &hf_dop_initiator , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dop_T_initiator },
924 { &hf_dop_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
925 { &hf_dop_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
926 { &hf_dop_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dop_BOOLEAN },
927 { &hf_dop_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute },
928 { NULL, 0, 0, 0, NULL }
932 dissect_dop_EstablishOperationalBindingResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
933 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
934 EstablishOperationalBindingResult_sequence, hf_index, ett_dop_EstablishOperationalBindingResult);
942 dissect_dop_ModifySymmetric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
943 #line 121 "../../asn1/dop/dop.cnf"
945 offset = call_dop_oid_callback("modify.symmetric", tvb, offset, actx->pinfo, tree, "symmetric", actx->private_data);
955 dissect_dop_ModifyRoleAInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
956 #line 125 "../../asn1/dop/dop.cnf"
958 offset = call_dop_oid_callback("modify.rolea", tvb, offset, actx->pinfo, tree, "roleA", actx->private_data);
968 dissect_dop_ModifyRoleBInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
969 #line 129 "../../asn1/dop/dop.cnf"
971 offset = call_dop_oid_callback("modify.roleb", tvb, offset, actx->pinfo, tree, "roleB", actx->private_data);
979 static const value_string dop_ModifyArgumentInitiator_vals[] = {
981 { 4, "roleA-initiates" },
982 { 5, "roleB-initiates" },
986 static const ber_choice_t ModifyArgumentInitiator_choice[] = {
987 { 3, &hf_dop_modifySymmetric , BER_CLASS_CON, 3, 0, dissect_dop_ModifySymmetric },
988 { 4, &hf_dop_modifyRoleAInitiates, BER_CLASS_CON, 4, 0, dissect_dop_ModifyRoleAInitiates },
989 { 5, &hf_dop_modifyRoleBInitiates, BER_CLASS_CON, 5, 0, dissect_dop_ModifyRoleBInitiates },
990 { 0, NULL, 0, 0, 0, NULL }
994 dissect_dop_ModifyArgumentInitiator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
995 offset = dissect_ber_choice(actx, tree, tvb, offset,
996 ModifyArgumentInitiator_choice, hf_index, ett_dop_ModifyArgumentInitiator,
1005 dissect_dop_ArgumentNewAgreement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1006 #line 169 "../../asn1/dop/dop.cnf"
1008 offset = call_dop_oid_callback("agreement", tvb, offset, actx->pinfo, tree, NULL, actx->private_data);
1017 static const ber_sequence_t ModifyOperationalBindingArgumentData_sequence[] = {
1018 { &hf_dop_bindingType , BER_CLASS_CON, 0, 0, dissect_dop_BindingType },
1019 { &hf_dop_bindingID , BER_CLASS_CON, 1, 0, dissect_dop_OperationalBindingID },
1020 { &hf_dop_accessPoint , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dsp_AccessPoint },
1021 { &hf_dop_modifyInitiator , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dop_ModifyArgumentInitiator },
1022 { &hf_dop_newBindingID , BER_CLASS_CON, 6, 0, dissect_dop_OperationalBindingID },
1023 { &hf_dop_argumentNewAgreement, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_dop_ArgumentNewAgreement },
1024 { &hf_dop_valid , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_dop_Validity },
1025 { &hf_dop_securityParameters, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
1026 { NULL, 0, 0, 0, NULL }
1030 dissect_dop_ModifyOperationalBindingArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1031 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1032 ModifyOperationalBindingArgumentData_sequence, hf_index, ett_dop_ModifyOperationalBindingArgumentData);
1038 static const ber_sequence_t T_signedModifyOperationalBindingArgument_sequence[] = {
1039 { &hf_dop_modifyOperationalBindingArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_ModifyOperationalBindingArgumentData },
1040 { &hf_dop_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1041 { &hf_dop_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dop_BIT_STRING },
1042 { NULL, 0, 0, 0, NULL }
1046 dissect_dop_T_signedModifyOperationalBindingArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1047 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1048 T_signedModifyOperationalBindingArgument_sequence, hf_index, ett_dop_T_signedModifyOperationalBindingArgument);
1054 static const value_string dop_ModifyOperationalBindingArgument_vals[] = {
1055 { 0, "unsignedModifyOperationalBindingArgument" },
1056 { 1, "signedModifyOperationalBindingArgument" },
1060 static const ber_choice_t ModifyOperationalBindingArgument_choice[] = {
1061 { 0, &hf_dop_unsignedModifyOperationalBindingArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_ModifyOperationalBindingArgumentData },
1062 { 1, &hf_dop_signedModifyOperationalBindingArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_T_signedModifyOperationalBindingArgument },
1063 { 0, NULL, 0, 0, 0, NULL }
1067 dissect_dop_ModifyOperationalBindingArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1068 offset = dissect_ber_choice(actx, tree, tvb, offset,
1069 ModifyOperationalBindingArgument_choice, hf_index, ett_dop_ModifyOperationalBindingArgument,
1078 dissect_dop_ResultNewAgreement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1079 #line 165 "../../asn1/dop/dop.cnf"
1081 offset = call_dop_oid_callback("agreement", tvb, offset, actx->pinfo, tree, NULL, actx->private_data);
1089 static const ber_sequence_t ModifyOperationalBindingResultData_sequence[] = {
1090 { &hf_dop_newBindingID , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_OperationalBindingID },
1091 { &hf_dop_bindingType , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_dop_BindingType },
1092 { &hf_dop_resultNewAgreement, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_dop_ResultNewAgreement },
1093 { &hf_dop_valid , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dop_Validity },
1094 { &hf_dop_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
1095 { &hf_dop_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
1096 { &hf_dop_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dop_BOOLEAN },
1097 { &hf_dop_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute },
1098 { NULL, 0, 0, 0, NULL }
1102 dissect_dop_ModifyOperationalBindingResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1103 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1104 ModifyOperationalBindingResultData_sequence, hf_index, ett_dop_ModifyOperationalBindingResultData);
1110 static const ber_sequence_t ProtectedModifyResult_sequence[] = {
1111 { &hf_dop_modifyOperationalBindingResultData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_ModifyOperationalBindingResultData },
1112 { &hf_dop_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1113 { &hf_dop_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dop_BIT_STRING },
1114 { NULL, 0, 0, 0, NULL }
1118 dissect_dop_ProtectedModifyResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1119 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1120 ProtectedModifyResult_sequence, hf_index, ett_dop_ProtectedModifyResult);
1126 static const value_string dop_ModifyOperationalBindingResult_vals[] = {
1132 static const ber_choice_t ModifyOperationalBindingResult_choice[] = {
1133 { 0, &hf_dop_null , BER_CLASS_CON, 0, 0, dissect_dop_NULL },
1134 { 1, &hf_dop_protectedModifyResult, BER_CLASS_CON, 1, 0, dissect_dop_ProtectedModifyResult },
1135 { 0, NULL, 0, 0, 0, NULL }
1139 dissect_dop_ModifyOperationalBindingResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1140 offset = dissect_ber_choice(actx, tree, tvb, offset,
1141 ModifyOperationalBindingResult_choice, hf_index, ett_dop_ModifyOperationalBindingResult,
1150 dissect_dop_TerminateSymmetric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1151 #line 133 "../../asn1/dop/dop.cnf"
1153 offset = call_dop_oid_callback("terminate.symmetric", tvb, offset, actx->pinfo, tree, "symmetric", actx->private_data);
1163 dissect_dop_TerminateRoleAInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1164 #line 137 "../../asn1/dop/dop.cnf"
1166 offset = call_dop_oid_callback("terminate.rolea", tvb, offset, actx->pinfo, tree, "roleA", actx->private_data);
1176 dissect_dop_TerminateRoleBInitiates(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1177 #line 141 "../../asn1/dop/dop.cnf"
1179 offset = call_dop_oid_callback("terminate.roleb", tvb, offset, actx->pinfo, tree, "roleB", actx->private_data);
1187 static const value_string dop_TerminateArgumentInitiator_vals[] = {
1189 { 3, "roleA-initiates" },
1190 { 4, "roleB-initiates" },
1194 static const ber_choice_t TerminateArgumentInitiator_choice[] = {
1195 { 2, &hf_dop_terminateSymmetric, BER_CLASS_CON, 2, 0, dissect_dop_TerminateSymmetric },
1196 { 3, &hf_dop_terminateRoleAInitiates, BER_CLASS_CON, 3, 0, dissect_dop_TerminateRoleAInitiates },
1197 { 4, &hf_dop_terminateRoleBInitiates, BER_CLASS_CON, 4, 0, dissect_dop_TerminateRoleBInitiates },
1198 { 0, NULL, 0, 0, 0, NULL }
1202 dissect_dop_TerminateArgumentInitiator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1203 offset = dissect_ber_choice(actx, tree, tvb, offset,
1204 TerminateArgumentInitiator_choice, hf_index, ett_dop_TerminateArgumentInitiator,
1211 static const ber_sequence_t TerminateOperationalBindingArgumentData_sequence[] = {
1212 { &hf_dop_bindingType , BER_CLASS_CON, 0, 0, dissect_dop_BindingType },
1213 { &hf_dop_bindingID , BER_CLASS_CON, 1, 0, dissect_dop_OperationalBindingID },
1214 { &hf_dop_terminateInitiator, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dop_TerminateArgumentInitiator },
1215 { &hf_dop_terminateAtTime , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dop_Time },
1216 { &hf_dop_securityParameters, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
1217 { NULL, 0, 0, 0, NULL }
1221 dissect_dop_TerminateOperationalBindingArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1222 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1223 TerminateOperationalBindingArgumentData_sequence, hf_index, ett_dop_TerminateOperationalBindingArgumentData);
1229 static const ber_sequence_t T_signedTerminateOperationalBindingArgument_sequence[] = {
1230 { &hf_dop_terminateOperationalBindingArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_TerminateOperationalBindingArgumentData },
1231 { &hf_dop_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1232 { &hf_dop_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dop_BIT_STRING },
1233 { NULL, 0, 0, 0, NULL }
1237 dissect_dop_T_signedTerminateOperationalBindingArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1238 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1239 T_signedTerminateOperationalBindingArgument_sequence, hf_index, ett_dop_T_signedTerminateOperationalBindingArgument);
1245 static const value_string dop_TerminateOperationalBindingArgument_vals[] = {
1246 { 0, "unsignedTerminateOperationalBindingArgument" },
1247 { 1, "signedTerminateOperationalBindingArgument" },
1251 static const ber_choice_t TerminateOperationalBindingArgument_choice[] = {
1252 { 0, &hf_dop_unsignedTerminateOperationalBindingArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_TerminateOperationalBindingArgumentData },
1253 { 1, &hf_dop_signedTerminateOperationalBindingArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_T_signedTerminateOperationalBindingArgument },
1254 { 0, NULL, 0, 0, 0, NULL }
1258 dissect_dop_TerminateOperationalBindingArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1259 offset = dissect_ber_choice(actx, tree, tvb, offset,
1260 TerminateOperationalBindingArgument_choice, hf_index, ett_dop_TerminateOperationalBindingArgument,
1267 static const ber_sequence_t TerminateOperationalBindingResultData_sequence[] = {
1268 { &hf_dop_bindingID , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_OperationalBindingID },
1269 { &hf_dop_bindingType , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_dop_BindingType },
1270 { &hf_dop_terminateAtGeneralizedTime, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dop_GeneralizedTime },
1271 { &hf_dop_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
1272 { &hf_dop_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
1273 { &hf_dop_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dop_BOOLEAN },
1274 { &hf_dop_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute },
1275 { NULL, 0, 0, 0, NULL }
1279 dissect_dop_TerminateOperationalBindingResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1280 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1281 TerminateOperationalBindingResultData_sequence, hf_index, ett_dop_TerminateOperationalBindingResultData);
1287 static const ber_sequence_t ProtectedTerminateResult_sequence[] = {
1288 { &hf_dop_terminateOperationalBindingResultData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_TerminateOperationalBindingResultData },
1289 { &hf_dop_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1290 { &hf_dop_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dop_BIT_STRING },
1291 { NULL, 0, 0, 0, NULL }
1295 dissect_dop_ProtectedTerminateResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1296 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1297 ProtectedTerminateResult_sequence, hf_index, ett_dop_ProtectedTerminateResult);
1303 static const value_string dop_TerminateOperationalBindingResult_vals[] = {
1309 static const ber_choice_t TerminateOperationalBindingResult_choice[] = {
1310 { 0, &hf_dop_null , BER_CLASS_CON, 0, 0, dissect_dop_NULL },
1311 { 1, &hf_dop_protectedTerminateResult, BER_CLASS_CON, 1, 0, dissect_dop_ProtectedTerminateResult },
1312 { 0, NULL, 0, 0, 0, NULL }
1316 dissect_dop_TerminateOperationalBindingResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1317 offset = dissect_ber_choice(actx, tree, tvb, offset,
1318 TerminateOperationalBindingResult_choice, hf_index, ett_dop_TerminateOperationalBindingResult,
1325 static const value_string dop_T_problem_vals[] = {
1327 { 1, "duplicateID" },
1328 { 2, "unsupportedBindingType" },
1329 { 3, "notAllowedForRole" },
1330 { 4, "parametersMissing" },
1331 { 5, "roleAssignment" },
1332 { 6, "invalidStartTime" },
1333 { 7, "invalidEndTime" },
1334 { 8, "invalidAgreement" },
1335 { 9, "currentlyNotDecidable" },
1336 { 10, "modificationNotAllowed" },
1342 dissect_dop_T_problem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1343 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1352 dissect_dop_T_agreementProposal(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1353 #line 161 "../../asn1/dop/dop.cnf"
1355 offset = call_dop_oid_callback("agreement", tvb, offset, actx->pinfo, tree, NULL, actx->private_data);
1363 static const ber_sequence_t OpBindingErrorParam_sequence[] = {
1364 { &hf_dop_problem , BER_CLASS_CON, 0, 0, dissect_dop_T_problem },
1365 { &hf_dop_bindingType , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dop_BindingType },
1366 { &hf_dop_agreementProposal, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_T_agreementProposal },
1367 { &hf_dop_retryAt , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dop_Time },
1368 { &hf_dop_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
1369 { &hf_dop_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
1370 { &hf_dop_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dop_BOOLEAN },
1371 { &hf_dop_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute },
1372 { NULL, 0, 0, 0, NULL }
1376 dissect_dop_OpBindingErrorParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1377 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1378 OpBindingErrorParam_sequence, hf_index, ett_dop_OpBindingErrorParam);
1384 static const ber_sequence_t HierarchicalAgreement_sequence[] = {
1385 { &hf_dop_rdn , BER_CLASS_CON, 0, 0, dissect_x509if_RelativeDistinguishedName },
1386 { &hf_dop_immediateSuperior, BER_CLASS_CON, 1, 0, dissect_x509if_DistinguishedName },
1387 { NULL, 0, 0, 0, NULL }
1391 dissect_dop_HierarchicalAgreement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1392 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1393 HierarchicalAgreement_sequence, hf_index, ett_dop_HierarchicalAgreement);
1399 static const ber_sequence_t SET_OF_Attribute_set_of[1] = {
1400 { &hf_dop_entryInfo_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
1404 dissect_dop_SET_OF_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1405 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1406 SET_OF_Attribute_set_of, hf_index, ett_dop_SET_OF_Attribute);
1412 static const ber_sequence_t SubentryInfo_sequence[] = {
1413 { &hf_dop_rdn , BER_CLASS_CON, 0, 0, dissect_x509if_RelativeDistinguishedName },
1414 { &hf_dop_info , BER_CLASS_CON, 1, 0, dissect_dop_SET_OF_Attribute },
1415 { NULL, 0, 0, 0, NULL }
1419 dissect_dop_SubentryInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1420 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1421 SubentryInfo_sequence, hf_index, ett_dop_SubentryInfo);
1427 static const ber_sequence_t SET_OF_SubentryInfo_set_of[1] = {
1428 { &hf_dop_subentries_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_SubentryInfo },
1432 dissect_dop_SET_OF_SubentryInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1433 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1434 SET_OF_SubentryInfo_set_of, hf_index, ett_dop_SET_OF_SubentryInfo);
1440 static const ber_sequence_t Vertex_sequence[] = {
1441 { &hf_dop_rdn , BER_CLASS_CON, 0, 0, dissect_x509if_RelativeDistinguishedName },
1442 { &hf_dop_admPointInfo , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_Attribute },
1443 { &hf_dop_subentries , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_SubentryInfo },
1444 { &hf_dop_accessPoints , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dsp_MasterAndShadowAccessPoints },
1445 { NULL, 0, 0, 0, NULL }
1449 dissect_dop_Vertex(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1450 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1451 Vertex_sequence, hf_index, ett_dop_Vertex);
1457 static const ber_sequence_t DITcontext_sequence_of[1] = {
1458 { &hf_dop_DITcontext_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_Vertex },
1462 dissect_dop_DITcontext(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1463 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1464 DITcontext_sequence_of, hf_index, ett_dop_DITcontext);
1470 static const ber_sequence_t SuperiorToSubordinate_sequence[] = {
1471 { &hf_dop_contextPrefixInfo, BER_CLASS_CON, 0, 0, dissect_dop_DITcontext },
1472 { &hf_dop_entryInfo , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_Attribute },
1473 { &hf_dop_immediateSuperiorInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_Attribute },
1474 { NULL, 0, 0, 0, NULL }
1478 dissect_dop_SuperiorToSubordinate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1479 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1480 SuperiorToSubordinate_sequence, hf_index, ett_dop_SuperiorToSubordinate);
1486 static const ber_sequence_t SubordinateToSuperior_sequence[] = {
1487 { &hf_dop_accessPoints , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dsp_MasterAndShadowAccessPoints },
1488 { &hf_dop_alias , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dop_BOOLEAN },
1489 { &hf_dop_entryInfo , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_Attribute },
1490 { &hf_dop_subentries , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_SubentryInfo },
1491 { NULL, 0, 0, 0, NULL }
1495 dissect_dop_SubordinateToSuperior(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1496 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1497 SubordinateToSuperior_sequence, hf_index, ett_dop_SubordinateToSuperior);
1503 static const ber_sequence_t SuperiorToSubordinateModification_sequence[] = {
1504 { &hf_dop_contextPrefixInfo, BER_CLASS_CON, 0, 0, dissect_dop_DITcontext },
1505 { &hf_dop_immediateSuperiorInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_Attribute },
1506 { NULL, 0, 0, 0, NULL }
1510 dissect_dop_SuperiorToSubordinateModification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1511 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1512 SuperiorToSubordinateModification_sequence, hf_index, ett_dop_SuperiorToSubordinateModification);
1518 static const ber_sequence_t NonSpecificHierarchicalAgreement_sequence[] = {
1519 { &hf_dop_immediateSuperior, BER_CLASS_CON, 1, 0, dissect_x509if_DistinguishedName },
1520 { NULL, 0, 0, 0, NULL }
1524 dissect_dop_NonSpecificHierarchicalAgreement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1525 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1526 NonSpecificHierarchicalAgreement_sequence, hf_index, ett_dop_NonSpecificHierarchicalAgreement);
1532 static const ber_sequence_t NHOBSuperiorToSubordinate_sequence[] = {
1533 { &hf_dop_contextPrefixInfo, BER_CLASS_CON, 0, 0, dissect_dop_DITcontext },
1534 { &hf_dop_immediateSuperiorInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_Attribute },
1535 { NULL, 0, 0, 0, NULL }
1539 dissect_dop_NHOBSuperiorToSubordinate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1540 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1541 NHOBSuperiorToSubordinate_sequence, hf_index, ett_dop_NHOBSuperiorToSubordinate);
1547 static const ber_sequence_t NHOBSubordinateToSuperior_sequence[] = {
1548 { &hf_dop_accessPoints , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dsp_MasterAndShadowAccessPoints },
1549 { &hf_dop_subentries , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_SubentryInfo },
1550 { NULL, 0, 0, 0, NULL }
1554 dissect_dop_NHOBSubordinateToSuperior(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1555 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1556 NHOBSubordinateToSuperior_sequence, hf_index, ett_dop_NHOBSubordinateToSuperior);
1564 dissect_dop_Precedence(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1565 #line 192 "../../asn1/dop/dop.cnf"
1566 guint32 precedence = 0;
1568 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1572 proto_item_append_text(tree, " precedence=%d", precedence);
1580 static const value_string dop_T_level_vals[] = {
1589 dissect_dop_T_level(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1590 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1599 dissect_dop_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_) {
1600 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1607 static const ber_sequence_t T_basicLevels_sequence[] = {
1608 { &hf_dop_level , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_dop_T_level },
1609 { &hf_dop_localQualifier , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dop_INTEGER },
1610 { &hf_dop_signed , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dop_BOOLEAN },
1611 { NULL, 0, 0, 0, NULL }
1615 dissect_dop_T_basicLevels(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1616 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1617 T_basicLevels_sequence, hf_index, ett_dop_T_basicLevels);
1625 dissect_dop_EXTERNAL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1626 offset = dissect_ber_external_type(implicit_tag, tree, tvb, offset, actx, hf_index, NULL);
1632 static const value_string dop_AuthenticationLevel_vals[] = {
1633 { 0, "basicLevels" },
1638 static const ber_choice_t AuthenticationLevel_choice[] = {
1639 { 0, &hf_dop_basicLevels , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_T_basicLevels },
1640 { 1, &hf_dop_other , BER_CLASS_UNI, BER_UNI_TAG_EXTERNAL, BER_FLAGS_NOOWNTAG, dissect_dop_EXTERNAL },
1641 { 0, NULL, 0, 0, 0, NULL }
1645 dissect_dop_AuthenticationLevel(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1646 offset = dissect_ber_choice(actx, tree, tvb, offset,
1647 AuthenticationLevel_choice, hf_index, ett_dop_AuthenticationLevel,
1654 static const ber_sequence_t SET_OF_AttributeType_set_of[1] = {
1655 { &hf_dop_attributeType_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
1659 dissect_dop_SET_OF_AttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1660 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1661 SET_OF_AttributeType_set_of, hf_index, ett_dop_SET_OF_AttributeType);
1667 static const ber_sequence_t SET_OF_AttributeTypeAndValue_set_of[1] = {
1668 { &hf_dop_attributeValue_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_crmf_AttributeTypeAndValue },
1672 dissect_dop_SET_OF_AttributeTypeAndValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1673 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1674 SET_OF_AttributeTypeAndValue_set_of, hf_index, ett_dop_SET_OF_AttributeTypeAndValue);
1680 static const ber_sequence_t MaxValueCount_sequence[] = {
1681 { &hf_dop_type , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
1682 { &hf_dop_maxCount , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_dop_INTEGER },
1683 { NULL, 0, 0, 0, NULL }
1687 dissect_dop_MaxValueCount(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1688 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1689 MaxValueCount_sequence, hf_index, ett_dop_MaxValueCount);
1695 static const ber_sequence_t SET_OF_MaxValueCount_set_of[1] = {
1696 { &hf_dop_maxValueCount_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_MaxValueCount },
1700 dissect_dop_SET_OF_MaxValueCount(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1701 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1702 SET_OF_MaxValueCount_set_of, hf_index, ett_dop_SET_OF_MaxValueCount);
1708 static const ber_sequence_t RestrictedValue_sequence[] = {
1709 { &hf_dop_type , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
1710 { &hf_dop_valuesIn , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
1711 { NULL, 0, 0, 0, NULL }
1715 dissect_dop_RestrictedValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1716 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1717 RestrictedValue_sequence, hf_index, ett_dop_RestrictedValue);
1723 static const ber_sequence_t SET_OF_RestrictedValue_set_of[1] = {
1724 { &hf_dop_restrictedBy_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_RestrictedValue },
1728 dissect_dop_SET_OF_RestrictedValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1729 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1730 SET_OF_RestrictedValue_set_of, hf_index, ett_dop_SET_OF_RestrictedValue);
1736 static const ber_sequence_t SET_OF_ContextAssertion_set_of[1] = {
1737 { &hf_dop_contexts_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ContextAssertion },
1741 dissect_dop_SET_OF_ContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1742 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1743 SET_OF_ContextAssertion_set_of, hf_index, ett_dop_SET_OF_ContextAssertion);
1749 static const ber_sequence_t ProtectedItems_sequence[] = {
1750 { &hf_dop_entry , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dop_NULL },
1751 { &hf_dop_allUserAttributeTypes, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dop_NULL },
1752 { &hf_dop_attributeType , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_AttributeType },
1753 { &hf_dop_allAttributeValues, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_AttributeType },
1754 { &hf_dop_allUserAttributeTypesAndValues, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dop_NULL },
1755 { &hf_dop_attributeValue , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_AttributeTypeAndValue },
1756 { &hf_dop_selfValue , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_AttributeType },
1757 { &hf_dop_rangeOfValues , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_dap_Filter },
1758 { &hf_dop_maxValueCount , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_MaxValueCount },
1759 { &hf_dop_maxImmSub , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_dop_INTEGER },
1760 { &hf_dop_restrictedBy , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_RestrictedValue },
1761 { &hf_dop_contexts , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_ContextAssertion },
1762 { &hf_dop_classes , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_x509if_Refinement },
1763 { NULL, 0, 0, 0, NULL }
1767 dissect_dop_ProtectedItems(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1768 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1769 ProtectedItems_sequence, hf_index, ett_dop_ProtectedItems);
1775 static const ber_sequence_t SET_OF_NameAndOptionalUID_set_of[1] = {
1776 { &hf_dop_name_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509sat_NameAndOptionalUID },
1780 dissect_dop_SET_OF_NameAndOptionalUID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1781 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1782 SET_OF_NameAndOptionalUID_set_of, hf_index, ett_dop_SET_OF_NameAndOptionalUID);
1788 static const ber_sequence_t SET_OF_SubtreeSpecification_set_of[1] = {
1789 { &hf_dop_subtree_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_SubtreeSpecification },
1793 dissect_dop_SET_OF_SubtreeSpecification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1794 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1795 SET_OF_SubtreeSpecification_set_of, hf_index, ett_dop_SET_OF_SubtreeSpecification);
1801 static const ber_sequence_t UserClasses_sequence[] = {
1802 { &hf_dop_allUsers , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dop_NULL },
1803 { &hf_dop_thisEntry , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dop_NULL },
1804 { &hf_dop_name , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_NameAndOptionalUID },
1805 { &hf_dop_userGroup , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_NameAndOptionalUID },
1806 { &hf_dop_subtree , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_SubtreeSpecification },
1807 { NULL, 0, 0, 0, NULL }
1811 dissect_dop_UserClasses(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1812 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1813 UserClasses_sequence, hf_index, ett_dop_UserClasses);
1819 static const asn_namedbit GrantsAndDenials_bits[] = {
1820 { 0, &hf_dop_GrantsAndDenials_grantAdd, -1, -1, "grantAdd", NULL },
1821 { 1, &hf_dop_GrantsAndDenials_denyAdd, -1, -1, "denyAdd", NULL },
1822 { 2, &hf_dop_GrantsAndDenials_grantDiscloseOnError, -1, -1, "grantDiscloseOnError", NULL },
1823 { 3, &hf_dop_GrantsAndDenials_denyDiscloseOnError, -1, -1, "denyDiscloseOnError", NULL },
1824 { 4, &hf_dop_GrantsAndDenials_grantRead, -1, -1, "grantRead", NULL },
1825 { 5, &hf_dop_GrantsAndDenials_denyRead, -1, -1, "denyRead", NULL },
1826 { 6, &hf_dop_GrantsAndDenials_grantRemove, -1, -1, "grantRemove", NULL },
1827 { 7, &hf_dop_GrantsAndDenials_denyRemove, -1, -1, "denyRemove", NULL },
1828 { 8, &hf_dop_GrantsAndDenials_grantBrowse, -1, -1, "grantBrowse", NULL },
1829 { 9, &hf_dop_GrantsAndDenials_denyBrowse, -1, -1, "denyBrowse", NULL },
1830 { 10, &hf_dop_GrantsAndDenials_grantExport, -1, -1, "grantExport", NULL },
1831 { 11, &hf_dop_GrantsAndDenials_denyExport, -1, -1, "denyExport", NULL },
1832 { 12, &hf_dop_GrantsAndDenials_grantImport, -1, -1, "grantImport", NULL },
1833 { 13, &hf_dop_GrantsAndDenials_denyImport, -1, -1, "denyImport", NULL },
1834 { 14, &hf_dop_GrantsAndDenials_grantModify, -1, -1, "grantModify", NULL },
1835 { 15, &hf_dop_GrantsAndDenials_denyModify, -1, -1, "denyModify", NULL },
1836 { 16, &hf_dop_GrantsAndDenials_grantRename, -1, -1, "grantRename", NULL },
1837 { 17, &hf_dop_GrantsAndDenials_denyRename, -1, -1, "denyRename", NULL },
1838 { 18, &hf_dop_GrantsAndDenials_grantReturnDN, -1, -1, "grantReturnDN", NULL },
1839 { 19, &hf_dop_GrantsAndDenials_denyReturnDN, -1, -1, "denyReturnDN", NULL },
1840 { 20, &hf_dop_GrantsAndDenials_grantCompare, -1, -1, "grantCompare", NULL },
1841 { 21, &hf_dop_GrantsAndDenials_denyCompare, -1, -1, "denyCompare", NULL },
1842 { 22, &hf_dop_GrantsAndDenials_grantFilterMatch, -1, -1, "grantFilterMatch", NULL },
1843 { 23, &hf_dop_GrantsAndDenials_denyFilterMatch, -1, -1, "denyFilterMatch", NULL },
1844 { 24, &hf_dop_GrantsAndDenials_grantInvoke, -1, -1, "grantInvoke", NULL },
1845 { 25, &hf_dop_GrantsAndDenials_denyInvoke, -1, -1, "denyInvoke", NULL },
1846 { 0, NULL, 0, 0, NULL, NULL }
1850 dissect_dop_GrantsAndDenials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1851 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1852 GrantsAndDenials_bits, hf_index, ett_dop_GrantsAndDenials,
1859 static const ber_sequence_t ItemPermission_sequence[] = {
1860 { &hf_dop_precedence , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dop_Precedence },
1861 { &hf_dop_userClasses , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_UserClasses },
1862 { &hf_dop_grantsAndDenials, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dop_GrantsAndDenials },
1863 { NULL, 0, 0, 0, NULL }
1867 dissect_dop_ItemPermission(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1868 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1869 ItemPermission_sequence, hf_index, ett_dop_ItemPermission);
1875 static const ber_sequence_t SET_OF_ItemPermission_set_of[1] = {
1876 { &hf_dop_itemPermissions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_ItemPermission },
1880 dissect_dop_SET_OF_ItemPermission(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1881 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1882 SET_OF_ItemPermission_set_of, hf_index, ett_dop_SET_OF_ItemPermission);
1888 static const ber_sequence_t T_itemFirst_sequence[] = {
1889 { &hf_dop_protectedItems , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_ProtectedItems },
1890 { &hf_dop_itemPermissions , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dop_SET_OF_ItemPermission },
1891 { NULL, 0, 0, 0, NULL }
1895 dissect_dop_T_itemFirst(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1896 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1897 T_itemFirst_sequence, hf_index, ett_dop_T_itemFirst);
1903 static const ber_sequence_t UserPermission_sequence[] = {
1904 { &hf_dop_precedence , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dop_Precedence },
1905 { &hf_dop_protectedItems , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_ProtectedItems },
1906 { &hf_dop_grantsAndDenials, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dop_GrantsAndDenials },
1907 { NULL, 0, 0, 0, NULL }
1911 dissect_dop_UserPermission(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1912 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1913 UserPermission_sequence, hf_index, ett_dop_UserPermission);
1919 static const ber_sequence_t SET_OF_UserPermission_set_of[1] = {
1920 { &hf_dop_userPermissions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_UserPermission },
1924 dissect_dop_SET_OF_UserPermission(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1925 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1926 SET_OF_UserPermission_set_of, hf_index, ett_dop_SET_OF_UserPermission);
1932 static const ber_sequence_t T_userFirst_sequence[] = {
1933 { &hf_dop_userClasses , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_UserClasses },
1934 { &hf_dop_userPermissions , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dop_SET_OF_UserPermission },
1935 { NULL, 0, 0, 0, NULL }
1939 dissect_dop_T_userFirst(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1940 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1941 T_userFirst_sequence, hf_index, ett_dop_T_userFirst);
1947 static const value_string dop_T_itemOrUserFirst_vals[] = {
1953 static const ber_choice_t T_itemOrUserFirst_choice[] = {
1954 { 0, &hf_dop_itemFirst , BER_CLASS_CON, 0, 0, dissect_dop_T_itemFirst },
1955 { 1, &hf_dop_userFirst , BER_CLASS_CON, 1, 0, dissect_dop_T_userFirst },
1956 { 0, NULL, 0, 0, 0, NULL }
1960 dissect_dop_T_itemOrUserFirst(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1961 offset = dissect_ber_choice(actx, tree, tvb, offset,
1962 T_itemOrUserFirst_choice, hf_index, ett_dop_T_itemOrUserFirst,
1969 static const ber_sequence_t ACIItem_sequence[] = {
1970 { &hf_dop_identificationTag, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x509sat_DirectoryString },
1971 { &hf_dop_precedence , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_dop_Precedence },
1972 { &hf_dop_authenticationLevel, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dop_AuthenticationLevel },
1973 { &hf_dop_itemOrUserFirst , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dop_T_itemOrUserFirst },
1974 { NULL, 0, 0, 0, NULL }
1978 dissect_dop_ACIItem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1979 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1980 ACIItem_sequence, hf_index, ett_dop_ACIItem);
1987 static void dissect_DSEType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1988 asn1_ctx_t asn1_ctx;
1989 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1990 dissect_dop_DSEType(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_DSEType_PDU);
1992 static void dissect_SupplierInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1993 asn1_ctx_t asn1_ctx;
1994 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1995 dissect_dop_SupplierInformation(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_SupplierInformation_PDU);
1997 static void dissect_ConsumerInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1998 asn1_ctx_t asn1_ctx;
1999 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2000 dissect_dop_ConsumerInformation(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_ConsumerInformation_PDU);
2002 static void dissect_SupplierAndConsumers_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2003 asn1_ctx_t asn1_ctx;
2004 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2005 dissect_dop_SupplierAndConsumers(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_SupplierAndConsumers_PDU);
2007 static void dissect_HierarchicalAgreement_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2008 asn1_ctx_t asn1_ctx;
2009 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2010 dissect_dop_HierarchicalAgreement(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_HierarchicalAgreement_PDU);
2012 static void dissect_SuperiorToSubordinate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2013 asn1_ctx_t asn1_ctx;
2014 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2015 dissect_dop_SuperiorToSubordinate(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_SuperiorToSubordinate_PDU);
2017 static void dissect_SubordinateToSuperior_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2018 asn1_ctx_t asn1_ctx;
2019 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2020 dissect_dop_SubordinateToSuperior(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_SubordinateToSuperior_PDU);
2022 static void dissect_SuperiorToSubordinateModification_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2023 asn1_ctx_t asn1_ctx;
2024 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2025 dissect_dop_SuperiorToSubordinateModification(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_SuperiorToSubordinateModification_PDU);
2027 static void dissect_NonSpecificHierarchicalAgreement_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2028 asn1_ctx_t asn1_ctx;
2029 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2030 dissect_dop_NonSpecificHierarchicalAgreement(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_NonSpecificHierarchicalAgreement_PDU);
2032 static void dissect_NHOBSuperiorToSubordinate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2033 asn1_ctx_t asn1_ctx;
2034 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2035 dissect_dop_NHOBSuperiorToSubordinate(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_NHOBSuperiorToSubordinate_PDU);
2037 static void dissect_NHOBSubordinateToSuperior_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2038 asn1_ctx_t asn1_ctx;
2039 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2040 dissect_dop_NHOBSubordinateToSuperior(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_NHOBSubordinateToSuperior_PDU);
2042 static void dissect_ACIItem_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2043 asn1_ctx_t asn1_ctx;
2044 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2045 dissect_dop_ACIItem(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_ACIItem_PDU);
2049 /*--- End of included file: packet-dop-fn.c ---*/
2050 #line 89 "../../asn1/dop/packet-dop-template.c"
2053 call_dop_oid_callback(const char *base_string, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, const char *col_info, void* data)
2055 char* binding_param;
2057 binding_param = wmem_strdup_printf(wmem_packet_scope(), "%s.%s", base_string, binding_type ? binding_type : "");
2059 col_append_fstr(pinfo->cinfo, COL_INFO, " %s", col_info);
2061 if (dissector_try_string(dop_dissector_table, binding_param, tvb, pinfo, tree, data)) {
2062 offset = tvb_reported_length (tvb);
2064 proto_item *item=NULL;
2065 proto_tree *next_tree=NULL;
2067 item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset), "Dissector for parameter %s OID:%s not implemented. Contact Wireshark developers if you want this supported", base_string, binding_type ? binding_type : "<empty>");
2069 next_tree = proto_item_add_subtree(item, ett_dop_unknown);
2071 offset = dissect_unknown_ber(pinfo, tvb, offset, next_tree);
2072 expert_add_info(pinfo, item, &ei_dop_unknown_binding_parameter);
2080 * Dissect DOP PDUs inside a ROS PDUs
2083 dissect_dop(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
2089 struct SESSION_DATA_STRUCTURE* session;
2090 int (*dop_dissector)(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) = NULL;
2091 const char *dop_op_name;
2092 asn1_ctx_t asn1_ctx;
2094 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2096 /* do we have operation information from the ROS dissector? */
2099 proto_tree_add_text(parent_tree, tvb, offset, -1,
2100 "Internal error: can't get operation information from ROS dissector.");
2105 session = ( (struct SESSION_DATA_STRUCTURE*)data );
2107 item = proto_tree_add_item(parent_tree, proto_dop, tvb, 0, -1, ENC_NA);
2108 tree = proto_item_add_subtree(item, ett_dop);
2110 col_set_str(pinfo->cinfo, COL_PROTOCOL, "DOP");
2111 col_clear(pinfo->cinfo, COL_INFO);
2113 asn1_ctx.private_data = session;
2115 switch(session->ros_op & ROS_OP_MASK) {
2116 case (ROS_OP_BIND | ROS_OP_ARGUMENT): /* BindInvoke */
2117 dop_dissector = dissect_dop_DSAOperationalManagementBindArgument;
2118 dop_op_name = "DSA-Operational-Bind-Argument";
2120 case (ROS_OP_BIND | ROS_OP_RESULT): /* BindResult */
2121 dop_dissector = dissect_dop_DSAOperationalManagementBindResult;
2122 dop_op_name = "DSA-Operational-Bind-Result";
2124 case (ROS_OP_BIND | ROS_OP_ERROR): /* BindError */
2125 dop_dissector = dissect_dop_DSAOperationalManagementBindError;
2126 dop_op_name = "DSA-Operational-Management-Bind-Error";
2128 case (ROS_OP_INVOKE | ROS_OP_ARGUMENT): /* Invoke Argument */
2129 switch(session->ros_op & ROS_OP_OPCODE_MASK) {
2130 case 100: /* establish */
2131 dop_dissector = dissect_dop_EstablishOperationalBindingArgument;
2132 dop_op_name = "Establish-Operational-Binding-Argument";
2134 case 101: /* terminate */
2135 dop_dissector = dissect_dop_TerminateOperationalBindingArgument;
2136 dop_op_name = "Terminate-Operational-Binding-Argument";
2138 case 102: /* modify */
2139 dop_dissector = dissect_dop_ModifyOperationalBindingArgument;
2140 dop_op_name = "Modify-Operational-Binding-Argument";
2143 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DOP Argument opcode (%d)",
2144 session->ros_op & ROS_OP_OPCODE_MASK);
2148 case (ROS_OP_INVOKE | ROS_OP_RESULT): /* Return Result */
2149 switch(session->ros_op & ROS_OP_OPCODE_MASK) {
2150 case 100: /* establish */
2151 dop_dissector = dissect_dop_EstablishOperationalBindingResult;
2152 dop_op_name = "Establish-Operational-Binding-Result";
2154 case 101: /* terminate */
2155 dop_dissector = dissect_dop_TerminateOperationalBindingResult;
2156 dop_op_name = "Terminate-Operational-Binding-Result";
2158 case 102: /* modify */
2159 dop_dissector = dissect_dop_ModifyOperationalBindingResult;
2160 dop_op_name = "Modify-Operational-Binding-Result";
2163 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DOP Result opcode (%d)",
2164 session->ros_op & ROS_OP_OPCODE_MASK);
2168 case (ROS_OP_INVOKE | ROS_OP_ERROR): /* Return Error */
2169 switch(session->ros_op & ROS_OP_OPCODE_MASK) {
2170 case 100: /* operational-binding */
2171 dop_dissector = dissect_dop_OpBindingErrorParam;
2172 dop_op_name = "Operational-Binding-Error";
2175 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DOP Error opcode (%d)",
2176 session->ros_op & ROS_OP_OPCODE_MASK);
2181 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DOP PDU");
2182 return tvb_length(tvb);
2186 col_set_str(pinfo->cinfo, COL_INFO, dop_op_name);
2188 while (tvb_reported_length_remaining(tvb, offset) > 0){
2190 offset=(*dop_dissector)(FALSE, tvb, offset, &asn1_ctx, tree, -1);
2191 if(offset == old_offset){
2192 proto_tree_add_text(tree, tvb, offset, -1,"Internal error, zero-byte DOP PDU");
2198 return tvb_length(tvb);
2203 /*--- proto_register_dop -------------------------------------------*/
2204 void proto_register_dop(void) {
2206 /* List of fields */
2207 static hf_register_info hf[] =
2210 /*--- Included file: packet-dop-hfarr.c ---*/
2211 #line 1 "../../asn1/dop/packet-dop-hfarr.c"
2212 { &hf_dop_DSEType_PDU,
2213 { "DSEType", "dop.DSEType",
2214 FT_BYTES, BASE_NONE, NULL, 0,
2216 { &hf_dop_SupplierInformation_PDU,
2217 { "SupplierInformation", "dop.SupplierInformation_element",
2218 FT_NONE, BASE_NONE, NULL, 0,
2220 { &hf_dop_ConsumerInformation_PDU,
2221 { "ConsumerInformation", "dop.ConsumerInformation_element",
2222 FT_NONE, BASE_NONE, NULL, 0,
2224 { &hf_dop_SupplierAndConsumers_PDU,
2225 { "SupplierAndConsumers", "dop.SupplierAndConsumers_element",
2226 FT_NONE, BASE_NONE, NULL, 0,
2228 { &hf_dop_HierarchicalAgreement_PDU,
2229 { "HierarchicalAgreement", "dop.HierarchicalAgreement_element",
2230 FT_NONE, BASE_NONE, NULL, 0,
2232 { &hf_dop_SuperiorToSubordinate_PDU,
2233 { "SuperiorToSubordinate", "dop.SuperiorToSubordinate_element",
2234 FT_NONE, BASE_NONE, NULL, 0,
2236 { &hf_dop_SubordinateToSuperior_PDU,
2237 { "SubordinateToSuperior", "dop.SubordinateToSuperior_element",
2238 FT_NONE, BASE_NONE, NULL, 0,
2240 { &hf_dop_SuperiorToSubordinateModification_PDU,
2241 { "SuperiorToSubordinateModification", "dop.SuperiorToSubordinateModification_element",
2242 FT_NONE, BASE_NONE, NULL, 0,
2244 { &hf_dop_NonSpecificHierarchicalAgreement_PDU,
2245 { "NonSpecificHierarchicalAgreement", "dop.NonSpecificHierarchicalAgreement_element",
2246 FT_NONE, BASE_NONE, NULL, 0,
2248 { &hf_dop_NHOBSuperiorToSubordinate_PDU,
2249 { "NHOBSuperiorToSubordinate", "dop.NHOBSuperiorToSubordinate_element",
2250 FT_NONE, BASE_NONE, NULL, 0,
2252 { &hf_dop_NHOBSubordinateToSuperior_PDU,
2253 { "NHOBSubordinateToSuperior", "dop.NHOBSubordinateToSuperior_element",
2254 FT_NONE, BASE_NONE, NULL, 0,
2256 { &hf_dop_ACIItem_PDU,
2257 { "ACIItem", "dop.ACIItem_element",
2258 FT_NONE, BASE_NONE, NULL, 0,
2261 { "ae-title", "dop.ae_title",
2262 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2265 { "address", "dop.address_element",
2266 FT_NONE, BASE_NONE, NULL, 0,
2267 "PresentationAddress", HFILL }},
2268 { &hf_dop_protocolInformation,
2269 { "protocolInformation", "dop.protocolInformation",
2270 FT_UINT32, BASE_DEC, NULL, 0,
2271 "SET_OF_ProtocolInformation", HFILL }},
2272 { &hf_dop_protocolInformation_item,
2273 { "ProtocolInformation", "dop.ProtocolInformation_element",
2274 FT_NONE, BASE_NONE, NULL, 0,
2276 { &hf_dop_agreementID,
2277 { "agreementID", "dop.agreementID_element",
2278 FT_NONE, BASE_NONE, NULL, 0,
2279 "OperationalBindingID", HFILL }},
2280 { &hf_dop_supplier_is_master,
2281 { "supplier-is-master", "dop.supplier_is_master",
2282 FT_BOOLEAN, BASE_NONE, NULL, 0,
2283 "BOOLEAN", HFILL }},
2284 { &hf_dop_non_supplying_master,
2285 { "non-supplying-master", "dop.non_supplying_master_element",
2286 FT_NONE, BASE_NONE, NULL, 0,
2287 "AccessPoint", HFILL }},
2288 { &hf_dop_consumers,
2289 { "consumers", "dop.consumers",
2290 FT_UINT32, BASE_DEC, NULL, 0,
2291 "SET_OF_AccessPoint", HFILL }},
2292 { &hf_dop_consumers_item,
2293 { "AccessPoint", "dop.AccessPoint_element",
2294 FT_NONE, BASE_NONE, NULL, 0,
2296 { &hf_dop_bindingType,
2297 { "bindingType", "dop.bindingType",
2298 FT_OID, BASE_NONE, NULL, 0,
2300 { &hf_dop_bindingID,
2301 { "bindingID", "dop.bindingID_element",
2302 FT_NONE, BASE_NONE, NULL, 0,
2303 "OperationalBindingID", HFILL }},
2304 { &hf_dop_accessPoint,
2305 { "accessPoint", "dop.accessPoint_element",
2306 FT_NONE, BASE_NONE, NULL, 0,
2308 { &hf_dop_establishInitiator,
2309 { "initiator", "dop.initiator",
2310 FT_UINT32, BASE_DEC, VALS(dop_EstablishArgumentInitiator_vals), 0,
2311 "EstablishArgumentInitiator", HFILL }},
2312 { &hf_dop_establishSymmetric,
2313 { "symmetric", "dop.symmetric_element",
2314 FT_NONE, BASE_NONE, NULL, 0,
2315 "EstablishSymmetric", HFILL }},
2316 { &hf_dop_establishRoleAInitiates,
2317 { "roleA-initiates", "dop.roleA_initiates_element",
2318 FT_NONE, BASE_NONE, NULL, 0,
2319 "EstablishRoleAInitiates", HFILL }},
2320 { &hf_dop_establishRoleBInitiates,
2321 { "roleB-initiates", "dop.roleB_initiates_element",
2322 FT_NONE, BASE_NONE, NULL, 0,
2323 "EstablishRoleBInitiates", HFILL }},
2324 { &hf_dop_agreement,
2325 { "agreement", "dop.agreement_element",
2326 FT_NONE, BASE_NONE, NULL, 0,
2329 { "valid", "dop.valid_element",
2330 FT_NONE, BASE_NONE, NULL, 0,
2331 "Validity", HFILL }},
2332 { &hf_dop_securityParameters,
2333 { "securityParameters", "dop.securityParameters_element",
2334 FT_NONE, BASE_NONE, NULL, 0,
2336 { &hf_dop_unsignedEstablishOperationalBindingArgument,
2337 { "unsignedEstablishOperationalBindingArgument", "dop.unsignedEstablishOperationalBindingArgument_element",
2338 FT_NONE, BASE_NONE, NULL, 0,
2339 "EstablishOperationalBindingArgumentData", HFILL }},
2340 { &hf_dop_signedEstablishOperationalBindingArgument,
2341 { "signedEstablishOperationalBindingArgument", "dop.signedEstablishOperationalBindingArgument_element",
2342 FT_NONE, BASE_NONE, NULL, 0,
2344 { &hf_dop_establishOperationalBindingArgument,
2345 { "establishOperationalBindingArgument", "dop.establishOperationalBindingArgument_element",
2346 FT_NONE, BASE_NONE, NULL, 0,
2347 "EstablishOperationalBindingArgumentData", HFILL }},
2348 { &hf_dop_algorithmIdentifier,
2349 { "algorithmIdentifier", "dop.algorithmIdentifier_element",
2350 FT_NONE, BASE_NONE, NULL, 0,
2352 { &hf_dop_encrypted,
2353 { "encrypted", "dop.encrypted",
2354 FT_BYTES, BASE_NONE, NULL, 0,
2355 "BIT_STRING", HFILL }},
2356 { &hf_dop_identifier,
2357 { "identifier", "dop.identifier",
2358 FT_INT32, BASE_DEC, NULL, 0,
2361 { "version", "dop.version",
2362 FT_INT32, BASE_DEC, NULL, 0,
2364 { &hf_dop_validFrom,
2365 { "validFrom", "dop.validFrom",
2366 FT_UINT32, BASE_DEC, VALS(dop_T_validFrom_vals), 0,
2369 { "now", "dop.now_element",
2370 FT_NONE, BASE_NONE, NULL, 0,
2373 { "time", "dop.time",
2374 FT_UINT32, BASE_DEC, VALS(dop_Time_vals), 0,
2376 { &hf_dop_validUntil,
2377 { "validUntil", "dop.validUntil",
2378 FT_UINT32, BASE_DEC, VALS(dop_T_validUntil_vals), 0,
2380 { &hf_dop_explicitTermination,
2381 { "explicitTermination", "dop.explicitTermination_element",
2382 FT_NONE, BASE_NONE, NULL, 0,
2385 { "utcTime", "dop.utcTime",
2386 FT_STRING, BASE_NONE, NULL, 0,
2388 { &hf_dop_generalizedTime,
2389 { "generalizedTime", "dop.generalizedTime",
2390 FT_STRING, BASE_NONE, NULL, 0,
2392 { &hf_dop_initiator,
2393 { "initiator", "dop.initiator",
2394 FT_UINT32, BASE_DEC, VALS(dop_T_initiator_vals), 0,
2396 { &hf_dop_symmetric,
2397 { "symmetric", "dop.symmetric_element",
2398 FT_NONE, BASE_NONE, NULL, 0,
2400 { &hf_dop_roleA_replies,
2401 { "roleA-replies", "dop.roleA_replies_element",
2402 FT_NONE, BASE_NONE, NULL, 0,
2404 { &hf_dop_roleB_replies,
2405 { "roleB-replies", "dop.roleB_replies_element",
2406 FT_NONE, BASE_NONE, NULL, 0,
2408 { &hf_dop_performer,
2409 { "performer", "dop.performer",
2410 FT_UINT32, BASE_DEC, NULL, 0,
2411 "DistinguishedName", HFILL }},
2412 { &hf_dop_aliasDereferenced,
2413 { "aliasDereferenced", "dop.aliasDereferenced",
2414 FT_BOOLEAN, BASE_NONE, NULL, 0,
2415 "BOOLEAN", HFILL }},
2416 { &hf_dop_notification,
2417 { "notification", "dop.notification",
2418 FT_UINT32, BASE_DEC, NULL, 0,
2419 "SEQUENCE_SIZE_1_MAX_OF_Attribute", HFILL }},
2420 { &hf_dop_notification_item,
2421 { "Attribute", "dop.Attribute_element",
2422 FT_NONE, BASE_NONE, NULL, 0,
2424 { &hf_dop_modifyInitiator,
2425 { "initiator", "dop.initiator",
2426 FT_UINT32, BASE_DEC, VALS(dop_ModifyArgumentInitiator_vals), 0,
2427 "ModifyArgumentInitiator", HFILL }},
2428 { &hf_dop_modifySymmetric,
2429 { "symmetric", "dop.symmetric_element",
2430 FT_NONE, BASE_NONE, NULL, 0,
2431 "ModifySymmetric", HFILL }},
2432 { &hf_dop_modifyRoleAInitiates,
2433 { "roleA-initiates", "dop.roleA_initiates_element",
2434 FT_NONE, BASE_NONE, NULL, 0,
2435 "ModifyRoleAInitiates", HFILL }},
2436 { &hf_dop_modifyRoleBInitiates,
2437 { "roleB-initiates", "dop.roleB_initiates_element",
2438 FT_NONE, BASE_NONE, NULL, 0,
2439 "ModifyRoleBInitiates", HFILL }},
2440 { &hf_dop_newBindingID,
2441 { "newBindingID", "dop.newBindingID_element",
2442 FT_NONE, BASE_NONE, NULL, 0,
2443 "OperationalBindingID", HFILL }},
2444 { &hf_dop_argumentNewAgreement,
2445 { "newAgreement", "dop.newAgreement_element",
2446 FT_NONE, BASE_NONE, NULL, 0,
2447 "ArgumentNewAgreement", HFILL }},
2448 { &hf_dop_unsignedModifyOperationalBindingArgument,
2449 { "unsignedModifyOperationalBindingArgument", "dop.unsignedModifyOperationalBindingArgument_element",
2450 FT_NONE, BASE_NONE, NULL, 0,
2451 "ModifyOperationalBindingArgumentData", HFILL }},
2452 { &hf_dop_signedModifyOperationalBindingArgument,
2453 { "signedModifyOperationalBindingArgument", "dop.signedModifyOperationalBindingArgument_element",
2454 FT_NONE, BASE_NONE, NULL, 0,
2456 { &hf_dop_modifyOperationalBindingArgument,
2457 { "modifyOperationalBindingArgument", "dop.modifyOperationalBindingArgument_element",
2458 FT_NONE, BASE_NONE, NULL, 0,
2459 "ModifyOperationalBindingArgumentData", HFILL }},
2461 { "null", "dop.null_element",
2462 FT_NONE, BASE_NONE, NULL, 0,
2464 { &hf_dop_protectedModifyResult,
2465 { "protected", "dop.protected_element",
2466 FT_NONE, BASE_NONE, NULL, 0,
2467 "ProtectedModifyResult", HFILL }},
2468 { &hf_dop_modifyOperationalBindingResultData,
2469 { "modifyOperationalBindingResultData", "dop.modifyOperationalBindingResultData_element",
2470 FT_NONE, BASE_NONE, NULL, 0,
2472 { &hf_dop_resultNewAgreement,
2473 { "newAgreement", "dop.newAgreement_element",
2474 FT_NONE, BASE_NONE, NULL, 0,
2475 "ResultNewAgreement", HFILL }},
2476 { &hf_dop_terminateInitiator,
2477 { "initiator", "dop.initiator",
2478 FT_UINT32, BASE_DEC, VALS(dop_TerminateArgumentInitiator_vals), 0,
2479 "TerminateArgumentInitiator", HFILL }},
2480 { &hf_dop_terminateSymmetric,
2481 { "symmetric", "dop.symmetric_element",
2482 FT_NONE, BASE_NONE, NULL, 0,
2483 "TerminateSymmetric", HFILL }},
2484 { &hf_dop_terminateRoleAInitiates,
2485 { "roleA-initiates", "dop.roleA_initiates_element",
2486 FT_NONE, BASE_NONE, NULL, 0,
2487 "TerminateRoleAInitiates", HFILL }},
2488 { &hf_dop_terminateRoleBInitiates,
2489 { "roleB-initiates", "dop.roleB_initiates_element",
2490 FT_NONE, BASE_NONE, NULL, 0,
2491 "TerminateRoleBInitiates", HFILL }},
2492 { &hf_dop_terminateAtTime,
2493 { "terminateAt", "dop.terminateAt",
2494 FT_UINT32, BASE_DEC, VALS(dop_Time_vals), 0,
2496 { &hf_dop_unsignedTerminateOperationalBindingArgument,
2497 { "unsignedTerminateOperationalBindingArgument", "dop.unsignedTerminateOperationalBindingArgument_element",
2498 FT_NONE, BASE_NONE, NULL, 0,
2499 "TerminateOperationalBindingArgumentData", HFILL }},
2500 { &hf_dop_signedTerminateOperationalBindingArgument,
2501 { "signedTerminateOperationalBindingArgument", "dop.signedTerminateOperationalBindingArgument_element",
2502 FT_NONE, BASE_NONE, NULL, 0,
2504 { &hf_dop_terminateOperationalBindingArgument,
2505 { "terminateOperationalBindingArgument", "dop.terminateOperationalBindingArgument_element",
2506 FT_NONE, BASE_NONE, NULL, 0,
2507 "TerminateOperationalBindingArgumentData", HFILL }},
2508 { &hf_dop_protectedTerminateResult,
2509 { "protected", "dop.protected_element",
2510 FT_NONE, BASE_NONE, NULL, 0,
2511 "ProtectedTerminateResult", HFILL }},
2512 { &hf_dop_terminateOperationalBindingResultData,
2513 { "terminateOperationalBindingResultData", "dop.terminateOperationalBindingResultData_element",
2514 FT_NONE, BASE_NONE, NULL, 0,
2516 { &hf_dop_terminateAtGeneralizedTime,
2517 { "terminateAt", "dop.terminateAt",
2518 FT_STRING, BASE_NONE, NULL, 0,
2519 "GeneralizedTime", HFILL }},
2521 { "problem", "dop.problem",
2522 FT_UINT32, BASE_DEC, VALS(dop_T_problem_vals), 0,
2524 { &hf_dop_agreementProposal,
2525 { "agreementProposal", "dop.agreementProposal_element",
2526 FT_NONE, BASE_NONE, NULL, 0,
2529 { "retryAt", "dop.retryAt",
2530 FT_UINT32, BASE_DEC, VALS(dop_Time_vals), 0,
2534 FT_UINT32, BASE_DEC, NULL, 0,
2535 "RelativeDistinguishedName", HFILL }},
2536 { &hf_dop_immediateSuperior,
2537 { "immediateSuperior", "dop.immediateSuperior",
2538 FT_UINT32, BASE_DEC, NULL, 0,
2539 "DistinguishedName", HFILL }},
2540 { &hf_dop_contextPrefixInfo,
2541 { "contextPrefixInfo", "dop.contextPrefixInfo",
2542 FT_UINT32, BASE_DEC, NULL, 0,
2543 "DITcontext", HFILL }},
2544 { &hf_dop_entryInfo,
2545 { "entryInfo", "dop.entryInfo",
2546 FT_UINT32, BASE_DEC, NULL, 0,
2547 "SET_OF_Attribute", HFILL }},
2548 { &hf_dop_entryInfo_item,
2549 { "Attribute", "dop.Attribute_element",
2550 FT_NONE, BASE_NONE, NULL, 0,
2552 { &hf_dop_immediateSuperiorInfo,
2553 { "immediateSuperiorInfo", "dop.immediateSuperiorInfo",
2554 FT_UINT32, BASE_DEC, NULL, 0,
2555 "SET_OF_Attribute", HFILL }},
2556 { &hf_dop_immediateSuperiorInfo_item,
2557 { "Attribute", "dop.Attribute_element",
2558 FT_NONE, BASE_NONE, NULL, 0,
2560 { &hf_dop_DITcontext_item,
2561 { "Vertex", "dop.Vertex_element",
2562 FT_NONE, BASE_NONE, NULL, 0,
2564 { &hf_dop_admPointInfo,
2565 { "admPointInfo", "dop.admPointInfo",
2566 FT_UINT32, BASE_DEC, NULL, 0,
2567 "SET_OF_Attribute", HFILL }},
2568 { &hf_dop_admPointInfo_item,
2569 { "Attribute", "dop.Attribute_element",
2570 FT_NONE, BASE_NONE, NULL, 0,
2572 { &hf_dop_subentries,
2573 { "subentries", "dop.subentries",
2574 FT_UINT32, BASE_DEC, NULL, 0,
2575 "SET_OF_SubentryInfo", HFILL }},
2576 { &hf_dop_subentries_item,
2577 { "SubentryInfo", "dop.SubentryInfo_element",
2578 FT_NONE, BASE_NONE, NULL, 0,
2580 { &hf_dop_accessPoints,
2581 { "accessPoints", "dop.accessPoints",
2582 FT_UINT32, BASE_DEC, NULL, 0,
2583 "MasterAndShadowAccessPoints", HFILL }},
2585 { "info", "dop.info",
2586 FT_UINT32, BASE_DEC, NULL, 0,
2587 "SET_OF_Attribute", HFILL }},
2588 { &hf_dop_info_item,
2589 { "Attribute", "dop.Attribute_element",
2590 FT_NONE, BASE_NONE, NULL, 0,
2593 { "alias", "dop.alias",
2594 FT_BOOLEAN, BASE_NONE, NULL, 0,
2595 "BOOLEAN", HFILL }},
2596 { &hf_dop_identificationTag,
2597 { "identificationTag", "dop.identificationTag",
2598 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2599 "DirectoryString", HFILL }},
2600 { &hf_dop_precedence,
2601 { "precedence", "dop.precedence",
2602 FT_INT32, BASE_DEC, NULL, 0,
2604 { &hf_dop_authenticationLevel,
2605 { "authenticationLevel", "dop.authenticationLevel",
2606 FT_UINT32, BASE_DEC, VALS(dop_AuthenticationLevel_vals), 0,
2608 { &hf_dop_itemOrUserFirst,
2609 { "itemOrUserFirst", "dop.itemOrUserFirst",
2610 FT_UINT32, BASE_DEC, VALS(dop_T_itemOrUserFirst_vals), 0,
2612 { &hf_dop_itemFirst,
2613 { "itemFirst", "dop.itemFirst_element",
2614 FT_NONE, BASE_NONE, NULL, 0,
2616 { &hf_dop_protectedItems,
2617 { "protectedItems", "dop.protectedItems_element",
2618 FT_NONE, BASE_NONE, NULL, 0,
2620 { &hf_dop_itemPermissions,
2621 { "itemPermissions", "dop.itemPermissions",
2622 FT_UINT32, BASE_DEC, NULL, 0,
2623 "SET_OF_ItemPermission", HFILL }},
2624 { &hf_dop_itemPermissions_item,
2625 { "ItemPermission", "dop.ItemPermission_element",
2626 FT_NONE, BASE_NONE, NULL, 0,
2628 { &hf_dop_userFirst,
2629 { "userFirst", "dop.userFirst_element",
2630 FT_NONE, BASE_NONE, NULL, 0,
2632 { &hf_dop_userClasses,
2633 { "userClasses", "dop.userClasses_element",
2634 FT_NONE, BASE_NONE, NULL, 0,
2636 { &hf_dop_userPermissions,
2637 { "userPermissions", "dop.userPermissions",
2638 FT_UINT32, BASE_DEC, NULL, 0,
2639 "SET_OF_UserPermission", HFILL }},
2640 { &hf_dop_userPermissions_item,
2641 { "UserPermission", "dop.UserPermission_element",
2642 FT_NONE, BASE_NONE, NULL, 0,
2645 { "entry", "dop.entry_element",
2646 FT_NONE, BASE_NONE, NULL, 0,
2648 { &hf_dop_allUserAttributeTypes,
2649 { "allUserAttributeTypes", "dop.allUserAttributeTypes_element",
2650 FT_NONE, BASE_NONE, NULL, 0,
2652 { &hf_dop_attributeType,
2653 { "attributeType", "dop.attributeType",
2654 FT_UINT32, BASE_DEC, NULL, 0,
2655 "SET_OF_AttributeType", HFILL }},
2656 { &hf_dop_attributeType_item,
2657 { "AttributeType", "dop.AttributeType",
2658 FT_OID, BASE_NONE, NULL, 0,
2660 { &hf_dop_allAttributeValues,
2661 { "allAttributeValues", "dop.allAttributeValues",
2662 FT_UINT32, BASE_DEC, NULL, 0,
2663 "SET_OF_AttributeType", HFILL }},
2664 { &hf_dop_allAttributeValues_item,
2665 { "AttributeType", "dop.AttributeType",
2666 FT_OID, BASE_NONE, NULL, 0,
2668 { &hf_dop_allUserAttributeTypesAndValues,
2669 { "allUserAttributeTypesAndValues", "dop.allUserAttributeTypesAndValues_element",
2670 FT_NONE, BASE_NONE, NULL, 0,
2672 { &hf_dop_attributeValue,
2673 { "attributeValue", "dop.attributeValue",
2674 FT_UINT32, BASE_DEC, NULL, 0,
2675 "SET_OF_AttributeTypeAndValue", HFILL }},
2676 { &hf_dop_attributeValue_item,
2677 { "AttributeTypeAndValue", "dop.AttributeTypeAndValue_element",
2678 FT_NONE, BASE_NONE, NULL, 0,
2680 { &hf_dop_selfValue,
2681 { "selfValue", "dop.selfValue",
2682 FT_UINT32, BASE_DEC, NULL, 0,
2683 "SET_OF_AttributeType", HFILL }},
2684 { &hf_dop_selfValue_item,
2685 { "AttributeType", "dop.AttributeType",
2686 FT_OID, BASE_NONE, NULL, 0,
2688 { &hf_dop_rangeOfValues,
2689 { "rangeOfValues", "dop.rangeOfValues",
2690 FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
2692 { &hf_dop_maxValueCount,
2693 { "maxValueCount", "dop.maxValueCount",
2694 FT_UINT32, BASE_DEC, NULL, 0,
2695 "SET_OF_MaxValueCount", HFILL }},
2696 { &hf_dop_maxValueCount_item,
2697 { "MaxValueCount", "dop.MaxValueCount_element",
2698 FT_NONE, BASE_NONE, NULL, 0,
2700 { &hf_dop_maxImmSub,
2701 { "maxImmSub", "dop.maxImmSub",
2702 FT_INT32, BASE_DEC, NULL, 0,
2703 "INTEGER", HFILL }},
2704 { &hf_dop_restrictedBy,
2705 { "restrictedBy", "dop.restrictedBy",
2706 FT_UINT32, BASE_DEC, NULL, 0,
2707 "SET_OF_RestrictedValue", HFILL }},
2708 { &hf_dop_restrictedBy_item,
2709 { "RestrictedValue", "dop.RestrictedValue_element",
2710 FT_NONE, BASE_NONE, NULL, 0,
2713 { "contexts", "dop.contexts",
2714 FT_UINT32, BASE_DEC, NULL, 0,
2715 "SET_OF_ContextAssertion", HFILL }},
2716 { &hf_dop_contexts_item,
2717 { "ContextAssertion", "dop.ContextAssertion_element",
2718 FT_NONE, BASE_NONE, NULL, 0,
2721 { "classes", "dop.classes",
2722 FT_UINT32, BASE_DEC, VALS(x509if_Refinement_vals), 0,
2723 "Refinement", HFILL }},
2725 { "type", "dop.type",
2726 FT_OID, BASE_NONE, NULL, 0,
2727 "AttributeType", HFILL }},
2729 { "maxCount", "dop.maxCount",
2730 FT_INT32, BASE_DEC, NULL, 0,
2731 "INTEGER", HFILL }},
2733 { "valuesIn", "dop.valuesIn",
2734 FT_OID, BASE_NONE, NULL, 0,
2735 "AttributeType", HFILL }},
2737 { "allUsers", "dop.allUsers_element",
2738 FT_NONE, BASE_NONE, NULL, 0,
2740 { &hf_dop_thisEntry,
2741 { "thisEntry", "dop.thisEntry_element",
2742 FT_NONE, BASE_NONE, NULL, 0,
2745 { "name", "dop.name",
2746 FT_UINT32, BASE_DEC, NULL, 0,
2747 "SET_OF_NameAndOptionalUID", HFILL }},
2748 { &hf_dop_name_item,
2749 { "NameAndOptionalUID", "dop.NameAndOptionalUID_element",
2750 FT_NONE, BASE_NONE, NULL, 0,
2752 { &hf_dop_userGroup,
2753 { "userGroup", "dop.userGroup",
2754 FT_UINT32, BASE_DEC, NULL, 0,
2755 "SET_OF_NameAndOptionalUID", HFILL }},
2756 { &hf_dop_userGroup_item,
2757 { "NameAndOptionalUID", "dop.NameAndOptionalUID_element",
2758 FT_NONE, BASE_NONE, NULL, 0,
2761 { "subtree", "dop.subtree",
2762 FT_UINT32, BASE_DEC, NULL, 0,
2763 "SET_OF_SubtreeSpecification", HFILL }},
2764 { &hf_dop_subtree_item,
2765 { "SubtreeSpecification", "dop.SubtreeSpecification_element",
2766 FT_NONE, BASE_NONE, NULL, 0,
2768 { &hf_dop_grantsAndDenials,
2769 { "grantsAndDenials", "dop.grantsAndDenials",
2770 FT_BYTES, BASE_NONE, NULL, 0,
2772 { &hf_dop_basicLevels,
2773 { "basicLevels", "dop.basicLevels_element",
2774 FT_NONE, BASE_NONE, NULL, 0,
2777 { "level", "dop.level",
2778 FT_UINT32, BASE_DEC, VALS(dop_T_level_vals), 0,
2780 { &hf_dop_localQualifier,
2781 { "localQualifier", "dop.localQualifier",
2782 FT_INT32, BASE_DEC, NULL, 0,
2783 "INTEGER", HFILL }},
2785 { "signed", "dop.signed",
2786 FT_BOOLEAN, BASE_NONE, NULL, 0,
2787 "BOOLEAN", HFILL }},
2789 { "other", "dop.other_element",
2790 FT_NONE, BASE_NONE, NULL, 0,
2791 "EXTERNAL", HFILL }},
2792 { &hf_dop_DSEType_root,
2793 { "root", "dop.root",
2794 FT_BOOLEAN, 8, NULL, 0x80,
2796 { &hf_dop_DSEType_glue,
2797 { "glue", "dop.glue",
2798 FT_BOOLEAN, 8, NULL, 0x40,
2800 { &hf_dop_DSEType_cp,
2802 FT_BOOLEAN, 8, NULL, 0x20,
2804 { &hf_dop_DSEType_entry,
2805 { "entry", "dop.entry",
2806 FT_BOOLEAN, 8, NULL, 0x10,
2808 { &hf_dop_DSEType_alias,
2809 { "alias", "dop.alias",
2810 FT_BOOLEAN, 8, NULL, 0x08,
2812 { &hf_dop_DSEType_subr,
2813 { "subr", "dop.subr",
2814 FT_BOOLEAN, 8, NULL, 0x04,
2816 { &hf_dop_DSEType_nssr,
2817 { "nssr", "dop.nssr",
2818 FT_BOOLEAN, 8, NULL, 0x02,
2820 { &hf_dop_DSEType_supr,
2821 { "supr", "dop.supr",
2822 FT_BOOLEAN, 8, NULL, 0x01,
2824 { &hf_dop_DSEType_xr,
2826 FT_BOOLEAN, 8, NULL, 0x80,
2828 { &hf_dop_DSEType_admPoint,
2829 { "admPoint", "dop.admPoint",
2830 FT_BOOLEAN, 8, NULL, 0x40,
2832 { &hf_dop_DSEType_subentry,
2833 { "subentry", "dop.subentry",
2834 FT_BOOLEAN, 8, NULL, 0x20,
2836 { &hf_dop_DSEType_shadow,
2837 { "shadow", "dop.shadow",
2838 FT_BOOLEAN, 8, NULL, 0x10,
2840 { &hf_dop_DSEType_immSupr,
2841 { "immSupr", "dop.immSupr",
2842 FT_BOOLEAN, 8, NULL, 0x04,
2844 { &hf_dop_DSEType_rhob,
2845 { "rhob", "dop.rhob",
2846 FT_BOOLEAN, 8, NULL, 0x02,
2848 { &hf_dop_DSEType_sa,
2850 FT_BOOLEAN, 8, NULL, 0x01,
2852 { &hf_dop_DSEType_dsSubentry,
2853 { "dsSubentry", "dop.dsSubentry",
2854 FT_BOOLEAN, 8, NULL, 0x80,
2856 { &hf_dop_DSEType_familyMember,
2857 { "familyMember", "dop.familyMember",
2858 FT_BOOLEAN, 8, NULL, 0x40,
2860 { &hf_dop_DSEType_ditBridge,
2861 { "ditBridge", "dop.ditBridge",
2862 FT_BOOLEAN, 8, NULL, 0x20,
2864 { &hf_dop_DSEType_writeableCopy,
2865 { "writeableCopy", "dop.writeableCopy",
2866 FT_BOOLEAN, 8, NULL, 0x10,
2868 { &hf_dop_GrantsAndDenials_grantAdd,
2869 { "grantAdd", "dop.grantAdd",
2870 FT_BOOLEAN, 8, NULL, 0x80,
2872 { &hf_dop_GrantsAndDenials_denyAdd,
2873 { "denyAdd", "dop.denyAdd",
2874 FT_BOOLEAN, 8, NULL, 0x40,
2876 { &hf_dop_GrantsAndDenials_grantDiscloseOnError,
2877 { "grantDiscloseOnError", "dop.grantDiscloseOnError",
2878 FT_BOOLEAN, 8, NULL, 0x20,
2880 { &hf_dop_GrantsAndDenials_denyDiscloseOnError,
2881 { "denyDiscloseOnError", "dop.denyDiscloseOnError",
2882 FT_BOOLEAN, 8, NULL, 0x10,
2884 { &hf_dop_GrantsAndDenials_grantRead,
2885 { "grantRead", "dop.grantRead",
2886 FT_BOOLEAN, 8, NULL, 0x08,
2888 { &hf_dop_GrantsAndDenials_denyRead,
2889 { "denyRead", "dop.denyRead",
2890 FT_BOOLEAN, 8, NULL, 0x04,
2892 { &hf_dop_GrantsAndDenials_grantRemove,
2893 { "grantRemove", "dop.grantRemove",
2894 FT_BOOLEAN, 8, NULL, 0x02,
2896 { &hf_dop_GrantsAndDenials_denyRemove,
2897 { "denyRemove", "dop.denyRemove",
2898 FT_BOOLEAN, 8, NULL, 0x01,
2900 { &hf_dop_GrantsAndDenials_grantBrowse,
2901 { "grantBrowse", "dop.grantBrowse",
2902 FT_BOOLEAN, 8, NULL, 0x80,
2904 { &hf_dop_GrantsAndDenials_denyBrowse,
2905 { "denyBrowse", "dop.denyBrowse",
2906 FT_BOOLEAN, 8, NULL, 0x40,
2908 { &hf_dop_GrantsAndDenials_grantExport,
2909 { "grantExport", "dop.grantExport",
2910 FT_BOOLEAN, 8, NULL, 0x20,
2912 { &hf_dop_GrantsAndDenials_denyExport,
2913 { "denyExport", "dop.denyExport",
2914 FT_BOOLEAN, 8, NULL, 0x10,
2916 { &hf_dop_GrantsAndDenials_grantImport,
2917 { "grantImport", "dop.grantImport",
2918 FT_BOOLEAN, 8, NULL, 0x08,
2920 { &hf_dop_GrantsAndDenials_denyImport,
2921 { "denyImport", "dop.denyImport",
2922 FT_BOOLEAN, 8, NULL, 0x04,
2924 { &hf_dop_GrantsAndDenials_grantModify,
2925 { "grantModify", "dop.grantModify",
2926 FT_BOOLEAN, 8, NULL, 0x02,
2928 { &hf_dop_GrantsAndDenials_denyModify,
2929 { "denyModify", "dop.denyModify",
2930 FT_BOOLEAN, 8, NULL, 0x01,
2932 { &hf_dop_GrantsAndDenials_grantRename,
2933 { "grantRename", "dop.grantRename",
2934 FT_BOOLEAN, 8, NULL, 0x80,
2936 { &hf_dop_GrantsAndDenials_denyRename,
2937 { "denyRename", "dop.denyRename",
2938 FT_BOOLEAN, 8, NULL, 0x40,
2940 { &hf_dop_GrantsAndDenials_grantReturnDN,
2941 { "grantReturnDN", "dop.grantReturnDN",
2942 FT_BOOLEAN, 8, NULL, 0x20,
2944 { &hf_dop_GrantsAndDenials_denyReturnDN,
2945 { "denyReturnDN", "dop.denyReturnDN",
2946 FT_BOOLEAN, 8, NULL, 0x10,
2948 { &hf_dop_GrantsAndDenials_grantCompare,
2949 { "grantCompare", "dop.grantCompare",
2950 FT_BOOLEAN, 8, NULL, 0x08,
2952 { &hf_dop_GrantsAndDenials_denyCompare,
2953 { "denyCompare", "dop.denyCompare",
2954 FT_BOOLEAN, 8, NULL, 0x04,
2956 { &hf_dop_GrantsAndDenials_grantFilterMatch,
2957 { "grantFilterMatch", "dop.grantFilterMatch",
2958 FT_BOOLEAN, 8, NULL, 0x02,
2960 { &hf_dop_GrantsAndDenials_denyFilterMatch,
2961 { "denyFilterMatch", "dop.denyFilterMatch",
2962 FT_BOOLEAN, 8, NULL, 0x01,
2964 { &hf_dop_GrantsAndDenials_grantInvoke,
2965 { "grantInvoke", "dop.grantInvoke",
2966 FT_BOOLEAN, 8, NULL, 0x80,
2968 { &hf_dop_GrantsAndDenials_denyInvoke,
2969 { "denyInvoke", "dop.denyInvoke",
2970 FT_BOOLEAN, 8, NULL, 0x40,
2973 /*--- End of included file: packet-dop-hfarr.c ---*/
2974 #line 248 "../../asn1/dop/packet-dop-template.c"
2977 /* List of subtrees */
2978 static gint *ett[] = {
2982 /*--- Included file: packet-dop-ettarr.c ---*/
2983 #line 1 "../../asn1/dop/packet-dop-ettarr.c"
2985 &ett_dop_SupplierOrConsumer,
2986 &ett_dop_SET_OF_ProtocolInformation,
2987 &ett_dop_SupplierInformation,
2988 &ett_dop_SupplierAndConsumers,
2989 &ett_dop_SET_OF_AccessPoint,
2990 &ett_dop_EstablishOperationalBindingArgumentData,
2991 &ett_dop_EstablishArgumentInitiator,
2992 &ett_dop_EstablishOperationalBindingArgument,
2993 &ett_dop_T_signedEstablishOperationalBindingArgument,
2994 &ett_dop_OperationalBindingID,
2996 &ett_dop_T_validFrom,
2997 &ett_dop_T_validUntil,
2999 &ett_dop_EstablishOperationalBindingResult,
3000 &ett_dop_T_initiator,
3001 &ett_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute,
3002 &ett_dop_ModifyOperationalBindingArgumentData,
3003 &ett_dop_ModifyArgumentInitiator,
3004 &ett_dop_ModifyOperationalBindingArgument,
3005 &ett_dop_T_signedModifyOperationalBindingArgument,
3006 &ett_dop_ModifyOperationalBindingResult,
3007 &ett_dop_ProtectedModifyResult,
3008 &ett_dop_ModifyOperationalBindingResultData,
3009 &ett_dop_TerminateOperationalBindingArgumentData,
3010 &ett_dop_TerminateArgumentInitiator,
3011 &ett_dop_TerminateOperationalBindingArgument,
3012 &ett_dop_T_signedTerminateOperationalBindingArgument,
3013 &ett_dop_TerminateOperationalBindingResult,
3014 &ett_dop_ProtectedTerminateResult,
3015 &ett_dop_TerminateOperationalBindingResultData,
3016 &ett_dop_OpBindingErrorParam,
3017 &ett_dop_HierarchicalAgreement,
3018 &ett_dop_SuperiorToSubordinate,
3019 &ett_dop_SET_OF_Attribute,
3020 &ett_dop_DITcontext,
3022 &ett_dop_SET_OF_SubentryInfo,
3023 &ett_dop_SubentryInfo,
3024 &ett_dop_SubordinateToSuperior,
3025 &ett_dop_SuperiorToSubordinateModification,
3026 &ett_dop_NonSpecificHierarchicalAgreement,
3027 &ett_dop_NHOBSuperiorToSubordinate,
3028 &ett_dop_NHOBSubordinateToSuperior,
3030 &ett_dop_T_itemOrUserFirst,
3031 &ett_dop_T_itemFirst,
3032 &ett_dop_SET_OF_ItemPermission,
3033 &ett_dop_T_userFirst,
3034 &ett_dop_SET_OF_UserPermission,
3035 &ett_dop_ProtectedItems,
3036 &ett_dop_SET_OF_AttributeType,
3037 &ett_dop_SET_OF_AttributeTypeAndValue,
3038 &ett_dop_SET_OF_MaxValueCount,
3039 &ett_dop_SET_OF_RestrictedValue,
3040 &ett_dop_SET_OF_ContextAssertion,
3041 &ett_dop_MaxValueCount,
3042 &ett_dop_RestrictedValue,
3043 &ett_dop_UserClasses,
3044 &ett_dop_SET_OF_NameAndOptionalUID,
3045 &ett_dop_SET_OF_SubtreeSpecification,
3046 &ett_dop_ItemPermission,
3047 &ett_dop_UserPermission,
3048 &ett_dop_AuthenticationLevel,
3049 &ett_dop_T_basicLevels,
3050 &ett_dop_GrantsAndDenials,
3052 /*--- End of included file: packet-dop-ettarr.c ---*/
3053 #line 255 "../../asn1/dop/packet-dop-template.c"
3056 static ei_register_info ei[] = {
3057 { &ei_dop_unknown_binding_parameter, { "dop.unknown_binding_parameter", PI_UNDECODED, PI_WARN, "Unknown binding-parameter", EXPFILL }},
3060 expert_module_t* expert_dop;
3061 module_t *dop_module;
3063 /* Register protocol */
3064 proto_dop = proto_register_protocol(PNAME, PSNAME, PFNAME);
3066 new_register_dissector("dop", dissect_dop, proto_dop);
3068 dop_dissector_table = register_dissector_table("dop.oid", "DOP OID Dissectors", FT_STRING, BASE_NONE);
3070 /* Register fields and subtrees */
3071 proto_register_field_array(proto_dop, hf, array_length(hf));
3072 proto_register_subtree_array(ett, array_length(ett));
3073 expert_dop = expert_register_protocol(proto_dop);
3074 expert_register_field_array(expert_dop, ei, array_length(ei));
3076 /* Register our configuration options for DOP, particularly our port */
3078 dop_module = prefs_register_protocol_subtree("OSI/X.500", proto_dop, prefs_register_dop);
3080 prefs_register_uint_preference(dop_module, "tcp.port", "DOP TCP Port",
3081 "Set the port for DOP operations (if other"
3082 " than the default of 102)",
3083 10, &global_dop_tcp_port);
3089 /*--- proto_reg_handoff_dop --- */
3090 void proto_reg_handoff_dop(void) {
3091 dissector_handle_t dop_handle;
3094 /*--- Included file: packet-dop-dis-tab.c ---*/
3095 #line 1 "../../asn1/dop/packet-dop-dis-tab.c"
3096 register_ber_oid_dissector("2.5.12.0", dissect_DSEType_PDU, proto_dop, "id-doa-dseType");
3097 register_ber_oid_dissector("2.5.12.5", dissect_SupplierInformation_PDU, proto_dop, "id-doa-supplierKnowledge");
3098 register_ber_oid_dissector("2.5.12.6", dissect_ConsumerInformation_PDU, proto_dop, "id-doa-consumerKnowledge");
3099 register_ber_oid_dissector("2.5.12.7", dissect_SupplierAndConsumers_PDU, proto_dop, "id-doa-secondaryShadows");
3100 dissector_add_string("dop.oid", "agreement.2.5.19.2", create_dissector_handle(dissect_HierarchicalAgreement_PDU, proto_dop));
3101 dissector_add_string("dop.oid", "establish.rolea.2.5.19.2", create_dissector_handle(dissect_SuperiorToSubordinate_PDU, proto_dop));
3102 dissector_add_string("dop.oid", "modify.rolea.2.5.19.2", create_dissector_handle(dissect_SuperiorToSubordinateModification_PDU, proto_dop));
3103 dissector_add_string("dop.oid", "establish.roleb.2.5.19.2", create_dissector_handle(dissect_SubordinateToSuperior_PDU, proto_dop));
3104 dissector_add_string("dop.oid", "modify.roleb.2.5.19.2", create_dissector_handle(dissect_SubordinateToSuperior_PDU, proto_dop));
3105 dissector_add_string("dop.oid", "agreement.2.5.19.3", create_dissector_handle(dissect_NonSpecificHierarchicalAgreement_PDU, proto_dop));
3106 dissector_add_string("dop.oid", "establish.rolea.2.5.19.3", create_dissector_handle(dissect_NHOBSuperiorToSubordinate_PDU, proto_dop));
3107 dissector_add_string("dop.oid", "modify.rolea.2.5.19.3", create_dissector_handle(dissect_NHOBSuperiorToSubordinate_PDU, proto_dop));
3108 dissector_add_string("dop.oid", "establish.roleb.2.5.19.3", create_dissector_handle(dissect_NHOBSubordinateToSuperior_PDU, proto_dop));
3109 dissector_add_string("dop.oid", "modify.roleb.2.5.19.3", create_dissector_handle(dissect_NHOBSubordinateToSuperior_PDU, proto_dop));
3110 register_ber_oid_dissector("2.5.24.4", dissect_ACIItem_PDU, proto_dop, "id-aca-prescriptiveACI");
3111 register_ber_oid_dissector("2.5.24.5", dissect_ACIItem_PDU, proto_dop, "id-aca-entryACI");
3112 register_ber_oid_dissector("2.5.24.6", dissect_ACIItem_PDU, proto_dop, "id-aca-subentryACI");
3115 /*--- End of included file: packet-dop-dis-tab.c ---*/
3116 #line 295 "../../asn1/dop/packet-dop-template.c"
3117 /* APPLICATION CONTEXT */
3119 oid_add_from_string("id-ac-directory-operational-binding-management","2.5.3.3");
3121 /* ABSTRACT SYNTAXES */
3123 /* Register DOP with ROS (with no use of RTSE) */
3124 dop_handle = find_dissector("dop");
3125 register_ros_oid_dissector_handle("2.5.9.4", dop_handle, 0, "id-as-directory-operational-binding-management", FALSE);
3129 oid_add_from_string("shadow-agreement","2.5.19.1");
3130 oid_add_from_string("hierarchical-agreement","2.5.19.2");
3131 oid_add_from_string("non-specific-hierarchical-agreement","2.5.19.3");
3133 /* ACCESS CONTROL SCHEMES */
3134 oid_add_from_string("basic-ACS","2.5.28.1");
3135 oid_add_from_string("simplified-ACS","2.5.28.2");
3136 oid_add_from_string("ruleBased-ACS","2.5.28.3");
3137 oid_add_from_string("ruleAndBasic-ACS","2.5.28.4");
3138 oid_add_from_string("ruleAndSimple-ACS","2.5.28.5");
3140 /* ADMINISTRATIVE ROLES */
3141 oid_add_from_string("id-ar-autonomousArea","2.5.23.1");
3142 oid_add_from_string("id-ar-accessControlSpecificArea","2.5.23.2");
3143 oid_add_from_string("id-ar-accessControlInnerArea","2.5.23.3");
3144 oid_add_from_string("id-ar-subschemaAdminSpecificArea","2.5.23.4");
3145 oid_add_from_string("id-ar-collectiveAttributeSpecificArea","2.5.23.5");
3146 oid_add_from_string("id-ar-collectiveAttributeInnerArea","2.5.23.6");
3147 oid_add_from_string("id-ar-contextDefaultSpecificArea","2.5.23.7");
3148 oid_add_from_string("id-ar-serviceSpecificArea","2.5.23.8");
3150 /* remember the tpkt handler for change in preferences */
3151 tpkt_handle = find_dissector("tpkt");
3156 prefs_register_dop(void)
3158 static guint tcp_port = 0;
3160 /* de-register the old port */
3161 /* port 102 is registered by TPKT - don't undo this! */
3162 if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
3163 dissector_delete_uint("tcp.port", tcp_port, tpkt_handle);
3165 /* Set our port number for future use */
3166 tcp_port = global_dop_tcp_port;
3168 if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
3169 dissector_add_uint("tcp.port", tcp_port, tpkt_handle);