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>
44 #include <epan/expert.h>
49 #include "packet-ber.h"
50 #include "packet-acse.h"
51 #include "packet-ros.h"
53 #include "packet-x509sat.h"
54 #include "packet-x509af.h"
55 #include "packet-x509if.h"
56 #include "packet-dap.h"
57 #include "packet-dsp.h"
58 #include "packet-crmf.h"
61 #include "packet-dop.h"
63 #define PNAME "X.501 Directory Operational Binding Management Protocol"
67 static guint global_dop_tcp_port = 102;
68 static guint tcp_port = 0;
69 static dissector_handle_t tpkt_handle = NULL;
70 void prefs_register_dop(void); /* forwad declaration for use in preferences registration */
72 /* Initialize the protocol and registered fields */
75 static struct SESSION_DATA_STRUCTURE* session = NULL;
76 static const char *binding_type = NULL; /* binding_type */
78 static int call_dop_oid_callback(char *base_string, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *col_info);
81 /*--- Included file: packet-dop-hf.c ---*/
82 #line 1 "packet-dop-hf.c"
83 static int hf_dop_DSEType_PDU = -1; /* DSEType */
84 static int hf_dop_SupplierInformation_PDU = -1; /* SupplierInformation */
85 static int hf_dop_ConsumerInformation_PDU = -1; /* ConsumerInformation */
86 static int hf_dop_SupplierAndConsumers_PDU = -1; /* SupplierAndConsumers */
87 static int hf_dop_HierarchicalAgreement_PDU = -1; /* HierarchicalAgreement */
88 static int hf_dop_SuperiorToSubordinate_PDU = -1; /* SuperiorToSubordinate */
89 static int hf_dop_SubordinateToSuperior_PDU = -1; /* SubordinateToSuperior */
90 static int hf_dop_SuperiorToSubordinateModification_PDU = -1; /* SuperiorToSubordinateModification */
91 static int hf_dop_NonSpecificHierarchicalAgreement_PDU = -1; /* NonSpecificHierarchicalAgreement */
92 static int hf_dop_NHOBSuperiorToSubordinate_PDU = -1; /* NHOBSuperiorToSubordinate */
93 static int hf_dop_NHOBSubordinateToSuperior_PDU = -1; /* NHOBSubordinateToSuperior */
94 static int hf_dop_ACIItem_PDU = -1; /* ACIItem */
95 static int hf_dop_ae_title = -1; /* Name */
96 static int hf_dop_address = -1; /* PresentationAddress */
97 static int hf_dop_protocolInformation = -1; /* SET_OF_ProtocolInformation */
98 static int hf_dop_protocolInformation_item = -1; /* ProtocolInformation */
99 static int hf_dop_agreementID = -1; /* OperationalBindingID */
100 static int hf_dop_supplier_is_master = -1; /* BOOLEAN */
101 static int hf_dop_non_supplying_master = -1; /* AccessPoint */
102 static int hf_dop_consumers = -1; /* SET_OF_AccessPoint */
103 static int hf_dop_consumers_item = -1; /* AccessPoint */
104 static int hf_dop_bindingType = -1; /* BindingType */
105 static int hf_dop_bindingID = -1; /* OperationalBindingID */
106 static int hf_dop_accessPoint = -1; /* AccessPoint */
107 static int hf_dop_establishInitiator = -1; /* EstablishArgumentInitiator */
108 static int hf_dop_establishSymmetric = -1; /* EstablishSymmetric */
109 static int hf_dop_establishRoleAInitiates = -1; /* EstablishRoleAInitiates */
110 static int hf_dop_establishRoleBInitiates = -1; /* EstablishRoleBInitiates */
111 static int hf_dop_agreement = -1; /* T_agreement */
112 static int hf_dop_valid = -1; /* Validity */
113 static int hf_dop_securityParameters = -1; /* SecurityParameters */
114 static int hf_dop_unsignedEstablishOperationalBindingArgument = -1; /* EstablishOperationalBindingArgumentData */
115 static int hf_dop_signedEstablishOperationalBindingArgument = -1; /* T_signedEstablishOperationalBindingArgument */
116 static int hf_dop_establishOperationalBindingArgument = -1; /* EstablishOperationalBindingArgumentData */
117 static int hf_dop_algorithmIdentifier = -1; /* AlgorithmIdentifier */
118 static int hf_dop_encrypted = -1; /* BIT_STRING */
119 static int hf_dop_identifier = -1; /* T_identifier */
120 static int hf_dop_version = -1; /* T_version */
121 static int hf_dop_validFrom = -1; /* T_validFrom */
122 static int hf_dop_now = -1; /* NULL */
123 static int hf_dop_time = -1; /* Time */
124 static int hf_dop_validUntil = -1; /* T_validUntil */
125 static int hf_dop_explicitTermination = -1; /* NULL */
126 static int hf_dop_utcTime = -1; /* UTCTime */
127 static int hf_dop_generalizedTime = -1; /* GeneralizedTime */
128 static int hf_dop_initiator = -1; /* T_initiator */
129 static int hf_dop_symmetric = -1; /* T_symmetric */
130 static int hf_dop_roleA_replies = -1; /* T_roleA_replies */
131 static int hf_dop_roleB_replies = -1; /* T_roleB_replies */
132 static int hf_dop_performer = -1; /* DistinguishedName */
133 static int hf_dop_aliasDereferenced = -1; /* BOOLEAN */
134 static int hf_dop_notification = -1; /* SEQUENCE_SIZE_1_MAX_OF_Attribute */
135 static int hf_dop_notification_item = -1; /* Attribute */
136 static int hf_dop_modifyInitiator = -1; /* ModifyArgumentInitiator */
137 static int hf_dop_modifySymmetric = -1; /* ModifySymmetric */
138 static int hf_dop_modifyRoleAInitiates = -1; /* ModifyRoleAInitiates */
139 static int hf_dop_modifyRoleBInitiates = -1; /* ModifyRoleBInitiates */
140 static int hf_dop_newBindingID = -1; /* OperationalBindingID */
141 static int hf_dop_argumentNewAgreement = -1; /* ArgumentNewAgreement */
142 static int hf_dop_unsignedModifyOperationalBindingArgument = -1; /* ModifyOperationalBindingArgumentData */
143 static int hf_dop_signedModifyOperationalBindingArgument = -1; /* T_signedModifyOperationalBindingArgument */
144 static int hf_dop_modifyOperationalBindingArgument = -1; /* ModifyOperationalBindingArgumentData */
145 static int hf_dop_null = -1; /* NULL */
146 static int hf_dop_protectedModifyResult = -1; /* ProtectedModifyResult */
147 static int hf_dop_modifyOperationalBindingResultData = -1; /* ModifyOperationalBindingResultData */
148 static int hf_dop_resultNewAgreement = -1; /* ResultNewAgreement */
149 static int hf_dop_terminateInitiator = -1; /* TerminateArgumentInitiator */
150 static int hf_dop_terminateSymmetric = -1; /* TerminateSymmetric */
151 static int hf_dop_terminateRoleAInitiates = -1; /* TerminateRoleAInitiates */
152 static int hf_dop_terminateRoleBInitiates = -1; /* TerminateRoleBInitiates */
153 static int hf_dop_terminateAtTime = -1; /* Time */
154 static int hf_dop_unsignedTerminateOperationalBindingArgument = -1; /* TerminateOperationalBindingArgumentData */
155 static int hf_dop_signedTerminateOperationalBindingArgument = -1; /* T_signedTerminateOperationalBindingArgument */
156 static int hf_dop_terminateOperationalBindingArgument = -1; /* TerminateOperationalBindingArgumentData */
157 static int hf_dop_protectedTerminateResult = -1; /* ProtectedTerminateResult */
158 static int hf_dop_terminateOperationalBindingResultData = -1; /* TerminateOperationalBindingResultData */
159 static int hf_dop_terminateAtGeneralizedTime = -1; /* GeneralizedTime */
160 static int hf_dop_problem = -1; /* T_problem */
161 static int hf_dop_agreementProposal = -1; /* T_agreementProposal */
162 static int hf_dop_retryAt = -1; /* Time */
163 static int hf_dop_rdn = -1; /* RelativeDistinguishedName */
164 static int hf_dop_immediateSuperior = -1; /* DistinguishedName */
165 static int hf_dop_contextPrefixInfo = -1; /* DITcontext */
166 static int hf_dop_entryInfo = -1; /* SET_OF_Attribute */
167 static int hf_dop_entryInfo_item = -1; /* Attribute */
168 static int hf_dop_immediateSuperiorInfo = -1; /* SET_OF_Attribute */
169 static int hf_dop_immediateSuperiorInfo_item = -1; /* Attribute */
170 static int hf_dop_DITcontext_item = -1; /* Vertex */
171 static int hf_dop_admPointInfo = -1; /* SET_OF_Attribute */
172 static int hf_dop_admPointInfo_item = -1; /* Attribute */
173 static int hf_dop_subentries = -1; /* SET_OF_SubentryInfo */
174 static int hf_dop_subentries_item = -1; /* SubentryInfo */
175 static int hf_dop_accessPoints = -1; /* MasterAndShadowAccessPoints */
176 static int hf_dop_info = -1; /* SET_OF_Attribute */
177 static int hf_dop_info_item = -1; /* Attribute */
178 static int hf_dop_alias = -1; /* BOOLEAN */
179 static int hf_dop_identificationTag = -1; /* DirectoryString */
180 static int hf_dop_precedence = -1; /* Precedence */
181 static int hf_dop_authenticationLevel = -1; /* AuthenticationLevel */
182 static int hf_dop_itemOrUserFirst = -1; /* T_itemOrUserFirst */
183 static int hf_dop_itemFirst = -1; /* T_itemFirst */
184 static int hf_dop_protectedItems = -1; /* ProtectedItems */
185 static int hf_dop_itemPermissions = -1; /* SET_OF_ItemPermission */
186 static int hf_dop_itemPermissions_item = -1; /* ItemPermission */
187 static int hf_dop_userFirst = -1; /* T_userFirst */
188 static int hf_dop_userClasses = -1; /* UserClasses */
189 static int hf_dop_userPermissions = -1; /* SET_OF_UserPermission */
190 static int hf_dop_userPermissions_item = -1; /* UserPermission */
191 static int hf_dop_entry = -1; /* NULL */
192 static int hf_dop_allUserAttributeTypes = -1; /* NULL */
193 static int hf_dop_attributeType = -1; /* SET_OF_AttributeType */
194 static int hf_dop_attributeType_item = -1; /* AttributeType */
195 static int hf_dop_allAttributeValues = -1; /* SET_OF_AttributeType */
196 static int hf_dop_allAttributeValues_item = -1; /* AttributeType */
197 static int hf_dop_allUserAttributeTypesAndValues = -1; /* NULL */
198 static int hf_dop_attributeValue = -1; /* SET_OF_AttributeTypeAndValue */
199 static int hf_dop_attributeValue_item = -1; /* AttributeTypeAndValue */
200 static int hf_dop_selfValue = -1; /* SET_OF_AttributeType */
201 static int hf_dop_selfValue_item = -1; /* AttributeType */
202 static int hf_dop_rangeOfValues = -1; /* Filter */
203 static int hf_dop_maxValueCount = -1; /* SET_OF_MaxValueCount */
204 static int hf_dop_maxValueCount_item = -1; /* MaxValueCount */
205 static int hf_dop_maxImmSub = -1; /* INTEGER */
206 static int hf_dop_restrictedBy = -1; /* SET_OF_RestrictedValue */
207 static int hf_dop_restrictedBy_item = -1; /* RestrictedValue */
208 static int hf_dop_contexts = -1; /* SET_OF_ContextAssertion */
209 static int hf_dop_contexts_item = -1; /* ContextAssertion */
210 static int hf_dop_classes = -1; /* Refinement */
211 static int hf_dop_type = -1; /* AttributeType */
212 static int hf_dop_maxCount = -1; /* INTEGER */
213 static int hf_dop_valuesIn = -1; /* AttributeType */
214 static int hf_dop_allUsers = -1; /* NULL */
215 static int hf_dop_thisEntry = -1; /* NULL */
216 static int hf_dop_name = -1; /* SET_OF_NameAndOptionalUID */
217 static int hf_dop_name_item = -1; /* NameAndOptionalUID */
218 static int hf_dop_userGroup = -1; /* SET_OF_NameAndOptionalUID */
219 static int hf_dop_userGroup_item = -1; /* NameAndOptionalUID */
220 static int hf_dop_subtree = -1; /* SET_OF_SubtreeSpecification */
221 static int hf_dop_subtree_item = -1; /* SubtreeSpecification */
222 static int hf_dop_grantsAndDenials = -1; /* GrantsAndDenials */
223 static int hf_dop_basicLevels = -1; /* T_basicLevels */
224 static int hf_dop_level = -1; /* T_level */
225 static int hf_dop_localQualifier = -1; /* INTEGER */
226 static int hf_dop_signed = -1; /* BOOLEAN */
227 static int hf_dop_other = -1; /* EXTERNAL */
229 static int hf_dop_DSEType_root = -1;
230 static int hf_dop_DSEType_glue = -1;
231 static int hf_dop_DSEType_cp = -1;
232 static int hf_dop_DSEType_entry = -1;
233 static int hf_dop_DSEType_alias = -1;
234 static int hf_dop_DSEType_subr = -1;
235 static int hf_dop_DSEType_nssr = -1;
236 static int hf_dop_DSEType_supr = -1;
237 static int hf_dop_DSEType_xr = -1;
238 static int hf_dop_DSEType_admPoint = -1;
239 static int hf_dop_DSEType_subentry = -1;
240 static int hf_dop_DSEType_shadow = -1;
241 static int hf_dop_DSEType_immSupr = -1;
242 static int hf_dop_DSEType_rhob = -1;
243 static int hf_dop_DSEType_sa = -1;
244 static int hf_dop_DSEType_dsSubentry = -1;
245 static int hf_dop_DSEType_familyMember = -1;
246 static int hf_dop_GrantsAndDenials_grantAdd = -1;
247 static int hf_dop_GrantsAndDenials_denyAdd = -1;
248 static int hf_dop_GrantsAndDenials_grantDiscloseOnError = -1;
249 static int hf_dop_GrantsAndDenials_denyDiscloseOnError = -1;
250 static int hf_dop_GrantsAndDenials_grantRead = -1;
251 static int hf_dop_GrantsAndDenials_denyRead = -1;
252 static int hf_dop_GrantsAndDenials_grantRemove = -1;
253 static int hf_dop_GrantsAndDenials_denyRemove = -1;
254 static int hf_dop_GrantsAndDenials_grantBrowse = -1;
255 static int hf_dop_GrantsAndDenials_denyBrowse = -1;
256 static int hf_dop_GrantsAndDenials_grantExport = -1;
257 static int hf_dop_GrantsAndDenials_denyExport = -1;
258 static int hf_dop_GrantsAndDenials_grantImport = -1;
259 static int hf_dop_GrantsAndDenials_denyImport = -1;
260 static int hf_dop_GrantsAndDenials_grantModify = -1;
261 static int hf_dop_GrantsAndDenials_denyModify = -1;
262 static int hf_dop_GrantsAndDenials_grantRename = -1;
263 static int hf_dop_GrantsAndDenials_denyRename = -1;
264 static int hf_dop_GrantsAndDenials_grantReturnDN = -1;
265 static int hf_dop_GrantsAndDenials_denyReturnDN = -1;
266 static int hf_dop_GrantsAndDenials_grantCompare = -1;
267 static int hf_dop_GrantsAndDenials_denyCompare = -1;
268 static int hf_dop_GrantsAndDenials_grantFilterMatch = -1;
269 static int hf_dop_GrantsAndDenials_denyFilterMatch = -1;
270 static int hf_dop_GrantsAndDenials_grantInvoke = -1;
271 static int hf_dop_GrantsAndDenials_denyInvoke = -1;
273 /*--- End of included file: packet-dop-hf.c ---*/
274 #line 73 "packet-dop-template.c"
276 /* Initialize the subtree pointers */
277 static gint ett_dop = -1;
278 static gint ett_dop_unknown = -1;
280 /*--- Included file: packet-dop-ett.c ---*/
281 #line 1 "packet-dop-ett.c"
282 static gint ett_dop_DSEType = -1;
283 static gint ett_dop_SupplierOrConsumer = -1;
284 static gint ett_dop_SET_OF_ProtocolInformation = -1;
285 static gint ett_dop_SupplierInformation = -1;
286 static gint ett_dop_SupplierAndConsumers = -1;
287 static gint ett_dop_SET_OF_AccessPoint = -1;
288 static gint ett_dop_EstablishOperationalBindingArgumentData = -1;
289 static gint ett_dop_EstablishArgumentInitiator = -1;
290 static gint ett_dop_EstablishOperationalBindingArgument = -1;
291 static gint ett_dop_T_signedEstablishOperationalBindingArgument = -1;
292 static gint ett_dop_OperationalBindingID = -1;
293 static gint ett_dop_Validity = -1;
294 static gint ett_dop_T_validFrom = -1;
295 static gint ett_dop_T_validUntil = -1;
296 static gint ett_dop_Time = -1;
297 static gint ett_dop_EstablishOperationalBindingResult = -1;
298 static gint ett_dop_T_initiator = -1;
299 static gint ett_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute = -1;
300 static gint ett_dop_ModifyOperationalBindingArgumentData = -1;
301 static gint ett_dop_ModifyArgumentInitiator = -1;
302 static gint ett_dop_ModifyOperationalBindingArgument = -1;
303 static gint ett_dop_T_signedModifyOperationalBindingArgument = -1;
304 static gint ett_dop_ModifyOperationalBindingResult = -1;
305 static gint ett_dop_ProtectedModifyResult = -1;
306 static gint ett_dop_ModifyOperationalBindingResultData = -1;
307 static gint ett_dop_TerminateOperationalBindingArgumentData = -1;
308 static gint ett_dop_TerminateArgumentInitiator = -1;
309 static gint ett_dop_TerminateOperationalBindingArgument = -1;
310 static gint ett_dop_T_signedTerminateOperationalBindingArgument = -1;
311 static gint ett_dop_TerminateOperationalBindingResult = -1;
312 static gint ett_dop_ProtectedTerminateResult = -1;
313 static gint ett_dop_TerminateOperationalBindingResultData = -1;
314 static gint ett_dop_OpBindingErrorParam = -1;
315 static gint ett_dop_HierarchicalAgreement = -1;
316 static gint ett_dop_SuperiorToSubordinate = -1;
317 static gint ett_dop_SET_OF_Attribute = -1;
318 static gint ett_dop_DITcontext = -1;
319 static gint ett_dop_Vertex = -1;
320 static gint ett_dop_SET_OF_SubentryInfo = -1;
321 static gint ett_dop_SubentryInfo = -1;
322 static gint ett_dop_SubordinateToSuperior = -1;
323 static gint ett_dop_SuperiorToSubordinateModification = -1;
324 static gint ett_dop_NonSpecificHierarchicalAgreement = -1;
325 static gint ett_dop_NHOBSuperiorToSubordinate = -1;
326 static gint ett_dop_NHOBSubordinateToSuperior = -1;
327 static gint ett_dop_ACIItem = -1;
328 static gint ett_dop_T_itemOrUserFirst = -1;
329 static gint ett_dop_T_itemFirst = -1;
330 static gint ett_dop_SET_OF_ItemPermission = -1;
331 static gint ett_dop_T_userFirst = -1;
332 static gint ett_dop_SET_OF_UserPermission = -1;
333 static gint ett_dop_ProtectedItems = -1;
334 static gint ett_dop_SET_OF_AttributeType = -1;
335 static gint ett_dop_SET_OF_AttributeTypeAndValue = -1;
336 static gint ett_dop_SET_OF_MaxValueCount = -1;
337 static gint ett_dop_SET_OF_RestrictedValue = -1;
338 static gint ett_dop_SET_OF_ContextAssertion = -1;
339 static gint ett_dop_MaxValueCount = -1;
340 static gint ett_dop_RestrictedValue = -1;
341 static gint ett_dop_UserClasses = -1;
342 static gint ett_dop_SET_OF_NameAndOptionalUID = -1;
343 static gint ett_dop_SET_OF_SubtreeSpecification = -1;
344 static gint ett_dop_ItemPermission = -1;
345 static gint ett_dop_UserPermission = -1;
346 static gint ett_dop_AuthenticationLevel = -1;
347 static gint ett_dop_T_basicLevels = -1;
348 static gint ett_dop_GrantsAndDenials = -1;
350 /*--- End of included file: packet-dop-ett.c ---*/
351 #line 78 "packet-dop-template.c"
353 /* Dissector table */
354 static dissector_table_t dop_dissector_table;
356 static void append_oid(packet_info *pinfo, const char *oid)
358 const char *name = NULL;
360 if(check_col(pinfo->cinfo, COL_INFO)) {
361 name = oid_resolved_from_string(oid);
362 col_append_fstr(pinfo->cinfo, COL_INFO, " %s", name ? name : oid);
367 /*--- Included file: packet-dop-fn.c ---*/
368 #line 1 "packet-dop-fn.c"
370 static const asn_namedbit DSEType_bits[] = {
371 { 0, &hf_dop_DSEType_root, -1, -1, "root", NULL },
372 { 1, &hf_dop_DSEType_glue, -1, -1, "glue", NULL },
373 { 2, &hf_dop_DSEType_cp, -1, -1, "cp", NULL },
374 { 3, &hf_dop_DSEType_entry, -1, -1, "entry", NULL },
375 { 4, &hf_dop_DSEType_alias, -1, -1, "alias", NULL },
376 { 5, &hf_dop_DSEType_subr, -1, -1, "subr", NULL },
377 { 6, &hf_dop_DSEType_nssr, -1, -1, "nssr", NULL },
378 { 7, &hf_dop_DSEType_supr, -1, -1, "supr", NULL },
379 { 8, &hf_dop_DSEType_xr, -1, -1, "xr", NULL },
380 { 9, &hf_dop_DSEType_admPoint, -1, -1, "admPoint", NULL },
381 { 10, &hf_dop_DSEType_subentry, -1, -1, "subentry", NULL },
382 { 11, &hf_dop_DSEType_shadow, -1, -1, "shadow", NULL },
383 { 13, &hf_dop_DSEType_immSupr, -1, -1, "immSupr", NULL },
384 { 14, &hf_dop_DSEType_rhob, -1, -1, "rhob", NULL },
385 { 15, &hf_dop_DSEType_sa, -1, -1, "sa", NULL },
386 { 16, &hf_dop_DSEType_dsSubentry, -1, -1, "dsSubentry", NULL },
387 { 17, &hf_dop_DSEType_familyMember, -1, -1, "familyMember", NULL },
388 { 0, NULL, 0, 0, NULL, NULL }
392 dissect_dop_DSEType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
393 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
394 DSEType_bits, hf_index, ett_dop_DSEType,
401 static const ber_sequence_t SET_OF_ProtocolInformation_set_of[1] = {
402 { &hf_dop_protocolInformation_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509sat_ProtocolInformation },
406 dissect_dop_SET_OF_ProtocolInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
407 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
408 SET_OF_ProtocolInformation_set_of, hf_index, ett_dop_SET_OF_ProtocolInformation);
416 dissect_dop_T_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
420 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
424 if (check_col(actx->pinfo->cinfo, COL_INFO)) {
425 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " id=%d", value);
438 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_) {
442 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
446 if (check_col(actx->pinfo->cinfo, COL_INFO)) {
447 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " id=%d", value);
456 static const ber_sequence_t OperationalBindingID_sequence[] = {
457 { &hf_dop_identifier , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_dop_T_identifier },
458 { &hf_dop_version , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_dop_T_version },
459 { NULL, 0, 0, 0, NULL }
463 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_) {
464 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
465 OperationalBindingID_sequence, hf_index, ett_dop_OperationalBindingID);
471 static const ber_sequence_t SupplierOrConsumer_set[] = {
472 { &hf_dop_ae_title , BER_CLASS_CON, 0, 0, dissect_x509if_Name },
473 { &hf_dop_address , BER_CLASS_CON, 1, 0, dissect_x509sat_PresentationAddress },
474 { &hf_dop_protocolInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_ProtocolInformation },
475 { &hf_dop_agreementID , BER_CLASS_CON, 3, 0, dissect_dop_OperationalBindingID },
476 { NULL, 0, 0, 0, NULL }
480 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_) {
481 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
482 SupplierOrConsumer_set, hf_index, ett_dop_SupplierOrConsumer);
490 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_) {
491 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
497 static const ber_sequence_t SupplierInformation_set[] = {
498 { &hf_dop_ae_title , BER_CLASS_CON, 0, 0, dissect_x509if_Name },
499 { &hf_dop_address , BER_CLASS_CON, 1, 0, dissect_x509sat_PresentationAddress },
500 { &hf_dop_protocolInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_ProtocolInformation },
501 { &hf_dop_agreementID , BER_CLASS_CON, 3, 0, dissect_dop_OperationalBindingID },
502 { &hf_dop_supplier_is_master, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dop_BOOLEAN },
503 { &hf_dop_non_supplying_master, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_dsp_AccessPoint },
504 { NULL, 0, 0, 0, NULL }
508 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_) {
509 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
510 SupplierInformation_set, hf_index, ett_dop_SupplierInformation);
518 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_) {
519 offset = dissect_dop_SupplierOrConsumer(implicit_tag, tvb, offset, actx, tree, hf_index);
525 static const ber_sequence_t SET_OF_AccessPoint_set_of[1] = {
526 { &hf_dop_consumers_item , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_AccessPoint },
530 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_) {
531 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
532 SET_OF_AccessPoint_set_of, hf_index, ett_dop_SET_OF_AccessPoint);
538 static const ber_sequence_t SupplierAndConsumers_set[] = {
539 { &hf_dop_ae_title , BER_CLASS_CON, 0, 0, dissect_x509if_Name },
540 { &hf_dop_address , BER_CLASS_CON, 1, 0, dissect_x509sat_PresentationAddress },
541 { &hf_dop_protocolInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_ProtocolInformation },
542 { &hf_dop_consumers , BER_CLASS_CON, 3, 0, dissect_dop_SET_OF_AccessPoint },
543 { NULL, 0, 0, 0, NULL }
547 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_) {
548 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
549 SupplierAndConsumers_set, hf_index, ett_dop_SupplierAndConsumers);
557 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_) {
558 offset = dissect_dap_DirectoryBindArgument(implicit_tag, tvb, offset, actx, tree, hf_index);
566 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_) {
567 offset = dissect_dap_DirectoryBindArgument(implicit_tag, tvb, offset, actx, tree, hf_index);
575 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_) {
576 offset = dissect_dap_DirectoryBindError(implicit_tag, tvb, offset, actx, tree, hf_index);
584 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_) {
585 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &binding_type);
588 append_oid(actx->pinfo, binding_type);
596 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_) {
599 offset = call_dop_oid_callback("establish.symmetric", tvb, offset, actx->pinfo, tree, "symmetric");
609 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_) {
612 offset = call_dop_oid_callback("establish.rolea", tvb, offset, actx->pinfo, tree, "roleA");
622 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_) {
625 offset = call_dop_oid_callback("establish.roleb", tvb, offset, actx->pinfo, tree, "roleB");
633 static const value_string dop_EstablishArgumentInitiator_vals[] = {
635 { 4, "roleA-initiates" },
636 { 5, "roleB-initiates" },
640 static const ber_choice_t EstablishArgumentInitiator_choice[] = {
641 { 3, &hf_dop_establishSymmetric, BER_CLASS_CON, 3, 0, dissect_dop_EstablishSymmetric },
642 { 4, &hf_dop_establishRoleAInitiates, BER_CLASS_CON, 4, 0, dissect_dop_EstablishRoleAInitiates },
643 { 5, &hf_dop_establishRoleBInitiates, BER_CLASS_CON, 5, 0, dissect_dop_EstablishRoleBInitiates },
644 { 0, NULL, 0, 0, 0, NULL }
648 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_) {
649 offset = dissect_ber_choice(actx, tree, tvb, offset,
650 EstablishArgumentInitiator_choice, hf_index, ett_dop_EstablishArgumentInitiator,
659 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_) {
662 offset = call_dop_oid_callback("agreement", tvb, offset, actx->pinfo, tree, NULL);
672 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_) {
673 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
681 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_) {
682 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTCTime,
683 actx, tree, tvb, offset, hf_index,
692 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_) {
693 offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
699 static const value_string dop_Time_vals[] = {
701 { 1, "generalizedTime" },
705 static const ber_choice_t Time_choice[] = {
706 { 0, &hf_dop_utcTime , BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_dop_UTCTime },
707 { 1, &hf_dop_generalizedTime , BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_dop_GeneralizedTime },
708 { 0, NULL, 0, 0, 0, NULL }
712 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_) {
713 offset = dissect_ber_choice(actx, tree, tvb, offset,
714 Time_choice, hf_index, ett_dop_Time,
721 static const value_string dop_T_validFrom_vals[] = {
727 static const ber_choice_t T_validFrom_choice[] = {
728 { 0, &hf_dop_now , BER_CLASS_CON, 0, 0, dissect_dop_NULL },
729 { 1, &hf_dop_time , BER_CLASS_CON, 1, 0, dissect_dop_Time },
730 { 0, NULL, 0, 0, 0, NULL }
734 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_) {
735 offset = dissect_ber_choice(actx, tree, tvb, offset,
736 T_validFrom_choice, hf_index, ett_dop_T_validFrom,
743 static const value_string dop_T_validUntil_vals[] = {
744 { 0, "explicitTermination" },
749 static const ber_choice_t T_validUntil_choice[] = {
750 { 0, &hf_dop_explicitTermination, BER_CLASS_CON, 0, 0, dissect_dop_NULL },
751 { 1, &hf_dop_time , BER_CLASS_CON, 1, 0, dissect_dop_Time },
752 { 0, NULL, 0, 0, 0, NULL }
756 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_) {
757 offset = dissect_ber_choice(actx, tree, tvb, offset,
758 T_validUntil_choice, hf_index, ett_dop_T_validUntil,
765 static const ber_sequence_t Validity_sequence[] = {
766 { &hf_dop_validFrom , BER_CLASS_CON, 0, 0, dissect_dop_T_validFrom },
767 { &hf_dop_validUntil , BER_CLASS_CON, 1, 0, dissect_dop_T_validUntil },
768 { NULL, 0, 0, 0, NULL }
772 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_) {
773 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
774 Validity_sequence, hf_index, ett_dop_Validity);
780 static const ber_sequence_t EstablishOperationalBindingArgumentData_sequence[] = {
781 { &hf_dop_bindingType , BER_CLASS_CON, 0, 0, dissect_dop_BindingType },
782 { &hf_dop_bindingID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dop_OperationalBindingID },
783 { &hf_dop_accessPoint , BER_CLASS_CON, 2, 0, dissect_dsp_AccessPoint },
784 { &hf_dop_establishInitiator, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dop_EstablishArgumentInitiator },
785 { &hf_dop_agreement , BER_CLASS_CON, 6, 0, dissect_dop_T_agreement },
786 { &hf_dop_valid , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_dop_Validity },
787 { &hf_dop_securityParameters, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
788 { NULL, 0, 0, 0, NULL }
792 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_) {
793 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
794 EstablishOperationalBindingArgumentData_sequence, hf_index, ett_dop_EstablishOperationalBindingArgumentData);
802 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_) {
803 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
811 static const ber_sequence_t T_signedEstablishOperationalBindingArgument_sequence[] = {
812 { &hf_dop_establishOperationalBindingArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_EstablishOperationalBindingArgumentData },
813 { &hf_dop_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
814 { &hf_dop_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dop_BIT_STRING },
815 { NULL, 0, 0, 0, NULL }
819 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_) {
820 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
821 T_signedEstablishOperationalBindingArgument_sequence, hf_index, ett_dop_T_signedEstablishOperationalBindingArgument);
827 static const value_string dop_EstablishOperationalBindingArgument_vals[] = {
828 { 0, "unsignedEstablishOperationalBindingArgument" },
829 { 1, "signedEstablishOperationalBindingArgument" },
833 static const ber_choice_t EstablishOperationalBindingArgument_choice[] = {
834 { 0, &hf_dop_unsignedEstablishOperationalBindingArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_EstablishOperationalBindingArgumentData },
835 { 1, &hf_dop_signedEstablishOperationalBindingArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_T_signedEstablishOperationalBindingArgument },
836 { 0, NULL, 0, 0, 0, NULL }
840 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_) {
841 offset = dissect_ber_choice(actx, tree, tvb, offset,
842 EstablishOperationalBindingArgument_choice, hf_index, ett_dop_EstablishOperationalBindingArgument,
851 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_) {
854 offset = call_dop_oid_callback("establish.symmetric", tvb, offset, actx->pinfo, tree, "symmetric");
864 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_) {
867 offset = call_dop_oid_callback("establish.rolea", tvb, offset, actx->pinfo, tree, "roleA");
877 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_) {
880 offset = call_dop_oid_callback("establish.roleb", tvb, offset, actx->pinfo, tree, "roleB");
888 static const value_string dop_T_initiator_vals[] = {
890 { 4, "roleA-replies" },
891 { 5, "roleB-replies" },
895 static const ber_choice_t T_initiator_choice[] = {
896 { 3, &hf_dop_symmetric , BER_CLASS_CON, 3, 0, dissect_dop_T_symmetric },
897 { 4, &hf_dop_roleA_replies , BER_CLASS_CON, 4, 0, dissect_dop_T_roleA_replies },
898 { 5, &hf_dop_roleB_replies , BER_CLASS_CON, 5, 0, dissect_dop_T_roleB_replies },
899 { 0, NULL, 0, 0, 0, NULL }
903 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_) {
904 offset = dissect_ber_choice(actx, tree, tvb, offset,
905 T_initiator_choice, hf_index, ett_dop_T_initiator,
912 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_Attribute_sequence_of[1] = {
913 { &hf_dop_notification_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
917 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_) {
918 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
919 SEQUENCE_SIZE_1_MAX_OF_Attribute_sequence_of, hf_index, ett_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute);
925 static const ber_sequence_t EstablishOperationalBindingResult_sequence[] = {
926 { &hf_dop_bindingType , BER_CLASS_CON, 0, 0, dissect_dop_BindingType },
927 { &hf_dop_bindingID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dop_OperationalBindingID },
928 { &hf_dop_accessPoint , BER_CLASS_CON, 2, 0, dissect_dsp_AccessPoint },
929 { &hf_dop_initiator , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dop_T_initiator },
930 { &hf_dop_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
931 { &hf_dop_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
932 { &hf_dop_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dop_BOOLEAN },
933 { &hf_dop_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute },
934 { NULL, 0, 0, 0, NULL }
938 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_) {
939 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
940 EstablishOperationalBindingResult_sequence, hf_index, ett_dop_EstablishOperationalBindingResult);
948 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_) {
951 offset = call_dop_oid_callback("modify.symmetric", tvb, offset, actx->pinfo, tree, "symmetric");
961 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_) {
964 offset = call_dop_oid_callback("modify.rolea", tvb, offset, actx->pinfo, tree, "roleA");
974 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_) {
977 offset = call_dop_oid_callback("modify.roleb", tvb, offset, actx->pinfo, tree, "roleB");
985 static const value_string dop_ModifyArgumentInitiator_vals[] = {
987 { 4, "roleA-initiates" },
988 { 5, "roleB-initiates" },
992 static const ber_choice_t ModifyArgumentInitiator_choice[] = {
993 { 3, &hf_dop_modifySymmetric , BER_CLASS_CON, 3, 0, dissect_dop_ModifySymmetric },
994 { 4, &hf_dop_modifyRoleAInitiates, BER_CLASS_CON, 4, 0, dissect_dop_ModifyRoleAInitiates },
995 { 5, &hf_dop_modifyRoleBInitiates, BER_CLASS_CON, 5, 0, dissect_dop_ModifyRoleBInitiates },
996 { 0, NULL, 0, 0, 0, NULL }
1000 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_) {
1001 offset = dissect_ber_choice(actx, tree, tvb, offset,
1002 ModifyArgumentInitiator_choice, hf_index, ett_dop_ModifyArgumentInitiator,
1011 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_) {
1014 offset = call_dop_oid_callback("agreement", tvb, offset, actx->pinfo, tree, NULL);
1023 static const ber_sequence_t ModifyOperationalBindingArgumentData_sequence[] = {
1024 { &hf_dop_bindingType , BER_CLASS_CON, 0, 0, dissect_dop_BindingType },
1025 { &hf_dop_bindingID , BER_CLASS_CON, 1, 0, dissect_dop_OperationalBindingID },
1026 { &hf_dop_accessPoint , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dsp_AccessPoint },
1027 { &hf_dop_modifyInitiator , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dop_ModifyArgumentInitiator },
1028 { &hf_dop_newBindingID , BER_CLASS_CON, 6, 0, dissect_dop_OperationalBindingID },
1029 { &hf_dop_argumentNewAgreement, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_dop_ArgumentNewAgreement },
1030 { &hf_dop_valid , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_dop_Validity },
1031 { &hf_dop_securityParameters, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
1032 { NULL, 0, 0, 0, NULL }
1036 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_) {
1037 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1038 ModifyOperationalBindingArgumentData_sequence, hf_index, ett_dop_ModifyOperationalBindingArgumentData);
1044 static const ber_sequence_t T_signedModifyOperationalBindingArgument_sequence[] = {
1045 { &hf_dop_modifyOperationalBindingArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_ModifyOperationalBindingArgumentData },
1046 { &hf_dop_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1047 { &hf_dop_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dop_BIT_STRING },
1048 { NULL, 0, 0, 0, NULL }
1052 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_) {
1053 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1054 T_signedModifyOperationalBindingArgument_sequence, hf_index, ett_dop_T_signedModifyOperationalBindingArgument);
1060 static const value_string dop_ModifyOperationalBindingArgument_vals[] = {
1061 { 0, "unsignedModifyOperationalBindingArgument" },
1062 { 1, "signedModifyOperationalBindingArgument" },
1066 static const ber_choice_t ModifyOperationalBindingArgument_choice[] = {
1067 { 0, &hf_dop_unsignedModifyOperationalBindingArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_ModifyOperationalBindingArgumentData },
1068 { 1, &hf_dop_signedModifyOperationalBindingArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_T_signedModifyOperationalBindingArgument },
1069 { 0, NULL, 0, 0, 0, NULL }
1073 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_) {
1074 offset = dissect_ber_choice(actx, tree, tvb, offset,
1075 ModifyOperationalBindingArgument_choice, hf_index, ett_dop_ModifyOperationalBindingArgument,
1084 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_) {
1087 offset = call_dop_oid_callback("agreement", tvb, offset, actx->pinfo, tree, NULL);
1095 static const ber_sequence_t ModifyOperationalBindingResultData_sequence[] = {
1096 { &hf_dop_newBindingID , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_OperationalBindingID },
1097 { &hf_dop_bindingType , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_dop_BindingType },
1098 { &hf_dop_resultNewAgreement, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_dop_ResultNewAgreement },
1099 { &hf_dop_valid , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dop_Validity },
1100 { &hf_dop_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
1101 { &hf_dop_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
1102 { &hf_dop_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dop_BOOLEAN },
1103 { &hf_dop_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute },
1104 { NULL, 0, 0, 0, NULL }
1108 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_) {
1109 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1110 ModifyOperationalBindingResultData_sequence, hf_index, ett_dop_ModifyOperationalBindingResultData);
1116 static const ber_sequence_t ProtectedModifyResult_sequence[] = {
1117 { &hf_dop_modifyOperationalBindingResultData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_ModifyOperationalBindingResultData },
1118 { &hf_dop_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1119 { &hf_dop_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dop_BIT_STRING },
1120 { NULL, 0, 0, 0, NULL }
1124 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_) {
1125 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1126 ProtectedModifyResult_sequence, hf_index, ett_dop_ProtectedModifyResult);
1132 static const value_string dop_ModifyOperationalBindingResult_vals[] = {
1138 static const ber_choice_t ModifyOperationalBindingResult_choice[] = {
1139 { 0, &hf_dop_null , BER_CLASS_CON, 0, 0, dissect_dop_NULL },
1140 { 1, &hf_dop_protectedModifyResult, BER_CLASS_CON, 1, 0, dissect_dop_ProtectedModifyResult },
1141 { 0, NULL, 0, 0, 0, NULL }
1145 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_) {
1146 offset = dissect_ber_choice(actx, tree, tvb, offset,
1147 ModifyOperationalBindingResult_choice, hf_index, ett_dop_ModifyOperationalBindingResult,
1156 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_) {
1159 offset = call_dop_oid_callback("terminate.symmetric", tvb, offset, actx->pinfo, tree, "symmetric");
1169 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_) {
1172 offset = call_dop_oid_callback("terminate.rolea", tvb, offset, actx->pinfo, tree, "roleA");
1182 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_) {
1185 offset = call_dop_oid_callback("terminate.roleb", tvb, offset, actx->pinfo, tree, "roleB");
1193 static const value_string dop_TerminateArgumentInitiator_vals[] = {
1195 { 3, "roleA-initiates" },
1196 { 4, "roleB-initiates" },
1200 static const ber_choice_t TerminateArgumentInitiator_choice[] = {
1201 { 2, &hf_dop_terminateSymmetric, BER_CLASS_CON, 2, 0, dissect_dop_TerminateSymmetric },
1202 { 3, &hf_dop_terminateRoleAInitiates, BER_CLASS_CON, 3, 0, dissect_dop_TerminateRoleAInitiates },
1203 { 4, &hf_dop_terminateRoleBInitiates, BER_CLASS_CON, 4, 0, dissect_dop_TerminateRoleBInitiates },
1204 { 0, NULL, 0, 0, 0, NULL }
1208 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_) {
1209 offset = dissect_ber_choice(actx, tree, tvb, offset,
1210 TerminateArgumentInitiator_choice, hf_index, ett_dop_TerminateArgumentInitiator,
1217 static const ber_sequence_t TerminateOperationalBindingArgumentData_sequence[] = {
1218 { &hf_dop_bindingType , BER_CLASS_CON, 0, 0, dissect_dop_BindingType },
1219 { &hf_dop_bindingID , BER_CLASS_CON, 1, 0, dissect_dop_OperationalBindingID },
1220 { &hf_dop_terminateInitiator, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dop_TerminateArgumentInitiator },
1221 { &hf_dop_terminateAtTime , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dop_Time },
1222 { &hf_dop_securityParameters, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
1223 { NULL, 0, 0, 0, NULL }
1227 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_) {
1228 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1229 TerminateOperationalBindingArgumentData_sequence, hf_index, ett_dop_TerminateOperationalBindingArgumentData);
1235 static const ber_sequence_t T_signedTerminateOperationalBindingArgument_sequence[] = {
1236 { &hf_dop_terminateOperationalBindingArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_TerminateOperationalBindingArgumentData },
1237 { &hf_dop_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1238 { &hf_dop_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dop_BIT_STRING },
1239 { NULL, 0, 0, 0, NULL }
1243 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_) {
1244 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1245 T_signedTerminateOperationalBindingArgument_sequence, hf_index, ett_dop_T_signedTerminateOperationalBindingArgument);
1251 static const value_string dop_TerminateOperationalBindingArgument_vals[] = {
1252 { 0, "unsignedTerminateOperationalBindingArgument" },
1253 { 1, "signedTerminateOperationalBindingArgument" },
1257 static const ber_choice_t TerminateOperationalBindingArgument_choice[] = {
1258 { 0, &hf_dop_unsignedTerminateOperationalBindingArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_TerminateOperationalBindingArgumentData },
1259 { 1, &hf_dop_signedTerminateOperationalBindingArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_T_signedTerminateOperationalBindingArgument },
1260 { 0, NULL, 0, 0, 0, NULL }
1264 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_) {
1265 offset = dissect_ber_choice(actx, tree, tvb, offset,
1266 TerminateOperationalBindingArgument_choice, hf_index, ett_dop_TerminateOperationalBindingArgument,
1273 static const ber_sequence_t TerminateOperationalBindingResultData_sequence[] = {
1274 { &hf_dop_bindingID , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_OperationalBindingID },
1275 { &hf_dop_bindingType , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_dop_BindingType },
1276 { &hf_dop_terminateAtGeneralizedTime, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dop_GeneralizedTime },
1277 { &hf_dop_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
1278 { &hf_dop_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
1279 { &hf_dop_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dop_BOOLEAN },
1280 { &hf_dop_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute },
1281 { NULL, 0, 0, 0, NULL }
1285 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_) {
1286 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1287 TerminateOperationalBindingResultData_sequence, hf_index, ett_dop_TerminateOperationalBindingResultData);
1293 static const ber_sequence_t ProtectedTerminateResult_sequence[] = {
1294 { &hf_dop_terminateOperationalBindingResultData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_TerminateOperationalBindingResultData },
1295 { &hf_dop_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1296 { &hf_dop_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dop_BIT_STRING },
1297 { NULL, 0, 0, 0, NULL }
1301 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_) {
1302 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1303 ProtectedTerminateResult_sequence, hf_index, ett_dop_ProtectedTerminateResult);
1309 static const value_string dop_TerminateOperationalBindingResult_vals[] = {
1315 static const ber_choice_t TerminateOperationalBindingResult_choice[] = {
1316 { 0, &hf_dop_null , BER_CLASS_CON, 0, 0, dissect_dop_NULL },
1317 { 1, &hf_dop_protectedTerminateResult, BER_CLASS_CON, 1, 0, dissect_dop_ProtectedTerminateResult },
1318 { 0, NULL, 0, 0, 0, NULL }
1322 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_) {
1323 offset = dissect_ber_choice(actx, tree, tvb, offset,
1324 TerminateOperationalBindingResult_choice, hf_index, ett_dop_TerminateOperationalBindingResult,
1331 static const value_string dop_T_problem_vals[] = {
1333 { 1, "duplicateID" },
1334 { 2, "unsupportedBindingType" },
1335 { 3, "notAllowedForRole" },
1336 { 4, "parametersMissing" },
1337 { 5, "roleAssignment" },
1338 { 6, "invalidStartTime" },
1339 { 7, "invalidEndTime" },
1340 { 8, "invalidAgreement" },
1341 { 9, "currentlyNotDecidable" },
1342 { 10, "modificationNotAllowed" },
1348 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_) {
1349 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1358 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_) {
1361 offset = call_dop_oid_callback("agreement", tvb, offset, actx->pinfo, tree, NULL);
1369 static const ber_sequence_t OpBindingErrorParam_sequence[] = {
1370 { &hf_dop_problem , BER_CLASS_CON, 0, 0, dissect_dop_T_problem },
1371 { &hf_dop_bindingType , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dop_BindingType },
1372 { &hf_dop_agreementProposal, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_T_agreementProposal },
1373 { &hf_dop_retryAt , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dop_Time },
1374 { &hf_dop_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
1375 { &hf_dop_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
1376 { &hf_dop_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dop_BOOLEAN },
1377 { &hf_dop_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute },
1378 { NULL, 0, 0, 0, NULL }
1382 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_) {
1383 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1384 OpBindingErrorParam_sequence, hf_index, ett_dop_OpBindingErrorParam);
1390 static const ber_sequence_t HierarchicalAgreement_sequence[] = {
1391 { &hf_dop_rdn , BER_CLASS_CON, 0, 0, dissect_x509if_RelativeDistinguishedName },
1392 { &hf_dop_immediateSuperior, BER_CLASS_CON, 1, 0, dissect_x509if_DistinguishedName },
1393 { NULL, 0, 0, 0, NULL }
1397 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_) {
1398 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1399 HierarchicalAgreement_sequence, hf_index, ett_dop_HierarchicalAgreement);
1405 static const ber_sequence_t SET_OF_Attribute_set_of[1] = {
1406 { &hf_dop_entryInfo_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
1410 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_) {
1411 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1412 SET_OF_Attribute_set_of, hf_index, ett_dop_SET_OF_Attribute);
1418 static const ber_sequence_t SubentryInfo_sequence[] = {
1419 { &hf_dop_rdn , BER_CLASS_CON, 0, 0, dissect_x509if_RelativeDistinguishedName },
1420 { &hf_dop_info , BER_CLASS_CON, 1, 0, dissect_dop_SET_OF_Attribute },
1421 { NULL, 0, 0, 0, NULL }
1425 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_) {
1426 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1427 SubentryInfo_sequence, hf_index, ett_dop_SubentryInfo);
1433 static const ber_sequence_t SET_OF_SubentryInfo_set_of[1] = {
1434 { &hf_dop_subentries_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_SubentryInfo },
1438 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_) {
1439 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1440 SET_OF_SubentryInfo_set_of, hf_index, ett_dop_SET_OF_SubentryInfo);
1446 static const ber_sequence_t Vertex_sequence[] = {
1447 { &hf_dop_rdn , BER_CLASS_CON, 0, 0, dissect_x509if_RelativeDistinguishedName },
1448 { &hf_dop_admPointInfo , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_Attribute },
1449 { &hf_dop_subentries , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_SubentryInfo },
1450 { &hf_dop_accessPoints , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dsp_MasterAndShadowAccessPoints },
1451 { NULL, 0, 0, 0, NULL }
1455 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_) {
1456 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1457 Vertex_sequence, hf_index, ett_dop_Vertex);
1463 static const ber_sequence_t DITcontext_sequence_of[1] = {
1464 { &hf_dop_DITcontext_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_Vertex },
1468 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_) {
1469 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1470 DITcontext_sequence_of, hf_index, ett_dop_DITcontext);
1476 static const ber_sequence_t SuperiorToSubordinate_sequence[] = {
1477 { &hf_dop_contextPrefixInfo, BER_CLASS_CON, 0, 0, dissect_dop_DITcontext },
1478 { &hf_dop_entryInfo , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_Attribute },
1479 { &hf_dop_immediateSuperiorInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_Attribute },
1480 { NULL, 0, 0, 0, NULL }
1484 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_) {
1485 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1486 SuperiorToSubordinate_sequence, hf_index, ett_dop_SuperiorToSubordinate);
1492 static const ber_sequence_t SubordinateToSuperior_sequence[] = {
1493 { &hf_dop_accessPoints , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dsp_MasterAndShadowAccessPoints },
1494 { &hf_dop_alias , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dop_BOOLEAN },
1495 { &hf_dop_entryInfo , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_Attribute },
1496 { &hf_dop_subentries , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_SubentryInfo },
1497 { NULL, 0, 0, 0, NULL }
1501 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_) {
1502 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1503 SubordinateToSuperior_sequence, hf_index, ett_dop_SubordinateToSuperior);
1509 static const ber_sequence_t SuperiorToSubordinateModification_sequence[] = {
1510 { &hf_dop_contextPrefixInfo, BER_CLASS_CON, 0, 0, dissect_dop_DITcontext },
1511 { &hf_dop_immediateSuperiorInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_Attribute },
1512 { NULL, 0, 0, 0, NULL }
1516 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_) {
1517 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1518 SuperiorToSubordinateModification_sequence, hf_index, ett_dop_SuperiorToSubordinateModification);
1524 static const ber_sequence_t NonSpecificHierarchicalAgreement_sequence[] = {
1525 { &hf_dop_immediateSuperior, BER_CLASS_CON, 1, 0, dissect_x509if_DistinguishedName },
1526 { NULL, 0, 0, 0, NULL }
1530 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_) {
1531 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1532 NonSpecificHierarchicalAgreement_sequence, hf_index, ett_dop_NonSpecificHierarchicalAgreement);
1538 static const ber_sequence_t NHOBSuperiorToSubordinate_sequence[] = {
1539 { &hf_dop_contextPrefixInfo, BER_CLASS_CON, 0, 0, dissect_dop_DITcontext },
1540 { &hf_dop_immediateSuperiorInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_Attribute },
1541 { NULL, 0, 0, 0, NULL }
1545 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_) {
1546 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1547 NHOBSuperiorToSubordinate_sequence, hf_index, ett_dop_NHOBSuperiorToSubordinate);
1553 static const ber_sequence_t NHOBSubordinateToSuperior_sequence[] = {
1554 { &hf_dop_accessPoints , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dsp_MasterAndShadowAccessPoints },
1555 { &hf_dop_subentries , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_SubentryInfo },
1556 { NULL, 0, 0, 0, NULL }
1560 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_) {
1561 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1562 NHOBSubordinateToSuperior_sequence, hf_index, ett_dop_NHOBSubordinateToSuperior);
1570 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_) {
1572 guint32 precedence = 0;
1574 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1578 proto_item_append_text(tree, " precedence=%d", precedence);
1586 static const value_string dop_T_level_vals[] = {
1595 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_) {
1596 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1605 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_) {
1606 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1613 static const ber_sequence_t T_basicLevels_sequence[] = {
1614 { &hf_dop_level , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_dop_T_level },
1615 { &hf_dop_localQualifier , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dop_INTEGER },
1616 { &hf_dop_signed , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dop_BOOLEAN },
1617 { NULL, 0, 0, 0, NULL }
1621 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_) {
1622 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1623 T_basicLevels_sequence, hf_index, ett_dop_T_basicLevels);
1631 dissect_dop_EXTERNAL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1632 offset = dissect_ber_external_type(implicit_tag, tree, tvb, offset, actx, hf_index, NULL);
1638 static const value_string dop_AuthenticationLevel_vals[] = {
1639 { 0, "basicLevels" },
1644 static const ber_choice_t AuthenticationLevel_choice[] = {
1645 { 0, &hf_dop_basicLevels , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_T_basicLevels },
1646 { 1, &hf_dop_other , BER_CLASS_UNI, BER_UNI_TAG_EXTERNAL, BER_FLAGS_NOOWNTAG, dissect_dop_EXTERNAL },
1647 { 0, NULL, 0, 0, 0, NULL }
1651 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_) {
1652 offset = dissect_ber_choice(actx, tree, tvb, offset,
1653 AuthenticationLevel_choice, hf_index, ett_dop_AuthenticationLevel,
1660 static const ber_sequence_t SET_OF_AttributeType_set_of[1] = {
1661 { &hf_dop_attributeType_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
1665 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_) {
1666 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1667 SET_OF_AttributeType_set_of, hf_index, ett_dop_SET_OF_AttributeType);
1673 static const ber_sequence_t SET_OF_AttributeTypeAndValue_set_of[1] = {
1674 { &hf_dop_attributeValue_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_crmf_AttributeTypeAndValue },
1678 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_) {
1679 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1680 SET_OF_AttributeTypeAndValue_set_of, hf_index, ett_dop_SET_OF_AttributeTypeAndValue);
1686 static const ber_sequence_t MaxValueCount_sequence[] = {
1687 { &hf_dop_type , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
1688 { &hf_dop_maxCount , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_dop_INTEGER },
1689 { NULL, 0, 0, 0, NULL }
1693 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_) {
1694 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1695 MaxValueCount_sequence, hf_index, ett_dop_MaxValueCount);
1701 static const ber_sequence_t SET_OF_MaxValueCount_set_of[1] = {
1702 { &hf_dop_maxValueCount_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_MaxValueCount },
1706 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_) {
1707 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1708 SET_OF_MaxValueCount_set_of, hf_index, ett_dop_SET_OF_MaxValueCount);
1714 static const ber_sequence_t RestrictedValue_sequence[] = {
1715 { &hf_dop_type , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
1716 { &hf_dop_valuesIn , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
1717 { NULL, 0, 0, 0, NULL }
1721 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_) {
1722 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1723 RestrictedValue_sequence, hf_index, ett_dop_RestrictedValue);
1729 static const ber_sequence_t SET_OF_RestrictedValue_set_of[1] = {
1730 { &hf_dop_restrictedBy_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_RestrictedValue },
1734 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_) {
1735 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1736 SET_OF_RestrictedValue_set_of, hf_index, ett_dop_SET_OF_RestrictedValue);
1742 static const ber_sequence_t SET_OF_ContextAssertion_set_of[1] = {
1743 { &hf_dop_contexts_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ContextAssertion },
1747 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_) {
1748 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1749 SET_OF_ContextAssertion_set_of, hf_index, ett_dop_SET_OF_ContextAssertion);
1755 static const ber_sequence_t ProtectedItems_sequence[] = {
1756 { &hf_dop_entry , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dop_NULL },
1757 { &hf_dop_allUserAttributeTypes, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dop_NULL },
1758 { &hf_dop_attributeType , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_AttributeType },
1759 { &hf_dop_allAttributeValues, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_AttributeType },
1760 { &hf_dop_allUserAttributeTypesAndValues, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dop_NULL },
1761 { &hf_dop_attributeValue , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_AttributeTypeAndValue },
1762 { &hf_dop_selfValue , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_AttributeType },
1763 { &hf_dop_rangeOfValues , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_dap_Filter },
1764 { &hf_dop_maxValueCount , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_MaxValueCount },
1765 { &hf_dop_maxImmSub , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_dop_INTEGER },
1766 { &hf_dop_restrictedBy , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_RestrictedValue },
1767 { &hf_dop_contexts , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_ContextAssertion },
1768 { &hf_dop_classes , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_x509if_Refinement },
1769 { NULL, 0, 0, 0, NULL }
1773 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_) {
1774 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1775 ProtectedItems_sequence, hf_index, ett_dop_ProtectedItems);
1781 static const ber_sequence_t SET_OF_NameAndOptionalUID_set_of[1] = {
1782 { &hf_dop_name_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509sat_NameAndOptionalUID },
1786 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_) {
1787 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1788 SET_OF_NameAndOptionalUID_set_of, hf_index, ett_dop_SET_OF_NameAndOptionalUID);
1794 static const ber_sequence_t SET_OF_SubtreeSpecification_set_of[1] = {
1795 { &hf_dop_subtree_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_SubtreeSpecification },
1799 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_) {
1800 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1801 SET_OF_SubtreeSpecification_set_of, hf_index, ett_dop_SET_OF_SubtreeSpecification);
1807 static const ber_sequence_t UserClasses_sequence[] = {
1808 { &hf_dop_allUsers , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dop_NULL },
1809 { &hf_dop_thisEntry , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dop_NULL },
1810 { &hf_dop_name , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_NameAndOptionalUID },
1811 { &hf_dop_userGroup , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_NameAndOptionalUID },
1812 { &hf_dop_subtree , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dop_SET_OF_SubtreeSpecification },
1813 { NULL, 0, 0, 0, NULL }
1817 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_) {
1818 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1819 UserClasses_sequence, hf_index, ett_dop_UserClasses);
1825 static const asn_namedbit GrantsAndDenials_bits[] = {
1826 { 0, &hf_dop_GrantsAndDenials_grantAdd, -1, -1, "grantAdd", NULL },
1827 { 1, &hf_dop_GrantsAndDenials_denyAdd, -1, -1, "denyAdd", NULL },
1828 { 2, &hf_dop_GrantsAndDenials_grantDiscloseOnError, -1, -1, "grantDiscloseOnError", NULL },
1829 { 3, &hf_dop_GrantsAndDenials_denyDiscloseOnError, -1, -1, "denyDiscloseOnError", NULL },
1830 { 4, &hf_dop_GrantsAndDenials_grantRead, -1, -1, "grantRead", NULL },
1831 { 5, &hf_dop_GrantsAndDenials_denyRead, -1, -1, "denyRead", NULL },
1832 { 6, &hf_dop_GrantsAndDenials_grantRemove, -1, -1, "grantRemove", NULL },
1833 { 7, &hf_dop_GrantsAndDenials_denyRemove, -1, -1, "denyRemove", NULL },
1834 { 8, &hf_dop_GrantsAndDenials_grantBrowse, -1, -1, "grantBrowse", NULL },
1835 { 9, &hf_dop_GrantsAndDenials_denyBrowse, -1, -1, "denyBrowse", NULL },
1836 { 10, &hf_dop_GrantsAndDenials_grantExport, -1, -1, "grantExport", NULL },
1837 { 11, &hf_dop_GrantsAndDenials_denyExport, -1, -1, "denyExport", NULL },
1838 { 12, &hf_dop_GrantsAndDenials_grantImport, -1, -1, "grantImport", NULL },
1839 { 13, &hf_dop_GrantsAndDenials_denyImport, -1, -1, "denyImport", NULL },
1840 { 14, &hf_dop_GrantsAndDenials_grantModify, -1, -1, "grantModify", NULL },
1841 { 15, &hf_dop_GrantsAndDenials_denyModify, -1, -1, "denyModify", NULL },
1842 { 16, &hf_dop_GrantsAndDenials_grantRename, -1, -1, "grantRename", NULL },
1843 { 17, &hf_dop_GrantsAndDenials_denyRename, -1, -1, "denyRename", NULL },
1844 { 18, &hf_dop_GrantsAndDenials_grantReturnDN, -1, -1, "grantReturnDN", NULL },
1845 { 19, &hf_dop_GrantsAndDenials_denyReturnDN, -1, -1, "denyReturnDN", NULL },
1846 { 20, &hf_dop_GrantsAndDenials_grantCompare, -1, -1, "grantCompare", NULL },
1847 { 21, &hf_dop_GrantsAndDenials_denyCompare, -1, -1, "denyCompare", NULL },
1848 { 22, &hf_dop_GrantsAndDenials_grantFilterMatch, -1, -1, "grantFilterMatch", NULL },
1849 { 23, &hf_dop_GrantsAndDenials_denyFilterMatch, -1, -1, "denyFilterMatch", NULL },
1850 { 24, &hf_dop_GrantsAndDenials_grantInvoke, -1, -1, "grantInvoke", NULL },
1851 { 25, &hf_dop_GrantsAndDenials_denyInvoke, -1, -1, "denyInvoke", NULL },
1852 { 0, NULL, 0, 0, NULL, NULL }
1856 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_) {
1857 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1858 GrantsAndDenials_bits, hf_index, ett_dop_GrantsAndDenials,
1865 static const ber_sequence_t ItemPermission_sequence[] = {
1866 { &hf_dop_precedence , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dop_Precedence },
1867 { &hf_dop_userClasses , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_UserClasses },
1868 { &hf_dop_grantsAndDenials, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dop_GrantsAndDenials },
1869 { NULL, 0, 0, 0, NULL }
1873 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_) {
1874 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1875 ItemPermission_sequence, hf_index, ett_dop_ItemPermission);
1881 static const ber_sequence_t SET_OF_ItemPermission_set_of[1] = {
1882 { &hf_dop_itemPermissions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_ItemPermission },
1886 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_) {
1887 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1888 SET_OF_ItemPermission_set_of, hf_index, ett_dop_SET_OF_ItemPermission);
1894 static const ber_sequence_t T_itemFirst_sequence[] = {
1895 { &hf_dop_protectedItems , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_ProtectedItems },
1896 { &hf_dop_itemPermissions , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dop_SET_OF_ItemPermission },
1897 { NULL, 0, 0, 0, NULL }
1901 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_) {
1902 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1903 T_itemFirst_sequence, hf_index, ett_dop_T_itemFirst);
1909 static const ber_sequence_t UserPermission_sequence[] = {
1910 { &hf_dop_precedence , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dop_Precedence },
1911 { &hf_dop_protectedItems , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_ProtectedItems },
1912 { &hf_dop_grantsAndDenials, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dop_GrantsAndDenials },
1913 { NULL, 0, 0, 0, NULL }
1917 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_) {
1918 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1919 UserPermission_sequence, hf_index, ett_dop_UserPermission);
1925 static const ber_sequence_t SET_OF_UserPermission_set_of[1] = {
1926 { &hf_dop_userPermissions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_UserPermission },
1930 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_) {
1931 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1932 SET_OF_UserPermission_set_of, hf_index, ett_dop_SET_OF_UserPermission);
1938 static const ber_sequence_t T_userFirst_sequence[] = {
1939 { &hf_dop_userClasses , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dop_UserClasses },
1940 { &hf_dop_userPermissions , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dop_SET_OF_UserPermission },
1941 { NULL, 0, 0, 0, NULL }
1945 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_) {
1946 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1947 T_userFirst_sequence, hf_index, ett_dop_T_userFirst);
1953 static const value_string dop_T_itemOrUserFirst_vals[] = {
1959 static const ber_choice_t T_itemOrUserFirst_choice[] = {
1960 { 0, &hf_dop_itemFirst , BER_CLASS_CON, 0, 0, dissect_dop_T_itemFirst },
1961 { 1, &hf_dop_userFirst , BER_CLASS_CON, 1, 0, dissect_dop_T_userFirst },
1962 { 0, NULL, 0, 0, 0, NULL }
1966 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_) {
1967 offset = dissect_ber_choice(actx, tree, tvb, offset,
1968 T_itemOrUserFirst_choice, hf_index, ett_dop_T_itemOrUserFirst,
1975 static const ber_sequence_t ACIItem_sequence[] = {
1976 { &hf_dop_identificationTag, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x509sat_DirectoryString },
1977 { &hf_dop_precedence , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_dop_Precedence },
1978 { &hf_dop_authenticationLevel, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dop_AuthenticationLevel },
1979 { &hf_dop_itemOrUserFirst , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dop_T_itemOrUserFirst },
1980 { NULL, 0, 0, 0, NULL }
1984 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_) {
1985 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1986 ACIItem_sequence, hf_index, ett_dop_ACIItem);
1993 static void dissect_DSEType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1994 asn1_ctx_t asn1_ctx;
1995 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1996 dissect_dop_DSEType(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_DSEType_PDU);
1998 static void dissect_SupplierInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1999 asn1_ctx_t asn1_ctx;
2000 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2001 dissect_dop_SupplierInformation(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_SupplierInformation_PDU);
2003 static void dissect_ConsumerInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2004 asn1_ctx_t asn1_ctx;
2005 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2006 dissect_dop_ConsumerInformation(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_ConsumerInformation_PDU);
2008 static void dissect_SupplierAndConsumers_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2009 asn1_ctx_t asn1_ctx;
2010 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2011 dissect_dop_SupplierAndConsumers(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_SupplierAndConsumers_PDU);
2013 static void dissect_HierarchicalAgreement_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2014 asn1_ctx_t asn1_ctx;
2015 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2016 dissect_dop_HierarchicalAgreement(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_HierarchicalAgreement_PDU);
2018 static void dissect_SuperiorToSubordinate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2019 asn1_ctx_t asn1_ctx;
2020 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2021 dissect_dop_SuperiorToSubordinate(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_SuperiorToSubordinate_PDU);
2023 static void dissect_SubordinateToSuperior_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2024 asn1_ctx_t asn1_ctx;
2025 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2026 dissect_dop_SubordinateToSuperior(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_SubordinateToSuperior_PDU);
2028 static void dissect_SuperiorToSubordinateModification_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2029 asn1_ctx_t asn1_ctx;
2030 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2031 dissect_dop_SuperiorToSubordinateModification(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_SuperiorToSubordinateModification_PDU);
2033 static void dissect_NonSpecificHierarchicalAgreement_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2034 asn1_ctx_t asn1_ctx;
2035 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2036 dissect_dop_NonSpecificHierarchicalAgreement(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_NonSpecificHierarchicalAgreement_PDU);
2038 static void dissect_NHOBSuperiorToSubordinate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2039 asn1_ctx_t asn1_ctx;
2040 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2041 dissect_dop_NHOBSuperiorToSubordinate(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_NHOBSuperiorToSubordinate_PDU);
2043 static void dissect_NHOBSubordinateToSuperior_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2044 asn1_ctx_t asn1_ctx;
2045 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2046 dissect_dop_NHOBSubordinateToSuperior(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_NHOBSubordinateToSuperior_PDU);
2048 static void dissect_ACIItem_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2049 asn1_ctx_t asn1_ctx;
2050 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2051 dissect_dop_ACIItem(FALSE, tvb, 0, &asn1_ctx, tree, hf_dop_ACIItem_PDU);
2055 /*--- End of included file: packet-dop-fn.c ---*/
2056 #line 93 "packet-dop-template.c"
2059 call_dop_oid_callback(char *base_string, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, char *col_info)
2061 char* binding_param;
2063 binding_param = ep_strdup_printf("%s.%s", base_string, binding_type ? binding_type : "");
2065 if (col_info && (check_col(pinfo->cinfo, COL_INFO)))
2066 col_append_fstr(pinfo->cinfo, COL_INFO, " %s", col_info);
2068 if (dissector_try_string(dop_dissector_table, binding_param, tvb, pinfo, tree)) {
2069 offset += tvb_length_remaining (tvb, offset);
2071 proto_item *item=NULL;
2072 proto_tree *next_tree=NULL;
2074 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>");
2076 next_tree = proto_item_add_subtree(item, ett_dop_unknown);
2078 offset = dissect_unknown_ber(pinfo, tvb, offset, next_tree);
2079 expert_add_info_format(pinfo, item, PI_UNDECODED, PI_WARN, "Unknown binding-parameter");
2087 * Dissect DOP PDUs inside a ROS PDUs
2090 dissect_dop(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
2094 proto_item *item=NULL;
2095 proto_tree *tree=NULL;
2096 int (*dop_dissector)(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) = NULL;
2098 asn1_ctx_t asn1_ctx;
2100 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
2102 /* do we have operation information from the ROS dissector? */
2103 if( !pinfo->private_data ){
2105 proto_tree_add_text(parent_tree, tvb, offset, -1,
2106 "Internal error: can't get operation information from ROS dissector.");
2110 session = ( (struct SESSION_DATA_STRUCTURE*)(pinfo->private_data) );
2114 item = proto_tree_add_item(parent_tree, proto_dop, tvb, 0, -1, FALSE);
2115 tree = proto_item_add_subtree(item, ett_dop);
2117 if (check_col(pinfo->cinfo, COL_PROTOCOL))
2118 col_set_str(pinfo->cinfo, COL_PROTOCOL, "DOP");
2119 if (check_col(pinfo->cinfo, COL_INFO))
2120 col_clear(pinfo->cinfo, COL_INFO);
2122 switch(session->ros_op & ROS_OP_MASK) {
2123 case (ROS_OP_BIND | ROS_OP_ARGUMENT): /* BindInvoke */
2124 dop_dissector = dissect_dop_DSAOperationalManagementBindArgument;
2125 dop_op_name = "DSA-Operational-Bind-Argument";
2127 case (ROS_OP_BIND | ROS_OP_RESULT): /* BindResult */
2128 dop_dissector = dissect_dop_DSAOperationalManagementBindResult;
2129 dop_op_name = "DSA-Operational-Bind-Result";
2131 case (ROS_OP_BIND | ROS_OP_ERROR): /* BindError */
2132 dop_dissector = dissect_dop_DSAOperationalManagementBindError;
2133 dop_op_name = "DSA-Operational-Management-Bind-Error";
2135 case (ROS_OP_INVOKE | ROS_OP_ARGUMENT): /* Invoke Argument */
2136 switch(session->ros_op & ROS_OP_OPCODE_MASK) {
2137 case 100: /* establish */
2138 dop_dissector = dissect_dop_EstablishOperationalBindingArgument;
2139 dop_op_name = "Establish-Operational-Binding-Argument";
2141 case 101: /* terminate */
2142 dop_dissector = dissect_dop_TerminateOperationalBindingArgument;
2143 dop_op_name = "Terminate-Operational-Binding-Argument";
2145 case 102: /* modify */
2146 dop_dissector = dissect_dop_ModifyOperationalBindingArgument;
2147 dop_op_name = "Modify-Operational-Binding-Argument";
2150 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DOP Argument opcode (%d)",
2151 session->ros_op & ROS_OP_OPCODE_MASK);
2155 case (ROS_OP_INVOKE | ROS_OP_RESULT): /* Return Result */
2156 switch(session->ros_op & ROS_OP_OPCODE_MASK) {
2157 case 100: /* establish */
2158 dop_dissector = dissect_dop_EstablishOperationalBindingResult;
2159 dop_op_name = "Establish-Operational-Binding-Result";
2161 case 101: /* terminate */
2162 dop_dissector = dissect_dop_TerminateOperationalBindingResult;
2163 dop_op_name = "Terminate-Operational-Binding-Result";
2165 case 102: /* modify */
2166 dop_dissector = dissect_dop_ModifyOperationalBindingResult;
2167 dop_op_name = "Modify-Operational-Binding-Result";
2170 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DOP Result opcode (%d)",
2171 session->ros_op & ROS_OP_OPCODE_MASK);
2175 case (ROS_OP_INVOKE | ROS_OP_ERROR): /* Return Error */
2176 switch(session->ros_op & ROS_OP_OPCODE_MASK) {
2177 case 100: /* operational-binding */
2178 dop_dissector = dissect_dop_OpBindingErrorParam;
2179 dop_op_name = "Operational-Binding-Error";
2182 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DOP Error opcode (%d)",
2183 session->ros_op & ROS_OP_OPCODE_MASK);
2188 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DOP PDU");
2193 if (check_col(pinfo->cinfo, COL_INFO))
2194 col_set_str(pinfo->cinfo, COL_INFO, dop_op_name);
2196 while (tvb_reported_length_remaining(tvb, offset) > 0){
2198 offset=(*dop_dissector)(FALSE, tvb, offset, &asn1_ctx, tree, -1);
2199 if(offset == old_offset){
2200 proto_tree_add_text(tree, tvb, offset, -1,"Internal error, zero-byte DOP PDU");
2201 offset = tvb_length(tvb);
2210 /*--- proto_register_dop -------------------------------------------*/
2211 void proto_register_dop(void) {
2213 /* List of fields */
2214 static hf_register_info hf[] =
2217 /*--- Included file: packet-dop-hfarr.c ---*/
2218 #line 1 "packet-dop-hfarr.c"
2219 { &hf_dop_DSEType_PDU,
2220 { "DSEType", "dop.DSEType",
2221 FT_BYTES, BASE_HEX, NULL, 0,
2222 "dop.DSEType", HFILL }},
2223 { &hf_dop_SupplierInformation_PDU,
2224 { "SupplierInformation", "dop.SupplierInformation",
2225 FT_NONE, BASE_NONE, NULL, 0,
2226 "dop.SupplierInformation", HFILL }},
2227 { &hf_dop_ConsumerInformation_PDU,
2228 { "ConsumerInformation", "dop.ConsumerInformation",
2229 FT_NONE, BASE_NONE, NULL, 0,
2230 "dop.ConsumerInformation", HFILL }},
2231 { &hf_dop_SupplierAndConsumers_PDU,
2232 { "SupplierAndConsumers", "dop.SupplierAndConsumers",
2233 FT_NONE, BASE_NONE, NULL, 0,
2234 "dop.SupplierAndConsumers", HFILL }},
2235 { &hf_dop_HierarchicalAgreement_PDU,
2236 { "HierarchicalAgreement", "dop.HierarchicalAgreement",
2237 FT_NONE, BASE_NONE, NULL, 0,
2238 "dop.HierarchicalAgreement", HFILL }},
2239 { &hf_dop_SuperiorToSubordinate_PDU,
2240 { "SuperiorToSubordinate", "dop.SuperiorToSubordinate",
2241 FT_NONE, BASE_NONE, NULL, 0,
2242 "dop.SuperiorToSubordinate", HFILL }},
2243 { &hf_dop_SubordinateToSuperior_PDU,
2244 { "SubordinateToSuperior", "dop.SubordinateToSuperior",
2245 FT_NONE, BASE_NONE, NULL, 0,
2246 "dop.SubordinateToSuperior", HFILL }},
2247 { &hf_dop_SuperiorToSubordinateModification_PDU,
2248 { "SuperiorToSubordinateModification", "dop.SuperiorToSubordinateModification",
2249 FT_NONE, BASE_NONE, NULL, 0,
2250 "dop.SuperiorToSubordinateModification", HFILL }},
2251 { &hf_dop_NonSpecificHierarchicalAgreement_PDU,
2252 { "NonSpecificHierarchicalAgreement", "dop.NonSpecificHierarchicalAgreement",
2253 FT_NONE, BASE_NONE, NULL, 0,
2254 "dop.NonSpecificHierarchicalAgreement", HFILL }},
2255 { &hf_dop_NHOBSuperiorToSubordinate_PDU,
2256 { "NHOBSuperiorToSubordinate", "dop.NHOBSuperiorToSubordinate",
2257 FT_NONE, BASE_NONE, NULL, 0,
2258 "dop.NHOBSuperiorToSubordinate", HFILL }},
2259 { &hf_dop_NHOBSubordinateToSuperior_PDU,
2260 { "NHOBSubordinateToSuperior", "dop.NHOBSubordinateToSuperior",
2261 FT_NONE, BASE_NONE, NULL, 0,
2262 "dop.NHOBSubordinateToSuperior", HFILL }},
2263 { &hf_dop_ACIItem_PDU,
2264 { "ACIItem", "dop.ACIItem",
2265 FT_NONE, BASE_NONE, NULL, 0,
2266 "dop.ACIItem", HFILL }},
2268 { "ae-title", "dop.ae_title",
2269 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2270 "x509if.Name", HFILL }},
2272 { "address", "dop.address",
2273 FT_NONE, BASE_NONE, NULL, 0,
2274 "x509sat.PresentationAddress", HFILL }},
2275 { &hf_dop_protocolInformation,
2276 { "protocolInformation", "dop.protocolInformation",
2277 FT_UINT32, BASE_DEC, NULL, 0,
2278 "dop.SET_OF_ProtocolInformation", HFILL }},
2279 { &hf_dop_protocolInformation_item,
2280 { "Item", "dop.protocolInformation_item",
2281 FT_NONE, BASE_NONE, NULL, 0,
2282 "x509sat.ProtocolInformation", HFILL }},
2283 { &hf_dop_agreementID,
2284 { "agreementID", "dop.agreementID",
2285 FT_NONE, BASE_NONE, NULL, 0,
2286 "dop.OperationalBindingID", HFILL }},
2287 { &hf_dop_supplier_is_master,
2288 { "supplier-is-master", "dop.supplier_is_master",
2289 FT_BOOLEAN, 8, NULL, 0,
2290 "dop.BOOLEAN", HFILL }},
2291 { &hf_dop_non_supplying_master,
2292 { "non-supplying-master", "dop.non_supplying_master",
2293 FT_NONE, BASE_NONE, NULL, 0,
2294 "dsp.AccessPoint", HFILL }},
2295 { &hf_dop_consumers,
2296 { "consumers", "dop.consumers",
2297 FT_UINT32, BASE_DEC, NULL, 0,
2298 "dop.SET_OF_AccessPoint", HFILL }},
2299 { &hf_dop_consumers_item,
2300 { "Item", "dop.consumers_item",
2301 FT_NONE, BASE_NONE, NULL, 0,
2302 "dsp.AccessPoint", HFILL }},
2303 { &hf_dop_bindingType,
2304 { "bindingType", "dop.bindingType",
2305 FT_OID, BASE_NONE, NULL, 0,
2306 "dop.BindingType", HFILL }},
2307 { &hf_dop_bindingID,
2308 { "bindingID", "dop.bindingID",
2309 FT_NONE, BASE_NONE, NULL, 0,
2310 "dop.OperationalBindingID", HFILL }},
2311 { &hf_dop_accessPoint,
2312 { "accessPoint", "dop.accessPoint",
2313 FT_NONE, BASE_NONE, NULL, 0,
2314 "dsp.AccessPoint", HFILL }},
2315 { &hf_dop_establishInitiator,
2316 { "initiator", "dop.initiator",
2317 FT_UINT32, BASE_DEC, VALS(dop_EstablishArgumentInitiator_vals), 0,
2318 "dop.EstablishArgumentInitiator", HFILL }},
2319 { &hf_dop_establishSymmetric,
2320 { "symmetric", "dop.symmetric",
2321 FT_NONE, BASE_NONE, NULL, 0,
2322 "dop.EstablishSymmetric", HFILL }},
2323 { &hf_dop_establishRoleAInitiates,
2324 { "roleA-initiates", "dop.roleA_initiates",
2325 FT_NONE, BASE_NONE, NULL, 0,
2326 "dop.EstablishRoleAInitiates", HFILL }},
2327 { &hf_dop_establishRoleBInitiates,
2328 { "roleB-initiates", "dop.roleB_initiates",
2329 FT_NONE, BASE_NONE, NULL, 0,
2330 "dop.EstablishRoleBInitiates", HFILL }},
2331 { &hf_dop_agreement,
2332 { "agreement", "dop.agreement",
2333 FT_NONE, BASE_NONE, NULL, 0,
2334 "dop.T_agreement", HFILL }},
2336 { "valid", "dop.valid",
2337 FT_NONE, BASE_NONE, NULL, 0,
2338 "dop.Validity", HFILL }},
2339 { &hf_dop_securityParameters,
2340 { "securityParameters", "dop.securityParameters",
2341 FT_NONE, BASE_NONE, NULL, 0,
2342 "dap.SecurityParameters", HFILL }},
2343 { &hf_dop_unsignedEstablishOperationalBindingArgument,
2344 { "unsignedEstablishOperationalBindingArgument", "dop.unsignedEstablishOperationalBindingArgument",
2345 FT_NONE, BASE_NONE, NULL, 0,
2346 "dop.EstablishOperationalBindingArgumentData", HFILL }},
2347 { &hf_dop_signedEstablishOperationalBindingArgument,
2348 { "signedEstablishOperationalBindingArgument", "dop.signedEstablishOperationalBindingArgument",
2349 FT_NONE, BASE_NONE, NULL, 0,
2350 "dop.T_signedEstablishOperationalBindingArgument", HFILL }},
2351 { &hf_dop_establishOperationalBindingArgument,
2352 { "establishOperationalBindingArgument", "dop.establishOperationalBindingArgument",
2353 FT_NONE, BASE_NONE, NULL, 0,
2354 "dop.EstablishOperationalBindingArgumentData", HFILL }},
2355 { &hf_dop_algorithmIdentifier,
2356 { "algorithmIdentifier", "dop.algorithmIdentifier",
2357 FT_NONE, BASE_NONE, NULL, 0,
2358 "x509af.AlgorithmIdentifier", HFILL }},
2359 { &hf_dop_encrypted,
2360 { "encrypted", "dop.encrypted",
2361 FT_BYTES, BASE_HEX, NULL, 0,
2362 "dop.BIT_STRING", HFILL }},
2363 { &hf_dop_identifier,
2364 { "identifier", "dop.identifier",
2365 FT_INT32, BASE_DEC, NULL, 0,
2366 "dop.T_identifier", HFILL }},
2368 { "version", "dop.version",
2369 FT_INT32, BASE_DEC, NULL, 0,
2370 "dop.T_version", HFILL }},
2371 { &hf_dop_validFrom,
2372 { "validFrom", "dop.validFrom",
2373 FT_UINT32, BASE_DEC, VALS(dop_T_validFrom_vals), 0,
2374 "dop.T_validFrom", HFILL }},
2377 FT_NONE, BASE_NONE, NULL, 0,
2378 "dop.NULL", HFILL }},
2380 { "time", "dop.time",
2381 FT_UINT32, BASE_DEC, VALS(x509af_Time_vals), 0,
2382 "dop.Time", HFILL }},
2383 { &hf_dop_validUntil,
2384 { "validUntil", "dop.validUntil",
2385 FT_UINT32, BASE_DEC, VALS(dop_T_validUntil_vals), 0,
2386 "dop.T_validUntil", HFILL }},
2387 { &hf_dop_explicitTermination,
2388 { "explicitTermination", "dop.explicitTermination",
2389 FT_NONE, BASE_NONE, NULL, 0,
2390 "dop.NULL", HFILL }},
2392 { "utcTime", "dop.utcTime",
2393 FT_STRING, BASE_NONE, NULL, 0,
2394 "dop.UTCTime", HFILL }},
2395 { &hf_dop_generalizedTime,
2396 { "generalizedTime", "dop.generalizedTime",
2397 FT_STRING, BASE_NONE, NULL, 0,
2398 "dop.GeneralizedTime", HFILL }},
2399 { &hf_dop_initiator,
2400 { "initiator", "dop.initiator",
2401 FT_UINT32, BASE_DEC, VALS(dop_T_initiator_vals), 0,
2402 "dop.T_initiator", HFILL }},
2403 { &hf_dop_symmetric,
2404 { "symmetric", "dop.symmetric",
2405 FT_NONE, BASE_NONE, NULL, 0,
2406 "dop.T_symmetric", HFILL }},
2407 { &hf_dop_roleA_replies,
2408 { "roleA-replies", "dop.roleA_replies",
2409 FT_NONE, BASE_NONE, NULL, 0,
2410 "dop.T_roleA_replies", HFILL }},
2411 { &hf_dop_roleB_replies,
2412 { "roleB-replies", "dop.roleB_replies",
2413 FT_NONE, BASE_NONE, NULL, 0,
2414 "dop.T_roleB_replies", HFILL }},
2415 { &hf_dop_performer,
2416 { "performer", "dop.performer",
2417 FT_UINT32, BASE_DEC, NULL, 0,
2418 "x509if.DistinguishedName", HFILL }},
2419 { &hf_dop_aliasDereferenced,
2420 { "aliasDereferenced", "dop.aliasDereferenced",
2421 FT_BOOLEAN, 8, NULL, 0,
2422 "dop.BOOLEAN", HFILL }},
2423 { &hf_dop_notification,
2424 { "notification", "dop.notification",
2425 FT_UINT32, BASE_DEC, NULL, 0,
2426 "dop.SEQUENCE_SIZE_1_MAX_OF_Attribute", HFILL }},
2427 { &hf_dop_notification_item,
2428 { "Item", "dop.notification_item",
2429 FT_NONE, BASE_NONE, NULL, 0,
2430 "x509if.Attribute", HFILL }},
2431 { &hf_dop_modifyInitiator,
2432 { "initiator", "dop.initiator",
2433 FT_UINT32, BASE_DEC, VALS(dop_ModifyArgumentInitiator_vals), 0,
2434 "dop.ModifyArgumentInitiator", HFILL }},
2435 { &hf_dop_modifySymmetric,
2436 { "symmetric", "dop.symmetric",
2437 FT_NONE, BASE_NONE, NULL, 0,
2438 "dop.ModifySymmetric", HFILL }},
2439 { &hf_dop_modifyRoleAInitiates,
2440 { "roleA-initiates", "dop.roleA_initiates",
2441 FT_NONE, BASE_NONE, NULL, 0,
2442 "dop.ModifyRoleAInitiates", HFILL }},
2443 { &hf_dop_modifyRoleBInitiates,
2444 { "roleB-initiates", "dop.roleB_initiates",
2445 FT_NONE, BASE_NONE, NULL, 0,
2446 "dop.ModifyRoleBInitiates", HFILL }},
2447 { &hf_dop_newBindingID,
2448 { "newBindingID", "dop.newBindingID",
2449 FT_NONE, BASE_NONE, NULL, 0,
2450 "dop.OperationalBindingID", HFILL }},
2451 { &hf_dop_argumentNewAgreement,
2452 { "newAgreement", "dop.newAgreement",
2453 FT_NONE, BASE_NONE, NULL, 0,
2454 "dop.ArgumentNewAgreement", HFILL }},
2455 { &hf_dop_unsignedModifyOperationalBindingArgument,
2456 { "unsignedModifyOperationalBindingArgument", "dop.unsignedModifyOperationalBindingArgument",
2457 FT_NONE, BASE_NONE, NULL, 0,
2458 "dop.ModifyOperationalBindingArgumentData", HFILL }},
2459 { &hf_dop_signedModifyOperationalBindingArgument,
2460 { "signedModifyOperationalBindingArgument", "dop.signedModifyOperationalBindingArgument",
2461 FT_NONE, BASE_NONE, NULL, 0,
2462 "dop.T_signedModifyOperationalBindingArgument", HFILL }},
2463 { &hf_dop_modifyOperationalBindingArgument,
2464 { "modifyOperationalBindingArgument", "dop.modifyOperationalBindingArgument",
2465 FT_NONE, BASE_NONE, NULL, 0,
2466 "dop.ModifyOperationalBindingArgumentData", HFILL }},
2468 { "null", "dop.null",
2469 FT_NONE, BASE_NONE, NULL, 0,
2470 "dop.NULL", HFILL }},
2471 { &hf_dop_protectedModifyResult,
2472 { "protected", "dop.protected",
2473 FT_NONE, BASE_NONE, NULL, 0,
2474 "dop.ProtectedModifyResult", HFILL }},
2475 { &hf_dop_modifyOperationalBindingResultData,
2476 { "modifyOperationalBindingResultData", "dop.modifyOperationalBindingResultData",
2477 FT_NONE, BASE_NONE, NULL, 0,
2478 "dop.ModifyOperationalBindingResultData", HFILL }},
2479 { &hf_dop_resultNewAgreement,
2480 { "newAgreement", "dop.newAgreement",
2481 FT_NONE, BASE_NONE, NULL, 0,
2482 "dop.ResultNewAgreement", HFILL }},
2483 { &hf_dop_terminateInitiator,
2484 { "initiator", "dop.initiator",
2485 FT_UINT32, BASE_DEC, VALS(dop_TerminateArgumentInitiator_vals), 0,
2486 "dop.TerminateArgumentInitiator", HFILL }},
2487 { &hf_dop_terminateSymmetric,
2488 { "symmetric", "dop.symmetric",
2489 FT_NONE, BASE_NONE, NULL, 0,
2490 "dop.TerminateSymmetric", HFILL }},
2491 { &hf_dop_terminateRoleAInitiates,
2492 { "roleA-initiates", "dop.roleA_initiates",
2493 FT_NONE, BASE_NONE, NULL, 0,
2494 "dop.TerminateRoleAInitiates", HFILL }},
2495 { &hf_dop_terminateRoleBInitiates,
2496 { "roleB-initiates", "dop.roleB_initiates",
2497 FT_NONE, BASE_NONE, NULL, 0,
2498 "dop.TerminateRoleBInitiates", HFILL }},
2499 { &hf_dop_terminateAtTime,
2500 { "terminateAt", "dop.terminateAt",
2501 FT_UINT32, BASE_DEC, VALS(x509af_Time_vals), 0,
2502 "dop.Time", HFILL }},
2503 { &hf_dop_unsignedTerminateOperationalBindingArgument,
2504 { "unsignedTerminateOperationalBindingArgument", "dop.unsignedTerminateOperationalBindingArgument",
2505 FT_NONE, BASE_NONE, NULL, 0,
2506 "dop.TerminateOperationalBindingArgumentData", HFILL }},
2507 { &hf_dop_signedTerminateOperationalBindingArgument,
2508 { "signedTerminateOperationalBindingArgument", "dop.signedTerminateOperationalBindingArgument",
2509 FT_NONE, BASE_NONE, NULL, 0,
2510 "dop.T_signedTerminateOperationalBindingArgument", HFILL }},
2511 { &hf_dop_terminateOperationalBindingArgument,
2512 { "terminateOperationalBindingArgument", "dop.terminateOperationalBindingArgument",
2513 FT_NONE, BASE_NONE, NULL, 0,
2514 "dop.TerminateOperationalBindingArgumentData", HFILL }},
2515 { &hf_dop_protectedTerminateResult,
2516 { "protected", "dop.protected",
2517 FT_NONE, BASE_NONE, NULL, 0,
2518 "dop.ProtectedTerminateResult", HFILL }},
2519 { &hf_dop_terminateOperationalBindingResultData,
2520 { "terminateOperationalBindingResultData", "dop.terminateOperationalBindingResultData",
2521 FT_NONE, BASE_NONE, NULL, 0,
2522 "dop.TerminateOperationalBindingResultData", HFILL }},
2523 { &hf_dop_terminateAtGeneralizedTime,
2524 { "terminateAt", "dop.terminateAt",
2525 FT_STRING, BASE_NONE, NULL, 0,
2526 "dop.GeneralizedTime", HFILL }},
2528 { "problem", "dop.problem",
2529 FT_UINT32, BASE_DEC, VALS(dop_T_problem_vals), 0,
2530 "dop.T_problem", HFILL }},
2531 { &hf_dop_agreementProposal,
2532 { "agreementProposal", "dop.agreementProposal",
2533 FT_NONE, BASE_NONE, NULL, 0,
2534 "dop.T_agreementProposal", HFILL }},
2536 { "retryAt", "dop.retryAt",
2537 FT_UINT32, BASE_DEC, VALS(x509af_Time_vals), 0,
2538 "dop.Time", HFILL }},
2541 FT_UINT32, BASE_DEC, NULL, 0,
2542 "x509if.RelativeDistinguishedName", HFILL }},
2543 { &hf_dop_immediateSuperior,
2544 { "immediateSuperior", "dop.immediateSuperior",
2545 FT_UINT32, BASE_DEC, NULL, 0,
2546 "x509if.DistinguishedName", HFILL }},
2547 { &hf_dop_contextPrefixInfo,
2548 { "contextPrefixInfo", "dop.contextPrefixInfo",
2549 FT_UINT32, BASE_DEC, NULL, 0,
2550 "dop.DITcontext", HFILL }},
2551 { &hf_dop_entryInfo,
2552 { "entryInfo", "dop.entryInfo",
2553 FT_UINT32, BASE_DEC, NULL, 0,
2554 "dop.SET_OF_Attribute", HFILL }},
2555 { &hf_dop_entryInfo_item,
2556 { "Item", "dop.entryInfo_item",
2557 FT_NONE, BASE_NONE, NULL, 0,
2558 "x509if.Attribute", HFILL }},
2559 { &hf_dop_immediateSuperiorInfo,
2560 { "immediateSuperiorInfo", "dop.immediateSuperiorInfo",
2561 FT_UINT32, BASE_DEC, NULL, 0,
2562 "dop.SET_OF_Attribute", HFILL }},
2563 { &hf_dop_immediateSuperiorInfo_item,
2564 { "Item", "dop.immediateSuperiorInfo_item",
2565 FT_NONE, BASE_NONE, NULL, 0,
2566 "x509if.Attribute", HFILL }},
2567 { &hf_dop_DITcontext_item,
2568 { "Item", "dop.DITcontext_item",
2569 FT_NONE, BASE_NONE, NULL, 0,
2570 "dop.Vertex", HFILL }},
2571 { &hf_dop_admPointInfo,
2572 { "admPointInfo", "dop.admPointInfo",
2573 FT_UINT32, BASE_DEC, NULL, 0,
2574 "dop.SET_OF_Attribute", HFILL }},
2575 { &hf_dop_admPointInfo_item,
2576 { "Item", "dop.admPointInfo_item",
2577 FT_NONE, BASE_NONE, NULL, 0,
2578 "x509if.Attribute", HFILL }},
2579 { &hf_dop_subentries,
2580 { "subentries", "dop.subentries",
2581 FT_UINT32, BASE_DEC, NULL, 0,
2582 "dop.SET_OF_SubentryInfo", HFILL }},
2583 { &hf_dop_subentries_item,
2584 { "Item", "dop.subentries_item",
2585 FT_NONE, BASE_NONE, NULL, 0,
2586 "dop.SubentryInfo", HFILL }},
2587 { &hf_dop_accessPoints,
2588 { "accessPoints", "dop.accessPoints",
2589 FT_UINT32, BASE_DEC, NULL, 0,
2590 "dsp.MasterAndShadowAccessPoints", HFILL }},
2592 { "info", "dop.info",
2593 FT_UINT32, BASE_DEC, NULL, 0,
2594 "dop.SET_OF_Attribute", HFILL }},
2595 { &hf_dop_info_item,
2596 { "Item", "dop.info_item",
2597 FT_NONE, BASE_NONE, NULL, 0,
2598 "x509if.Attribute", HFILL }},
2600 { "alias", "dop.alias",
2601 FT_BOOLEAN, 8, NULL, 0,
2602 "dop.BOOLEAN", HFILL }},
2603 { &hf_dop_identificationTag,
2604 { "identificationTag", "dop.identificationTag",
2605 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2606 "x509sat.DirectoryString", HFILL }},
2607 { &hf_dop_precedence,
2608 { "precedence", "dop.precedence",
2609 FT_INT32, BASE_DEC, NULL, 0,
2610 "dop.Precedence", HFILL }},
2611 { &hf_dop_authenticationLevel,
2612 { "authenticationLevel", "dop.authenticationLevel",
2613 FT_UINT32, BASE_DEC, VALS(dop_AuthenticationLevel_vals), 0,
2614 "dop.AuthenticationLevel", HFILL }},
2615 { &hf_dop_itemOrUserFirst,
2616 { "itemOrUserFirst", "dop.itemOrUserFirst",
2617 FT_UINT32, BASE_DEC, VALS(dop_T_itemOrUserFirst_vals), 0,
2618 "dop.T_itemOrUserFirst", HFILL }},
2619 { &hf_dop_itemFirst,
2620 { "itemFirst", "dop.itemFirst",
2621 FT_NONE, BASE_NONE, NULL, 0,
2622 "dop.T_itemFirst", HFILL }},
2623 { &hf_dop_protectedItems,
2624 { "protectedItems", "dop.protectedItems",
2625 FT_NONE, BASE_NONE, NULL, 0,
2626 "dop.ProtectedItems", HFILL }},
2627 { &hf_dop_itemPermissions,
2628 { "itemPermissions", "dop.itemPermissions",
2629 FT_UINT32, BASE_DEC, NULL, 0,
2630 "dop.SET_OF_ItemPermission", HFILL }},
2631 { &hf_dop_itemPermissions_item,
2632 { "Item", "dop.itemPermissions_item",
2633 FT_NONE, BASE_NONE, NULL, 0,
2634 "dop.ItemPermission", HFILL }},
2635 { &hf_dop_userFirst,
2636 { "userFirst", "dop.userFirst",
2637 FT_NONE, BASE_NONE, NULL, 0,
2638 "dop.T_userFirst", HFILL }},
2639 { &hf_dop_userClasses,
2640 { "userClasses", "dop.userClasses",
2641 FT_NONE, BASE_NONE, NULL, 0,
2642 "dop.UserClasses", HFILL }},
2643 { &hf_dop_userPermissions,
2644 { "userPermissions", "dop.userPermissions",
2645 FT_UINT32, BASE_DEC, NULL, 0,
2646 "dop.SET_OF_UserPermission", HFILL }},
2647 { &hf_dop_userPermissions_item,
2648 { "Item", "dop.userPermissions_item",
2649 FT_NONE, BASE_NONE, NULL, 0,
2650 "dop.UserPermission", HFILL }},
2652 { "entry", "dop.entry",
2653 FT_NONE, BASE_NONE, NULL, 0,
2654 "dop.NULL", HFILL }},
2655 { &hf_dop_allUserAttributeTypes,
2656 { "allUserAttributeTypes", "dop.allUserAttributeTypes",
2657 FT_NONE, BASE_NONE, NULL, 0,
2658 "dop.NULL", HFILL }},
2659 { &hf_dop_attributeType,
2660 { "attributeType", "dop.attributeType",
2661 FT_UINT32, BASE_DEC, NULL, 0,
2662 "dop.SET_OF_AttributeType", HFILL }},
2663 { &hf_dop_attributeType_item,
2664 { "Item", "dop.attributeType_item",
2665 FT_OID, BASE_NONE, NULL, 0,
2666 "x509if.AttributeType", HFILL }},
2667 { &hf_dop_allAttributeValues,
2668 { "allAttributeValues", "dop.allAttributeValues",
2669 FT_UINT32, BASE_DEC, NULL, 0,
2670 "dop.SET_OF_AttributeType", HFILL }},
2671 { &hf_dop_allAttributeValues_item,
2672 { "Item", "dop.allAttributeValues_item",
2673 FT_OID, BASE_NONE, NULL, 0,
2674 "x509if.AttributeType", HFILL }},
2675 { &hf_dop_allUserAttributeTypesAndValues,
2676 { "allUserAttributeTypesAndValues", "dop.allUserAttributeTypesAndValues",
2677 FT_NONE, BASE_NONE, NULL, 0,
2678 "dop.NULL", HFILL }},
2679 { &hf_dop_attributeValue,
2680 { "attributeValue", "dop.attributeValue",
2681 FT_UINT32, BASE_DEC, NULL, 0,
2682 "dop.SET_OF_AttributeTypeAndValue", HFILL }},
2683 { &hf_dop_attributeValue_item,
2684 { "Item", "dop.attributeValue_item",
2685 FT_NONE, BASE_NONE, NULL, 0,
2686 "crmf.AttributeTypeAndValue", HFILL }},
2687 { &hf_dop_selfValue,
2688 { "selfValue", "dop.selfValue",
2689 FT_UINT32, BASE_DEC, NULL, 0,
2690 "dop.SET_OF_AttributeType", HFILL }},
2691 { &hf_dop_selfValue_item,
2692 { "Item", "dop.selfValue_item",
2693 FT_OID, BASE_NONE, NULL, 0,
2694 "x509if.AttributeType", HFILL }},
2695 { &hf_dop_rangeOfValues,
2696 { "rangeOfValues", "dop.rangeOfValues",
2697 FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
2698 "dap.Filter", HFILL }},
2699 { &hf_dop_maxValueCount,
2700 { "maxValueCount", "dop.maxValueCount",
2701 FT_UINT32, BASE_DEC, NULL, 0,
2702 "dop.SET_OF_MaxValueCount", HFILL }},
2703 { &hf_dop_maxValueCount_item,
2704 { "Item", "dop.maxValueCount_item",
2705 FT_NONE, BASE_NONE, NULL, 0,
2706 "dop.MaxValueCount", HFILL }},
2707 { &hf_dop_maxImmSub,
2708 { "maxImmSub", "dop.maxImmSub",
2709 FT_INT32, BASE_DEC, NULL, 0,
2710 "dop.INTEGER", HFILL }},
2711 { &hf_dop_restrictedBy,
2712 { "restrictedBy", "dop.restrictedBy",
2713 FT_UINT32, BASE_DEC, NULL, 0,
2714 "dop.SET_OF_RestrictedValue", HFILL }},
2715 { &hf_dop_restrictedBy_item,
2716 { "Item", "dop.restrictedBy_item",
2717 FT_NONE, BASE_NONE, NULL, 0,
2718 "dop.RestrictedValue", HFILL }},
2720 { "contexts", "dop.contexts",
2721 FT_UINT32, BASE_DEC, NULL, 0,
2722 "dop.SET_OF_ContextAssertion", HFILL }},
2723 { &hf_dop_contexts_item,
2724 { "Item", "dop.contexts_item",
2725 FT_NONE, BASE_NONE, NULL, 0,
2726 "x509if.ContextAssertion", HFILL }},
2728 { "classes", "dop.classes",
2729 FT_UINT32, BASE_DEC, VALS(x509if_Refinement_vals), 0,
2730 "x509if.Refinement", HFILL }},
2732 { "type", "dop.type",
2733 FT_OID, BASE_NONE, NULL, 0,
2734 "x509if.AttributeType", HFILL }},
2736 { "maxCount", "dop.maxCount",
2737 FT_INT32, BASE_DEC, NULL, 0,
2738 "dop.INTEGER", HFILL }},
2740 { "valuesIn", "dop.valuesIn",
2741 FT_OID, BASE_NONE, NULL, 0,
2742 "x509if.AttributeType", HFILL }},
2744 { "allUsers", "dop.allUsers",
2745 FT_NONE, BASE_NONE, NULL, 0,
2746 "dop.NULL", HFILL }},
2747 { &hf_dop_thisEntry,
2748 { "thisEntry", "dop.thisEntry",
2749 FT_NONE, BASE_NONE, NULL, 0,
2750 "dop.NULL", HFILL }},
2752 { "name", "dop.name",
2753 FT_UINT32, BASE_DEC, NULL, 0,
2754 "dop.SET_OF_NameAndOptionalUID", HFILL }},
2755 { &hf_dop_name_item,
2756 { "Item", "dop.name_item",
2757 FT_NONE, BASE_NONE, NULL, 0,
2758 "x509sat.NameAndOptionalUID", HFILL }},
2759 { &hf_dop_userGroup,
2760 { "userGroup", "dop.userGroup",
2761 FT_UINT32, BASE_DEC, NULL, 0,
2762 "dop.SET_OF_NameAndOptionalUID", HFILL }},
2763 { &hf_dop_userGroup_item,
2764 { "Item", "dop.userGroup_item",
2765 FT_NONE, BASE_NONE, NULL, 0,
2766 "x509sat.NameAndOptionalUID", HFILL }},
2768 { "subtree", "dop.subtree",
2769 FT_UINT32, BASE_DEC, NULL, 0,
2770 "dop.SET_OF_SubtreeSpecification", HFILL }},
2771 { &hf_dop_subtree_item,
2772 { "Item", "dop.subtree_item",
2773 FT_NONE, BASE_NONE, NULL, 0,
2774 "x509if.SubtreeSpecification", HFILL }},
2775 { &hf_dop_grantsAndDenials,
2776 { "grantsAndDenials", "dop.grantsAndDenials",
2777 FT_BYTES, BASE_HEX, NULL, 0,
2778 "dop.GrantsAndDenials", HFILL }},
2779 { &hf_dop_basicLevels,
2780 { "basicLevels", "dop.basicLevels",
2781 FT_NONE, BASE_NONE, NULL, 0,
2782 "dop.T_basicLevels", HFILL }},
2784 { "level", "dop.level",
2785 FT_UINT32, BASE_DEC, VALS(dop_T_level_vals), 0,
2786 "dop.T_level", HFILL }},
2787 { &hf_dop_localQualifier,
2788 { "localQualifier", "dop.localQualifier",
2789 FT_INT32, BASE_DEC, NULL, 0,
2790 "dop.INTEGER", HFILL }},
2792 { "signed", "dop.signed",
2793 FT_BOOLEAN, 8, NULL, 0,
2794 "dop.BOOLEAN", HFILL }},
2796 { "other", "dop.other",
2797 FT_NONE, BASE_NONE, NULL, 0,
2798 "dop.EXTERNAL", HFILL }},
2799 { &hf_dop_DSEType_root,
2800 { "root", "dop.root",
2801 FT_BOOLEAN, 8, NULL, 0x80,
2803 { &hf_dop_DSEType_glue,
2804 { "glue", "dop.glue",
2805 FT_BOOLEAN, 8, NULL, 0x40,
2807 { &hf_dop_DSEType_cp,
2809 FT_BOOLEAN, 8, NULL, 0x20,
2811 { &hf_dop_DSEType_entry,
2812 { "entry", "dop.entry",
2813 FT_BOOLEAN, 8, NULL, 0x10,
2815 { &hf_dop_DSEType_alias,
2816 { "alias", "dop.alias",
2817 FT_BOOLEAN, 8, NULL, 0x08,
2819 { &hf_dop_DSEType_subr,
2820 { "subr", "dop.subr",
2821 FT_BOOLEAN, 8, NULL, 0x04,
2823 { &hf_dop_DSEType_nssr,
2824 { "nssr", "dop.nssr",
2825 FT_BOOLEAN, 8, NULL, 0x02,
2827 { &hf_dop_DSEType_supr,
2828 { "supr", "dop.supr",
2829 FT_BOOLEAN, 8, NULL, 0x01,
2831 { &hf_dop_DSEType_xr,
2833 FT_BOOLEAN, 8, NULL, 0x80,
2835 { &hf_dop_DSEType_admPoint,
2836 { "admPoint", "dop.admPoint",
2837 FT_BOOLEAN, 8, NULL, 0x40,
2839 { &hf_dop_DSEType_subentry,
2840 { "subentry", "dop.subentry",
2841 FT_BOOLEAN, 8, NULL, 0x20,
2843 { &hf_dop_DSEType_shadow,
2844 { "shadow", "dop.shadow",
2845 FT_BOOLEAN, 8, NULL, 0x10,
2847 { &hf_dop_DSEType_immSupr,
2848 { "immSupr", "dop.immSupr",
2849 FT_BOOLEAN, 8, NULL, 0x04,
2851 { &hf_dop_DSEType_rhob,
2852 { "rhob", "dop.rhob",
2853 FT_BOOLEAN, 8, NULL, 0x02,
2855 { &hf_dop_DSEType_sa,
2857 FT_BOOLEAN, 8, NULL, 0x01,
2859 { &hf_dop_DSEType_dsSubentry,
2860 { "dsSubentry", "dop.dsSubentry",
2861 FT_BOOLEAN, 8, NULL, 0x80,
2863 { &hf_dop_DSEType_familyMember,
2864 { "familyMember", "dop.familyMember",
2865 FT_BOOLEAN, 8, NULL, 0x40,
2867 { &hf_dop_GrantsAndDenials_grantAdd,
2868 { "grantAdd", "dop.grantAdd",
2869 FT_BOOLEAN, 8, NULL, 0x80,
2871 { &hf_dop_GrantsAndDenials_denyAdd,
2872 { "denyAdd", "dop.denyAdd",
2873 FT_BOOLEAN, 8, NULL, 0x40,
2875 { &hf_dop_GrantsAndDenials_grantDiscloseOnError,
2876 { "grantDiscloseOnError", "dop.grantDiscloseOnError",
2877 FT_BOOLEAN, 8, NULL, 0x20,
2879 { &hf_dop_GrantsAndDenials_denyDiscloseOnError,
2880 { "denyDiscloseOnError", "dop.denyDiscloseOnError",
2881 FT_BOOLEAN, 8, NULL, 0x10,
2883 { &hf_dop_GrantsAndDenials_grantRead,
2884 { "grantRead", "dop.grantRead",
2885 FT_BOOLEAN, 8, NULL, 0x08,
2887 { &hf_dop_GrantsAndDenials_denyRead,
2888 { "denyRead", "dop.denyRead",
2889 FT_BOOLEAN, 8, NULL, 0x04,
2891 { &hf_dop_GrantsAndDenials_grantRemove,
2892 { "grantRemove", "dop.grantRemove",
2893 FT_BOOLEAN, 8, NULL, 0x02,
2895 { &hf_dop_GrantsAndDenials_denyRemove,
2896 { "denyRemove", "dop.denyRemove",
2897 FT_BOOLEAN, 8, NULL, 0x01,
2899 { &hf_dop_GrantsAndDenials_grantBrowse,
2900 { "grantBrowse", "dop.grantBrowse",
2901 FT_BOOLEAN, 8, NULL, 0x80,
2903 { &hf_dop_GrantsAndDenials_denyBrowse,
2904 { "denyBrowse", "dop.denyBrowse",
2905 FT_BOOLEAN, 8, NULL, 0x40,
2907 { &hf_dop_GrantsAndDenials_grantExport,
2908 { "grantExport", "dop.grantExport",
2909 FT_BOOLEAN, 8, NULL, 0x20,
2911 { &hf_dop_GrantsAndDenials_denyExport,
2912 { "denyExport", "dop.denyExport",
2913 FT_BOOLEAN, 8, NULL, 0x10,
2915 { &hf_dop_GrantsAndDenials_grantImport,
2916 { "grantImport", "dop.grantImport",
2917 FT_BOOLEAN, 8, NULL, 0x08,
2919 { &hf_dop_GrantsAndDenials_denyImport,
2920 { "denyImport", "dop.denyImport",
2921 FT_BOOLEAN, 8, NULL, 0x04,
2923 { &hf_dop_GrantsAndDenials_grantModify,
2924 { "grantModify", "dop.grantModify",
2925 FT_BOOLEAN, 8, NULL, 0x02,
2927 { &hf_dop_GrantsAndDenials_denyModify,
2928 { "denyModify", "dop.denyModify",
2929 FT_BOOLEAN, 8, NULL, 0x01,
2931 { &hf_dop_GrantsAndDenials_grantRename,
2932 { "grantRename", "dop.grantRename",
2933 FT_BOOLEAN, 8, NULL, 0x80,
2935 { &hf_dop_GrantsAndDenials_denyRename,
2936 { "denyRename", "dop.denyRename",
2937 FT_BOOLEAN, 8, NULL, 0x40,
2939 { &hf_dop_GrantsAndDenials_grantReturnDN,
2940 { "grantReturnDN", "dop.grantReturnDN",
2941 FT_BOOLEAN, 8, NULL, 0x20,
2943 { &hf_dop_GrantsAndDenials_denyReturnDN,
2944 { "denyReturnDN", "dop.denyReturnDN",
2945 FT_BOOLEAN, 8, NULL, 0x10,
2947 { &hf_dop_GrantsAndDenials_grantCompare,
2948 { "grantCompare", "dop.grantCompare",
2949 FT_BOOLEAN, 8, NULL, 0x08,
2951 { &hf_dop_GrantsAndDenials_denyCompare,
2952 { "denyCompare", "dop.denyCompare",
2953 FT_BOOLEAN, 8, NULL, 0x04,
2955 { &hf_dop_GrantsAndDenials_grantFilterMatch,
2956 { "grantFilterMatch", "dop.grantFilterMatch",
2957 FT_BOOLEAN, 8, NULL, 0x02,
2959 { &hf_dop_GrantsAndDenials_denyFilterMatch,
2960 { "denyFilterMatch", "dop.denyFilterMatch",
2961 FT_BOOLEAN, 8, NULL, 0x01,
2963 { &hf_dop_GrantsAndDenials_grantInvoke,
2964 { "grantInvoke", "dop.grantInvoke",
2965 FT_BOOLEAN, 8, NULL, 0x80,
2967 { &hf_dop_GrantsAndDenials_denyInvoke,
2968 { "denyInvoke", "dop.denyInvoke",
2969 FT_BOOLEAN, 8, NULL, 0x40,
2972 /*--- End of included file: packet-dop-hfarr.c ---*/
2973 #line 253 "packet-dop-template.c"
2976 /* List of subtrees */
2977 static gint *ett[] = {
2981 /*--- Included file: packet-dop-ettarr.c ---*/
2982 #line 1 "packet-dop-ettarr.c"
2984 &ett_dop_SupplierOrConsumer,
2985 &ett_dop_SET_OF_ProtocolInformation,
2986 &ett_dop_SupplierInformation,
2987 &ett_dop_SupplierAndConsumers,
2988 &ett_dop_SET_OF_AccessPoint,
2989 &ett_dop_EstablishOperationalBindingArgumentData,
2990 &ett_dop_EstablishArgumentInitiator,
2991 &ett_dop_EstablishOperationalBindingArgument,
2992 &ett_dop_T_signedEstablishOperationalBindingArgument,
2993 &ett_dop_OperationalBindingID,
2995 &ett_dop_T_validFrom,
2996 &ett_dop_T_validUntil,
2998 &ett_dop_EstablishOperationalBindingResult,
2999 &ett_dop_T_initiator,
3000 &ett_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute,
3001 &ett_dop_ModifyOperationalBindingArgumentData,
3002 &ett_dop_ModifyArgumentInitiator,
3003 &ett_dop_ModifyOperationalBindingArgument,
3004 &ett_dop_T_signedModifyOperationalBindingArgument,
3005 &ett_dop_ModifyOperationalBindingResult,
3006 &ett_dop_ProtectedModifyResult,
3007 &ett_dop_ModifyOperationalBindingResultData,
3008 &ett_dop_TerminateOperationalBindingArgumentData,
3009 &ett_dop_TerminateArgumentInitiator,
3010 &ett_dop_TerminateOperationalBindingArgument,
3011 &ett_dop_T_signedTerminateOperationalBindingArgument,
3012 &ett_dop_TerminateOperationalBindingResult,
3013 &ett_dop_ProtectedTerminateResult,
3014 &ett_dop_TerminateOperationalBindingResultData,
3015 &ett_dop_OpBindingErrorParam,
3016 &ett_dop_HierarchicalAgreement,
3017 &ett_dop_SuperiorToSubordinate,
3018 &ett_dop_SET_OF_Attribute,
3019 &ett_dop_DITcontext,
3021 &ett_dop_SET_OF_SubentryInfo,
3022 &ett_dop_SubentryInfo,
3023 &ett_dop_SubordinateToSuperior,
3024 &ett_dop_SuperiorToSubordinateModification,
3025 &ett_dop_NonSpecificHierarchicalAgreement,
3026 &ett_dop_NHOBSuperiorToSubordinate,
3027 &ett_dop_NHOBSubordinateToSuperior,
3029 &ett_dop_T_itemOrUserFirst,
3030 &ett_dop_T_itemFirst,
3031 &ett_dop_SET_OF_ItemPermission,
3032 &ett_dop_T_userFirst,
3033 &ett_dop_SET_OF_UserPermission,
3034 &ett_dop_ProtectedItems,
3035 &ett_dop_SET_OF_AttributeType,
3036 &ett_dop_SET_OF_AttributeTypeAndValue,
3037 &ett_dop_SET_OF_MaxValueCount,
3038 &ett_dop_SET_OF_RestrictedValue,
3039 &ett_dop_SET_OF_ContextAssertion,
3040 &ett_dop_MaxValueCount,
3041 &ett_dop_RestrictedValue,
3042 &ett_dop_UserClasses,
3043 &ett_dop_SET_OF_NameAndOptionalUID,
3044 &ett_dop_SET_OF_SubtreeSpecification,
3045 &ett_dop_ItemPermission,
3046 &ett_dop_UserPermission,
3047 &ett_dop_AuthenticationLevel,
3048 &ett_dop_T_basicLevels,
3049 &ett_dop_GrantsAndDenials,
3051 /*--- End of included file: packet-dop-ettarr.c ---*/
3052 #line 260 "packet-dop-template.c"
3055 module_t *dop_module;
3057 /* Register protocol */
3058 proto_dop = proto_register_protocol(PNAME, PSNAME, PFNAME);
3060 register_dissector("dop", dissect_dop, proto_dop);
3062 dop_dissector_table = register_dissector_table("dop.oid", "DOP OID Dissectors", FT_STRING, BASE_NONE);
3064 /* Register fields and subtrees */
3065 proto_register_field_array(proto_dop, hf, array_length(hf));
3066 proto_register_subtree_array(ett, array_length(ett));
3068 /* Register our configuration options for DOP, particularly our port */
3070 #ifdef PREFERENCE_GROUPING
3071 dop_module = prefs_register_protocol_subtree("OSI/X.500", proto_dop, prefs_register_dop);
3073 dop_module = prefs_register_protocol(proto_dop, prefs_register_dop);
3076 prefs_register_uint_preference(dop_module, "tcp.port", "DOP TCP Port",
3077 "Set the port for DOP operations (if other"
3078 " than the default of 102)",
3079 10, &global_dop_tcp_port);
3085 /*--- proto_reg_handoff_dop --- */
3086 void proto_reg_handoff_dop(void) {
3087 dissector_handle_t handle = NULL;
3090 /*--- Included file: packet-dop-dis-tab.c ---*/
3091 #line 1 "packet-dop-dis-tab.c"
3092 register_ber_oid_dissector("2.5.12.0", dissect_DSEType_PDU, proto_dop, "id-doa-dseType");
3093 register_ber_oid_dissector("2.5.12.5", dissect_SupplierInformation_PDU, proto_dop, "id-doa-supplierKnowledge");
3094 register_ber_oid_dissector("2.5.12.6", dissect_ConsumerInformation_PDU, proto_dop, "id-doa-consumerKnowledge");
3095 register_ber_oid_dissector("2.5.12.7", dissect_SupplierAndConsumers_PDU, proto_dop, "id-doa-secondaryShadows");
3096 dissector_add_string("dop.oid", "agreement.2.5.19.2", create_dissector_handle(dissect_HierarchicalAgreement_PDU, proto_dop));
3097 dissector_add_string("dop.oid", "establish.rolea.2.5.19.2", create_dissector_handle(dissect_SuperiorToSubordinate_PDU, proto_dop));
3098 dissector_add_string("dop.oid", "modify.rolea.2.5.19.2", create_dissector_handle(dissect_SuperiorToSubordinateModification_PDU, proto_dop));
3099 dissector_add_string("dop.oid", "establish.roleb.2.5.19.2", create_dissector_handle(dissect_SubordinateToSuperior_PDU, proto_dop));
3100 dissector_add_string("dop.oid", "modify.roleb.2.5.19.2", create_dissector_handle(dissect_SubordinateToSuperior_PDU, proto_dop));
3101 dissector_add_string("dop.oid", "agreement.2.5.19.3", create_dissector_handle(dissect_NonSpecificHierarchicalAgreement_PDU, proto_dop));
3102 dissector_add_string("dop.oid", "establish.rolea.2.5.19.3", create_dissector_handle(dissect_NHOBSuperiorToSubordinate_PDU, proto_dop));
3103 dissector_add_string("dop.oid", "modify.rolea.2.5.19.3", create_dissector_handle(dissect_NHOBSuperiorToSubordinate_PDU, proto_dop));
3104 dissector_add_string("dop.oid", "establish.roleb.2.5.19.3", create_dissector_handle(dissect_NHOBSubordinateToSuperior_PDU, proto_dop));
3105 dissector_add_string("dop.oid", "modify.roleb.2.5.19.3", create_dissector_handle(dissect_NHOBSubordinateToSuperior_PDU, proto_dop));
3106 register_ber_oid_dissector("2.5.24.4", dissect_ACIItem_PDU, proto_dop, "id-aca-prescriptiveACI");
3107 register_ber_oid_dissector("2.5.24.5", dissect_ACIItem_PDU, proto_dop, "id-aca-entryACI");
3108 register_ber_oid_dissector("2.5.24.6", dissect_ACIItem_PDU, proto_dop, "id-aca-subentryACI");
3111 /*--- End of included file: packet-dop-dis-tab.c ---*/
3112 #line 297 "packet-dop-template.c"
3113 /* APPLICATION CONTEXT */
3115 oid_add_from_string("id-ac-directory-operational-binding-management","2.5.3.3");
3117 /* ABSTRACT SYNTAXES */
3119 /* Register DOP with ROS (with no use of RTSE) */
3120 if((handle = find_dissector("dop"))) {
3121 register_ros_oid_dissector_handle("2.5.9.4", handle, 0, "id-as-directory-operational-binding-management", FALSE);
3126 oid_add_from_string("shadow-agreement","2.5.19.1");
3127 oid_add_from_string("hierarchical-agreement","2.5.19.2");
3128 oid_add_from_string("non-specific-hierarchical-agreement","2.5.19.3");
3130 /* ACCESS CONTROL SCHEMES */
3131 oid_add_from_string("basic-ACS","2.5.28.1");
3132 oid_add_from_string("simplified-ACS","2.5.28.2");
3133 oid_add_from_string("ruleBased-ACS","2.5.28.3");
3134 oid_add_from_string("ruleAndBasic-ACS","2.5.28.4");
3135 oid_add_from_string("ruleAndSimple-ACS","2.5.28.5");
3137 /* ADMINISTRATIVE ROLES */
3138 oid_add_from_string("id-ar-autonomousArea","2.5.23.1");
3139 oid_add_from_string("id-ar-accessControlSpecificArea","2.5.23.2");
3140 oid_add_from_string("id-ar-accessControlInnerArea","2.5.23.3");
3141 oid_add_from_string("id-ar-subschemaAdminSpecificArea","2.5.23.4");
3142 oid_add_from_string("id-ar-collectiveAttributeSpecificArea","2.5.23.5");
3143 oid_add_from_string("id-ar-collectiveAttributeInnerArea","2.5.23.6");
3144 oid_add_from_string("id-ar-contextDefaultSpecificArea","2.5.23.7");
3145 oid_add_from_string("id-ar-serviceSpecificArea","2.5.23.8");
3147 /* remember the tpkt handler for change in preferences */
3148 tpkt_handle = find_dissector("tpkt");
3152 void prefs_register_dop(void) {
3154 /* de-register the old port */
3155 /* port 102 is registered by TPKT - don't undo this! */
3156 if((tcp_port != 102) && tpkt_handle)
3157 dissector_delete("tcp.port", tcp_port, tpkt_handle);
3159 /* Set our port number for future use */
3160 tcp_port = global_dop_tcp_port;
3162 if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
3163 dissector_add("tcp.port", global_dop_tcp_port, tpkt_handle);