1 /* Do not modify this file. */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler */
4 /* ../../tools/asn2wrs.py -b -e -p dop -c dop.cnf -s packet-dop-template dop.asn */
6 /* Input file: packet-dop-template.c */
8 #line 1 "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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
39 #include <epan/packet.h>
40 #include <epan/prefs.h>
41 #include <epan/conversation.h>
42 #include <epan/oids.h>
43 #include <epan/asn1.h>
48 #include "packet-ber.h"
49 #include "packet-acse.h"
50 #include "packet-ros.h"
52 #include "packet-x509sat.h"
53 #include "packet-x509af.h"
54 #include "packet-x509if.h"
55 #include "packet-dap.h"
56 #include "packet-dsp.h"
57 #include "packet-crmf.h"
60 #include "packet-dop.h"
62 #define PNAME "X.501 Directory Operational Binding Management Protocol"
66 static guint global_dop_tcp_port = 102;
67 static guint tcp_port = 0;
68 static dissector_handle_t tpkt_handle = NULL;
69 void prefs_register_dop(void); /* forwad declaration for use in preferences registration */
71 /* Initialize the protocol and registered fields */
74 static struct SESSION_DATA_STRUCTURE* session = NULL;
75 static const char *binding_type = NULL; /* binding_type */
77 static int call_dop_oid_callback(char *base_string, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *col_info);
80 /*--- Included file: packet-dop-hf.c ---*/
81 #line 1 "packet-dop-hf.c"
82 static int hf_dop_DSEType_PDU = -1; /* DSEType */
83 static int hf_dop_SupplierInformation_PDU = -1; /* SupplierInformation */
84 static int hf_dop_ConsumerInformation_PDU = -1; /* ConsumerInformation */
85 static int hf_dop_SupplierAndConsumers_PDU = -1; /* SupplierAndConsumers */
86 static int hf_dop_HierarchicalAgreement_PDU = -1; /* HierarchicalAgreement */
87 static int hf_dop_SuperiorToSubordinate_PDU = -1; /* SuperiorToSubordinate */
88 static int hf_dop_SubordinateToSuperior_PDU = -1; /* SubordinateToSuperior */
89 static int hf_dop_SuperiorToSubordinateModification_PDU = -1; /* SuperiorToSubordinateModification */
90 static int hf_dop_NonSpecificHierarchicalAgreement_PDU = -1; /* NonSpecificHierarchicalAgreement */
91 static int hf_dop_NHOBSuperiorToSubordinate_PDU = -1; /* NHOBSuperiorToSubordinate */
92 static int hf_dop_NHOBSubordinateToSuperior_PDU = -1; /* NHOBSubordinateToSuperior */
93 static int hf_dop_ACIItem_PDU = -1; /* ACIItem */
94 static int hf_dop_ae_title = -1; /* Name */
95 static int hf_dop_address = -1; /* PresentationAddress */
96 static int hf_dop_protocolInformation = -1; /* SET_OF_ProtocolInformation */
97 static int hf_dop_protocolInformation_item = -1; /* ProtocolInformation */
98 static int hf_dop_agreementID = -1; /* OperationalBindingID */
99 static int hf_dop_supplier_is_master = -1; /* BOOLEAN */
100 static int hf_dop_non_supplying_master = -1; /* AccessPoint */
101 static int hf_dop_consumers = -1; /* SET_OF_AccessPoint */
102 static int hf_dop_consumers_item = -1; /* AccessPoint */
103 static int hf_dop_bindingType = -1; /* BindingType */
104 static int hf_dop_bindingID = -1; /* OperationalBindingID */
105 static int hf_dop_accessPoint = -1; /* AccessPoint */
106 static int hf_dop_establishInitiator = -1; /* EstablishArgumentInitiator */
107 static int hf_dop_establishSymmetric = -1; /* EstablishSymmetric */
108 static int hf_dop_establishRoleAInitiates = -1; /* EstablishRoleAInitiates */
109 static int hf_dop_establishRoleBInitiates = -1; /* EstablishRoleBInitiates */
110 static int hf_dop_agreement = -1; /* T_agreement */
111 static int hf_dop_valid = -1; /* Validity */
112 static int hf_dop_securityParameters = -1; /* SecurityParameters */
113 static int hf_dop_unsignedEstablishOperationalBindingArgument = -1; /* EstablishOperationalBindingArgumentData */
114 static int hf_dop_signedEstablishOperationalBindingArgument = -1; /* T_signedEstablishOperationalBindingArgument */
115 static int hf_dop_establishOperationalBindingArgument = -1; /* EstablishOperationalBindingArgumentData */
116 static int hf_dop_algorithmIdentifier = -1; /* AlgorithmIdentifier */
117 static int hf_dop_encrypted = -1; /* BIT_STRING */
118 static int hf_dop_identifier = -1; /* T_identifier */
119 static int hf_dop_version = -1; /* T_version */
120 static int hf_dop_validFrom = -1; /* T_validFrom */
121 static int hf_dop_now = -1; /* NULL */
122 static int hf_dop_time = -1; /* Time */
123 static int hf_dop_validUntil = -1; /* T_validUntil */
124 static int hf_dop_explicitTermination = -1; /* NULL */
125 static int hf_dop_utcTime = -1; /* UTCTime */
126 static int hf_dop_generalizedTime = -1; /* GeneralizedTime */
127 static int hf_dop_initiator = -1; /* T_initiator */
128 static int hf_dop_symmetric = -1; /* T_symmetric */
129 static int hf_dop_roleA_replies = -1; /* T_roleA_replies */
130 static int hf_dop_roleB_replies = -1; /* T_roleB_replies */
131 static int hf_dop_performer = -1; /* DistinguishedName */
132 static int hf_dop_aliasDereferenced = -1; /* BOOLEAN */
133 static int hf_dop_notification = -1; /* SEQUENCE_SIZE_1_MAX_OF_Attribute */
134 static int hf_dop_notification_item = -1; /* Attribute */
135 static int hf_dop_modifyInitiator = -1; /* ModifyArgumentInitiator */
136 static int hf_dop_modifySymmetric = -1; /* ModifySymmetric */
137 static int hf_dop_modifyRoleAInitiates = -1; /* ModifyRoleAInitiates */
138 static int hf_dop_modifyRoleBInitiates = -1; /* ModifyRoleBInitiates */
139 static int hf_dop_newBindingID = -1; /* OperationalBindingID */
140 static int hf_dop_argumentNewAgreement = -1; /* ArgumentNewAgreement */
141 static int hf_dop_unsignedModifyOperationalBindingArgument = -1; /* ModifyOperationalBindingArgumentData */
142 static int hf_dop_signedModifyOperationalBindingArgument = -1; /* T_signedModifyOperationalBindingArgument */
143 static int hf_dop_modifyOperationalBindingArgument = -1; /* ModifyOperationalBindingArgumentData */
144 static int hf_dop_null = -1; /* NULL */
145 static int hf_dop_protectedModifyResult = -1; /* ProtectedModifyResult */
146 static int hf_dop_modifyOperationalBindingResultData = -1; /* ModifyOperationalBindingResultData */
147 static int hf_dop_resultNewAgreement = -1; /* ResultNewAgreement */
148 static int hf_dop_terminateInitiator = -1; /* TerminateArgumentInitiator */
149 static int hf_dop_terminateSymmetric = -1; /* TerminateSymmetric */
150 static int hf_dop_terminateRoleAInitiates = -1; /* TerminateRoleAInitiates */
151 static int hf_dop_terminateRoleBInitiates = -1; /* TerminateRoleBInitiates */
152 static int hf_dop_terminateAtTime = -1; /* Time */
153 static int hf_dop_unsignedTerminateOperationalBindingArgument = -1; /* TerminateOperationalBindingArgumentData */
154 static int hf_dop_signedTerminateOperationalBindingArgument = -1; /* T_signedTerminateOperationalBindingArgument */
155 static int hf_dop_terminateOperationalBindingArgument = -1; /* TerminateOperationalBindingArgumentData */
156 static int hf_dop_protectedTerminateResult = -1; /* ProtectedTerminateResult */
157 static int hf_dop_terminateOperationalBindingResultData = -1; /* TerminateOperationalBindingResultData */
158 static int hf_dop_terminateAtGeneralizedTime = -1; /* GeneralizedTime */
159 static int hf_dop_problem = -1; /* T_problem */
160 static int hf_dop_agreementProposal = -1; /* T_agreementProposal */
161 static int hf_dop_retryAt = -1; /* Time */
162 static int hf_dop_rdn = -1; /* RelativeDistinguishedName */
163 static int hf_dop_immediateSuperior = -1; /* DistinguishedName */
164 static int hf_dop_contextPrefixInfo = -1; /* DITcontext */
165 static int hf_dop_entryInfo = -1; /* SET_OF_Attribute */
166 static int hf_dop_entryInfo_item = -1; /* Attribute */
167 static int hf_dop_immediateSuperiorInfo = -1; /* SET_OF_Attribute */
168 static int hf_dop_immediateSuperiorInfo_item = -1; /* Attribute */
169 static int hf_dop_DITcontext_item = -1; /* Vertex */
170 static int hf_dop_admPointInfo = -1; /* SET_OF_Attribute */
171 static int hf_dop_admPointInfo_item = -1; /* Attribute */
172 static int hf_dop_subentries = -1; /* SET_OF_SubentryInfo */
173 static int hf_dop_subentries_item = -1; /* SubentryInfo */
174 static int hf_dop_accessPoints = -1; /* MasterAndShadowAccessPoints */
175 static int hf_dop_info = -1; /* SET_OF_Attribute */
176 static int hf_dop_info_item = -1; /* Attribute */
177 static int hf_dop_alias = -1; /* BOOLEAN */
178 static int hf_dop_identificationTag = -1; /* DirectoryString */
179 static int hf_dop_precedence = -1; /* Precedence */
180 static int hf_dop_authenticationLevel = -1; /* AuthenticationLevel */
181 static int hf_dop_itemOrUserFirst = -1; /* T_itemOrUserFirst */
182 static int hf_dop_itemFirst = -1; /* T_itemFirst */
183 static int hf_dop_protectedItems = -1; /* ProtectedItems */
184 static int hf_dop_itemPermissions = -1; /* SET_OF_ItemPermission */
185 static int hf_dop_itemPermissions_item = -1; /* ItemPermission */
186 static int hf_dop_userFirst = -1; /* T_userFirst */
187 static int hf_dop_userClasses = -1; /* UserClasses */
188 static int hf_dop_userPermissions = -1; /* SET_OF_UserPermission */
189 static int hf_dop_userPermissions_item = -1; /* UserPermission */
190 static int hf_dop_entry = -1; /* NULL */
191 static int hf_dop_allUserAttributeTypes = -1; /* NULL */
192 static int hf_dop_attributeType = -1; /* SET_OF_AttributeType */
193 static int hf_dop_attributeType_item = -1; /* AttributeType */
194 static int hf_dop_allAttributeValues = -1; /* SET_OF_AttributeType */
195 static int hf_dop_allAttributeValues_item = -1; /* AttributeType */
196 static int hf_dop_allUserAttributeTypesAndValues = -1; /* NULL */
197 static int hf_dop_attributeValue = -1; /* SET_OF_AttributeTypeAndValue */
198 static int hf_dop_attributeValue_item = -1; /* AttributeTypeAndValue */
199 static int hf_dop_selfValue = -1; /* SET_OF_AttributeType */
200 static int hf_dop_selfValue_item = -1; /* AttributeType */
201 static int hf_dop_rangeOfValues = -1; /* Filter */
202 static int hf_dop_maxValueCount = -1; /* SET_OF_MaxValueCount */
203 static int hf_dop_maxValueCount_item = -1; /* MaxValueCount */
204 static int hf_dop_maxImmSub = -1; /* INTEGER */
205 static int hf_dop_restrictedBy = -1; /* SET_OF_RestrictedValue */
206 static int hf_dop_restrictedBy_item = -1; /* RestrictedValue */
207 static int hf_dop_contexts = -1; /* SET_OF_ContextAssertion */
208 static int hf_dop_contexts_item = -1; /* ContextAssertion */
209 static int hf_dop_classes = -1; /* Refinement */
210 static int hf_dop_type = -1; /* AttributeType */
211 static int hf_dop_maxCount = -1; /* INTEGER */
212 static int hf_dop_valuesIn = -1; /* AttributeType */
213 static int hf_dop_allUsers = -1; /* NULL */
214 static int hf_dop_thisEntry = -1; /* NULL */
215 static int hf_dop_name = -1; /* SET_OF_NameAndOptionalUID */
216 static int hf_dop_name_item = -1; /* NameAndOptionalUID */
217 static int hf_dop_userGroup = -1; /* SET_OF_NameAndOptionalUID */
218 static int hf_dop_userGroup_item = -1; /* NameAndOptionalUID */
219 static int hf_dop_subtree = -1; /* SET_OF_SubtreeSpecification */
220 static int hf_dop_subtree_item = -1; /* SubtreeSpecification */
221 static int hf_dop_grantsAndDenials = -1; /* GrantsAndDenials */
222 static int hf_dop_basicLevels = -1; /* T_basicLevels */
223 static int hf_dop_level = -1; /* T_level */
224 static int hf_dop_localQualifier = -1; /* INTEGER */
225 static int hf_dop_signed = -1; /* BOOLEAN */
226 static int hf_dop_other = -1; /* EXTERNALt */
228 static int hf_dop_DSEType_root = -1;
229 static int hf_dop_DSEType_glue = -1;
230 static int hf_dop_DSEType_cp = -1;
231 static int hf_dop_DSEType_entry = -1;
232 static int hf_dop_DSEType_alias = -1;
233 static int hf_dop_DSEType_subr = -1;
234 static int hf_dop_DSEType_nssr = -1;
235 static int hf_dop_DSEType_supr = -1;
236 static int hf_dop_DSEType_xr = -1;
237 static int hf_dop_DSEType_admPoint = -1;
238 static int hf_dop_DSEType_subentry = -1;
239 static int hf_dop_DSEType_shadow = -1;
240 static int hf_dop_DSEType_immSupr = -1;
241 static int hf_dop_DSEType_rhob = -1;
242 static int hf_dop_DSEType_sa = -1;
243 static int hf_dop_DSEType_dsSubentry = -1;
244 static int hf_dop_DSEType_familyMember = -1;
245 static int hf_dop_GrantsAndDenials_grantAdd = -1;
246 static int hf_dop_GrantsAndDenials_denyAdd = -1;
247 static int hf_dop_GrantsAndDenials_grantDiscloseOnError = -1;
248 static int hf_dop_GrantsAndDenials_denyDiscloseOnError = -1;
249 static int hf_dop_GrantsAndDenials_grantRead = -1;
250 static int hf_dop_GrantsAndDenials_denyRead = -1;
251 static int hf_dop_GrantsAndDenials_grantRemove = -1;
252 static int hf_dop_GrantsAndDenials_denyRemove = -1;
253 static int hf_dop_GrantsAndDenials_grantBrowse = -1;
254 static int hf_dop_GrantsAndDenials_denyBrowse = -1;
255 static int hf_dop_GrantsAndDenials_grantExport = -1;
256 static int hf_dop_GrantsAndDenials_denyExport = -1;
257 static int hf_dop_GrantsAndDenials_grantImport = -1;
258 static int hf_dop_GrantsAndDenials_denyImport = -1;
259 static int hf_dop_GrantsAndDenials_grantModify = -1;
260 static int hf_dop_GrantsAndDenials_denyModify = -1;
261 static int hf_dop_GrantsAndDenials_grantRename = -1;
262 static int hf_dop_GrantsAndDenials_denyRename = -1;
263 static int hf_dop_GrantsAndDenials_grantReturnDN = -1;
264 static int hf_dop_GrantsAndDenials_denyReturnDN = -1;
265 static int hf_dop_GrantsAndDenials_grantCompare = -1;
266 static int hf_dop_GrantsAndDenials_denyCompare = -1;
267 static int hf_dop_GrantsAndDenials_grantFilterMatch = -1;
268 static int hf_dop_GrantsAndDenials_denyFilterMatch = -1;
269 static int hf_dop_GrantsAndDenials_grantInvoke = -1;
270 static int hf_dop_GrantsAndDenials_denyInvoke = -1;
272 /*--- End of included file: packet-dop-hf.c ---*/
273 #line 72 "packet-dop-template.c"
275 /* Initialize the subtree pointers */
276 static gint ett_dop = -1;
277 static gint ett_dop_unknown = -1;
279 /*--- Included file: packet-dop-ett.c ---*/
280 #line 1 "packet-dop-ett.c"
281 static gint ett_dop_DSEType = -1;
282 static gint ett_dop_SupplierOrConsumer = -1;
283 static gint ett_dop_SET_OF_ProtocolInformation = -1;
284 static gint ett_dop_SupplierInformation = -1;
285 static gint ett_dop_SupplierAndConsumers = -1;
286 static gint ett_dop_SET_OF_AccessPoint = -1;
287 static gint ett_dop_EstablishOperationalBindingArgumentData = -1;
288 static gint ett_dop_EstablishArgumentInitiator = -1;
289 static gint ett_dop_EstablishOperationalBindingArgument = -1;
290 static gint ett_dop_T_signedEstablishOperationalBindingArgument = -1;
291 static gint ett_dop_OperationalBindingID = -1;
292 static gint ett_dop_Validity = -1;
293 static gint ett_dop_T_validFrom = -1;
294 static gint ett_dop_T_validUntil = -1;
295 static gint ett_dop_Time = -1;
296 static gint ett_dop_EstablishOperationalBindingResult = -1;
297 static gint ett_dop_T_initiator = -1;
298 static gint ett_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute = -1;
299 static gint ett_dop_ModifyOperationalBindingArgumentData = -1;
300 static gint ett_dop_ModifyArgumentInitiator = -1;
301 static gint ett_dop_ModifyOperationalBindingArgument = -1;
302 static gint ett_dop_T_signedModifyOperationalBindingArgument = -1;
303 static gint ett_dop_ModifyOperationalBindingResult = -1;
304 static gint ett_dop_ProtectedModifyResult = -1;
305 static gint ett_dop_ModifyOperationalBindingResultData = -1;
306 static gint ett_dop_TerminateOperationalBindingArgumentData = -1;
307 static gint ett_dop_TerminateArgumentInitiator = -1;
308 static gint ett_dop_TerminateOperationalBindingArgument = -1;
309 static gint ett_dop_T_signedTerminateOperationalBindingArgument = -1;
310 static gint ett_dop_TerminateOperationalBindingResult = -1;
311 static gint ett_dop_ProtectedTerminateResult = -1;
312 static gint ett_dop_TerminateOperationalBindingResultData = -1;
313 static gint ett_dop_OpBindingErrorParam = -1;
314 static gint ett_dop_HierarchicalAgreement = -1;
315 static gint ett_dop_SuperiorToSubordinate = -1;
316 static gint ett_dop_SET_OF_Attribute = -1;
317 static gint ett_dop_DITcontext = -1;
318 static gint ett_dop_Vertex = -1;
319 static gint ett_dop_SET_OF_SubentryInfo = -1;
320 static gint ett_dop_SubentryInfo = -1;
321 static gint ett_dop_SubordinateToSuperior = -1;
322 static gint ett_dop_SuperiorToSubordinateModification = -1;
323 static gint ett_dop_NonSpecificHierarchicalAgreement = -1;
324 static gint ett_dop_NHOBSuperiorToSubordinate = -1;
325 static gint ett_dop_NHOBSubordinateToSuperior = -1;
326 static gint ett_dop_ACIItem = -1;
327 static gint ett_dop_T_itemOrUserFirst = -1;
328 static gint ett_dop_T_itemFirst = -1;
329 static gint ett_dop_SET_OF_ItemPermission = -1;
330 static gint ett_dop_T_userFirst = -1;
331 static gint ett_dop_SET_OF_UserPermission = -1;
332 static gint ett_dop_ProtectedItems = -1;
333 static gint ett_dop_SET_OF_AttributeType = -1;
334 static gint ett_dop_SET_OF_AttributeTypeAndValue = -1;
335 static gint ett_dop_SET_OF_MaxValueCount = -1;
336 static gint ett_dop_SET_OF_RestrictedValue = -1;
337 static gint ett_dop_SET_OF_ContextAssertion = -1;
338 static gint ett_dop_MaxValueCount = -1;
339 static gint ett_dop_RestrictedValue = -1;
340 static gint ett_dop_UserClasses = -1;
341 static gint ett_dop_SET_OF_NameAndOptionalUID = -1;
342 static gint ett_dop_SET_OF_SubtreeSpecification = -1;
343 static gint ett_dop_ItemPermission = -1;
344 static gint ett_dop_UserPermission = -1;
345 static gint ett_dop_AuthenticationLevel = -1;
346 static gint ett_dop_T_basicLevels = -1;
347 static gint ett_dop_GrantsAndDenials = -1;
349 /*--- End of included file: packet-dop-ett.c ---*/
350 #line 77 "packet-dop-template.c"
352 /* Dissector table */
353 static dissector_table_t dop_dissector_table;
355 static void append_oid(packet_info *pinfo, const char *oid)
357 const char *name = NULL;
359 if(check_col(pinfo->cinfo, COL_INFO)) {
360 name = get_oid_str_name(oid);
361 col_append_fstr(pinfo->cinfo, COL_INFO, " %s", name ? name : oid);
366 /*--- Included file: packet-dop-fn.c ---*/
367 #line 1 "packet-dop-fn.c"
368 /*--- Fields for imported types ---*/
370 static int dissect_ae_title(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
371 return dissect_x509if_Name(FALSE, tvb, offset, actx, tree, hf_dop_ae_title);
373 static int dissect_address(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
374 return dissect_x509sat_PresentationAddress(FALSE, tvb, offset, actx, tree, hf_dop_address);
376 static int dissect_protocolInformation_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
377 return dissect_x509sat_ProtocolInformation(FALSE, tvb, offset, actx, tree, hf_dop_protocolInformation_item);
379 static int dissect_non_supplying_master(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
380 return dissect_dsp_AccessPoint(FALSE, tvb, offset, actx, tree, hf_dop_non_supplying_master);
382 static int dissect_consumers_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
383 return dissect_dsp_AccessPoint(FALSE, tvb, offset, actx, tree, hf_dop_consumers_item);
385 static int dissect_accessPoint(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
386 return dissect_dsp_AccessPoint(FALSE, tvb, offset, actx, tree, hf_dop_accessPoint);
388 static int dissect_securityParameters(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
389 return dissect_dap_SecurityParameters(FALSE, tvb, offset, actx, tree, hf_dop_securityParameters);
391 static int dissect_algorithmIdentifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
392 return dissect_x509af_AlgorithmIdentifier(FALSE, tvb, offset, actx, tree, hf_dop_algorithmIdentifier);
394 static int dissect_performer(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
395 return dissect_x509if_DistinguishedName(FALSE, tvb, offset, actx, tree, hf_dop_performer);
397 static int dissect_notification_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
398 return dissect_x509if_Attribute(FALSE, tvb, offset, actx, tree, hf_dop_notification_item);
400 static int dissect_rdn(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
401 return dissect_x509if_RelativeDistinguishedName(FALSE, tvb, offset, actx, tree, hf_dop_rdn);
403 static int dissect_immediateSuperior(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
404 return dissect_x509if_DistinguishedName(FALSE, tvb, offset, actx, tree, hf_dop_immediateSuperior);
406 static int dissect_entryInfo_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
407 return dissect_x509if_Attribute(FALSE, tvb, offset, actx, tree, hf_dop_entryInfo_item);
409 static int dissect_immediateSuperiorInfo_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
410 return dissect_x509if_Attribute(FALSE, tvb, offset, actx, tree, hf_dop_immediateSuperiorInfo_item);
412 static int dissect_admPointInfo_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
413 return dissect_x509if_Attribute(FALSE, tvb, offset, actx, tree, hf_dop_admPointInfo_item);
415 static int dissect_accessPoints(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
416 return dissect_dsp_MasterAndShadowAccessPoints(FALSE, tvb, offset, actx, tree, hf_dop_accessPoints);
418 static int dissect_info_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
419 return dissect_x509if_Attribute(FALSE, tvb, offset, actx, tree, hf_dop_info_item);
421 static int dissect_identificationTag(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
422 return dissect_x509sat_DirectoryString(FALSE, tvb, offset, actx, tree, hf_dop_identificationTag);
424 static int dissect_attributeType_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
425 return dissect_x509if_AttributeType(FALSE, tvb, offset, actx, tree, hf_dop_attributeType_item);
427 static int dissect_allAttributeValues_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
428 return dissect_x509if_AttributeType(FALSE, tvb, offset, actx, tree, hf_dop_allAttributeValues_item);
430 static int dissect_attributeValue_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
431 return dissect_crmf_AttributeTypeAndValue(FALSE, tvb, offset, actx, tree, hf_dop_attributeValue_item);
433 static int dissect_selfValue_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
434 return dissect_x509if_AttributeType(FALSE, tvb, offset, actx, tree, hf_dop_selfValue_item);
436 static int dissect_rangeOfValues(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
437 return dissect_dap_Filter(FALSE, tvb, offset, actx, tree, hf_dop_rangeOfValues);
439 static int dissect_contexts_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
440 return dissect_x509if_ContextAssertion(FALSE, tvb, offset, actx, tree, hf_dop_contexts_item);
442 static int dissect_classes(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
443 return dissect_x509if_Refinement(FALSE, tvb, offset, actx, tree, hf_dop_classes);
445 static int dissect_type(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
446 return dissect_x509if_AttributeType(FALSE, tvb, offset, actx, tree, hf_dop_type);
448 static int dissect_valuesIn(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
449 return dissect_x509if_AttributeType(FALSE, tvb, offset, actx, tree, hf_dop_valuesIn);
451 static int dissect_name_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
452 return dissect_x509sat_NameAndOptionalUID(FALSE, tvb, offset, actx, tree, hf_dop_name_item);
454 static int dissect_userGroup_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
455 return dissect_x509sat_NameAndOptionalUID(FALSE, tvb, offset, actx, tree, hf_dop_userGroup_item);
457 static int dissect_subtree_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
458 return dissect_x509if_SubtreeSpecification(FALSE, tvb, offset, actx, tree, hf_dop_subtree_item);
460 static int dissect_other(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
461 return dissect_acse_EXTERNALt(FALSE, tvb, offset, actx, tree, hf_dop_other);
465 static const asn_namedbit DSEType_bits[] = {
466 { 0, &hf_dop_DSEType_root, -1, -1, "root", NULL },
467 { 1, &hf_dop_DSEType_glue, -1, -1, "glue", NULL },
468 { 2, &hf_dop_DSEType_cp, -1, -1, "cp", NULL },
469 { 3, &hf_dop_DSEType_entry, -1, -1, "entry", NULL },
470 { 4, &hf_dop_DSEType_alias, -1, -1, "alias", NULL },
471 { 5, &hf_dop_DSEType_subr, -1, -1, "subr", NULL },
472 { 6, &hf_dop_DSEType_nssr, -1, -1, "nssr", NULL },
473 { 7, &hf_dop_DSEType_supr, -1, -1, "supr", NULL },
474 { 8, &hf_dop_DSEType_xr, -1, -1, "xr", NULL },
475 { 9, &hf_dop_DSEType_admPoint, -1, -1, "admPoint", NULL },
476 { 10, &hf_dop_DSEType_subentry, -1, -1, "subentry", NULL },
477 { 11, &hf_dop_DSEType_shadow, -1, -1, "shadow", NULL },
478 { 13, &hf_dop_DSEType_immSupr, -1, -1, "immSupr", NULL },
479 { 14, &hf_dop_DSEType_rhob, -1, -1, "rhob", NULL },
480 { 15, &hf_dop_DSEType_sa, -1, -1, "sa", NULL },
481 { 16, &hf_dop_DSEType_dsSubentry, -1, -1, "dsSubentry", NULL },
482 { 17, &hf_dop_DSEType_familyMember, -1, -1, "familyMember", NULL },
483 { 0, NULL, 0, 0, NULL, NULL }
487 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_) {
488 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
489 DSEType_bits, hf_index, ett_dop_DSEType,
496 static const ber_old_sequence_t SET_OF_ProtocolInformation_set_of[1] = {
497 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_protocolInformation_item },
501 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_) {
502 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
503 SET_OF_ProtocolInformation_set_of, hf_index, ett_dop_SET_OF_ProtocolInformation);
507 static int dissect_protocolInformation(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
508 return dissect_dop_SET_OF_ProtocolInformation(FALSE, tvb, offset, actx, tree, hf_dop_protocolInformation);
514 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_) {
518 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
522 if (check_col(actx->pinfo->cinfo, COL_INFO)) {
523 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " id=%d", value);
532 static int dissect_identifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
533 return dissect_dop_T_identifier(FALSE, tvb, offset, actx, tree, hf_dop_identifier);
539 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_) {
543 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
547 if (check_col(actx->pinfo->cinfo, COL_INFO)) {
548 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " id=%d", value);
555 static int dissect_version(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
556 return dissect_dop_T_version(FALSE, tvb, offset, actx, tree, hf_dop_version);
560 static const ber_old_sequence_t OperationalBindingID_sequence[] = {
561 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_identifier },
562 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_version },
567 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_) {
568 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
569 OperationalBindingID_sequence, hf_index, ett_dop_OperationalBindingID);
573 static int dissect_agreementID(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
574 return dissect_dop_OperationalBindingID(FALSE, tvb, offset, actx, tree, hf_dop_agreementID);
576 static int dissect_bindingID(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
577 return dissect_dop_OperationalBindingID(FALSE, tvb, offset, actx, tree, hf_dop_bindingID);
579 static int dissect_newBindingID(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
580 return dissect_dop_OperationalBindingID(FALSE, tvb, offset, actx, tree, hf_dop_newBindingID);
584 static const ber_old_sequence_t SupplierOrConsumer_set[] = {
585 { BER_CLASS_CON, 0, 0, dissect_ae_title },
586 { BER_CLASS_CON, 1, 0, dissect_address },
587 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_protocolInformation },
588 { BER_CLASS_CON, 3, 0, dissect_agreementID },
593 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_) {
594 offset = dissect_ber_old_set(implicit_tag, actx, tree, tvb, offset,
595 SupplierOrConsumer_set, hf_index, ett_dop_SupplierOrConsumer);
603 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_) {
604 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index);
608 static int dissect_supplier_is_master(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
609 return dissect_dop_BOOLEAN(FALSE, tvb, offset, actx, tree, hf_dop_supplier_is_master);
611 static int dissect_aliasDereferenced(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
612 return dissect_dop_BOOLEAN(FALSE, tvb, offset, actx, tree, hf_dop_aliasDereferenced);
614 static int dissect_alias(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
615 return dissect_dop_BOOLEAN(FALSE, tvb, offset, actx, tree, hf_dop_alias);
617 static int dissect_signed(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
618 return dissect_dop_BOOLEAN(FALSE, tvb, offset, actx, tree, hf_dop_signed);
622 static const ber_old_sequence_t SupplierInformation_set[] = {
623 { BER_CLASS_CON, 0, 0, dissect_ae_title },
624 { BER_CLASS_CON, 1, 0, dissect_address },
625 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_protocolInformation },
626 { BER_CLASS_CON, 3, 0, dissect_agreementID },
627 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_supplier_is_master },
628 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_non_supplying_master },
633 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_) {
634 offset = dissect_ber_old_set(implicit_tag, actx, tree, tvb, offset,
635 SupplierInformation_set, hf_index, ett_dop_SupplierInformation);
643 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_) {
644 offset = dissect_dop_SupplierOrConsumer(implicit_tag, tvb, offset, actx, tree, hf_index);
650 static const ber_old_sequence_t SET_OF_AccessPoint_set_of[1] = {
651 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_consumers_item },
655 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_) {
656 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
657 SET_OF_AccessPoint_set_of, hf_index, ett_dop_SET_OF_AccessPoint);
661 static int dissect_consumers(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
662 return dissect_dop_SET_OF_AccessPoint(FALSE, tvb, offset, actx, tree, hf_dop_consumers);
666 static const ber_old_sequence_t SupplierAndConsumers_set[] = {
667 { BER_CLASS_CON, 0, 0, dissect_ae_title },
668 { BER_CLASS_CON, 1, 0, dissect_address },
669 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_protocolInformation },
670 { BER_CLASS_CON, 3, 0, dissect_consumers },
675 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_) {
676 offset = dissect_ber_old_set(implicit_tag, actx, tree, tvb, offset,
677 SupplierAndConsumers_set, hf_index, ett_dop_SupplierAndConsumers);
685 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_) {
686 offset = dissect_dap_DirectoryBindArgument(implicit_tag, tvb, offset, actx, tree, hf_index);
694 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_) {
695 offset = dissect_dap_DirectoryBindArgument(implicit_tag, tvb, offset, actx, tree, hf_index);
703 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_) {
704 offset = dissect_dap_DirectoryBindError(implicit_tag, tvb, offset, actx, tree, hf_index);
712 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_) {
713 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &binding_type);
716 append_oid(actx->pinfo, binding_type);
720 static int dissect_bindingType(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
721 return dissect_dop_BindingType(FALSE, tvb, offset, actx, tree, hf_dop_bindingType);
727 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_) {
730 offset = call_dop_oid_callback("establish.symmetric", tvb, offset, actx->pinfo, tree, "symmetric");
736 static int dissect_establishSymmetric(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
737 return dissect_dop_EstablishSymmetric(FALSE, tvb, offset, actx, tree, hf_dop_establishSymmetric);
743 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_) {
746 offset = call_dop_oid_callback("establish.rolea", tvb, offset, actx->pinfo, tree, "roleA");
752 static int dissect_establishRoleAInitiates(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
753 return dissect_dop_EstablishRoleAInitiates(FALSE, tvb, offset, actx, tree, hf_dop_establishRoleAInitiates);
759 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_) {
762 offset = call_dop_oid_callback("establish.roleb", tvb, offset, actx->pinfo, tree, "roleB");
768 static int dissect_establishRoleBInitiates(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
769 return dissect_dop_EstablishRoleBInitiates(FALSE, tvb, offset, actx, tree, hf_dop_establishRoleBInitiates);
773 static const value_string dop_EstablishArgumentInitiator_vals[] = {
775 { 4, "roleA-initiates" },
776 { 5, "roleB-initiates" },
780 static const ber_old_choice_t EstablishArgumentInitiator_choice[] = {
781 { 3, BER_CLASS_CON, 3, 0, dissect_establishSymmetric },
782 { 4, BER_CLASS_CON, 4, 0, dissect_establishRoleAInitiates },
783 { 5, BER_CLASS_CON, 5, 0, dissect_establishRoleBInitiates },
788 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_) {
789 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
790 EstablishArgumentInitiator_choice, hf_index, ett_dop_EstablishArgumentInitiator,
795 static int dissect_establishInitiator(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
796 return dissect_dop_EstablishArgumentInitiator(FALSE, tvb, offset, actx, tree, hf_dop_establishInitiator);
802 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_) {
805 offset = call_dop_oid_callback("agreement", tvb, offset, actx->pinfo, tree, NULL);
811 static int dissect_agreement(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
812 return dissect_dop_T_agreement(FALSE, tvb, offset, actx, tree, hf_dop_agreement);
818 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_) {
819 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
823 static int dissect_now(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
824 return dissect_dop_NULL(FALSE, tvb, offset, actx, tree, hf_dop_now);
826 static int dissect_explicitTermination(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
827 return dissect_dop_NULL(FALSE, tvb, offset, actx, tree, hf_dop_explicitTermination);
829 static int dissect_null(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
830 return dissect_dop_NULL(FALSE, tvb, offset, actx, tree, hf_dop_null);
832 static int dissect_entry(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
833 return dissect_dop_NULL(FALSE, tvb, offset, actx, tree, hf_dop_entry);
835 static int dissect_allUserAttributeTypes(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
836 return dissect_dop_NULL(FALSE, tvb, offset, actx, tree, hf_dop_allUserAttributeTypes);
838 static int dissect_allUserAttributeTypesAndValues(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
839 return dissect_dop_NULL(FALSE, tvb, offset, actx, tree, hf_dop_allUserAttributeTypesAndValues);
841 static int dissect_allUsers(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
842 return dissect_dop_NULL(FALSE, tvb, offset, actx, tree, hf_dop_allUsers);
844 static int dissect_thisEntry(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
845 return dissect_dop_NULL(FALSE, tvb, offset, actx, tree, hf_dop_thisEntry);
851 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_) {
852 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTCTime,
853 actx, tree, tvb, offset, hf_index,
858 static int dissect_utcTime(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
859 return dissect_dop_UTCTime(FALSE, tvb, offset, actx, tree, hf_dop_utcTime);
865 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_) {
866 offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
870 static int dissect_generalizedTime(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
871 return dissect_dop_GeneralizedTime(FALSE, tvb, offset, actx, tree, hf_dop_generalizedTime);
873 static int dissect_terminateAtGeneralizedTime(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
874 return dissect_dop_GeneralizedTime(FALSE, tvb, offset, actx, tree, hf_dop_terminateAtGeneralizedTime);
878 static const value_string dop_Time_vals[] = {
880 { 1, "generalizedTime" },
884 static const ber_old_choice_t Time_choice[] = {
885 { 0, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_utcTime },
886 { 1, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_generalizedTime },
891 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_) {
892 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
893 Time_choice, hf_index, ett_dop_Time,
898 static int dissect_time(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
899 return dissect_dop_Time(FALSE, tvb, offset, actx, tree, hf_dop_time);
901 static int dissect_terminateAtTime(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
902 return dissect_dop_Time(FALSE, tvb, offset, actx, tree, hf_dop_terminateAtTime);
904 static int dissect_retryAt(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
905 return dissect_dop_Time(FALSE, tvb, offset, actx, tree, hf_dop_retryAt);
909 static const value_string dop_T_validFrom_vals[] = {
915 static const ber_old_choice_t T_validFrom_choice[] = {
916 { 0, BER_CLASS_CON, 0, 0, dissect_now },
917 { 1, BER_CLASS_CON, 1, 0, dissect_time },
922 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_) {
923 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
924 T_validFrom_choice, hf_index, ett_dop_T_validFrom,
929 static int dissect_validFrom(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
930 return dissect_dop_T_validFrom(FALSE, tvb, offset, actx, tree, hf_dop_validFrom);
934 static const value_string dop_T_validUntil_vals[] = {
935 { 0, "explicitTermination" },
940 static const ber_old_choice_t T_validUntil_choice[] = {
941 { 0, BER_CLASS_CON, 0, 0, dissect_explicitTermination },
942 { 1, BER_CLASS_CON, 1, 0, dissect_time },
947 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_) {
948 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
949 T_validUntil_choice, hf_index, ett_dop_T_validUntil,
954 static int dissect_validUntil(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
955 return dissect_dop_T_validUntil(FALSE, tvb, offset, actx, tree, hf_dop_validUntil);
959 static const ber_old_sequence_t Validity_sequence[] = {
960 { BER_CLASS_CON, 0, 0, dissect_validFrom },
961 { BER_CLASS_CON, 1, 0, dissect_validUntil },
966 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_) {
967 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
968 Validity_sequence, hf_index, ett_dop_Validity);
972 static int dissect_valid(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
973 return dissect_dop_Validity(FALSE, tvb, offset, actx, tree, hf_dop_valid);
977 static const ber_old_sequence_t EstablishOperationalBindingArgumentData_sequence[] = {
978 { BER_CLASS_CON, 0, 0, dissect_bindingType },
979 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_bindingID },
980 { BER_CLASS_CON, 2, 0, dissect_accessPoint },
981 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_establishInitiator },
982 { BER_CLASS_CON, 6, 0, dissect_agreement },
983 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_valid },
984 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_securityParameters },
989 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_) {
990 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
991 EstablishOperationalBindingArgumentData_sequence, hf_index, ett_dop_EstablishOperationalBindingArgumentData);
995 static int dissect_unsignedEstablishOperationalBindingArgument(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
996 return dissect_dop_EstablishOperationalBindingArgumentData(FALSE, tvb, offset, actx, tree, hf_dop_unsignedEstablishOperationalBindingArgument);
998 static int dissect_establishOperationalBindingArgument(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
999 return dissect_dop_EstablishOperationalBindingArgumentData(FALSE, tvb, offset, actx, tree, hf_dop_establishOperationalBindingArgument);
1005 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_) {
1006 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1012 static int dissect_encrypted(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1013 return dissect_dop_BIT_STRING(FALSE, tvb, offset, actx, tree, hf_dop_encrypted);
1017 static const ber_old_sequence_t T_signedEstablishOperationalBindingArgument_sequence[] = {
1018 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_establishOperationalBindingArgument },
1019 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
1020 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
1025 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_) {
1026 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1027 T_signedEstablishOperationalBindingArgument_sequence, hf_index, ett_dop_T_signedEstablishOperationalBindingArgument);
1031 static int dissect_signedEstablishOperationalBindingArgument(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1032 return dissect_dop_T_signedEstablishOperationalBindingArgument(FALSE, tvb, offset, actx, tree, hf_dop_signedEstablishOperationalBindingArgument);
1036 static const value_string dop_EstablishOperationalBindingArgument_vals[] = {
1037 { 0, "unsignedEstablishOperationalBindingArgument" },
1038 { 1, "signedEstablishOperationalBindingArgument" },
1042 static const ber_old_choice_t EstablishOperationalBindingArgument_choice[] = {
1043 { 0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_unsignedEstablishOperationalBindingArgument },
1044 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedEstablishOperationalBindingArgument },
1045 { 0, 0, 0, 0, NULL }
1049 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_) {
1050 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
1051 EstablishOperationalBindingArgument_choice, hf_index, ett_dop_EstablishOperationalBindingArgument,
1060 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_) {
1063 offset = call_dop_oid_callback("establish.symmetric", tvb, offset, actx->pinfo, tree, "symmetric");
1069 static int dissect_symmetric(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1070 return dissect_dop_T_symmetric(FALSE, tvb, offset, actx, tree, hf_dop_symmetric);
1076 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_) {
1079 offset = call_dop_oid_callback("establish.rolea", tvb, offset, actx->pinfo, tree, "roleA");
1085 static int dissect_roleA_replies(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1086 return dissect_dop_T_roleA_replies(FALSE, tvb, offset, actx, tree, hf_dop_roleA_replies);
1092 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_) {
1095 offset = call_dop_oid_callback("establish.roleb", tvb, offset, actx->pinfo, tree, "roleB");
1101 static int dissect_roleB_replies(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1102 return dissect_dop_T_roleB_replies(FALSE, tvb, offset, actx, tree, hf_dop_roleB_replies);
1106 static const value_string dop_T_initiator_vals[] = {
1108 { 4, "roleA-replies" },
1109 { 5, "roleB-replies" },
1113 static const ber_old_choice_t T_initiator_choice[] = {
1114 { 3, BER_CLASS_CON, 3, 0, dissect_symmetric },
1115 { 4, BER_CLASS_CON, 4, 0, dissect_roleA_replies },
1116 { 5, BER_CLASS_CON, 5, 0, dissect_roleB_replies },
1117 { 0, 0, 0, 0, NULL }
1121 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_) {
1122 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
1123 T_initiator_choice, hf_index, ett_dop_T_initiator,
1128 static int dissect_initiator(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1129 return dissect_dop_T_initiator(FALSE, tvb, offset, actx, tree, hf_dop_initiator);
1133 static const ber_old_sequence_t SEQUENCE_SIZE_1_MAX_OF_Attribute_sequence_of[1] = {
1134 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_notification_item },
1138 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_) {
1139 offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
1140 SEQUENCE_SIZE_1_MAX_OF_Attribute_sequence_of, hf_index, ett_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute);
1144 static int dissect_notification(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1145 return dissect_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute(FALSE, tvb, offset, actx, tree, hf_dop_notification);
1149 static const ber_old_sequence_t EstablishOperationalBindingResult_sequence[] = {
1150 { BER_CLASS_CON, 0, 0, dissect_bindingType },
1151 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_bindingID },
1152 { BER_CLASS_CON, 2, 0, dissect_accessPoint },
1153 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_initiator },
1154 { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
1155 { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
1156 { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
1157 { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
1162 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_) {
1163 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1164 EstablishOperationalBindingResult_sequence, hf_index, ett_dop_EstablishOperationalBindingResult);
1172 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_) {
1175 offset = call_dop_oid_callback("modify.symmetric", tvb, offset, actx->pinfo, tree, "symmetric");
1181 static int dissect_modifySymmetric(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1182 return dissect_dop_ModifySymmetric(FALSE, tvb, offset, actx, tree, hf_dop_modifySymmetric);
1188 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_) {
1191 offset = call_dop_oid_callback("modify.rolea", tvb, offset, actx->pinfo, tree, "roleA");
1197 static int dissect_modifyRoleAInitiates(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1198 return dissect_dop_ModifyRoleAInitiates(FALSE, tvb, offset, actx, tree, hf_dop_modifyRoleAInitiates);
1204 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_) {
1207 offset = call_dop_oid_callback("modify.roleb", tvb, offset, actx->pinfo, tree, "roleB");
1213 static int dissect_modifyRoleBInitiates(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1214 return dissect_dop_ModifyRoleBInitiates(FALSE, tvb, offset, actx, tree, hf_dop_modifyRoleBInitiates);
1218 static const value_string dop_ModifyArgumentInitiator_vals[] = {
1220 { 4, "roleA-initiates" },
1221 { 5, "roleB-initiates" },
1225 static const ber_old_choice_t ModifyArgumentInitiator_choice[] = {
1226 { 3, BER_CLASS_CON, 3, 0, dissect_modifySymmetric },
1227 { 4, BER_CLASS_CON, 4, 0, dissect_modifyRoleAInitiates },
1228 { 5, BER_CLASS_CON, 5, 0, dissect_modifyRoleBInitiates },
1229 { 0, 0, 0, 0, NULL }
1233 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_) {
1234 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
1235 ModifyArgumentInitiator_choice, hf_index, ett_dop_ModifyArgumentInitiator,
1240 static int dissect_modifyInitiator(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1241 return dissect_dop_ModifyArgumentInitiator(FALSE, tvb, offset, actx, tree, hf_dop_modifyInitiator);
1247 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_) {
1250 offset = call_dop_oid_callback("agreement", tvb, offset, actx->pinfo, tree, NULL);
1257 static int dissect_argumentNewAgreement(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1258 return dissect_dop_ArgumentNewAgreement(FALSE, tvb, offset, actx, tree, hf_dop_argumentNewAgreement);
1262 static const ber_old_sequence_t ModifyOperationalBindingArgumentData_sequence[] = {
1263 { BER_CLASS_CON, 0, 0, dissect_bindingType },
1264 { BER_CLASS_CON, 1, 0, dissect_bindingID },
1265 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_accessPoint },
1266 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_modifyInitiator },
1267 { BER_CLASS_CON, 6, 0, dissect_newBindingID },
1268 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_argumentNewAgreement },
1269 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_valid },
1270 { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_securityParameters },
1275 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_) {
1276 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1277 ModifyOperationalBindingArgumentData_sequence, hf_index, ett_dop_ModifyOperationalBindingArgumentData);
1281 static int dissect_unsignedModifyOperationalBindingArgument(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1282 return dissect_dop_ModifyOperationalBindingArgumentData(FALSE, tvb, offset, actx, tree, hf_dop_unsignedModifyOperationalBindingArgument);
1284 static int dissect_modifyOperationalBindingArgument(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1285 return dissect_dop_ModifyOperationalBindingArgumentData(FALSE, tvb, offset, actx, tree, hf_dop_modifyOperationalBindingArgument);
1289 static const ber_old_sequence_t T_signedModifyOperationalBindingArgument_sequence[] = {
1290 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_modifyOperationalBindingArgument },
1291 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
1292 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
1297 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_) {
1298 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1299 T_signedModifyOperationalBindingArgument_sequence, hf_index, ett_dop_T_signedModifyOperationalBindingArgument);
1303 static int dissect_signedModifyOperationalBindingArgument(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1304 return dissect_dop_T_signedModifyOperationalBindingArgument(FALSE, tvb, offset, actx, tree, hf_dop_signedModifyOperationalBindingArgument);
1308 static const value_string dop_ModifyOperationalBindingArgument_vals[] = {
1309 { 0, "unsignedModifyOperationalBindingArgument" },
1310 { 1, "signedModifyOperationalBindingArgument" },
1314 static const ber_old_choice_t ModifyOperationalBindingArgument_choice[] = {
1315 { 0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_unsignedModifyOperationalBindingArgument },
1316 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedModifyOperationalBindingArgument },
1317 { 0, 0, 0, 0, NULL }
1321 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_) {
1322 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
1323 ModifyOperationalBindingArgument_choice, hf_index, ett_dop_ModifyOperationalBindingArgument,
1332 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_) {
1335 offset = call_dop_oid_callback("agreement", tvb, offset, actx->pinfo, tree, NULL);
1341 static int dissect_resultNewAgreement(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1342 return dissect_dop_ResultNewAgreement(FALSE, tvb, offset, actx, tree, hf_dop_resultNewAgreement);
1346 static const ber_old_sequence_t ModifyOperationalBindingResultData_sequence[] = {
1347 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_newBindingID },
1348 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_bindingType },
1349 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_resultNewAgreement },
1350 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_valid },
1351 { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
1352 { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
1353 { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
1354 { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
1359 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_) {
1360 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1361 ModifyOperationalBindingResultData_sequence, hf_index, ett_dop_ModifyOperationalBindingResultData);
1365 static int dissect_modifyOperationalBindingResultData(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1366 return dissect_dop_ModifyOperationalBindingResultData(FALSE, tvb, offset, actx, tree, hf_dop_modifyOperationalBindingResultData);
1370 static const ber_old_sequence_t ProtectedModifyResult_sequence[] = {
1371 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_modifyOperationalBindingResultData },
1372 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
1373 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
1378 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_) {
1379 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1380 ProtectedModifyResult_sequence, hf_index, ett_dop_ProtectedModifyResult);
1384 static int dissect_protectedModifyResult(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1385 return dissect_dop_ProtectedModifyResult(FALSE, tvb, offset, actx, tree, hf_dop_protectedModifyResult);
1389 static const value_string dop_ModifyOperationalBindingResult_vals[] = {
1395 static const ber_old_choice_t ModifyOperationalBindingResult_choice[] = {
1396 { 0, BER_CLASS_CON, 0, 0, dissect_null },
1397 { 1, BER_CLASS_CON, 1, 0, dissect_protectedModifyResult },
1398 { 0, 0, 0, 0, NULL }
1402 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_) {
1403 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
1404 ModifyOperationalBindingResult_choice, hf_index, ett_dop_ModifyOperationalBindingResult,
1413 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_) {
1416 offset = call_dop_oid_callback("terminate.symmetric", tvb, offset, actx->pinfo, tree, "symmetric");
1422 static int dissect_terminateSymmetric(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1423 return dissect_dop_TerminateSymmetric(FALSE, tvb, offset, actx, tree, hf_dop_terminateSymmetric);
1429 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_) {
1432 offset = call_dop_oid_callback("terminate.rolea", tvb, offset, actx->pinfo, tree, "roleA");
1438 static int dissect_terminateRoleAInitiates(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1439 return dissect_dop_TerminateRoleAInitiates(FALSE, tvb, offset, actx, tree, hf_dop_terminateRoleAInitiates);
1445 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_) {
1448 offset = call_dop_oid_callback("terminate.roleb", tvb, offset, actx->pinfo, tree, "roleB");
1454 static int dissect_terminateRoleBInitiates(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1455 return dissect_dop_TerminateRoleBInitiates(FALSE, tvb, offset, actx, tree, hf_dop_terminateRoleBInitiates);
1459 static const value_string dop_TerminateArgumentInitiator_vals[] = {
1461 { 3, "roleA-initiates" },
1462 { 4, "roleB-initiates" },
1466 static const ber_old_choice_t TerminateArgumentInitiator_choice[] = {
1467 { 2, BER_CLASS_CON, 2, 0, dissect_terminateSymmetric },
1468 { 3, BER_CLASS_CON, 3, 0, dissect_terminateRoleAInitiates },
1469 { 4, BER_CLASS_CON, 4, 0, dissect_terminateRoleBInitiates },
1470 { 0, 0, 0, 0, NULL }
1474 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_) {
1475 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
1476 TerminateArgumentInitiator_choice, hf_index, ett_dop_TerminateArgumentInitiator,
1481 static int dissect_terminateInitiator(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1482 return dissect_dop_TerminateArgumentInitiator(FALSE, tvb, offset, actx, tree, hf_dop_terminateInitiator);
1486 static const ber_old_sequence_t TerminateOperationalBindingArgumentData_sequence[] = {
1487 { BER_CLASS_CON, 0, 0, dissect_bindingType },
1488 { BER_CLASS_CON, 1, 0, dissect_bindingID },
1489 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_terminateInitiator },
1490 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_terminateAtTime },
1491 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_securityParameters },
1496 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_) {
1497 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1498 TerminateOperationalBindingArgumentData_sequence, hf_index, ett_dop_TerminateOperationalBindingArgumentData);
1502 static int dissect_unsignedTerminateOperationalBindingArgument(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1503 return dissect_dop_TerminateOperationalBindingArgumentData(FALSE, tvb, offset, actx, tree, hf_dop_unsignedTerminateOperationalBindingArgument);
1505 static int dissect_terminateOperationalBindingArgument(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1506 return dissect_dop_TerminateOperationalBindingArgumentData(FALSE, tvb, offset, actx, tree, hf_dop_terminateOperationalBindingArgument);
1510 static const ber_old_sequence_t T_signedTerminateOperationalBindingArgument_sequence[] = {
1511 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_terminateOperationalBindingArgument },
1512 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
1513 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
1518 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_) {
1519 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1520 T_signedTerminateOperationalBindingArgument_sequence, hf_index, ett_dop_T_signedTerminateOperationalBindingArgument);
1524 static int dissect_signedTerminateOperationalBindingArgument(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1525 return dissect_dop_T_signedTerminateOperationalBindingArgument(FALSE, tvb, offset, actx, tree, hf_dop_signedTerminateOperationalBindingArgument);
1529 static const value_string dop_TerminateOperationalBindingArgument_vals[] = {
1530 { 0, "unsignedTerminateOperationalBindingArgument" },
1531 { 1, "signedTerminateOperationalBindingArgument" },
1535 static const ber_old_choice_t TerminateOperationalBindingArgument_choice[] = {
1536 { 0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_unsignedTerminateOperationalBindingArgument },
1537 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedTerminateOperationalBindingArgument },
1538 { 0, 0, 0, 0, NULL }
1542 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_) {
1543 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
1544 TerminateOperationalBindingArgument_choice, hf_index, ett_dop_TerminateOperationalBindingArgument,
1551 static const ber_old_sequence_t TerminateOperationalBindingResultData_sequence[] = {
1552 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_bindingID },
1553 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_bindingType },
1554 { BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_terminateAtGeneralizedTime },
1555 { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
1556 { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
1557 { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
1558 { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
1563 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_) {
1564 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1565 TerminateOperationalBindingResultData_sequence, hf_index, ett_dop_TerminateOperationalBindingResultData);
1569 static int dissect_terminateOperationalBindingResultData(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1570 return dissect_dop_TerminateOperationalBindingResultData(FALSE, tvb, offset, actx, tree, hf_dop_terminateOperationalBindingResultData);
1574 static const ber_old_sequence_t ProtectedTerminateResult_sequence[] = {
1575 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_terminateOperationalBindingResultData },
1576 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
1577 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
1582 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_) {
1583 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1584 ProtectedTerminateResult_sequence, hf_index, ett_dop_ProtectedTerminateResult);
1588 static int dissect_protectedTerminateResult(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1589 return dissect_dop_ProtectedTerminateResult(FALSE, tvb, offset, actx, tree, hf_dop_protectedTerminateResult);
1593 static const value_string dop_TerminateOperationalBindingResult_vals[] = {
1599 static const ber_old_choice_t TerminateOperationalBindingResult_choice[] = {
1600 { 0, BER_CLASS_CON, 0, 0, dissect_null },
1601 { 1, BER_CLASS_CON, 1, 0, dissect_protectedTerminateResult },
1602 { 0, 0, 0, 0, NULL }
1606 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_) {
1607 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
1608 TerminateOperationalBindingResult_choice, hf_index, ett_dop_TerminateOperationalBindingResult,
1615 static const value_string dop_T_problem_vals[] = {
1617 { 1, "duplicateID" },
1618 { 2, "unsupportedBindingType" },
1619 { 3, "notAllowedForRole" },
1620 { 4, "parametersMissing" },
1621 { 5, "roleAssignment" },
1622 { 6, "invalidStartTime" },
1623 { 7, "invalidEndTime" },
1624 { 8, "invalidAgreement" },
1625 { 9, "currentlyNotDecidable" },
1626 { 10, "modificationNotAllowed" },
1632 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_) {
1633 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1638 static int dissect_problem(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1639 return dissect_dop_T_problem(FALSE, tvb, offset, actx, tree, hf_dop_problem);
1645 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_) {
1648 offset = call_dop_oid_callback("agreement", tvb, offset, actx->pinfo, tree, NULL);
1654 static int dissect_agreementProposal(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1655 return dissect_dop_T_agreementProposal(FALSE, tvb, offset, actx, tree, hf_dop_agreementProposal);
1659 static const ber_old_sequence_t OpBindingErrorParam_sequence[] = {
1660 { BER_CLASS_CON, 0, 0, dissect_problem },
1661 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_bindingType },
1662 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_agreementProposal },
1663 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_retryAt },
1664 { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
1665 { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
1666 { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
1667 { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
1672 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_) {
1673 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1674 OpBindingErrorParam_sequence, hf_index, ett_dop_OpBindingErrorParam);
1680 static const ber_old_sequence_t HierarchicalAgreement_sequence[] = {
1681 { BER_CLASS_CON, 0, 0, dissect_rdn },
1682 { BER_CLASS_CON, 1, 0, dissect_immediateSuperior },
1687 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_) {
1688 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1689 HierarchicalAgreement_sequence, hf_index, ett_dop_HierarchicalAgreement);
1695 static const ber_old_sequence_t SET_OF_Attribute_set_of[1] = {
1696 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_entryInfo_item },
1700 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_) {
1701 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
1702 SET_OF_Attribute_set_of, hf_index, ett_dop_SET_OF_Attribute);
1706 static int dissect_entryInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1707 return dissect_dop_SET_OF_Attribute(FALSE, tvb, offset, actx, tree, hf_dop_entryInfo);
1709 static int dissect_immediateSuperiorInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1710 return dissect_dop_SET_OF_Attribute(FALSE, tvb, offset, actx, tree, hf_dop_immediateSuperiorInfo);
1712 static int dissect_admPointInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1713 return dissect_dop_SET_OF_Attribute(FALSE, tvb, offset, actx, tree, hf_dop_admPointInfo);
1715 static int dissect_info(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1716 return dissect_dop_SET_OF_Attribute(FALSE, tvb, offset, actx, tree, hf_dop_info);
1720 static const ber_old_sequence_t SubentryInfo_sequence[] = {
1721 { BER_CLASS_CON, 0, 0, dissect_rdn },
1722 { BER_CLASS_CON, 1, 0, dissect_info },
1727 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_) {
1728 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1729 SubentryInfo_sequence, hf_index, ett_dop_SubentryInfo);
1733 static int dissect_subentries_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1734 return dissect_dop_SubentryInfo(FALSE, tvb, offset, actx, tree, hf_dop_subentries_item);
1738 static const ber_old_sequence_t SET_OF_SubentryInfo_set_of[1] = {
1739 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_subentries_item },
1743 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_) {
1744 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
1745 SET_OF_SubentryInfo_set_of, hf_index, ett_dop_SET_OF_SubentryInfo);
1749 static int dissect_subentries(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1750 return dissect_dop_SET_OF_SubentryInfo(FALSE, tvb, offset, actx, tree, hf_dop_subentries);
1754 static const ber_old_sequence_t Vertex_sequence[] = {
1755 { BER_CLASS_CON, 0, 0, dissect_rdn },
1756 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_admPointInfo },
1757 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_subentries },
1758 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_accessPoints },
1763 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_) {
1764 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1765 Vertex_sequence, hf_index, ett_dop_Vertex);
1769 static int dissect_DITcontext_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1770 return dissect_dop_Vertex(FALSE, tvb, offset, actx, tree, hf_dop_DITcontext_item);
1774 static const ber_old_sequence_t DITcontext_sequence_of[1] = {
1775 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_DITcontext_item },
1779 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_) {
1780 offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
1781 DITcontext_sequence_of, hf_index, ett_dop_DITcontext);
1785 static int dissect_contextPrefixInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1786 return dissect_dop_DITcontext(FALSE, tvb, offset, actx, tree, hf_dop_contextPrefixInfo);
1790 static const ber_old_sequence_t SuperiorToSubordinate_sequence[] = {
1791 { BER_CLASS_CON, 0, 0, dissect_contextPrefixInfo },
1792 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_entryInfo },
1793 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_immediateSuperiorInfo },
1798 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_) {
1799 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1800 SuperiorToSubordinate_sequence, hf_index, ett_dop_SuperiorToSubordinate);
1806 static const ber_old_sequence_t SubordinateToSuperior_sequence[] = {
1807 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_accessPoints },
1808 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_alias },
1809 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_entryInfo },
1810 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_subentries },
1815 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_) {
1816 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1817 SubordinateToSuperior_sequence, hf_index, ett_dop_SubordinateToSuperior);
1823 static const ber_old_sequence_t SuperiorToSubordinateModification_sequence[] = {
1824 { BER_CLASS_CON, 0, 0, dissect_contextPrefixInfo },
1825 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_immediateSuperiorInfo },
1830 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_) {
1831 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1832 SuperiorToSubordinateModification_sequence, hf_index, ett_dop_SuperiorToSubordinateModification);
1838 static const ber_old_sequence_t NonSpecificHierarchicalAgreement_sequence[] = {
1839 { BER_CLASS_CON, 1, 0, dissect_immediateSuperior },
1844 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_) {
1845 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1846 NonSpecificHierarchicalAgreement_sequence, hf_index, ett_dop_NonSpecificHierarchicalAgreement);
1852 static const ber_old_sequence_t NHOBSuperiorToSubordinate_sequence[] = {
1853 { BER_CLASS_CON, 0, 0, dissect_contextPrefixInfo },
1854 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_immediateSuperiorInfo },
1859 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_) {
1860 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1861 NHOBSuperiorToSubordinate_sequence, hf_index, ett_dop_NHOBSuperiorToSubordinate);
1867 static const ber_old_sequence_t NHOBSubordinateToSuperior_sequence[] = {
1868 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_accessPoints },
1869 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_subentries },
1874 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_) {
1875 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1876 NHOBSubordinateToSuperior_sequence, hf_index, ett_dop_NHOBSubordinateToSuperior);
1884 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_) {
1886 guint32 precedence = 0;
1888 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1892 proto_item_append_text(tree, " precedence=%d", precedence);
1898 static int dissect_precedence(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1899 return dissect_dop_Precedence(FALSE, tvb, offset, actx, tree, hf_dop_precedence);
1903 static const value_string dop_T_level_vals[] = {
1912 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_) {
1913 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1918 static int dissect_level(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1919 return dissect_dop_T_level(FALSE, tvb, offset, actx, tree, hf_dop_level);
1925 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_) {
1926 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1931 static int dissect_maxImmSub(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1932 return dissect_dop_INTEGER(FALSE, tvb, offset, actx, tree, hf_dop_maxImmSub);
1934 static int dissect_maxCount(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1935 return dissect_dop_INTEGER(FALSE, tvb, offset, actx, tree, hf_dop_maxCount);
1937 static int dissect_localQualifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1938 return dissect_dop_INTEGER(FALSE, tvb, offset, actx, tree, hf_dop_localQualifier);
1942 static const ber_old_sequence_t T_basicLevels_sequence[] = {
1943 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_level },
1944 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_localQualifier },
1945 { BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_signed },
1950 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_) {
1951 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
1952 T_basicLevels_sequence, hf_index, ett_dop_T_basicLevels);
1956 static int dissect_basicLevels(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1957 return dissect_dop_T_basicLevels(FALSE, tvb, offset, actx, tree, hf_dop_basicLevels);
1961 static const value_string dop_AuthenticationLevel_vals[] = {
1962 { 0, "basicLevels" },
1967 static const ber_old_choice_t AuthenticationLevel_choice[] = {
1968 { 0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_basicLevels },
1969 { 1, BER_CLASS_UNI, 8, BER_FLAGS_NOOWNTAG, dissect_other },
1970 { 0, 0, 0, 0, NULL }
1974 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_) {
1975 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
1976 AuthenticationLevel_choice, hf_index, ett_dop_AuthenticationLevel,
1981 static int dissect_authenticationLevel(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1982 return dissect_dop_AuthenticationLevel(FALSE, tvb, offset, actx, tree, hf_dop_authenticationLevel);
1986 static const ber_old_sequence_t SET_OF_AttributeType_set_of[1] = {
1987 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attributeType_item },
1991 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_) {
1992 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
1993 SET_OF_AttributeType_set_of, hf_index, ett_dop_SET_OF_AttributeType);
1997 static int dissect_attributeType(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
1998 return dissect_dop_SET_OF_AttributeType(FALSE, tvb, offset, actx, tree, hf_dop_attributeType);
2000 static int dissect_allAttributeValues(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2001 return dissect_dop_SET_OF_AttributeType(FALSE, tvb, offset, actx, tree, hf_dop_allAttributeValues);
2003 static int dissect_selfValue(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2004 return dissect_dop_SET_OF_AttributeType(FALSE, tvb, offset, actx, tree, hf_dop_selfValue);
2008 static const ber_old_sequence_t SET_OF_AttributeTypeAndValue_set_of[1] = {
2009 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_attributeValue_item },
2013 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_) {
2014 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
2015 SET_OF_AttributeTypeAndValue_set_of, hf_index, ett_dop_SET_OF_AttributeTypeAndValue);
2019 static int dissect_attributeValue(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2020 return dissect_dop_SET_OF_AttributeTypeAndValue(FALSE, tvb, offset, actx, tree, hf_dop_attributeValue);
2024 static const ber_old_sequence_t MaxValueCount_sequence[] = {
2025 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_type },
2026 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_maxCount },
2031 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_) {
2032 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
2033 MaxValueCount_sequence, hf_index, ett_dop_MaxValueCount);
2037 static int dissect_maxValueCount_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2038 return dissect_dop_MaxValueCount(FALSE, tvb, offset, actx, tree, hf_dop_maxValueCount_item);
2042 static const ber_old_sequence_t SET_OF_MaxValueCount_set_of[1] = {
2043 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_maxValueCount_item },
2047 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_) {
2048 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
2049 SET_OF_MaxValueCount_set_of, hf_index, ett_dop_SET_OF_MaxValueCount);
2053 static int dissect_maxValueCount(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2054 return dissect_dop_SET_OF_MaxValueCount(FALSE, tvb, offset, actx, tree, hf_dop_maxValueCount);
2058 static const ber_old_sequence_t RestrictedValue_sequence[] = {
2059 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_type },
2060 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_valuesIn },
2065 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_) {
2066 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
2067 RestrictedValue_sequence, hf_index, ett_dop_RestrictedValue);
2071 static int dissect_restrictedBy_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2072 return dissect_dop_RestrictedValue(FALSE, tvb, offset, actx, tree, hf_dop_restrictedBy_item);
2076 static const ber_old_sequence_t SET_OF_RestrictedValue_set_of[1] = {
2077 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_restrictedBy_item },
2081 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_) {
2082 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
2083 SET_OF_RestrictedValue_set_of, hf_index, ett_dop_SET_OF_RestrictedValue);
2087 static int dissect_restrictedBy(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2088 return dissect_dop_SET_OF_RestrictedValue(FALSE, tvb, offset, actx, tree, hf_dop_restrictedBy);
2092 static const ber_old_sequence_t SET_OF_ContextAssertion_set_of[1] = {
2093 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_contexts_item },
2097 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_) {
2098 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
2099 SET_OF_ContextAssertion_set_of, hf_index, ett_dop_SET_OF_ContextAssertion);
2103 static int dissect_contexts(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2104 return dissect_dop_SET_OF_ContextAssertion(FALSE, tvb, offset, actx, tree, hf_dop_contexts);
2108 static const ber_old_sequence_t ProtectedItems_sequence[] = {
2109 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_entry },
2110 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_allUserAttributeTypes },
2111 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_attributeType },
2112 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_allAttributeValues },
2113 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_allUserAttributeTypesAndValues },
2114 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_attributeValue },
2115 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_selfValue },
2116 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_rangeOfValues },
2117 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_maxValueCount },
2118 { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_maxImmSub },
2119 { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_restrictedBy },
2120 { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_contexts },
2121 { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_classes },
2126 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_) {
2127 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
2128 ProtectedItems_sequence, hf_index, ett_dop_ProtectedItems);
2132 static int dissect_protectedItems(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2133 return dissect_dop_ProtectedItems(FALSE, tvb, offset, actx, tree, hf_dop_protectedItems);
2137 static const ber_old_sequence_t SET_OF_NameAndOptionalUID_set_of[1] = {
2138 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_name_item },
2142 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_) {
2143 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
2144 SET_OF_NameAndOptionalUID_set_of, hf_index, ett_dop_SET_OF_NameAndOptionalUID);
2148 static int dissect_name(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2149 return dissect_dop_SET_OF_NameAndOptionalUID(FALSE, tvb, offset, actx, tree, hf_dop_name);
2151 static int dissect_userGroup(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2152 return dissect_dop_SET_OF_NameAndOptionalUID(FALSE, tvb, offset, actx, tree, hf_dop_userGroup);
2156 static const ber_old_sequence_t SET_OF_SubtreeSpecification_set_of[1] = {
2157 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_subtree_item },
2161 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_) {
2162 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
2163 SET_OF_SubtreeSpecification_set_of, hf_index, ett_dop_SET_OF_SubtreeSpecification);
2167 static int dissect_subtree(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2168 return dissect_dop_SET_OF_SubtreeSpecification(FALSE, tvb, offset, actx, tree, hf_dop_subtree);
2172 static const ber_old_sequence_t UserClasses_sequence[] = {
2173 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_allUsers },
2174 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_thisEntry },
2175 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_name },
2176 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_userGroup },
2177 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_subtree },
2182 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_) {
2183 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
2184 UserClasses_sequence, hf_index, ett_dop_UserClasses);
2188 static int dissect_userClasses(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2189 return dissect_dop_UserClasses(FALSE, tvb, offset, actx, tree, hf_dop_userClasses);
2193 static const asn_namedbit GrantsAndDenials_bits[] = {
2194 { 0, &hf_dop_GrantsAndDenials_grantAdd, -1, -1, "grantAdd", NULL },
2195 { 1, &hf_dop_GrantsAndDenials_denyAdd, -1, -1, "denyAdd", NULL },
2196 { 2, &hf_dop_GrantsAndDenials_grantDiscloseOnError, -1, -1, "grantDiscloseOnError", NULL },
2197 { 3, &hf_dop_GrantsAndDenials_denyDiscloseOnError, -1, -1, "denyDiscloseOnError", NULL },
2198 { 4, &hf_dop_GrantsAndDenials_grantRead, -1, -1, "grantRead", NULL },
2199 { 5, &hf_dop_GrantsAndDenials_denyRead, -1, -1, "denyRead", NULL },
2200 { 6, &hf_dop_GrantsAndDenials_grantRemove, -1, -1, "grantRemove", NULL },
2201 { 7, &hf_dop_GrantsAndDenials_denyRemove, -1, -1, "denyRemove", NULL },
2202 { 8, &hf_dop_GrantsAndDenials_grantBrowse, -1, -1, "grantBrowse", NULL },
2203 { 9, &hf_dop_GrantsAndDenials_denyBrowse, -1, -1, "denyBrowse", NULL },
2204 { 10, &hf_dop_GrantsAndDenials_grantExport, -1, -1, "grantExport", NULL },
2205 { 11, &hf_dop_GrantsAndDenials_denyExport, -1, -1, "denyExport", NULL },
2206 { 12, &hf_dop_GrantsAndDenials_grantImport, -1, -1, "grantImport", NULL },
2207 { 13, &hf_dop_GrantsAndDenials_denyImport, -1, -1, "denyImport", NULL },
2208 { 14, &hf_dop_GrantsAndDenials_grantModify, -1, -1, "grantModify", NULL },
2209 { 15, &hf_dop_GrantsAndDenials_denyModify, -1, -1, "denyModify", NULL },
2210 { 16, &hf_dop_GrantsAndDenials_grantRename, -1, -1, "grantRename", NULL },
2211 { 17, &hf_dop_GrantsAndDenials_denyRename, -1, -1, "denyRename", NULL },
2212 { 18, &hf_dop_GrantsAndDenials_grantReturnDN, -1, -1, "grantReturnDN", NULL },
2213 { 19, &hf_dop_GrantsAndDenials_denyReturnDN, -1, -1, "denyReturnDN", NULL },
2214 { 20, &hf_dop_GrantsAndDenials_grantCompare, -1, -1, "grantCompare", NULL },
2215 { 21, &hf_dop_GrantsAndDenials_denyCompare, -1, -1, "denyCompare", NULL },
2216 { 22, &hf_dop_GrantsAndDenials_grantFilterMatch, -1, -1, "grantFilterMatch", NULL },
2217 { 23, &hf_dop_GrantsAndDenials_denyFilterMatch, -1, -1, "denyFilterMatch", NULL },
2218 { 24, &hf_dop_GrantsAndDenials_grantInvoke, -1, -1, "grantInvoke", NULL },
2219 { 25, &hf_dop_GrantsAndDenials_denyInvoke, -1, -1, "denyInvoke", NULL },
2220 { 0, NULL, 0, 0, NULL, NULL }
2224 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_) {
2225 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2226 GrantsAndDenials_bits, hf_index, ett_dop_GrantsAndDenials,
2231 static int dissect_grantsAndDenials(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2232 return dissect_dop_GrantsAndDenials(FALSE, tvb, offset, actx, tree, hf_dop_grantsAndDenials);
2236 static const ber_old_sequence_t ItemPermission_sequence[] = {
2237 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_precedence },
2238 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_userClasses },
2239 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_grantsAndDenials },
2244 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_) {
2245 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
2246 ItemPermission_sequence, hf_index, ett_dop_ItemPermission);
2250 static int dissect_itemPermissions_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2251 return dissect_dop_ItemPermission(FALSE, tvb, offset, actx, tree, hf_dop_itemPermissions_item);
2255 static const ber_old_sequence_t SET_OF_ItemPermission_set_of[1] = {
2256 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_itemPermissions_item },
2260 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_) {
2261 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
2262 SET_OF_ItemPermission_set_of, hf_index, ett_dop_SET_OF_ItemPermission);
2266 static int dissect_itemPermissions(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2267 return dissect_dop_SET_OF_ItemPermission(FALSE, tvb, offset, actx, tree, hf_dop_itemPermissions);
2271 static const ber_old_sequence_t T_itemFirst_sequence[] = {
2272 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_protectedItems },
2273 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_itemPermissions },
2278 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_) {
2279 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
2280 T_itemFirst_sequence, hf_index, ett_dop_T_itemFirst);
2284 static int dissect_itemFirst(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2285 return dissect_dop_T_itemFirst(FALSE, tvb, offset, actx, tree, hf_dop_itemFirst);
2289 static const ber_old_sequence_t UserPermission_sequence[] = {
2290 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_precedence },
2291 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_protectedItems },
2292 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_grantsAndDenials },
2297 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_) {
2298 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
2299 UserPermission_sequence, hf_index, ett_dop_UserPermission);
2303 static int dissect_userPermissions_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2304 return dissect_dop_UserPermission(FALSE, tvb, offset, actx, tree, hf_dop_userPermissions_item);
2308 static const ber_old_sequence_t SET_OF_UserPermission_set_of[1] = {
2309 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_userPermissions_item },
2313 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_) {
2314 offset = dissect_ber_old_set_of(implicit_tag, actx, tree, tvb, offset,
2315 SET_OF_UserPermission_set_of, hf_index, ett_dop_SET_OF_UserPermission);
2319 static int dissect_userPermissions(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2320 return dissect_dop_SET_OF_UserPermission(FALSE, tvb, offset, actx, tree, hf_dop_userPermissions);
2324 static const ber_old_sequence_t T_userFirst_sequence[] = {
2325 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_userClasses },
2326 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_userPermissions },
2331 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_) {
2332 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
2333 T_userFirst_sequence, hf_index, ett_dop_T_userFirst);
2337 static int dissect_userFirst(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2338 return dissect_dop_T_userFirst(FALSE, tvb, offset, actx, tree, hf_dop_userFirst);
2342 static const value_string dop_T_itemOrUserFirst_vals[] = {
2348 static const ber_old_choice_t T_itemOrUserFirst_choice[] = {
2349 { 0, BER_CLASS_CON, 0, 0, dissect_itemFirst },
2350 { 1, BER_CLASS_CON, 1, 0, dissect_userFirst },
2351 { 0, 0, 0, 0, NULL }
2355 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_) {
2356 offset = dissect_ber_old_choice(actx, tree, tvb, offset,
2357 T_itemOrUserFirst_choice, hf_index, ett_dop_T_itemOrUserFirst,
2362 static int dissect_itemOrUserFirst(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
2363 return dissect_dop_T_itemOrUserFirst(FALSE, tvb, offset, actx, tree, hf_dop_itemOrUserFirst);
2367 static const ber_old_sequence_t ACIItem_sequence[] = {
2368 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_identificationTag },
2369 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_precedence },
2370 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_authenticationLevel },
2371 { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_itemOrUserFirst },
2376 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_) {
2377 offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
2378 ACIItem_sequence, hf_index, ett_dop_ACIItem);
2385 static void dissect_DSEType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2386 asn1_ctx_t asn1_ctx;
2387 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2388 dissect_dop_DSEType(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_DSEType_PDU);
2390 static void dissect_SupplierInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2391 asn1_ctx_t asn1_ctx;
2392 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2393 dissect_dop_SupplierInformation(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_SupplierInformation_PDU);
2395 static void dissect_ConsumerInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2396 asn1_ctx_t asn1_ctx;
2397 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2398 dissect_dop_ConsumerInformation(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_ConsumerInformation_PDU);
2400 static void dissect_SupplierAndConsumers_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2401 asn1_ctx_t asn1_ctx;
2402 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2403 dissect_dop_SupplierAndConsumers(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_SupplierAndConsumers_PDU);
2405 static void dissect_HierarchicalAgreement_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2406 asn1_ctx_t asn1_ctx;
2407 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2408 dissect_dop_HierarchicalAgreement(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_HierarchicalAgreement_PDU);
2410 static void dissect_SuperiorToSubordinate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2411 asn1_ctx_t asn1_ctx;
2412 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2413 dissect_dop_SuperiorToSubordinate(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_SuperiorToSubordinate_PDU);
2415 static void dissect_SubordinateToSuperior_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2416 asn1_ctx_t asn1_ctx;
2417 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2418 dissect_dop_SubordinateToSuperior(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_SubordinateToSuperior_PDU);
2420 static void dissect_SuperiorToSubordinateModification_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2421 asn1_ctx_t asn1_ctx;
2422 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2423 dissect_dop_SuperiorToSubordinateModification(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_SuperiorToSubordinateModification_PDU);
2425 static void dissect_NonSpecificHierarchicalAgreement_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2426 asn1_ctx_t asn1_ctx;
2427 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2428 dissect_dop_NonSpecificHierarchicalAgreement(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_NonSpecificHierarchicalAgreement_PDU);
2430 static void dissect_NHOBSuperiorToSubordinate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2431 asn1_ctx_t asn1_ctx;
2432 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2433 dissect_dop_NHOBSuperiorToSubordinate(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_NHOBSuperiorToSubordinate_PDU);
2435 static void dissect_NHOBSubordinateToSuperior_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2436 asn1_ctx_t asn1_ctx;
2437 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2438 dissect_dop_NHOBSubordinateToSuperior(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_NHOBSubordinateToSuperior_PDU);
2440 static void dissect_ACIItem_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2441 asn1_ctx_t asn1_ctx;
2442 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2443 dissect_dop_ACIItem(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_ACIItem_PDU);
2447 /*--- End of included file: packet-dop-fn.c ---*/
2448 #line 92 "packet-dop-template.c"
2451 call_dop_oid_callback(char *base_string, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *col_info)
2453 char* binding_param;
2455 binding_param = ep_strdup_printf("%s.%s", base_string, binding_type ? binding_type : "");
2457 if (col_info && (check_col(pinfo->cinfo, COL_INFO)))
2458 col_append_fstr(pinfo->cinfo, COL_INFO, " %s", col_info);
2460 if (dissector_try_string(dop_dissector_table, binding_param, tvb, pinfo, tree)) {
2461 offset += tvb_length_remaining (tvb, offset);
2463 proto_item *item=NULL;
2464 proto_tree *next_tree=NULL;
2466 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>");
2468 next_tree = proto_item_add_subtree(item, ett_dop_unknown);
2470 offset = dissect_unknown_ber(pinfo, tvb, offset, next_tree);
2471 expert_add_info_format(pinfo, item, PI_UNDECODED, PI_WARN, "Unknown binding-parameter");
2479 * Dissect DOP PDUs inside a ROS PDUs
2482 dissect_dop(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
2486 proto_item *item=NULL;
2487 proto_tree *tree=NULL;
2488 int (*dop_dissector)(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) = NULL;
2490 asn1_ctx_t asn1_ctx;
2492 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2494 /* do we have operation information from the ROS dissector? */
2495 if( !pinfo->private_data ){
2497 proto_tree_add_text(parent_tree, tvb, offset, -1,
2498 "Internal error: can't get operation information from ROS dissector.");
2502 session = ( (struct SESSION_DATA_STRUCTURE*)(pinfo->private_data) );
2506 item = proto_tree_add_item(parent_tree, proto_dop, tvb, 0, -1, FALSE);
2507 tree = proto_item_add_subtree(item, ett_dop);
2509 if (check_col(pinfo->cinfo, COL_PROTOCOL))
2510 col_set_str(pinfo->cinfo, COL_PROTOCOL, "DOP");
2511 if (check_col(pinfo->cinfo, COL_INFO))
2512 col_clear(pinfo->cinfo, COL_INFO);
2514 switch(session->ros_op & ROS_OP_MASK) {
2515 case (ROS_OP_BIND | ROS_OP_ARGUMENT): /* BindInvoke */
2516 dop_dissector = dissect_dop_DSAOperationalManagementBindArgument;
2517 dop_op_name = "DSA-Operational-Bind-Argument";
2519 case (ROS_OP_BIND | ROS_OP_RESULT): /* BindResult */
2520 dop_dissector = dissect_dop_DSAOperationalManagementBindResult;
2521 dop_op_name = "DSA-Operational-Bind-Result";
2523 case (ROS_OP_BIND | ROS_OP_ERROR): /* BindError */
2524 dop_dissector = dissect_dop_DSAOperationalManagementBindError;
2525 dop_op_name = "DSA-Operational-Management-Bind-Error";
2527 case (ROS_OP_INVOKE | ROS_OP_ARGUMENT): /* Invoke Argument */
2528 switch(session->ros_op & ROS_OP_OPCODE_MASK) {
2529 case 100: /* establish */
2530 dop_dissector = dissect_dop_EstablishOperationalBindingArgument;
2531 dop_op_name = "Establish-Operational-Binding-Argument";
2533 case 101: /* terminate */
2534 dop_dissector = dissect_dop_TerminateOperationalBindingArgument;
2535 dop_op_name = "Terminate-Operational-Binding-Argument";
2537 case 102: /* modify */
2538 dop_dissector = dissect_dop_ModifyOperationalBindingArgument;
2539 dop_op_name = "Modify-Operational-Binding-Argument";
2542 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DOP Argument opcode (%d)",
2543 session->ros_op & ROS_OP_OPCODE_MASK);
2547 case (ROS_OP_INVOKE | ROS_OP_RESULT): /* Return Result */
2548 switch(session->ros_op & ROS_OP_OPCODE_MASK) {
2549 case 100: /* establish */
2550 dop_dissector = dissect_dop_EstablishOperationalBindingResult;
2551 dop_op_name = "Establish-Operational-Binding-Result";
2553 case 101: /* terminate */
2554 dop_dissector = dissect_dop_TerminateOperationalBindingResult;
2555 dop_op_name = "Terminate-Operational-Binding-Result";
2557 case 102: /* modify */
2558 dop_dissector = dissect_dop_ModifyOperationalBindingResult;
2559 dop_op_name = "Modify-Operational-Binding-Result";
2562 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DOP Result opcode (%d)",
2563 session->ros_op & ROS_OP_OPCODE_MASK);
2567 case (ROS_OP_INVOKE | ROS_OP_ERROR): /* Return Error */
2568 switch(session->ros_op & ROS_OP_OPCODE_MASK) {
2569 case 100: /* operational-binding */
2570 dop_dissector = dissect_dop_OpBindingErrorParam;
2571 dop_op_name = "Operational-Binding-Error";
2574 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DOP Error opcode (%d)",
2575 session->ros_op & ROS_OP_OPCODE_MASK);
2580 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DOP PDU");
2585 if (check_col(pinfo->cinfo, COL_INFO))
2586 col_add_str(pinfo->cinfo, COL_INFO, dop_op_name);
2588 while (tvb_reported_length_remaining(tvb, offset) > 0){
2590 offset=(*dop_dissector)(FALSE, tvb, offset, &asn1_ctx, tree, -1);
2591 if(offset == old_offset){
2592 proto_tree_add_text(tree, tvb, offset, -1,"Internal error, zero-byte DOP PDU");
2593 offset = tvb_length(tvb);
2602 /*--- proto_register_dop -------------------------------------------*/
2603 void proto_register_dop(void) {
2605 /* List of fields */
2606 static hf_register_info hf[] =
2609 /*--- Included file: packet-dop-hfarr.c ---*/
2610 #line 1 "packet-dop-hfarr.c"
2611 { &hf_dop_DSEType_PDU,
2612 { "DSEType", "dop.DSEType",
2613 FT_BYTES, BASE_HEX, NULL, 0,
2614 "dop.DSEType", HFILL }},
2615 { &hf_dop_SupplierInformation_PDU,
2616 { "SupplierInformation", "dop.SupplierInformation",
2617 FT_NONE, BASE_NONE, NULL, 0,
2618 "dop.SupplierInformation", HFILL }},
2619 { &hf_dop_ConsumerInformation_PDU,
2620 { "ConsumerInformation", "dop.ConsumerInformation",
2621 FT_NONE, BASE_NONE, NULL, 0,
2622 "dop.ConsumerInformation", HFILL }},
2623 { &hf_dop_SupplierAndConsumers_PDU,
2624 { "SupplierAndConsumers", "dop.SupplierAndConsumers",
2625 FT_NONE, BASE_NONE, NULL, 0,
2626 "dop.SupplierAndConsumers", HFILL }},
2627 { &hf_dop_HierarchicalAgreement_PDU,
2628 { "HierarchicalAgreement", "dop.HierarchicalAgreement",
2629 FT_NONE, BASE_NONE, NULL, 0,
2630 "dop.HierarchicalAgreement", HFILL }},
2631 { &hf_dop_SuperiorToSubordinate_PDU,
2632 { "SuperiorToSubordinate", "dop.SuperiorToSubordinate",
2633 FT_NONE, BASE_NONE, NULL, 0,
2634 "dop.SuperiorToSubordinate", HFILL }},
2635 { &hf_dop_SubordinateToSuperior_PDU,
2636 { "SubordinateToSuperior", "dop.SubordinateToSuperior",
2637 FT_NONE, BASE_NONE, NULL, 0,
2638 "dop.SubordinateToSuperior", HFILL }},
2639 { &hf_dop_SuperiorToSubordinateModification_PDU,
2640 { "SuperiorToSubordinateModification", "dop.SuperiorToSubordinateModification",
2641 FT_NONE, BASE_NONE, NULL, 0,
2642 "dop.SuperiorToSubordinateModification", HFILL }},
2643 { &hf_dop_NonSpecificHierarchicalAgreement_PDU,
2644 { "NonSpecificHierarchicalAgreement", "dop.NonSpecificHierarchicalAgreement",
2645 FT_NONE, BASE_NONE, NULL, 0,
2646 "dop.NonSpecificHierarchicalAgreement", HFILL }},
2647 { &hf_dop_NHOBSuperiorToSubordinate_PDU,
2648 { "NHOBSuperiorToSubordinate", "dop.NHOBSuperiorToSubordinate",
2649 FT_NONE, BASE_NONE, NULL, 0,
2650 "dop.NHOBSuperiorToSubordinate", HFILL }},
2651 { &hf_dop_NHOBSubordinateToSuperior_PDU,
2652 { "NHOBSubordinateToSuperior", "dop.NHOBSubordinateToSuperior",
2653 FT_NONE, BASE_NONE, NULL, 0,
2654 "dop.NHOBSubordinateToSuperior", HFILL }},
2655 { &hf_dop_ACIItem_PDU,
2656 { "ACIItem", "dop.ACIItem",
2657 FT_NONE, BASE_NONE, NULL, 0,
2658 "dop.ACIItem", HFILL }},
2660 { "ae-title", "dop.ae_title",
2661 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2662 "x509if.Name", HFILL }},
2664 { "address", "dop.address",
2665 FT_NONE, BASE_NONE, NULL, 0,
2666 "x509sat.PresentationAddress", HFILL }},
2667 { &hf_dop_protocolInformation,
2668 { "protocolInformation", "dop.protocolInformation",
2669 FT_UINT32, BASE_DEC, NULL, 0,
2670 "dop.SET_OF_ProtocolInformation", HFILL }},
2671 { &hf_dop_protocolInformation_item,
2672 { "Item", "dop.protocolInformation_item",
2673 FT_NONE, BASE_NONE, NULL, 0,
2674 "x509sat.ProtocolInformation", HFILL }},
2675 { &hf_dop_agreementID,
2676 { "agreementID", "dop.agreementID",
2677 FT_NONE, BASE_NONE, NULL, 0,
2678 "dop.OperationalBindingID", HFILL }},
2679 { &hf_dop_supplier_is_master,
2680 { "supplier-is-master", "dop.supplier_is_master",
2681 FT_BOOLEAN, 8, NULL, 0,
2682 "dop.BOOLEAN", HFILL }},
2683 { &hf_dop_non_supplying_master,
2684 { "non-supplying-master", "dop.non_supplying_master",
2685 FT_NONE, BASE_NONE, NULL, 0,
2686 "dsp.AccessPoint", HFILL }},
2687 { &hf_dop_consumers,
2688 { "consumers", "dop.consumers",
2689 FT_UINT32, BASE_DEC, NULL, 0,
2690 "dop.SET_OF_AccessPoint", HFILL }},
2691 { &hf_dop_consumers_item,
2692 { "Item", "dop.consumers_item",
2693 FT_NONE, BASE_NONE, NULL, 0,
2694 "dsp.AccessPoint", HFILL }},
2695 { &hf_dop_bindingType,
2696 { "bindingType", "dop.bindingType",
2697 FT_OID, BASE_NONE, NULL, 0,
2698 "dop.BindingType", HFILL }},
2699 { &hf_dop_bindingID,
2700 { "bindingID", "dop.bindingID",
2701 FT_NONE, BASE_NONE, NULL, 0,
2702 "dop.OperationalBindingID", HFILL }},
2703 { &hf_dop_accessPoint,
2704 { "accessPoint", "dop.accessPoint",
2705 FT_NONE, BASE_NONE, NULL, 0,
2706 "dsp.AccessPoint", HFILL }},
2707 { &hf_dop_establishInitiator,
2708 { "initiator", "dop.initiator",
2709 FT_UINT32, BASE_DEC, VALS(dop_EstablishArgumentInitiator_vals), 0,
2710 "dop.EstablishArgumentInitiator", HFILL }},
2711 { &hf_dop_establishSymmetric,
2712 { "symmetric", "dop.symmetric",
2713 FT_NONE, BASE_NONE, NULL, 0,
2714 "dop.EstablishSymmetric", HFILL }},
2715 { &hf_dop_establishRoleAInitiates,
2716 { "roleA-initiates", "dop.roleA_initiates",
2717 FT_NONE, BASE_NONE, NULL, 0,
2718 "dop.EstablishRoleAInitiates", HFILL }},
2719 { &hf_dop_establishRoleBInitiates,
2720 { "roleB-initiates", "dop.roleB_initiates",
2721 FT_NONE, BASE_NONE, NULL, 0,
2722 "dop.EstablishRoleBInitiates", HFILL }},
2723 { &hf_dop_agreement,
2724 { "agreement", "dop.agreement",
2725 FT_NONE, BASE_NONE, NULL, 0,
2726 "dop.T_agreement", HFILL }},
2728 { "valid", "dop.valid",
2729 FT_NONE, BASE_NONE, NULL, 0,
2730 "dop.Validity", HFILL }},
2731 { &hf_dop_securityParameters,
2732 { "securityParameters", "dop.securityParameters",
2733 FT_NONE, BASE_NONE, NULL, 0,
2734 "dap.SecurityParameters", HFILL }},
2735 { &hf_dop_unsignedEstablishOperationalBindingArgument,
2736 { "unsignedEstablishOperationalBindingArgument", "dop.unsignedEstablishOperationalBindingArgument",
2737 FT_NONE, BASE_NONE, NULL, 0,
2738 "dop.EstablishOperationalBindingArgumentData", HFILL }},
2739 { &hf_dop_signedEstablishOperationalBindingArgument,
2740 { "signedEstablishOperationalBindingArgument", "dop.signedEstablishOperationalBindingArgument",
2741 FT_NONE, BASE_NONE, NULL, 0,
2742 "dop.T_signedEstablishOperationalBindingArgument", HFILL }},
2743 { &hf_dop_establishOperationalBindingArgument,
2744 { "establishOperationalBindingArgument", "dop.establishOperationalBindingArgument",
2745 FT_NONE, BASE_NONE, NULL, 0,
2746 "dop.EstablishOperationalBindingArgumentData", HFILL }},
2747 { &hf_dop_algorithmIdentifier,
2748 { "algorithmIdentifier", "dop.algorithmIdentifier",
2749 FT_NONE, BASE_NONE, NULL, 0,
2750 "x509af.AlgorithmIdentifier", HFILL }},
2751 { &hf_dop_encrypted,
2752 { "encrypted", "dop.encrypted",
2753 FT_BYTES, BASE_HEX, NULL, 0,
2754 "dop.BIT_STRING", HFILL }},
2755 { &hf_dop_identifier,
2756 { "identifier", "dop.identifier",
2757 FT_INT32, BASE_DEC, NULL, 0,
2758 "dop.T_identifier", HFILL }},
2760 { "version", "dop.version",
2761 FT_INT32, BASE_DEC, NULL, 0,
2762 "dop.T_version", HFILL }},
2763 { &hf_dop_validFrom,
2764 { "validFrom", "dop.validFrom",
2765 FT_UINT32, BASE_DEC, VALS(dop_T_validFrom_vals), 0,
2766 "dop.T_validFrom", HFILL }},
2769 FT_NONE, BASE_NONE, NULL, 0,
2770 "dop.NULL", HFILL }},
2772 { "time", "dop.time",
2773 FT_UINT32, BASE_DEC, VALS(x509af_Time_vals), 0,
2774 "dop.Time", HFILL }},
2775 { &hf_dop_validUntil,
2776 { "validUntil", "dop.validUntil",
2777 FT_UINT32, BASE_DEC, VALS(dop_T_validUntil_vals), 0,
2778 "dop.T_validUntil", HFILL }},
2779 { &hf_dop_explicitTermination,
2780 { "explicitTermination", "dop.explicitTermination",
2781 FT_NONE, BASE_NONE, NULL, 0,
2782 "dop.NULL", HFILL }},
2784 { "utcTime", "dop.utcTime",
2785 FT_STRING, BASE_NONE, NULL, 0,
2786 "dop.UTCTime", HFILL }},
2787 { &hf_dop_generalizedTime,
2788 { "generalizedTime", "dop.generalizedTime",
2789 FT_STRING, BASE_NONE, NULL, 0,
2790 "dop.GeneralizedTime", HFILL }},
2791 { &hf_dop_initiator,
2792 { "initiator", "dop.initiator",
2793 FT_UINT32, BASE_DEC, VALS(dop_T_initiator_vals), 0,
2794 "dop.T_initiator", HFILL }},
2795 { &hf_dop_symmetric,
2796 { "symmetric", "dop.symmetric",
2797 FT_NONE, BASE_NONE, NULL, 0,
2798 "dop.T_symmetric", HFILL }},
2799 { &hf_dop_roleA_replies,
2800 { "roleA-replies", "dop.roleA_replies",
2801 FT_NONE, BASE_NONE, NULL, 0,
2802 "dop.T_roleA_replies", HFILL }},
2803 { &hf_dop_roleB_replies,
2804 { "roleB-replies", "dop.roleB_replies",
2805 FT_NONE, BASE_NONE, NULL, 0,
2806 "dop.T_roleB_replies", HFILL }},
2807 { &hf_dop_performer,
2808 { "performer", "dop.performer",
2809 FT_UINT32, BASE_DEC, NULL, 0,
2810 "x509if.DistinguishedName", HFILL }},
2811 { &hf_dop_aliasDereferenced,
2812 { "aliasDereferenced", "dop.aliasDereferenced",
2813 FT_BOOLEAN, 8, NULL, 0,
2814 "dop.BOOLEAN", HFILL }},
2815 { &hf_dop_notification,
2816 { "notification", "dop.notification",
2817 FT_UINT32, BASE_DEC, NULL, 0,
2818 "dop.SEQUENCE_SIZE_1_MAX_OF_Attribute", HFILL }},
2819 { &hf_dop_notification_item,
2820 { "Item", "dop.notification_item",
2821 FT_NONE, BASE_NONE, NULL, 0,
2822 "x509if.Attribute", HFILL }},
2823 { &hf_dop_modifyInitiator,
2824 { "initiator", "dop.initiator",
2825 FT_UINT32, BASE_DEC, VALS(dop_ModifyArgumentInitiator_vals), 0,
2826 "dop.ModifyArgumentInitiator", HFILL }},
2827 { &hf_dop_modifySymmetric,
2828 { "symmetric", "dop.symmetric",
2829 FT_NONE, BASE_NONE, NULL, 0,
2830 "dop.ModifySymmetric", HFILL }},
2831 { &hf_dop_modifyRoleAInitiates,
2832 { "roleA-initiates", "dop.roleA_initiates",
2833 FT_NONE, BASE_NONE, NULL, 0,
2834 "dop.ModifyRoleAInitiates", HFILL }},
2835 { &hf_dop_modifyRoleBInitiates,
2836 { "roleB-initiates", "dop.roleB_initiates",
2837 FT_NONE, BASE_NONE, NULL, 0,
2838 "dop.ModifyRoleBInitiates", HFILL }},
2839 { &hf_dop_newBindingID,
2840 { "newBindingID", "dop.newBindingID",
2841 FT_NONE, BASE_NONE, NULL, 0,
2842 "dop.OperationalBindingID", HFILL }},
2843 { &hf_dop_argumentNewAgreement,
2844 { "newAgreement", "dop.newAgreement",
2845 FT_NONE, BASE_NONE, NULL, 0,
2846 "dop.ArgumentNewAgreement", HFILL }},
2847 { &hf_dop_unsignedModifyOperationalBindingArgument,
2848 { "unsignedModifyOperationalBindingArgument", "dop.unsignedModifyOperationalBindingArgument",
2849 FT_NONE, BASE_NONE, NULL, 0,
2850 "dop.ModifyOperationalBindingArgumentData", HFILL }},
2851 { &hf_dop_signedModifyOperationalBindingArgument,
2852 { "signedModifyOperationalBindingArgument", "dop.signedModifyOperationalBindingArgument",
2853 FT_NONE, BASE_NONE, NULL, 0,
2854 "dop.T_signedModifyOperationalBindingArgument", HFILL }},
2855 { &hf_dop_modifyOperationalBindingArgument,
2856 { "modifyOperationalBindingArgument", "dop.modifyOperationalBindingArgument",
2857 FT_NONE, BASE_NONE, NULL, 0,
2858 "dop.ModifyOperationalBindingArgumentData", HFILL }},
2860 { "null", "dop.null",
2861 FT_NONE, BASE_NONE, NULL, 0,
2862 "dop.NULL", HFILL }},
2863 { &hf_dop_protectedModifyResult,
2864 { "protected", "dop.protected",
2865 FT_NONE, BASE_NONE, NULL, 0,
2866 "dop.ProtectedModifyResult", HFILL }},
2867 { &hf_dop_modifyOperationalBindingResultData,
2868 { "modifyOperationalBindingResultData", "dop.modifyOperationalBindingResultData",
2869 FT_NONE, BASE_NONE, NULL, 0,
2870 "dop.ModifyOperationalBindingResultData", HFILL }},
2871 { &hf_dop_resultNewAgreement,
2872 { "newAgreement", "dop.newAgreement",
2873 FT_NONE, BASE_NONE, NULL, 0,
2874 "dop.ResultNewAgreement", HFILL }},
2875 { &hf_dop_terminateInitiator,
2876 { "initiator", "dop.initiator",
2877 FT_UINT32, BASE_DEC, VALS(dop_TerminateArgumentInitiator_vals), 0,
2878 "dop.TerminateArgumentInitiator", HFILL }},
2879 { &hf_dop_terminateSymmetric,
2880 { "symmetric", "dop.symmetric",
2881 FT_NONE, BASE_NONE, NULL, 0,
2882 "dop.TerminateSymmetric", HFILL }},
2883 { &hf_dop_terminateRoleAInitiates,
2884 { "roleA-initiates", "dop.roleA_initiates",
2885 FT_NONE, BASE_NONE, NULL, 0,
2886 "dop.TerminateRoleAInitiates", HFILL }},
2887 { &hf_dop_terminateRoleBInitiates,
2888 { "roleB-initiates", "dop.roleB_initiates",
2889 FT_NONE, BASE_NONE, NULL, 0,
2890 "dop.TerminateRoleBInitiates", HFILL }},
2891 { &hf_dop_terminateAtTime,
2892 { "terminateAt", "dop.terminateAt",
2893 FT_UINT32, BASE_DEC, VALS(x509af_Time_vals), 0,
2894 "dop.Time", HFILL }},
2895 { &hf_dop_unsignedTerminateOperationalBindingArgument,
2896 { "unsignedTerminateOperationalBindingArgument", "dop.unsignedTerminateOperationalBindingArgument",
2897 FT_NONE, BASE_NONE, NULL, 0,
2898 "dop.TerminateOperationalBindingArgumentData", HFILL }},
2899 { &hf_dop_signedTerminateOperationalBindingArgument,
2900 { "signedTerminateOperationalBindingArgument", "dop.signedTerminateOperationalBindingArgument",
2901 FT_NONE, BASE_NONE, NULL, 0,
2902 "dop.T_signedTerminateOperationalBindingArgument", HFILL }},
2903 { &hf_dop_terminateOperationalBindingArgument,
2904 { "terminateOperationalBindingArgument", "dop.terminateOperationalBindingArgument",
2905 FT_NONE, BASE_NONE, NULL, 0,
2906 "dop.TerminateOperationalBindingArgumentData", HFILL }},
2907 { &hf_dop_protectedTerminateResult,
2908 { "protected", "dop.protected",
2909 FT_NONE, BASE_NONE, NULL, 0,
2910 "dop.ProtectedTerminateResult", HFILL }},
2911 { &hf_dop_terminateOperationalBindingResultData,
2912 { "terminateOperationalBindingResultData", "dop.terminateOperationalBindingResultData",
2913 FT_NONE, BASE_NONE, NULL, 0,
2914 "dop.TerminateOperationalBindingResultData", HFILL }},
2915 { &hf_dop_terminateAtGeneralizedTime,
2916 { "terminateAt", "dop.terminateAt",
2917 FT_STRING, BASE_NONE, NULL, 0,
2918 "dop.GeneralizedTime", HFILL }},
2920 { "problem", "dop.problem",
2921 FT_UINT32, BASE_DEC, VALS(dop_T_problem_vals), 0,
2922 "dop.T_problem", HFILL }},
2923 { &hf_dop_agreementProposal,
2924 { "agreementProposal", "dop.agreementProposal",
2925 FT_NONE, BASE_NONE, NULL, 0,
2926 "dop.T_agreementProposal", HFILL }},
2928 { "retryAt", "dop.retryAt",
2929 FT_UINT32, BASE_DEC, VALS(x509af_Time_vals), 0,
2930 "dop.Time", HFILL }},
2933 FT_UINT32, BASE_DEC, NULL, 0,
2934 "x509if.RelativeDistinguishedName", HFILL }},
2935 { &hf_dop_immediateSuperior,
2936 { "immediateSuperior", "dop.immediateSuperior",
2937 FT_UINT32, BASE_DEC, NULL, 0,
2938 "x509if.DistinguishedName", HFILL }},
2939 { &hf_dop_contextPrefixInfo,
2940 { "contextPrefixInfo", "dop.contextPrefixInfo",
2941 FT_UINT32, BASE_DEC, NULL, 0,
2942 "dop.DITcontext", HFILL }},
2943 { &hf_dop_entryInfo,
2944 { "entryInfo", "dop.entryInfo",
2945 FT_UINT32, BASE_DEC, NULL, 0,
2946 "dop.SET_OF_Attribute", HFILL }},
2947 { &hf_dop_entryInfo_item,
2948 { "Item", "dop.entryInfo_item",
2949 FT_NONE, BASE_NONE, NULL, 0,
2950 "x509if.Attribute", HFILL }},
2951 { &hf_dop_immediateSuperiorInfo,
2952 { "immediateSuperiorInfo", "dop.immediateSuperiorInfo",
2953 FT_UINT32, BASE_DEC, NULL, 0,
2954 "dop.SET_OF_Attribute", HFILL }},
2955 { &hf_dop_immediateSuperiorInfo_item,
2956 { "Item", "dop.immediateSuperiorInfo_item",
2957 FT_NONE, BASE_NONE, NULL, 0,
2958 "x509if.Attribute", HFILL }},
2959 { &hf_dop_DITcontext_item,
2960 { "Item", "dop.DITcontext_item",
2961 FT_NONE, BASE_NONE, NULL, 0,
2962 "dop.Vertex", HFILL }},
2963 { &hf_dop_admPointInfo,
2964 { "admPointInfo", "dop.admPointInfo",
2965 FT_UINT32, BASE_DEC, NULL, 0,
2966 "dop.SET_OF_Attribute", HFILL }},
2967 { &hf_dop_admPointInfo_item,
2968 { "Item", "dop.admPointInfo_item",
2969 FT_NONE, BASE_NONE, NULL, 0,
2970 "x509if.Attribute", HFILL }},
2971 { &hf_dop_subentries,
2972 { "subentries", "dop.subentries",
2973 FT_UINT32, BASE_DEC, NULL, 0,
2974 "dop.SET_OF_SubentryInfo", HFILL }},
2975 { &hf_dop_subentries_item,
2976 { "Item", "dop.subentries_item",
2977 FT_NONE, BASE_NONE, NULL, 0,
2978 "dop.SubentryInfo", HFILL }},
2979 { &hf_dop_accessPoints,
2980 { "accessPoints", "dop.accessPoints",
2981 FT_UINT32, BASE_DEC, NULL, 0,
2982 "dsp.MasterAndShadowAccessPoints", HFILL }},
2984 { "info", "dop.info",
2985 FT_UINT32, BASE_DEC, NULL, 0,
2986 "dop.SET_OF_Attribute", HFILL }},
2987 { &hf_dop_info_item,
2988 { "Item", "dop.info_item",
2989 FT_NONE, BASE_NONE, NULL, 0,
2990 "x509if.Attribute", HFILL }},
2992 { "alias", "dop.alias",
2993 FT_BOOLEAN, 8, NULL, 0,
2994 "dop.BOOLEAN", HFILL }},
2995 { &hf_dop_identificationTag,
2996 { "identificationTag", "dop.identificationTag",
2997 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2998 "x509sat.DirectoryString", HFILL }},
2999 { &hf_dop_precedence,
3000 { "precedence", "dop.precedence",
3001 FT_INT32, BASE_DEC, NULL, 0,
3002 "dop.Precedence", HFILL }},
3003 { &hf_dop_authenticationLevel,
3004 { "authenticationLevel", "dop.authenticationLevel",
3005 FT_UINT32, BASE_DEC, VALS(dop_AuthenticationLevel_vals), 0,
3006 "dop.AuthenticationLevel", HFILL }},
3007 { &hf_dop_itemOrUserFirst,
3008 { "itemOrUserFirst", "dop.itemOrUserFirst",
3009 FT_UINT32, BASE_DEC, VALS(dop_T_itemOrUserFirst_vals), 0,
3010 "dop.T_itemOrUserFirst", HFILL }},
3011 { &hf_dop_itemFirst,
3012 { "itemFirst", "dop.itemFirst",
3013 FT_NONE, BASE_NONE, NULL, 0,
3014 "dop.T_itemFirst", HFILL }},
3015 { &hf_dop_protectedItems,
3016 { "protectedItems", "dop.protectedItems",
3017 FT_NONE, BASE_NONE, NULL, 0,
3018 "dop.ProtectedItems", HFILL }},
3019 { &hf_dop_itemPermissions,
3020 { "itemPermissions", "dop.itemPermissions",
3021 FT_UINT32, BASE_DEC, NULL, 0,
3022 "dop.SET_OF_ItemPermission", HFILL }},
3023 { &hf_dop_itemPermissions_item,
3024 { "Item", "dop.itemPermissions_item",
3025 FT_NONE, BASE_NONE, NULL, 0,
3026 "dop.ItemPermission", HFILL }},
3027 { &hf_dop_userFirst,
3028 { "userFirst", "dop.userFirst",
3029 FT_NONE, BASE_NONE, NULL, 0,
3030 "dop.T_userFirst", HFILL }},
3031 { &hf_dop_userClasses,
3032 { "userClasses", "dop.userClasses",
3033 FT_NONE, BASE_NONE, NULL, 0,
3034 "dop.UserClasses", HFILL }},
3035 { &hf_dop_userPermissions,
3036 { "userPermissions", "dop.userPermissions",
3037 FT_UINT32, BASE_DEC, NULL, 0,
3038 "dop.SET_OF_UserPermission", HFILL }},
3039 { &hf_dop_userPermissions_item,
3040 { "Item", "dop.userPermissions_item",
3041 FT_NONE, BASE_NONE, NULL, 0,
3042 "dop.UserPermission", HFILL }},
3044 { "entry", "dop.entry",
3045 FT_NONE, BASE_NONE, NULL, 0,
3046 "dop.NULL", HFILL }},
3047 { &hf_dop_allUserAttributeTypes,
3048 { "allUserAttributeTypes", "dop.allUserAttributeTypes",
3049 FT_NONE, BASE_NONE, NULL, 0,
3050 "dop.NULL", HFILL }},
3051 { &hf_dop_attributeType,
3052 { "attributeType", "dop.attributeType",
3053 FT_UINT32, BASE_DEC, NULL, 0,
3054 "dop.SET_OF_AttributeType", HFILL }},
3055 { &hf_dop_attributeType_item,
3056 { "Item", "dop.attributeType_item",
3057 FT_OID, BASE_NONE, NULL, 0,
3058 "x509if.AttributeType", HFILL }},
3059 { &hf_dop_allAttributeValues,
3060 { "allAttributeValues", "dop.allAttributeValues",
3061 FT_UINT32, BASE_DEC, NULL, 0,
3062 "dop.SET_OF_AttributeType", HFILL }},
3063 { &hf_dop_allAttributeValues_item,
3064 { "Item", "dop.allAttributeValues_item",
3065 FT_OID, BASE_NONE, NULL, 0,
3066 "x509if.AttributeType", HFILL }},
3067 { &hf_dop_allUserAttributeTypesAndValues,
3068 { "allUserAttributeTypesAndValues", "dop.allUserAttributeTypesAndValues",
3069 FT_NONE, BASE_NONE, NULL, 0,
3070 "dop.NULL", HFILL }},
3071 { &hf_dop_attributeValue,
3072 { "attributeValue", "dop.attributeValue",
3073 FT_UINT32, BASE_DEC, NULL, 0,
3074 "dop.SET_OF_AttributeTypeAndValue", HFILL }},
3075 { &hf_dop_attributeValue_item,
3076 { "Item", "dop.attributeValue_item",
3077 FT_NONE, BASE_NONE, NULL, 0,
3078 "crmf.AttributeTypeAndValue", HFILL }},
3079 { &hf_dop_selfValue,
3080 { "selfValue", "dop.selfValue",
3081 FT_UINT32, BASE_DEC, NULL, 0,
3082 "dop.SET_OF_AttributeType", HFILL }},
3083 { &hf_dop_selfValue_item,
3084 { "Item", "dop.selfValue_item",
3085 FT_OID, BASE_NONE, NULL, 0,
3086 "x509if.AttributeType", HFILL }},
3087 { &hf_dop_rangeOfValues,
3088 { "rangeOfValues", "dop.rangeOfValues",
3089 FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
3090 "dap.Filter", HFILL }},
3091 { &hf_dop_maxValueCount,
3092 { "maxValueCount", "dop.maxValueCount",
3093 FT_UINT32, BASE_DEC, NULL, 0,
3094 "dop.SET_OF_MaxValueCount", HFILL }},
3095 { &hf_dop_maxValueCount_item,
3096 { "Item", "dop.maxValueCount_item",
3097 FT_NONE, BASE_NONE, NULL, 0,
3098 "dop.MaxValueCount", HFILL }},
3099 { &hf_dop_maxImmSub,
3100 { "maxImmSub", "dop.maxImmSub",
3101 FT_INT32, BASE_DEC, NULL, 0,
3102 "dop.INTEGER", HFILL }},
3103 { &hf_dop_restrictedBy,
3104 { "restrictedBy", "dop.restrictedBy",
3105 FT_UINT32, BASE_DEC, NULL, 0,
3106 "dop.SET_OF_RestrictedValue", HFILL }},
3107 { &hf_dop_restrictedBy_item,
3108 { "Item", "dop.restrictedBy_item",
3109 FT_NONE, BASE_NONE, NULL, 0,
3110 "dop.RestrictedValue", HFILL }},
3112 { "contexts", "dop.contexts",
3113 FT_UINT32, BASE_DEC, NULL, 0,
3114 "dop.SET_OF_ContextAssertion", HFILL }},
3115 { &hf_dop_contexts_item,
3116 { "Item", "dop.contexts_item",
3117 FT_NONE, BASE_NONE, NULL, 0,
3118 "x509if.ContextAssertion", HFILL }},
3120 { "classes", "dop.classes",
3121 FT_UINT32, BASE_DEC, VALS(x509if_Refinement_vals), 0,
3122 "x509if.Refinement", HFILL }},
3124 { "type", "dop.type",
3125 FT_OID, BASE_NONE, NULL, 0,
3126 "x509if.AttributeType", HFILL }},
3128 { "maxCount", "dop.maxCount",
3129 FT_INT32, BASE_DEC, NULL, 0,
3130 "dop.INTEGER", HFILL }},
3132 { "valuesIn", "dop.valuesIn",
3133 FT_OID, BASE_NONE, NULL, 0,
3134 "x509if.AttributeType", HFILL }},
3136 { "allUsers", "dop.allUsers",
3137 FT_NONE, BASE_NONE, NULL, 0,
3138 "dop.NULL", HFILL }},
3139 { &hf_dop_thisEntry,
3140 { "thisEntry", "dop.thisEntry",
3141 FT_NONE, BASE_NONE, NULL, 0,
3142 "dop.NULL", HFILL }},
3144 { "name", "dop.name",
3145 FT_UINT32, BASE_DEC, NULL, 0,
3146 "dop.SET_OF_NameAndOptionalUID", HFILL }},
3147 { &hf_dop_name_item,
3148 { "Item", "dop.name_item",
3149 FT_NONE, BASE_NONE, NULL, 0,
3150 "x509sat.NameAndOptionalUID", HFILL }},
3151 { &hf_dop_userGroup,
3152 { "userGroup", "dop.userGroup",
3153 FT_UINT32, BASE_DEC, NULL, 0,
3154 "dop.SET_OF_NameAndOptionalUID", HFILL }},
3155 { &hf_dop_userGroup_item,
3156 { "Item", "dop.userGroup_item",
3157 FT_NONE, BASE_NONE, NULL, 0,
3158 "x509sat.NameAndOptionalUID", HFILL }},
3160 { "subtree", "dop.subtree",
3161 FT_UINT32, BASE_DEC, NULL, 0,
3162 "dop.SET_OF_SubtreeSpecification", HFILL }},
3163 { &hf_dop_subtree_item,
3164 { "Item", "dop.subtree_item",
3165 FT_NONE, BASE_NONE, NULL, 0,
3166 "x509if.SubtreeSpecification", HFILL }},
3167 { &hf_dop_grantsAndDenials,
3168 { "grantsAndDenials", "dop.grantsAndDenials",
3169 FT_BYTES, BASE_HEX, NULL, 0,
3170 "dop.GrantsAndDenials", HFILL }},
3171 { &hf_dop_basicLevels,
3172 { "basicLevels", "dop.basicLevels",
3173 FT_NONE, BASE_NONE, NULL, 0,
3174 "dop.T_basicLevels", HFILL }},
3176 { "level", "dop.level",
3177 FT_UINT32, BASE_DEC, VALS(dop_T_level_vals), 0,
3178 "dop.T_level", HFILL }},
3179 { &hf_dop_localQualifier,
3180 { "localQualifier", "dop.localQualifier",
3181 FT_INT32, BASE_DEC, NULL, 0,
3182 "dop.INTEGER", HFILL }},
3184 { "signed", "dop.signed",
3185 FT_BOOLEAN, 8, NULL, 0,
3186 "dop.BOOLEAN", HFILL }},
3188 { "other", "dop.other",
3189 FT_NONE, BASE_NONE, NULL, 0,
3190 "acse.EXTERNALt", HFILL }},
3191 { &hf_dop_DSEType_root,
3192 { "root", "dop.root",
3193 FT_BOOLEAN, 8, NULL, 0x80,
3195 { &hf_dop_DSEType_glue,
3196 { "glue", "dop.glue",
3197 FT_BOOLEAN, 8, NULL, 0x40,
3199 { &hf_dop_DSEType_cp,
3201 FT_BOOLEAN, 8, NULL, 0x20,
3203 { &hf_dop_DSEType_entry,
3204 { "entry", "dop.entry",
3205 FT_BOOLEAN, 8, NULL, 0x10,
3207 { &hf_dop_DSEType_alias,
3208 { "alias", "dop.alias",
3209 FT_BOOLEAN, 8, NULL, 0x08,
3211 { &hf_dop_DSEType_subr,
3212 { "subr", "dop.subr",
3213 FT_BOOLEAN, 8, NULL, 0x04,
3215 { &hf_dop_DSEType_nssr,
3216 { "nssr", "dop.nssr",
3217 FT_BOOLEAN, 8, NULL, 0x02,
3219 { &hf_dop_DSEType_supr,
3220 { "supr", "dop.supr",
3221 FT_BOOLEAN, 8, NULL, 0x01,
3223 { &hf_dop_DSEType_xr,
3225 FT_BOOLEAN, 8, NULL, 0x80,
3227 { &hf_dop_DSEType_admPoint,
3228 { "admPoint", "dop.admPoint",
3229 FT_BOOLEAN, 8, NULL, 0x40,
3231 { &hf_dop_DSEType_subentry,
3232 { "subentry", "dop.subentry",
3233 FT_BOOLEAN, 8, NULL, 0x20,
3235 { &hf_dop_DSEType_shadow,
3236 { "shadow", "dop.shadow",
3237 FT_BOOLEAN, 8, NULL, 0x10,
3239 { &hf_dop_DSEType_immSupr,
3240 { "immSupr", "dop.immSupr",
3241 FT_BOOLEAN, 8, NULL, 0x04,
3243 { &hf_dop_DSEType_rhob,
3244 { "rhob", "dop.rhob",
3245 FT_BOOLEAN, 8, NULL, 0x02,
3247 { &hf_dop_DSEType_sa,
3249 FT_BOOLEAN, 8, NULL, 0x01,
3251 { &hf_dop_DSEType_dsSubentry,
3252 { "dsSubentry", "dop.dsSubentry",
3253 FT_BOOLEAN, 8, NULL, 0x80,
3255 { &hf_dop_DSEType_familyMember,
3256 { "familyMember", "dop.familyMember",
3257 FT_BOOLEAN, 8, NULL, 0x40,
3259 { &hf_dop_GrantsAndDenials_grantAdd,
3260 { "grantAdd", "dop.grantAdd",
3261 FT_BOOLEAN, 8, NULL, 0x80,
3263 { &hf_dop_GrantsAndDenials_denyAdd,
3264 { "denyAdd", "dop.denyAdd",
3265 FT_BOOLEAN, 8, NULL, 0x40,
3267 { &hf_dop_GrantsAndDenials_grantDiscloseOnError,
3268 { "grantDiscloseOnError", "dop.grantDiscloseOnError",
3269 FT_BOOLEAN, 8, NULL, 0x20,
3271 { &hf_dop_GrantsAndDenials_denyDiscloseOnError,
3272 { "denyDiscloseOnError", "dop.denyDiscloseOnError",
3273 FT_BOOLEAN, 8, NULL, 0x10,
3275 { &hf_dop_GrantsAndDenials_grantRead,
3276 { "grantRead", "dop.grantRead",
3277 FT_BOOLEAN, 8, NULL, 0x08,
3279 { &hf_dop_GrantsAndDenials_denyRead,
3280 { "denyRead", "dop.denyRead",
3281 FT_BOOLEAN, 8, NULL, 0x04,
3283 { &hf_dop_GrantsAndDenials_grantRemove,
3284 { "grantRemove", "dop.grantRemove",
3285 FT_BOOLEAN, 8, NULL, 0x02,
3287 { &hf_dop_GrantsAndDenials_denyRemove,
3288 { "denyRemove", "dop.denyRemove",
3289 FT_BOOLEAN, 8, NULL, 0x01,
3291 { &hf_dop_GrantsAndDenials_grantBrowse,
3292 { "grantBrowse", "dop.grantBrowse",
3293 FT_BOOLEAN, 8, NULL, 0x80,
3295 { &hf_dop_GrantsAndDenials_denyBrowse,
3296 { "denyBrowse", "dop.denyBrowse",
3297 FT_BOOLEAN, 8, NULL, 0x40,
3299 { &hf_dop_GrantsAndDenials_grantExport,
3300 { "grantExport", "dop.grantExport",
3301 FT_BOOLEAN, 8, NULL, 0x20,
3303 { &hf_dop_GrantsAndDenials_denyExport,
3304 { "denyExport", "dop.denyExport",
3305 FT_BOOLEAN, 8, NULL, 0x10,
3307 { &hf_dop_GrantsAndDenials_grantImport,
3308 { "grantImport", "dop.grantImport",
3309 FT_BOOLEAN, 8, NULL, 0x08,
3311 { &hf_dop_GrantsAndDenials_denyImport,
3312 { "denyImport", "dop.denyImport",
3313 FT_BOOLEAN, 8, NULL, 0x04,
3315 { &hf_dop_GrantsAndDenials_grantModify,
3316 { "grantModify", "dop.grantModify",
3317 FT_BOOLEAN, 8, NULL, 0x02,
3319 { &hf_dop_GrantsAndDenials_denyModify,
3320 { "denyModify", "dop.denyModify",
3321 FT_BOOLEAN, 8, NULL, 0x01,
3323 { &hf_dop_GrantsAndDenials_grantRename,
3324 { "grantRename", "dop.grantRename",
3325 FT_BOOLEAN, 8, NULL, 0x80,
3327 { &hf_dop_GrantsAndDenials_denyRename,
3328 { "denyRename", "dop.denyRename",
3329 FT_BOOLEAN, 8, NULL, 0x40,
3331 { &hf_dop_GrantsAndDenials_grantReturnDN,
3332 { "grantReturnDN", "dop.grantReturnDN",
3333 FT_BOOLEAN, 8, NULL, 0x20,
3335 { &hf_dop_GrantsAndDenials_denyReturnDN,
3336 { "denyReturnDN", "dop.denyReturnDN",
3337 FT_BOOLEAN, 8, NULL, 0x10,
3339 { &hf_dop_GrantsAndDenials_grantCompare,
3340 { "grantCompare", "dop.grantCompare",
3341 FT_BOOLEAN, 8, NULL, 0x08,
3343 { &hf_dop_GrantsAndDenials_denyCompare,
3344 { "denyCompare", "dop.denyCompare",
3345 FT_BOOLEAN, 8, NULL, 0x04,
3347 { &hf_dop_GrantsAndDenials_grantFilterMatch,
3348 { "grantFilterMatch", "dop.grantFilterMatch",
3349 FT_BOOLEAN, 8, NULL, 0x02,
3351 { &hf_dop_GrantsAndDenials_denyFilterMatch,
3352 { "denyFilterMatch", "dop.denyFilterMatch",
3353 FT_BOOLEAN, 8, NULL, 0x01,
3355 { &hf_dop_GrantsAndDenials_grantInvoke,
3356 { "grantInvoke", "dop.grantInvoke",
3357 FT_BOOLEAN, 8, NULL, 0x80,
3359 { &hf_dop_GrantsAndDenials_denyInvoke,
3360 { "denyInvoke", "dop.denyInvoke",
3361 FT_BOOLEAN, 8, NULL, 0x40,
3364 /*--- End of included file: packet-dop-hfarr.c ---*/
3365 #line 252 "packet-dop-template.c"
3368 /* List of subtrees */
3369 static gint *ett[] = {
3373 /*--- Included file: packet-dop-ettarr.c ---*/
3374 #line 1 "packet-dop-ettarr.c"
3376 &ett_dop_SupplierOrConsumer,
3377 &ett_dop_SET_OF_ProtocolInformation,
3378 &ett_dop_SupplierInformation,
3379 &ett_dop_SupplierAndConsumers,
3380 &ett_dop_SET_OF_AccessPoint,
3381 &ett_dop_EstablishOperationalBindingArgumentData,
3382 &ett_dop_EstablishArgumentInitiator,
3383 &ett_dop_EstablishOperationalBindingArgument,
3384 &ett_dop_T_signedEstablishOperationalBindingArgument,
3385 &ett_dop_OperationalBindingID,
3387 &ett_dop_T_validFrom,
3388 &ett_dop_T_validUntil,
3390 &ett_dop_EstablishOperationalBindingResult,
3391 &ett_dop_T_initiator,
3392 &ett_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute,
3393 &ett_dop_ModifyOperationalBindingArgumentData,
3394 &ett_dop_ModifyArgumentInitiator,
3395 &ett_dop_ModifyOperationalBindingArgument,
3396 &ett_dop_T_signedModifyOperationalBindingArgument,
3397 &ett_dop_ModifyOperationalBindingResult,
3398 &ett_dop_ProtectedModifyResult,
3399 &ett_dop_ModifyOperationalBindingResultData,
3400 &ett_dop_TerminateOperationalBindingArgumentData,
3401 &ett_dop_TerminateArgumentInitiator,
3402 &ett_dop_TerminateOperationalBindingArgument,
3403 &ett_dop_T_signedTerminateOperationalBindingArgument,
3404 &ett_dop_TerminateOperationalBindingResult,
3405 &ett_dop_ProtectedTerminateResult,
3406 &ett_dop_TerminateOperationalBindingResultData,
3407 &ett_dop_OpBindingErrorParam,
3408 &ett_dop_HierarchicalAgreement,
3409 &ett_dop_SuperiorToSubordinate,
3410 &ett_dop_SET_OF_Attribute,
3411 &ett_dop_DITcontext,
3413 &ett_dop_SET_OF_SubentryInfo,
3414 &ett_dop_SubentryInfo,
3415 &ett_dop_SubordinateToSuperior,
3416 &ett_dop_SuperiorToSubordinateModification,
3417 &ett_dop_NonSpecificHierarchicalAgreement,
3418 &ett_dop_NHOBSuperiorToSubordinate,
3419 &ett_dop_NHOBSubordinateToSuperior,
3421 &ett_dop_T_itemOrUserFirst,
3422 &ett_dop_T_itemFirst,
3423 &ett_dop_SET_OF_ItemPermission,
3424 &ett_dop_T_userFirst,
3425 &ett_dop_SET_OF_UserPermission,
3426 &ett_dop_ProtectedItems,
3427 &ett_dop_SET_OF_AttributeType,
3428 &ett_dop_SET_OF_AttributeTypeAndValue,
3429 &ett_dop_SET_OF_MaxValueCount,
3430 &ett_dop_SET_OF_RestrictedValue,
3431 &ett_dop_SET_OF_ContextAssertion,
3432 &ett_dop_MaxValueCount,
3433 &ett_dop_RestrictedValue,
3434 &ett_dop_UserClasses,
3435 &ett_dop_SET_OF_NameAndOptionalUID,
3436 &ett_dop_SET_OF_SubtreeSpecification,
3437 &ett_dop_ItemPermission,
3438 &ett_dop_UserPermission,
3439 &ett_dop_AuthenticationLevel,
3440 &ett_dop_T_basicLevels,
3441 &ett_dop_GrantsAndDenials,
3443 /*--- End of included file: packet-dop-ettarr.c ---*/
3444 #line 259 "packet-dop-template.c"
3447 module_t *dop_module;
3449 /* Register protocol */
3450 proto_dop = proto_register_protocol(PNAME, PSNAME, PFNAME);
3452 register_dissector("dop", dissect_dop, proto_dop);
3454 dop_dissector_table = register_dissector_table("dop.oid", "DOP OID Dissectors", FT_STRING, BASE_NONE);
3456 /* Register fields and subtrees */
3457 proto_register_field_array(proto_dop, hf, array_length(hf));
3458 proto_register_subtree_array(ett, array_length(ett));
3460 /* Register our configuration options for DOP, particularly our port */
3462 #ifdef PREFERENCE_GROUPING
3463 dop_module = prefs_register_protocol_subtree("OSI/X.500", proto_dop, prefs_register_dop);
3465 dop_module = prefs_register_protocol(proto_dop, prefs_register_dop);
3468 prefs_register_uint_preference(dop_module, "tcp.port", "DOP TCP Port",
3469 "Set the port for DOP operations (if other"
3470 " than the default of 102)",
3471 10, &global_dop_tcp_port);
3477 /*--- proto_reg_handoff_dop --- */
3478 void proto_reg_handoff_dop(void) {
3479 dissector_handle_t handle = NULL;
3482 /*--- Included file: packet-dop-dis-tab.c ---*/
3483 #line 1 "packet-dop-dis-tab.c"
3484 register_ber_oid_dissector("2.5.12.0", dissect_DSEType_PDU, proto_dop, "id-doa-dseType");
3485 register_ber_oid_dissector("2.5.12.5", dissect_SupplierInformation_PDU, proto_dop, "id-doa-supplierKnowledge");
3486 register_ber_oid_dissector("2.5.12.6", dissect_ConsumerInformation_PDU, proto_dop, "id-doa-consumerKnowledge");
3487 register_ber_oid_dissector("2.5.12.7", dissect_SupplierAndConsumers_PDU, proto_dop, "id-doa-secondaryShadows");
3488 dissector_add_string("dop.oid", "agreement.2.5.19.2", create_dissector_handle(dissect_HierarchicalAgreement_PDU, proto_dop));
3489 dissector_add_string("dop.oid", "establish.rolea.2.5.19.2", create_dissector_handle(dissect_SuperiorToSubordinate_PDU, proto_dop));
3490 dissector_add_string("dop.oid", "modify.rolea.2.5.19.2", create_dissector_handle(dissect_SuperiorToSubordinateModification_PDU, proto_dop));
3491 dissector_add_string("dop.oid", "establish.roleb.2.5.19.2", create_dissector_handle(dissect_SubordinateToSuperior_PDU, proto_dop));
3492 dissector_add_string("dop.oid", "modify.roleb.2.5.19.2", create_dissector_handle(dissect_SubordinateToSuperior_PDU, proto_dop));
3493 dissector_add_string("dop.oid", "agreement.2.5.19.3", create_dissector_handle(dissect_NonSpecificHierarchicalAgreement_PDU, proto_dop));
3494 dissector_add_string("dop.oid", "establish.rolea.2.5.19.3", create_dissector_handle(dissect_NHOBSuperiorToSubordinate_PDU, proto_dop));
3495 dissector_add_string("dop.oid", "modify.rolea.2.5.19.3", create_dissector_handle(dissect_NHOBSuperiorToSubordinate_PDU, proto_dop));
3496 dissector_add_string("dop.oid", "establish.roleb.2.5.19.3", create_dissector_handle(dissect_NHOBSubordinateToSuperior_PDU, proto_dop));
3497 dissector_add_string("dop.oid", "modify.roleb.2.5.19.3", create_dissector_handle(dissect_NHOBSubordinateToSuperior_PDU, proto_dop));
3498 register_ber_oid_dissector("2.5.24.4", dissect_ACIItem_PDU, proto_dop, "id-aca-prescriptiveACI");
3499 register_ber_oid_dissector("2.5.24.5", dissect_ACIItem_PDU, proto_dop, "id-aca-entryACI");
3500 register_ber_oid_dissector("2.5.24.6", dissect_ACIItem_PDU, proto_dop, "id-aca-subentryACI");
3503 /*--- End of included file: packet-dop-dis-tab.c ---*/
3504 #line 296 "packet-dop-template.c"
3505 /* APPLICATION CONTEXT */
3507 add_oid_str_name("2.5.3.3", "id-ac-directory-operational-binding-management");
3509 /* ABSTRACT SYNTAXES */
3511 /* Register DOP with ROS (with no use of RTSE) */
3512 if((handle = find_dissector("dop"))) {
3513 register_ros_oid_dissector_handle("2.5.9.4", handle, 0, "id-as-directory-operational-binding-management", FALSE);
3518 add_oid_str_name("2.5.19.1", "shadow-agreement");
3519 add_oid_str_name("2.5.19.2", "hierarchical-agreement");
3520 add_oid_str_name("2.5.19.3", "non-specific-hierarchical-agreement");
3522 /* ACCESS CONTROL SCHEMES */
3523 add_oid_str_name("2.5.28.1", "basic-ACS");
3524 add_oid_str_name("2.5.28.2", "simplified-ACS");
3525 add_oid_str_name("2.5.28.3", "ruleBased-ACS");
3526 add_oid_str_name("2.5.28.4", "ruleAndBasic-ACS");
3527 add_oid_str_name("2.5.28.5", "ruleAndSimple-ACS");
3529 /* ADMINISTRATIVE ROLES */
3530 add_oid_str_name("2.5.23.1", "id-ar-autonomousArea");
3531 add_oid_str_name("2.5.23.2", "id-ar-accessControlSpecificArea");
3532 add_oid_str_name("2.5.23.3", "id-ar-accessControlInnerArea");
3533 add_oid_str_name("2.5.23.4", "id-ar-subschemaAdminSpecificArea");
3534 add_oid_str_name("2.5.23.5", "id-ar-collectiveAttributeSpecificArea");
3535 add_oid_str_name("2.5.23.6", "id-ar-collectiveAttributeInnerArea");
3536 add_oid_str_name("2.5.23.7", "id-ar-contextDefaultSpecificArea");
3537 add_oid_str_name("2.5.23.8", "id-ar-serviceSpecificArea");
3539 /* remember the tpkt handler for change in preferences */
3540 tpkt_handle = find_dissector("tpkt");
3544 void prefs_register_dop(void) {
3546 /* de-register the old port */
3547 /* port 102 is registered by TPKT - don't undo this! */
3548 if((tcp_port != 102) && tpkt_handle)
3549 dissector_delete("tcp.port", tcp_port, tpkt_handle);
3551 /* Set our port number for future use */
3552 tcp_port = global_dop_tcp_port;
3554 if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
3555 dissector_add("tcp.port", global_dop_tcp_port, tpkt_handle);