Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / packet-dap.c
blob28fb3a7b7bfef7e2c2f726572ffcc1edd47c54ae
1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
3 /* packet-dap.c */
4 /* asn2wrs.py -b -q -L -p dap -c ./dap.cnf -s ./packet-dap-template -D . -O ../.. dap.asn DirectoryAccessProtocol.asn */
6 /* packet-dap.c
7 * Routines for X.511 (X.500 Directory Asbtract Service) and X.519 DAP packet dissection
8 * Graeme Lunt 2005
10 * Wireshark - Network traffic analyzer
11 * By Gerald Combs <gerald@wireshark.org>
12 * Copyright 1998 Gerald Combs
14 * SPDX-License-Identifier: GPL-2.0-or-later
17 #include "config.h"
19 #include <epan/packet.h>
20 #include <epan/prefs.h>
21 #include <epan/expert.h>
22 #include <epan/oids.h>
23 #include <epan/asn1.h>
24 #include <epan/proto_data.h>
25 #include <wsutil/array.h>
27 #include "packet-ber.h"
28 #include "packet-acse.h"
29 #include "packet-ros.h"
30 #include "packet-idmp.h"
32 #include "packet-x509if.h"
33 #include "packet-x509af.h"
34 #include "packet-x509sat.h"
35 #include "packet-crmf.h"
37 #include "packet-dsp.h"
38 #include "packet-disp.h"
39 #include "packet-dap.h"
40 #include <epan/strutil.h>
42 /* we don't have a separate dissector for X519 -
43 most of DAP is defined in X511 */
44 #define PNAME "X.519 Directory Access Protocol"
45 #define PSNAME "DAP"
46 #define PFNAME "dap"
48 void proto_register_dap(void);
49 void proto_reg_handoff_dap(void);
51 /* Initialize the protocol and registered fields */
52 static int proto_dap;
55 static int hf_dap_DirectoryBindArgument_PDU; /* DirectoryBindArgument */
56 static int hf_dap_DirectoryBindResult_PDU; /* DirectoryBindResult */
57 static int hf_dap_DirectoryBindError_PDU; /* DirectoryBindError */
58 static int hf_dap_ReadArgument_PDU; /* ReadArgument */
59 static int hf_dap_ReadResult_PDU; /* ReadResult */
60 static int hf_dap_CompareArgument_PDU; /* CompareArgument */
61 static int hf_dap_CompareResult_PDU; /* CompareResult */
62 static int hf_dap_AbandonArgument_PDU; /* AbandonArgument */
63 static int hf_dap_AbandonResult_PDU; /* AbandonResult */
64 static int hf_dap_ListArgument_PDU; /* ListArgument */
65 static int hf_dap_ListResult_PDU; /* ListResult */
66 static int hf_dap_SearchArgument_PDU; /* SearchArgument */
67 static int hf_dap_SearchResult_PDU; /* SearchResult */
68 static int hf_dap_AddEntryArgument_PDU; /* AddEntryArgument */
69 static int hf_dap_AddEntryResult_PDU; /* AddEntryResult */
70 static int hf_dap_RemoveEntryArgument_PDU; /* RemoveEntryArgument */
71 static int hf_dap_RemoveEntryResult_PDU; /* RemoveEntryResult */
72 static int hf_dap_ModifyEntryArgument_PDU; /* ModifyEntryArgument */
73 static int hf_dap_ModifyEntryResult_PDU; /* ModifyEntryResult */
74 static int hf_dap_ModifyDNArgument_PDU; /* ModifyDNArgument */
75 static int hf_dap_ModifyDNResult_PDU; /* ModifyDNResult */
76 static int hf_dap_Abandoned_PDU; /* Abandoned */
77 static int hf_dap_AbandonFailedError_PDU; /* AbandonFailedError */
78 static int hf_dap_AttributeError_PDU; /* AttributeError */
79 static int hf_dap_NameError_PDU; /* NameError */
80 static int hf_dap_Referral_PDU; /* Referral */
81 static int hf_dap_SecurityError_PDU; /* SecurityError */
82 static int hf_dap_ServiceError_PDU; /* ServiceError */
83 static int hf_dap_UpdateError_PDU; /* UpdateError */
84 static int hf_dap_options; /* ServiceControlOptions */
85 static int hf_dap_priority; /* T_priority */
86 static int hf_dap_timeLimit; /* INTEGER */
87 static int hf_dap_sizeLimit; /* INTEGER */
88 static int hf_dap_scopeOfReferral; /* T_scopeOfReferral */
89 static int hf_dap_attributeSizeLimit; /* INTEGER */
90 static int hf_dap_manageDSAITPlaneRef; /* T_manageDSAITPlaneRef */
91 static int hf_dap_dsaName; /* Name */
92 static int hf_dap_agreementID; /* AgreementID */
93 static int hf_dap_serviceType; /* OBJECT_IDENTIFIER */
94 static int hf_dap_userClass; /* INTEGER */
95 static int hf_dap_attributes; /* T_attributes */
96 static int hf_dap_allUserAttributes; /* NULL */
97 static int hf_dap_select; /* SET_OF_AttributeType */
98 static int hf_dap_select_item; /* AttributeType */
99 static int hf_dap_infoTypes; /* T_infoTypes */
100 static int hf_dap_extraAttributes; /* T_extraAttributes */
101 static int hf_dap_allOperationalAttributes; /* NULL */
102 static int hf_dap_extraSelect; /* SET_SIZE_1_MAX_OF_AttributeType */
103 static int hf_dap_extraSelect_item; /* AttributeType */
104 static int hf_dap_contextSelection; /* ContextSelection */
105 static int hf_dap_returnContexts; /* BOOLEAN */
106 static int hf_dap_familyReturn; /* FamilyReturn */
107 static int hf_dap_allContexts; /* NULL */
108 static int hf_dap_selectedContexts; /* SET_SIZE_1_MAX_OF_TypeAndContextAssertion */
109 static int hf_dap_selectedContexts_item; /* TypeAndContextAssertion */
110 static int hf_dap_type; /* AttributeType */
111 static int hf_dap_contextAssertions; /* T_contextAssertions */
112 static int hf_dap_preference; /* SEQUENCE_OF_ContextAssertion */
113 static int hf_dap_preference_item; /* ContextAssertion */
114 static int hf_dap_all; /* SET_OF_ContextAssertion */
115 static int hf_dap_all_item; /* ContextAssertion */
116 static int hf_dap_memberSelect; /* T_memberSelect */
117 static int hf_dap_familySelect; /* T_familySelect */
118 static int hf_dap_familySelect_item; /* OBJECT_IDENTIFIER */
119 static int hf_dap_name; /* Name */
120 static int hf_dap_fromEntry; /* BOOLEAN */
121 static int hf_dap_entry_information; /* T_entry_information */
122 static int hf_dap_entry_information_item; /* EntryInformationItem */
123 static int hf_dap_attributeType; /* AttributeType */
124 static int hf_dap_attribute; /* Attribute */
125 static int hf_dap_incompleteEntry; /* BOOLEAN */
126 static int hf_dap_partialName; /* BOOLEAN */
127 static int hf_dap_derivedEntry; /* BOOLEAN */
128 static int hf_dap_family_class; /* OBJECT_IDENTIFIER */
129 static int hf_dap_familyEntries; /* SEQUENCE_OF_FamilyEntry */
130 static int hf_dap_familyEntries_item; /* FamilyEntry */
131 static int hf_dap_rdn; /* RelativeDistinguishedName */
132 static int hf_dap_family_information; /* FamilyInformation */
133 static int hf_dap_family_information_item; /* T_family_information_item */
134 static int hf_dap_family_info; /* SEQUENCE_SIZE_1_MAX_OF_FamilyEntries */
135 static int hf_dap_family_info_item; /* FamilyEntries */
136 static int hf_dap_filter_item; /* FilterItem */
137 static int hf_dap_and; /* SetOfFilter */
138 static int hf_dap_or; /* SetOfFilter */
139 static int hf_dap_not; /* Filter */
140 static int hf_dap_SetOfFilter_item; /* Filter */
141 static int hf_dap_equality; /* AttributeValueAssertion */
142 static int hf_dap_substrings; /* T_substrings */
143 static int hf_dap_sunstringType; /* OBJECT_IDENTIFIER */
144 static int hf_dap_strings; /* T_strings */
145 static int hf_dap_strings_item; /* T_strings_item */
146 static int hf_dap_initial; /* T_initial */
147 static int hf_dap_any; /* T_any */
148 static int hf_dap_final; /* T_final */
149 static int hf_dap_control; /* Attribute */
150 static int hf_dap_greaterOrEqual; /* AttributeValueAssertion */
151 static int hf_dap_lessOrEqual; /* AttributeValueAssertion */
152 static int hf_dap_present; /* AttributeType */
153 static int hf_dap_approximateMatch; /* AttributeValueAssertion */
154 static int hf_dap_extensibleMatch; /* MatchingRuleAssertion */
155 static int hf_dap_contextPresent; /* AttributeTypeAssertion */
156 static int hf_dap_matchingRule; /* T_matchingRule */
157 static int hf_dap_matchingRule_item; /* OBJECT_IDENTIFIER */
158 static int hf_dap_matchValue; /* T_matchValue */
159 static int hf_dap_dnAttributes; /* BOOLEAN */
160 static int hf_dap_newRequest; /* T_newRequest */
161 static int hf_dap_pageSize; /* INTEGER */
162 static int hf_dap_sortKeys; /* SEQUENCE_SIZE_1_MAX_OF_SortKey */
163 static int hf_dap_sortKeys_item; /* SortKey */
164 static int hf_dap_reverse; /* BOOLEAN */
165 static int hf_dap_unmerged; /* BOOLEAN */
166 static int hf_dap_pagedResultsQueryReference; /* T_pagedResultsQueryReference */
167 static int hf_dap_orderingRule; /* OBJECT_IDENTIFIER */
168 static int hf_dap_certification_path; /* CertificationPath */
169 static int hf_dap_distinguished_name; /* DistinguishedName */
170 static int hf_dap_time; /* Time */
171 static int hf_dap_random; /* BIT_STRING */
172 static int hf_dap_target; /* ProtectionRequest */
173 static int hf_dap_response; /* BIT_STRING */
174 static int hf_dap_operationCode; /* Code */
175 static int hf_dap_attributeCertificationPath; /* AttributeCertificationPath */
176 static int hf_dap_errorProtection; /* ErrorProtectionRequest */
177 static int hf_dap_errorCode; /* Code */
178 static int hf_dap_utcTime; /* UTCTime */
179 static int hf_dap_generalizedTime; /* GeneralizedTime */
180 static int hf_dap_credentials; /* Credentials */
181 static int hf_dap_versions; /* Versions */
182 static int hf_dap_simple; /* SimpleCredentials */
183 static int hf_dap_strong; /* StrongCredentials */
184 static int hf_dap_externalProcedure; /* EXTERNAL */
185 static int hf_dap_spkm; /* SpkmCredentials */
186 static int hf_dap_sasl; /* SaslCredentials */
187 static int hf_dap_validity; /* T_validity */
188 static int hf_dap_time1; /* T_time1 */
189 static int hf_dap_utc; /* UTCTime */
190 static int hf_dap_gt; /* GeneralizedTime */
191 static int hf_dap_time2; /* T_time2 */
192 static int hf_dap_random1; /* BIT_STRING */
193 static int hf_dap_random2; /* BIT_STRING */
194 static int hf_dap_password; /* T_password */
195 static int hf_dap_unprotected; /* OCTET_STRING */
196 static int hf_dap_protected; /* T_protected */
197 static int hf_dap_protectedPassword; /* OCTET_STRING */
198 static int hf_dap_algorithmIdentifier; /* AlgorithmIdentifier */
199 static int hf_dap_encrypted; /* BIT_STRING */
200 static int hf_dap_bind_token; /* Token */
201 static int hf_dap_req; /* T_req */
202 static int hf_dap_rep; /* T_rep */
203 static int hf_dap_mechanism; /* DirectoryString */
204 static int hf_dap_saslCredentials; /* OCTET_STRING */
205 static int hf_dap_saslAbort; /* BOOLEAN */
206 static int hf_dap_algorithm; /* AlgorithmIdentifier */
207 static int hf_dap_utctime; /* UTCTime */
208 static int hf_dap_bindIntAlgorithm; /* SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier */
209 static int hf_dap_bindIntAlgorithm_item; /* AlgorithmIdentifier */
210 static int hf_dap_bindIntKeyInfo; /* BindKeyInfo */
211 static int hf_dap_bindConfAlgorithm; /* SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier */
212 static int hf_dap_bindConfAlgorithm_item; /* AlgorithmIdentifier */
213 static int hf_dap_bindConfKeyInfo; /* BindKeyInfo */
214 static int hf_dap_token_data; /* TokenData */
215 static int hf_dap_algorithm_identifier; /* AlgorithmIdentifier */
216 static int hf_dap_unsignedDirectoryBindError; /* DirectoryBindErrorData */
217 static int hf_dap_signedDirectoryBindError; /* T_signedDirectoryBindError */
218 static int hf_dap_directoryBindError; /* DirectoryBindErrorData */
219 static int hf_dap_error; /* T_error */
220 static int hf_dap_serviceProblem; /* ServiceProblem */
221 static int hf_dap_securityProblem; /* SecurityProblem */
222 static int hf_dap_securityParameters; /* SecurityParameters */
223 static int hf_dap_object; /* Name */
224 static int hf_dap_selection; /* EntryInformationSelection */
225 static int hf_dap_modifyRightsRequest; /* BOOLEAN */
226 static int hf_dap_serviceControls; /* ServiceControls */
227 static int hf_dap_requestor; /* DistinguishedName */
228 static int hf_dap_operationProgress; /* OperationProgress */
229 static int hf_dap_aliasedRDNs; /* INTEGER */
230 static int hf_dap_criticalExtensions; /* BIT_STRING */
231 static int hf_dap_referenceType; /* ReferenceType */
232 static int hf_dap_entryOnly; /* BOOLEAN */
233 static int hf_dap_exclusions; /* Exclusions */
234 static int hf_dap_nameResolveOnMaster; /* BOOLEAN */
235 static int hf_dap_operationContexts; /* ContextSelection */
236 static int hf_dap_familyGrouping; /* FamilyGrouping */
237 static int hf_dap_rdnSequence; /* RDNSequence */
238 static int hf_dap_unsignedReadArgument; /* ReadArgumentData */
239 static int hf_dap_signedReadArgument; /* T_signedReadArgument */
240 static int hf_dap_readArgument; /* ReadArgumentData */
241 static int hf_dap_entry; /* EntryInformation */
242 static int hf_dap_modifyRights; /* ModifyRights */
243 static int hf_dap_performer; /* DistinguishedName */
244 static int hf_dap_aliasDereferenced; /* BOOLEAN */
245 static int hf_dap_notification; /* SEQUENCE_SIZE_1_MAX_OF_Attribute */
246 static int hf_dap_notification_item; /* Attribute */
247 static int hf_dap_unsignedReadResult; /* ReadResultData */
248 static int hf_dap_signedReadResult; /* T_signedReadResult */
249 static int hf_dap_readResult; /* ReadResultData */
250 static int hf_dap_ModifyRights_item; /* ModifyRights_item */
251 static int hf_dap_item; /* T_item */
252 static int hf_dap_item_entry; /* NULL */
253 static int hf_dap_attribute_type; /* AttributeType */
254 static int hf_dap_value_assertion; /* AttributeValueAssertion */
255 static int hf_dap_permission; /* T_permission */
256 static int hf_dap_purported; /* AttributeValueAssertion */
257 static int hf_dap_unsignedCompareArgument; /* CompareArgumentData */
258 static int hf_dap_signedCompareArgument; /* T_signedCompareArgument */
259 static int hf_dap_compareArgument; /* CompareArgumentData */
260 static int hf_dap_matched; /* BOOLEAN */
261 static int hf_dap_matchedSubtype; /* AttributeType */
262 static int hf_dap_unsignedCompareResult; /* CompareResultData */
263 static int hf_dap_signedCompareResult; /* T_signedCompareResult */
264 static int hf_dap_compareResult; /* CompareResultData */
265 static int hf_dap_invokeID; /* InvokeId */
266 static int hf_dap_unsignedAbandonArgument; /* AbandonArgumentData */
267 static int hf_dap_signedAbandonArgument; /* T_signedAbandonArgument */
268 static int hf_dap_abandonArgument; /* AbandonArgumentData */
269 static int hf_dap_null; /* NULL */
270 static int hf_dap_abandon_information; /* AbandonInformation */
271 static int hf_dap_unsignedAbandonResult; /* AbandonResultData */
272 static int hf_dap_signedAbandonResult; /* T_signedAbandonResult */
273 static int hf_dap_abandonResult; /* AbandonResultData */
274 static int hf_dap_pagedResults; /* PagedResultsRequest */
275 static int hf_dap_listFamily; /* BOOLEAN */
276 static int hf_dap_unsignedListArgument; /* ListArgumentData */
277 static int hf_dap_signedListArgument; /* T_signedListArgument */
278 static int hf_dap_listArgument; /* ListArgumentData */
279 static int hf_dap_listInfo; /* T_listInfo */
280 static int hf_dap_subordinates; /* T_subordinates */
281 static int hf_dap_subordinates_item; /* T_subordinates_item */
282 static int hf_dap_aliasEntry; /* BOOLEAN */
283 static int hf_dap_partialOutcomeQualifier; /* PartialOutcomeQualifier */
284 static int hf_dap_uncorrelatedListInfo; /* SET_OF_ListResult */
285 static int hf_dap_uncorrelatedListInfo_item; /* ListResult */
286 static int hf_dap_unsignedListResult; /* ListResultData */
287 static int hf_dap_signedListResult; /* T_signedListResult */
288 static int hf_dap_listResult; /* ListResultData */
289 static int hf_dap_limitProblem; /* LimitProblem */
290 static int hf_dap_unexplored; /* SET_SIZE_1_MAX_OF_ContinuationReference */
291 static int hf_dap_unexplored_item; /* ContinuationReference */
292 static int hf_dap_unavailableCriticalExtensions; /* BOOLEAN */
293 static int hf_dap_unknownErrors; /* T_unknownErrors */
294 static int hf_dap_unknownErrors_item; /* OBJECT_IDENTIFIER */
295 static int hf_dap_queryReference; /* OCTET_STRING */
296 static int hf_dap_overspecFilter; /* Filter */
297 static int hf_dap_entryCount; /* T_entryCount */
298 static int hf_dap_bestEstimate; /* INTEGER */
299 static int hf_dap_lowEstimate; /* INTEGER */
300 static int hf_dap_exact; /* INTEGER */
301 static int hf_dap_streamedResult; /* BOOLEAN */
302 static int hf_dap_baseObject; /* Name */
303 static int hf_dap_subset; /* T_subset */
304 static int hf_dap_filter; /* Filter */
305 static int hf_dap_searchAliases; /* BOOLEAN */
306 static int hf_dap_matchedValuesOnly; /* BOOLEAN */
307 static int hf_dap_extendedFilter; /* Filter */
308 static int hf_dap_checkOverspecified; /* BOOLEAN */
309 static int hf_dap_relaxation; /* RelaxationPolicy */
310 static int hf_dap_extendedArea; /* INTEGER */
311 static int hf_dap_hierarchySelections; /* HierarchySelections */
312 static int hf_dap_searchControlOptions; /* SearchControlOptions */
313 static int hf_dap_joinArguments; /* SEQUENCE_SIZE_1_MAX_OF_JoinArgument */
314 static int hf_dap_joinArguments_item; /* JoinArgument */
315 static int hf_dap_joinType; /* T_joinType */
316 static int hf_dap_unsignedSearchArgument; /* SearchArgumentData */
317 static int hf_dap_signedSearchArgument; /* T_signedSearchArgument */
318 static int hf_dap_searchArgument; /* SearchArgumentData */
319 static int hf_dap_joinBaseObject; /* Name */
320 static int hf_dap_domainLocalID; /* DomainLocalID */
321 static int hf_dap_joinSubset; /* T_joinSubset */
322 static int hf_dap_joinFilter; /* Filter */
323 static int hf_dap_joinAttributes; /* SEQUENCE_SIZE_1_MAX_OF_JoinAttPair */
324 static int hf_dap_joinAttributes_item; /* JoinAttPair */
325 static int hf_dap_joinSelection; /* EntryInformationSelection */
326 static int hf_dap_baseAtt; /* AttributeType */
327 static int hf_dap_joinAtt; /* AttributeType */
328 static int hf_dap_joinContext; /* SEQUENCE_SIZE_1_MAX_OF_JoinContextType */
329 static int hf_dap_joinContext_item; /* JoinContextType */
330 static int hf_dap_searchInfo; /* T_searchInfo */
331 static int hf_dap_entries; /* SET_OF_EntryInformation */
332 static int hf_dap_entries_item; /* EntryInformation */
333 static int hf_dap_altMatching; /* BOOLEAN */
334 static int hf_dap_uncorrelatedSearchInfo; /* SET_OF_SearchResult */
335 static int hf_dap_uncorrelatedSearchInfo_item; /* SearchResult */
336 static int hf_dap_unsignedSearchResult; /* SearchResultData */
337 static int hf_dap_signedSearchResult; /* T_signedSearchResult */
338 static int hf_dap_searchResult; /* SearchResultData */
339 static int hf_dap_add_entry; /* SET_OF_Attribute */
340 static int hf_dap_add_entry_item; /* Attribute */
341 static int hf_dap_targetSystem; /* AccessPoint */
342 static int hf_dap_unsignedAddEntryArgument; /* AddEntryArgumentData */
343 static int hf_dap_signedAddEntryArgument; /* T_signedAddEntryArgument */
344 static int hf_dap_addEntryArgument; /* AddEntryArgumentData */
345 static int hf_dap_add_entry_information; /* AddEntryInformation */
346 static int hf_dap_unsignedAddEntryResult; /* AddEntryResultData */
347 static int hf_dap_signedAddEntryResult; /* T_signedAddEntryResult */
348 static int hf_dap_addEntryResult; /* AddEntryResultData */
349 static int hf_dap_unsignedRemoveEntryArgument; /* RemoveEntryArgumentData */
350 static int hf_dap_signedRemoveEntryArgument; /* T_signedRemoveEntryArgument */
351 static int hf_dap_removeEntryArgument; /* RemoveEntryArgumentData */
352 static int hf_dap_remove_entry_information; /* RemoveEntryInformation */
353 static int hf_dap_unsignedRemoveEntryResult; /* RemoveEntryResultData */
354 static int hf_dap_signedRemoveEntryResult; /* T_signedRemoveEntryResult */
355 static int hf_dap_removeEntryResult; /* RemoveEntryResultData */
356 static int hf_dap_changes; /* SEQUENCE_OF_EntryModification */
357 static int hf_dap_changes_item; /* EntryModification */
358 static int hf_dap_unsignedModifyEntryArgument; /* ModifyEntryArgumentData */
359 static int hf_dap_signedModifyEntryArgument; /* T_signedModifyEntryArgument */
360 static int hf_dap_modifyEntryArgument; /* ModifyEntryArgumentData */
361 static int hf_dap_modify_entry_information; /* ModifyEntryInformation */
362 static int hf_dap_unsignedModifyEntryResult; /* ModifyEntryResultData */
363 static int hf_dap_signedModifyEntryResult; /* T_signedModifyEntryResult */
364 static int hf_dap_modifyEntryResult; /* ModifyEntryResultData */
365 static int hf_dap_addAttribute; /* Attribute */
366 static int hf_dap_removeAttribute; /* AttributeType */
367 static int hf_dap_addValues; /* Attribute */
368 static int hf_dap_removeValues; /* Attribute */
369 static int hf_dap_alterValues; /* AttributeTypeAndValue */
370 static int hf_dap_resetValue; /* AttributeType */
371 static int hf_dap_newRDN; /* RelativeDistinguishedName */
372 static int hf_dap_deleteOldRDN; /* BOOLEAN */
373 static int hf_dap_newSuperior; /* DistinguishedName */
374 static int hf_dap_modify_dn_information; /* ModifyDNInformation */
375 static int hf_dap_unsignedModifyDNResult; /* ModifyDNResultData */
376 static int hf_dap_signedModifyDNResult; /* T_signedModifyDNResult */
377 static int hf_dap_modifyDNResult; /* ModifyDNResultData */
378 static int hf_dap_unsignedAbandoned; /* AbandonedData */
379 static int hf_dap_signedAbandoned; /* T_signedAbandoned */
380 static int hf_dap_abandoned; /* AbandonedData */
381 static int hf_dap_abandon_failed_problem; /* AbandonProblem */
382 static int hf_dap_operation; /* InvokeId */
383 static int hf_dap_unsignedAbandonFailedError; /* AbandonFailedErrorData */
384 static int hf_dap_signedAbandonFailedError; /* T_signedAbandonFailedError */
385 static int hf_dap_abandonFailedError; /* AbandonFailedErrorData */
386 static int hf_dap_problems; /* T_problems */
387 static int hf_dap_problems_item; /* T_problems_item */
388 static int hf_dap_attribute_error_problem; /* AttributeProblem */
389 static int hf_dap_value; /* AttributeValue */
390 static int hf_dap_unsignedAttributeError; /* AttributeErrorData */
391 static int hf_dap_signedAttributeError; /* T_signedAttributeError */
392 static int hf_dap_attributeError; /* AttributeErrorData */
393 static int hf_dap_name_error_problem; /* NameProblem */
394 static int hf_dap_matched_name; /* Name */
395 static int hf_dap_unsignedNameError; /* NameErrorData */
396 static int hf_dap_signedNameError; /* T_signedNameError */
397 static int hf_dap_nameError; /* NameErrorData */
398 static int hf_dap_candidate; /* ContinuationReference */
399 static int hf_dap_unsignedReferral; /* ReferralData */
400 static int hf_dap_signedReferral; /* T_signedReferral */
401 static int hf_dap_referral; /* ReferralData */
402 static int hf_dap_security_error_problem; /* SecurityProblem */
403 static int hf_dap_spkmInfo; /* T_spkmInfo */
404 static int hf_dap_unsignedSecurityError; /* SecurityErrorData */
405 static int hf_dap_signedSecurityError; /* T_signedSecurityError */
406 static int hf_dap_securityErrorData; /* SecurityErrorData */
407 static int hf_dap_service_error_problem; /* ServiceProblem */
408 static int hf_dap_unsignedServiceError; /* ServiceErrorData */
409 static int hf_dap_signedServiceError; /* T_signedServiceError */
410 static int hf_dap_serviceError; /* ServiceErrorData */
411 static int hf_dap_update_error_problem; /* UpdateProblem */
412 static int hf_dap_attributeInfo; /* T_attributeInfo */
413 static int hf_dap_attributeInfo_item; /* T_attributeInfo_item */
414 static int hf_dap_unsignedUpdateError; /* UpdateErrorData */
415 static int hf_dap_signedUpdateError; /* T_signedUpdateError */
416 static int hf_dap_updateError; /* UpdateErrorData */
417 /* named bits */
418 static int hf_dap_ServiceControlOptions_preferChaining;
419 static int hf_dap_ServiceControlOptions_chainingProhibited;
420 static int hf_dap_ServiceControlOptions_localScope;
421 static int hf_dap_ServiceControlOptions_dontUseCopy;
422 static int hf_dap_ServiceControlOptions_dontDereferenceAliases;
423 static int hf_dap_ServiceControlOptions_subentries;
424 static int hf_dap_ServiceControlOptions_copyShallDo;
425 static int hf_dap_ServiceControlOptions_partialNameResolution;
426 static int hf_dap_ServiceControlOptions_manageDSAIT;
427 static int hf_dap_ServiceControlOptions_noSubtypeMatch;
428 static int hf_dap_ServiceControlOptions_noSubtypeSelection;
429 static int hf_dap_ServiceControlOptions_countFamily;
430 static int hf_dap_ServiceControlOptions_dontSelectFriends;
431 static int hf_dap_ServiceControlOptions_dontMatchFriends;
432 static int hf_dap_Versions_v1;
433 static int hf_dap_Versions_v2;
434 static int hf_dap_T_permission_add;
435 static int hf_dap_T_permission_remove;
436 static int hf_dap_T_permission_rename;
437 static int hf_dap_T_permission_move;
438 static int hf_dap_HierarchySelections_self;
439 static int hf_dap_HierarchySelections_children;
440 static int hf_dap_HierarchySelections_parent;
441 static int hf_dap_HierarchySelections_hierarchy;
442 static int hf_dap_HierarchySelections_top;
443 static int hf_dap_HierarchySelections_subtree;
444 static int hf_dap_HierarchySelections_siblings;
445 static int hf_dap_HierarchySelections_siblingChildren;
446 static int hf_dap_HierarchySelections_siblingSubtree;
447 static int hf_dap_HierarchySelections_all;
448 static int hf_dap_SearchControlOptions_searchAliases;
449 static int hf_dap_SearchControlOptions_matchedValuesOnly;
450 static int hf_dap_SearchControlOptions_checkOverspecified;
451 static int hf_dap_SearchControlOptions_performExactly;
452 static int hf_dap_SearchControlOptions_includeAllAreas;
453 static int hf_dap_SearchControlOptions_noSystemRelaxation;
454 static int hf_dap_SearchControlOptions_dnAttribute;
455 static int hf_dap_SearchControlOptions_matchOnResidualName;
456 static int hf_dap_SearchControlOptions_entryCount;
457 static int hf_dap_SearchControlOptions_useSubset;
458 static int hf_dap_SearchControlOptions_separateFamilyMembers;
459 static int hf_dap_SearchControlOptions_searchFamily;
461 /* Initialize the subtree pointers */
462 static int ett_dap;
463 static int ett_dap_ServiceControls;
464 static int ett_dap_T_manageDSAITPlaneRef;
465 static int ett_dap_ServiceControlOptions;
466 static int ett_dap_EntryInformationSelection;
467 static int ett_dap_T_attributes;
468 static int ett_dap_SET_OF_AttributeType;
469 static int ett_dap_T_extraAttributes;
470 static int ett_dap_SET_SIZE_1_MAX_OF_AttributeType;
471 static int ett_dap_ContextSelection;
472 static int ett_dap_SET_SIZE_1_MAX_OF_TypeAndContextAssertion;
473 static int ett_dap_TypeAndContextAssertion;
474 static int ett_dap_T_contextAssertions;
475 static int ett_dap_SEQUENCE_OF_ContextAssertion;
476 static int ett_dap_SET_OF_ContextAssertion;
477 static int ett_dap_FamilyReturn;
478 static int ett_dap_T_familySelect;
479 static int ett_dap_EntryInformation;
480 static int ett_dap_T_entry_information;
481 static int ett_dap_EntryInformationItem;
482 static int ett_dap_FamilyEntries;
483 static int ett_dap_SEQUENCE_OF_FamilyEntry;
484 static int ett_dap_FamilyEntry;
485 static int ett_dap_FamilyInformation;
486 static int ett_dap_T_family_information_item;
487 static int ett_dap_SEQUENCE_SIZE_1_MAX_OF_FamilyEntries;
488 static int ett_dap_Filter;
489 static int ett_dap_SetOfFilter;
490 static int ett_dap_FilterItem;
491 static int ett_dap_T_substrings;
492 static int ett_dap_T_strings;
493 static int ett_dap_T_strings_item;
494 static int ett_dap_MatchingRuleAssertion;
495 static int ett_dap_T_matchingRule;
496 static int ett_dap_PagedResultsRequest;
497 static int ett_dap_T_newRequest;
498 static int ett_dap_SEQUENCE_SIZE_1_MAX_OF_SortKey;
499 static int ett_dap_SortKey;
500 static int ett_dap_SecurityParameters;
501 static int ett_dap_Time;
502 static int ett_dap_DirectoryBindArgument;
503 static int ett_dap_Credentials;
504 static int ett_dap_SimpleCredentials;
505 static int ett_dap_T_validity;
506 static int ett_dap_T_time1;
507 static int ett_dap_T_time2;
508 static int ett_dap_T_password;
509 static int ett_dap_T_protected;
510 static int ett_dap_StrongCredentials;
511 static int ett_dap_SpkmCredentials;
512 static int ett_dap_SaslCredentials;
513 static int ett_dap_TokenData;
514 static int ett_dap_SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier;
515 static int ett_dap_Token;
516 static int ett_dap_Versions;
517 static int ett_dap_DirectoryBindError;
518 static int ett_dap_T_signedDirectoryBindError;
519 static int ett_dap_DirectoryBindErrorData;
520 static int ett_dap_T_error;
521 static int ett_dap_ReadArgumentData;
522 static int ett_dap_Name;
523 static int ett_dap_ReadArgument;
524 static int ett_dap_T_signedReadArgument;
525 static int ett_dap_ReadResultData;
526 static int ett_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute;
527 static int ett_dap_ReadResult;
528 static int ett_dap_T_signedReadResult;
529 static int ett_dap_ModifyRights;
530 static int ett_dap_ModifyRights_item;
531 static int ett_dap_T_item;
532 static int ett_dap_T_permission;
533 static int ett_dap_CompareArgumentData;
534 static int ett_dap_CompareArgument;
535 static int ett_dap_T_signedCompareArgument;
536 static int ett_dap_CompareResultData;
537 static int ett_dap_CompareResult;
538 static int ett_dap_T_signedCompareResult;
539 static int ett_dap_AbandonArgumentData;
540 static int ett_dap_AbandonArgument;
541 static int ett_dap_T_signedAbandonArgument;
542 static int ett_dap_AbandonResultData;
543 static int ett_dap_AbandonResult;
544 static int ett_dap_AbandonInformation;
545 static int ett_dap_T_signedAbandonResult;
546 static int ett_dap_ListArgumentData;
547 static int ett_dap_ListArgument;
548 static int ett_dap_T_signedListArgument;
549 static int ett_dap_ListResultData;
550 static int ett_dap_T_listInfo;
551 static int ett_dap_T_subordinates;
552 static int ett_dap_T_subordinates_item;
553 static int ett_dap_SET_OF_ListResult;
554 static int ett_dap_ListResult;
555 static int ett_dap_T_signedListResult;
556 static int ett_dap_PartialOutcomeQualifier;
557 static int ett_dap_SET_SIZE_1_MAX_OF_ContinuationReference;
558 static int ett_dap_T_unknownErrors;
559 static int ett_dap_T_entryCount;
560 static int ett_dap_SearchArgumentData;
561 static int ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinArgument;
562 static int ett_dap_SearchArgument;
563 static int ett_dap_T_signedSearchArgument;
564 static int ett_dap_HierarchySelections;
565 static int ett_dap_SearchControlOptions;
566 static int ett_dap_JoinArgument;
567 static int ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinAttPair;
568 static int ett_dap_JoinAttPair;
569 static int ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinContextType;
570 static int ett_dap_SearchResultData;
571 static int ett_dap_T_searchInfo;
572 static int ett_dap_SET_OF_EntryInformation;
573 static int ett_dap_SET_OF_SearchResult;
574 static int ett_dap_SearchResult;
575 static int ett_dap_T_signedSearchResult;
576 static int ett_dap_AddEntryArgumentData;
577 static int ett_dap_SET_OF_Attribute;
578 static int ett_dap_AddEntryArgument;
579 static int ett_dap_T_signedAddEntryArgument;
580 static int ett_dap_AddEntryResultData;
581 static int ett_dap_AddEntryResult;
582 static int ett_dap_AddEntryInformation;
583 static int ett_dap_T_signedAddEntryResult;
584 static int ett_dap_RemoveEntryArgumentData;
585 static int ett_dap_RemoveEntryArgument;
586 static int ett_dap_T_signedRemoveEntryArgument;
587 static int ett_dap_RemoveEntryResultData;
588 static int ett_dap_RemoveEntryResult;
589 static int ett_dap_RemoveEntryInformation;
590 static int ett_dap_T_signedRemoveEntryResult;
591 static int ett_dap_ModifyEntryArgumentData;
592 static int ett_dap_SEQUENCE_OF_EntryModification;
593 static int ett_dap_ModifyEntryArgument;
594 static int ett_dap_T_signedModifyEntryArgument;
595 static int ett_dap_ModifyEntryResultData;
596 static int ett_dap_ModifyEntryResult;
597 static int ett_dap_ModifyEntryInformation;
598 static int ett_dap_T_signedModifyEntryResult;
599 static int ett_dap_EntryModification;
600 static int ett_dap_ModifyDNArgument;
601 static int ett_dap_ModifyDNResultData;
602 static int ett_dap_ModifyDNResult;
603 static int ett_dap_ModifyDNInformation;
604 static int ett_dap_T_signedModifyDNResult;
605 static int ett_dap_AbandonedData;
606 static int ett_dap_Abandoned;
607 static int ett_dap_T_signedAbandoned;
608 static int ett_dap_AbandonFailedErrorData;
609 static int ett_dap_AbandonFailedError;
610 static int ett_dap_T_signedAbandonFailedError;
611 static int ett_dap_AttributeErrorData;
612 static int ett_dap_T_problems;
613 static int ett_dap_T_problems_item;
614 static int ett_dap_AttributeError;
615 static int ett_dap_T_signedAttributeError;
616 static int ett_dap_NameErrorData;
617 static int ett_dap_NameError;
618 static int ett_dap_T_signedNameError;
619 static int ett_dap_ReferralData;
620 static int ett_dap_Referral;
621 static int ett_dap_T_signedReferral;
622 static int ett_dap_SecurityErrorData;
623 static int ett_dap_SecurityError;
624 static int ett_dap_T_signedSecurityError;
625 static int ett_dap_ServiceErrorData;
626 static int ett_dap_ServiceError;
627 static int ett_dap_T_signedServiceError;
628 static int ett_dap_UpdateErrorData;
629 static int ett_dap_T_attributeInfo;
630 static int ett_dap_T_attributeInfo_item;
631 static int ett_dap_UpdateError;
632 static int ett_dap_T_signedUpdateError;
634 static expert_field ei_dap_anonymous;
636 #define id_opcode_read 1
637 #define id_opcode_compare 2
638 #define id_opcode_abandon 3
639 #define id_opcode_list 4
640 #define id_opcode_search 5
641 #define id_opcode_addEntry 6
642 #define id_opcode_removeEntry 7
643 #define id_opcode_modifyEntry 8
644 #define id_opcode_modifyDN 9
645 #define id_errcode_attributeError 1
646 #define id_errcode_nameError 2
647 #define id_errcode_serviceError 3
648 #define id_errcode_referral 4
649 #define id_errcode_abandoned 5
650 #define id_errcode_securityError 6
651 #define id_errcode_abandonFailed 7
652 #define id_errcode_updateError 8
653 #define id_errcode_dsaReferral 9
656 /* DAP OPERATIONS */
657 static const value_string dap_opr_code_string_vals[] = {
658 { op_ros_bind, "directoryBind" },
659 { id_opcode_read, "read" },
660 { id_opcode_compare, "compare" },
661 { id_opcode_abandon, "abandon" },
662 { id_opcode_list, "list" },
663 { id_opcode_search, "search" },
664 { id_opcode_addEntry, "addEntry" },
665 { id_opcode_removeEntry, "removeEntry" },
666 { id_opcode_modifyEntry, "modifyEntry" },
667 { id_opcode_modifyDN, "modifyDN" },
668 { 0, NULL }
672 /* DAP ERRORS */
673 static const value_string dap_err_code_string_vals[] = {
674 { err_ros_bind, "directoryBindError" },
675 { id_errcode_abandoned, "abandoned" },
676 { id_errcode_abandonFailed, "abandonFailed" },
677 { id_errcode_attributeError, "attributeError" },
678 { id_errcode_nameError, "nameError" },
679 { id_errcode_referral, "referral" },
680 { id_errcode_securityError, "securityError" },
681 { id_errcode_serviceError, "serviceError" },
682 { id_errcode_updateError, "updateError" },
683 { 0, NULL }
687 /*--- Cyclic dependencies ---*/
689 /* FamilyEntries -> FamilyEntries/familyEntries -> FamilyEntry -> FamilyEntry/family-info -> FamilyEntries */
690 static int dissect_dap_FamilyEntries(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
692 /* Filter -> SetOfFilter -> Filter */
693 /* Filter -> Filter */
694 /*int dissect_dap_Filter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);*/
696 /* ListResultData -> ListResultData/uncorrelatedListInfo -> ListResult -> ListResultData */
697 /* ListResultData -> ListResultData/uncorrelatedListInfo -> ListResult -> ListResult/signedListResult -> ListResultData */
698 static int dissect_dap_ListResultData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
700 /* SearchResultData -> SearchResultData/uncorrelatedSearchInfo -> SearchResult -> SearchResultData */
701 /* SearchResultData -> SearchResultData/uncorrelatedSearchInfo -> SearchResult -> SearchResult/signedSearchResult -> SearchResultData */
702 static int dissect_dap_SearchResultData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
706 const value_string dap_FamilyGrouping_vals[] = {
707 { 1, "entryOnly" },
708 { 2, "compoundEntry" },
709 { 3, "strands" },
710 { 4, "multiStrand" },
711 { 0, NULL }
716 dissect_dap_FamilyGrouping(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
717 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
718 NULL);
720 return offset;
724 static int * const ServiceControlOptions_bits[] = {
725 &hf_dap_ServiceControlOptions_preferChaining,
726 &hf_dap_ServiceControlOptions_chainingProhibited,
727 &hf_dap_ServiceControlOptions_localScope,
728 &hf_dap_ServiceControlOptions_dontUseCopy,
729 &hf_dap_ServiceControlOptions_dontDereferenceAliases,
730 &hf_dap_ServiceControlOptions_subentries,
731 &hf_dap_ServiceControlOptions_copyShallDo,
732 &hf_dap_ServiceControlOptions_partialNameResolution,
733 &hf_dap_ServiceControlOptions_manageDSAIT,
734 &hf_dap_ServiceControlOptions_noSubtypeMatch,
735 &hf_dap_ServiceControlOptions_noSubtypeSelection,
736 &hf_dap_ServiceControlOptions_countFamily,
737 &hf_dap_ServiceControlOptions_dontSelectFriends,
738 &hf_dap_ServiceControlOptions_dontMatchFriends,
739 NULL
743 dissect_dap_ServiceControlOptions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
744 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
745 ServiceControlOptions_bits, 14, hf_index, ett_dap_ServiceControlOptions,
746 NULL);
748 return offset;
752 static const value_string dap_T_priority_vals[] = {
753 { 0, "low" },
754 { 1, "medium" },
755 { 2, "high" },
756 { 0, NULL }
760 static int
761 dissect_dap_T_priority(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
762 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
763 NULL);
765 return offset;
770 static int
771 dissect_dap_INTEGER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
772 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
773 NULL);
775 return offset;
779 static const value_string dap_T_scopeOfReferral_vals[] = {
780 { 0, "dmd" },
781 { 1, "country" },
782 { 0, NULL }
786 static int
787 dissect_dap_T_scopeOfReferral(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
788 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
789 NULL);
791 return offset;
795 static const ber_choice_t Name_choice[] = {
796 { 0, &hf_dap_rdnSequence , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_RDNSequence },
797 { 0, NULL, 0, 0, 0, NULL }
800 static int
801 dissect_dap_Name(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
802 const char *dn;
804 offset = dissect_ber_choice(actx, tree, tvb, offset,
805 Name_choice, hf_index, ett_dap_Name,
806 NULL);
809 dn = x509if_get_last_dn();
810 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", (dn && *dn) ? dn : "(root)");
814 return offset;
818 static const ber_sequence_t T_manageDSAITPlaneRef_sequence[] = {
819 { &hf_dap_dsaName , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
820 { &hf_dap_agreementID , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_disp_AgreementID },
821 { NULL, 0, 0, 0, NULL }
824 static int
825 dissect_dap_T_manageDSAITPlaneRef(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
826 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
827 T_manageDSAITPlaneRef_sequence, hf_index, ett_dap_T_manageDSAITPlaneRef);
829 return offset;
834 static int
835 dissect_dap_OBJECT_IDENTIFIER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
836 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
838 return offset;
842 static const ber_sequence_t ServiceControls_set[] = {
843 { &hf_dap_options , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControlOptions },
844 { &hf_dap_priority , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_T_priority },
845 { &hf_dap_timeLimit , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
846 { &hf_dap_sizeLimit , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
847 { &hf_dap_scopeOfReferral , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_T_scopeOfReferral },
848 { &hf_dap_attributeSizeLimit, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
849 { &hf_dap_manageDSAITPlaneRef, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_dap_T_manageDSAITPlaneRef },
850 { &hf_dap_serviceType , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_dap_OBJECT_IDENTIFIER },
851 { &hf_dap_userClass , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
852 { NULL, 0, 0, 0, NULL }
855 static int
856 dissect_dap_ServiceControls(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
857 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
858 ServiceControls_set, hf_index, ett_dap_ServiceControls);
860 return offset;
865 static int
866 dissect_dap_NULL(bool 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 = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
869 return offset;
873 static const ber_sequence_t SET_OF_AttributeType_set_of[1] = {
874 { &hf_dap_select_item , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
877 static int
878 dissect_dap_SET_OF_AttributeType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
879 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
880 SET_OF_AttributeType_set_of, hf_index, ett_dap_SET_OF_AttributeType);
882 return offset;
886 static const value_string dap_T_attributes_vals[] = {
887 { 0, "allUserAttributes" },
888 { 1, "select" },
889 { 0, NULL }
892 static const ber_choice_t T_attributes_choice[] = {
893 { 0, &hf_dap_allUserAttributes, BER_CLASS_CON, 0, 0, dissect_dap_NULL },
894 { 1, &hf_dap_select , BER_CLASS_CON, 1, 0, dissect_dap_SET_OF_AttributeType },
895 { 0, NULL, 0, 0, 0, NULL }
898 static int
899 dissect_dap_T_attributes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
900 offset = dissect_ber_choice(actx, tree, tvb, offset,
901 T_attributes_choice, hf_index, ett_dap_T_attributes,
902 NULL);
904 return offset;
908 static const value_string dap_T_infoTypes_vals[] = {
909 { 0, "attributeTypesOnly" },
910 { 1, "attributeTypesAndValues" },
911 { 0, NULL }
915 static int
916 dissect_dap_T_infoTypes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
917 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
918 NULL);
920 return offset;
924 static const ber_sequence_t SET_SIZE_1_MAX_OF_AttributeType_set_of[1] = {
925 { &hf_dap_extraSelect_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
928 static int
929 dissect_dap_SET_SIZE_1_MAX_OF_AttributeType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
930 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
931 SET_SIZE_1_MAX_OF_AttributeType_set_of, hf_index, ett_dap_SET_SIZE_1_MAX_OF_AttributeType);
933 return offset;
937 static const value_string dap_T_extraAttributes_vals[] = {
938 { 3, "allOperationalAttributes" },
939 { 4, "select" },
940 { 0, NULL }
943 static const ber_choice_t T_extraAttributes_choice[] = {
944 { 3, &hf_dap_allOperationalAttributes, BER_CLASS_CON, 3, 0, dissect_dap_NULL },
945 { 4, &hf_dap_extraSelect , BER_CLASS_CON, 4, 0, dissect_dap_SET_SIZE_1_MAX_OF_AttributeType },
946 { 0, NULL, 0, 0, 0, NULL }
949 static int
950 dissect_dap_T_extraAttributes(bool 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 = dissect_ber_choice(actx, tree, tvb, offset,
952 T_extraAttributes_choice, hf_index, ett_dap_T_extraAttributes,
953 NULL);
955 return offset;
959 static const ber_sequence_t SEQUENCE_OF_ContextAssertion_sequence_of[1] = {
960 { &hf_dap_preference_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ContextAssertion },
963 static int
964 dissect_dap_SEQUENCE_OF_ContextAssertion(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
965 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
966 SEQUENCE_OF_ContextAssertion_sequence_of, hf_index, ett_dap_SEQUENCE_OF_ContextAssertion);
968 return offset;
972 static const ber_sequence_t SET_OF_ContextAssertion_set_of[1] = {
973 { &hf_dap_all_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ContextAssertion },
976 static int
977 dissect_dap_SET_OF_ContextAssertion(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
978 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
979 SET_OF_ContextAssertion_set_of, hf_index, ett_dap_SET_OF_ContextAssertion);
981 return offset;
985 static const value_string dap_T_contextAssertions_vals[] = {
986 { 0, "preference" },
987 { 1, "all" },
988 { 0, NULL }
991 static const ber_choice_t T_contextAssertions_choice[] = {
992 { 0, &hf_dap_preference , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_SEQUENCE_OF_ContextAssertion },
993 { 1, &hf_dap_all , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_SET_OF_ContextAssertion },
994 { 0, NULL, 0, 0, 0, NULL }
997 static int
998 dissect_dap_T_contextAssertions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
999 offset = dissect_ber_choice(actx, tree, tvb, offset,
1000 T_contextAssertions_choice, hf_index, ett_dap_T_contextAssertions,
1001 NULL);
1003 return offset;
1007 static const ber_sequence_t TypeAndContextAssertion_sequence[] = {
1008 { &hf_dap_type , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
1009 { &hf_dap_contextAssertions, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_T_contextAssertions },
1010 { NULL, 0, 0, 0, NULL }
1013 static int
1014 dissect_dap_TypeAndContextAssertion(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1015 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1016 TypeAndContextAssertion_sequence, hf_index, ett_dap_TypeAndContextAssertion);
1018 return offset;
1022 static const ber_sequence_t SET_SIZE_1_MAX_OF_TypeAndContextAssertion_set_of[1] = {
1023 { &hf_dap_selectedContexts_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_TypeAndContextAssertion },
1026 static int
1027 dissect_dap_SET_SIZE_1_MAX_OF_TypeAndContextAssertion(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1028 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1029 SET_SIZE_1_MAX_OF_TypeAndContextAssertion_set_of, hf_index, ett_dap_SET_SIZE_1_MAX_OF_TypeAndContextAssertion);
1031 return offset;
1035 const value_string dap_ContextSelection_vals[] = {
1036 { 0, "allContexts" },
1037 { 1, "selectedContexts" },
1038 { 0, NULL }
1041 static const ber_choice_t ContextSelection_choice[] = {
1042 { 0, &hf_dap_allContexts , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_dap_NULL },
1043 { 1, &hf_dap_selectedContexts, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_SET_SIZE_1_MAX_OF_TypeAndContextAssertion },
1044 { 0, NULL, 0, 0, 0, NULL }
1048 dissect_dap_ContextSelection(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1049 offset = dissect_ber_choice(actx, tree, tvb, offset,
1050 ContextSelection_choice, hf_index, ett_dap_ContextSelection,
1051 NULL);
1053 return offset;
1058 static int
1059 dissect_dap_BOOLEAN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1060 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
1062 return offset;
1066 static const value_string dap_T_memberSelect_vals[] = {
1067 { 1, "contributingEntriesOnly" },
1068 { 2, "participatingEntriesOnly" },
1069 { 3, "compoundEntry" },
1070 { 0, NULL }
1074 static int
1075 dissect_dap_T_memberSelect(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1076 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1077 NULL);
1079 return offset;
1083 static const ber_sequence_t T_familySelect_sequence_of[1] = {
1084 { &hf_dap_familySelect_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_dap_OBJECT_IDENTIFIER },
1087 static int
1088 dissect_dap_T_familySelect(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1089 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1090 T_familySelect_sequence_of, hf_index, ett_dap_T_familySelect);
1092 return offset;
1096 static const ber_sequence_t FamilyReturn_sequence[] = {
1097 { &hf_dap_memberSelect , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_dap_T_memberSelect },
1098 { &hf_dap_familySelect , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_T_familySelect },
1099 { NULL, 0, 0, 0, NULL }
1103 dissect_dap_FamilyReturn(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1104 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1105 FamilyReturn_sequence, hf_index, ett_dap_FamilyReturn);
1107 return offset;
1111 static const ber_sequence_t EntryInformationSelection_set[] = {
1112 { &hf_dap_attributes , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_T_attributes },
1113 { &hf_dap_infoTypes , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_T_infoTypes },
1114 { &hf_dap_extraAttributes , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_T_extraAttributes },
1115 { &hf_dap_contextSelection, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_ContextSelection },
1116 { &hf_dap_returnContexts , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_BOOLEAN },
1117 { &hf_dap_familyReturn , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_FamilyReturn },
1118 { NULL, 0, 0, 0, NULL }
1121 static int
1122 dissect_dap_EntryInformationSelection(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1123 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1124 EntryInformationSelection_set, hf_index, ett_dap_EntryInformationSelection);
1126 return offset;
1130 static const value_string dap_EntryInformationItem_vals[] = {
1131 { 0, "attributeType" },
1132 { 1, "attribute" },
1133 { 0, NULL }
1136 static const ber_choice_t EntryInformationItem_choice[] = {
1137 { 0, &hf_dap_attributeType , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
1138 { 1, &hf_dap_attribute , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
1139 { 0, NULL, 0, 0, 0, NULL }
1142 static int
1143 dissect_dap_EntryInformationItem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1144 offset = dissect_ber_choice(actx, tree, tvb, offset,
1145 EntryInformationItem_choice, hf_index, ett_dap_EntryInformationItem,
1146 NULL);
1148 return offset;
1152 static const ber_sequence_t T_entry_information_set_of[1] = {
1153 { &hf_dap_entry_information_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_EntryInformationItem },
1156 static int
1157 dissect_dap_T_entry_information(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1158 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1159 T_entry_information_set_of, hf_index, ett_dap_T_entry_information);
1161 return offset;
1165 static const ber_sequence_t EntryInformation_sequence[] = {
1166 { &hf_dap_name , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
1167 { &hf_dap_fromEntry , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_BOOLEAN },
1168 { &hf_dap_entry_information, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_T_entry_information },
1169 { &hf_dap_incompleteEntry , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
1170 { &hf_dap_partialName , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
1171 { &hf_dap_derivedEntry , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
1172 { NULL, 0, 0, 0, NULL }
1175 static int
1176 dissect_dap_EntryInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1177 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1178 EntryInformation_sequence, hf_index, ett_dap_EntryInformation);
1180 return offset;
1184 static const value_string dap_T_family_information_item_vals[] = {
1185 { 0, "attributeType" },
1186 { 1, "attribute" },
1187 { 0, NULL }
1190 static const ber_choice_t T_family_information_item_choice[] = {
1191 { 0, &hf_dap_attributeType , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
1192 { 1, &hf_dap_attribute , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
1193 { 0, NULL, 0, 0, 0, NULL }
1196 static int
1197 dissect_dap_T_family_information_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1198 offset = dissect_ber_choice(actx, tree, tvb, offset,
1199 T_family_information_item_choice, hf_index, ett_dap_T_family_information_item,
1200 NULL);
1202 return offset;
1206 static const ber_sequence_t FamilyInformation_sequence_of[1] = {
1207 { &hf_dap_family_information_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_T_family_information_item },
1210 static int
1211 dissect_dap_FamilyInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1212 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1213 FamilyInformation_sequence_of, hf_index, ett_dap_FamilyInformation);
1215 return offset;
1219 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_FamilyEntries_sequence_of[1] = {
1220 { &hf_dap_family_info_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_FamilyEntries },
1223 static int
1224 dissect_dap_SEQUENCE_SIZE_1_MAX_OF_FamilyEntries(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1225 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1226 SEQUENCE_SIZE_1_MAX_OF_FamilyEntries_sequence_of, hf_index, ett_dap_SEQUENCE_SIZE_1_MAX_OF_FamilyEntries);
1228 return offset;
1232 static const ber_sequence_t FamilyEntry_sequence[] = {
1233 { &hf_dap_rdn , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_RelativeDistinguishedName },
1234 { &hf_dap_family_information, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_FamilyInformation },
1235 { &hf_dap_family_info , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_FamilyEntries },
1236 { NULL, 0, 0, 0, NULL }
1239 static int
1240 dissect_dap_FamilyEntry(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1241 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1242 FamilyEntry_sequence, hf_index, ett_dap_FamilyEntry);
1244 return offset;
1248 static const ber_sequence_t SEQUENCE_OF_FamilyEntry_sequence_of[1] = {
1249 { &hf_dap_familyEntries_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_FamilyEntry },
1252 static int
1253 dissect_dap_SEQUENCE_OF_FamilyEntry(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1254 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1255 SEQUENCE_OF_FamilyEntry_sequence_of, hf_index, ett_dap_SEQUENCE_OF_FamilyEntry);
1257 return offset;
1261 static const ber_sequence_t FamilyEntries_sequence[] = {
1262 { &hf_dap_family_class , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_dap_OBJECT_IDENTIFIER },
1263 { &hf_dap_familyEntries , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_SEQUENCE_OF_FamilyEntry },
1264 { NULL, 0, 0, 0, NULL }
1267 static int
1268 dissect_dap_FamilyEntries(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1269 // FamilyEntries -> FamilyEntries/familyEntries -> FamilyEntry -> FamilyEntry/family-info -> FamilyEntries
1270 actx->pinfo->dissection_depth += 4;
1271 increment_dissection_depth(actx->pinfo);
1272 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1273 FamilyEntries_sequence, hf_index, ett_dap_FamilyEntries);
1275 actx->pinfo->dissection_depth -= 4;
1276 decrement_dissection_depth(actx->pinfo);
1277 return offset;
1282 static int
1283 dissect_dap_T_initial(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1284 proto_item *it;
1285 it = proto_tree_add_item(tree, hf_index, tvb, offset, -1, ENC_BIG_ENDIAN);
1286 proto_item_append_text(it," XXX: Not yet implemented!");
1289 return offset;
1294 static int
1295 dissect_dap_T_any(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1296 /* XXX: not yet implemented */
1299 return offset;
1304 static int
1305 dissect_dap_T_final(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1306 /* XXX: not yet implemented */
1309 return offset;
1313 static const value_string dap_T_strings_item_vals[] = {
1314 { 0, "initial" },
1315 { 1, "any" },
1316 { 2, "final" },
1317 { 3, "control" },
1318 { 0, NULL }
1321 static const ber_choice_t T_strings_item_choice[] = {
1322 { 0, &hf_dap_initial , BER_CLASS_CON, 0, 0, dissect_dap_T_initial },
1323 { 1, &hf_dap_any , BER_CLASS_CON, 1, 0, dissect_dap_T_any },
1324 { 2, &hf_dap_final , BER_CLASS_CON, 2, 0, dissect_dap_T_final },
1325 { 3, &hf_dap_control , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
1326 { 0, NULL, 0, 0, 0, NULL }
1329 static int
1330 dissect_dap_T_strings_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1331 offset = dissect_ber_choice(actx, tree, tvb, offset,
1332 T_strings_item_choice, hf_index, ett_dap_T_strings_item,
1333 NULL);
1335 return offset;
1339 static const ber_sequence_t T_strings_sequence_of[1] = {
1340 { &hf_dap_strings_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_T_strings_item },
1343 static int
1344 dissect_dap_T_strings(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1345 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1346 T_strings_sequence_of, hf_index, ett_dap_T_strings);
1348 return offset;
1352 static const ber_sequence_t T_substrings_sequence[] = {
1353 { &hf_dap_sunstringType , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_dap_OBJECT_IDENTIFIER },
1354 { &hf_dap_strings , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_strings },
1355 { NULL, 0, 0, 0, NULL }
1358 static int
1359 dissect_dap_T_substrings(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1360 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1361 T_substrings_sequence, hf_index, ett_dap_T_substrings);
1363 return offset;
1367 static const ber_sequence_t T_matchingRule_set_of[1] = {
1368 { &hf_dap_matchingRule_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_dap_OBJECT_IDENTIFIER },
1371 static int
1372 dissect_dap_T_matchingRule(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1373 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1374 T_matchingRule_set_of, hf_index, ett_dap_T_matchingRule);
1376 return offset;
1381 static int
1382 dissect_dap_T_matchValue(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1383 /* XXX: not yet implemented */
1386 return offset;
1390 static const ber_sequence_t MatchingRuleAssertion_sequence[] = {
1391 { &hf_dap_matchingRule , BER_CLASS_CON, 1, 0, dissect_dap_T_matchingRule },
1392 { &hf_dap_type , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_AttributeType },
1393 { &hf_dap_matchValue , BER_CLASS_CON, 3, 0, dissect_dap_T_matchValue },
1394 { &hf_dap_dnAttributes , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
1395 { NULL, 0, 0, 0, NULL }
1398 static int
1399 dissect_dap_MatchingRuleAssertion(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1400 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1401 MatchingRuleAssertion_sequence, hf_index, ett_dap_MatchingRuleAssertion);
1403 return offset;
1407 static const value_string dap_FilterItem_vals[] = {
1408 { 0, "equality" },
1409 { 1, "substrings" },
1410 { 2, "greaterOrEqual" },
1411 { 3, "lessOrEqual" },
1412 { 4, "present" },
1413 { 5, "approximateMatch" },
1414 { 6, "extensibleMatch" },
1415 { 7, "contextPresent" },
1416 { 0, NULL }
1419 static const ber_choice_t FilterItem_choice[] = {
1420 { 0, &hf_dap_equality , BER_CLASS_CON, 0, 0, dissect_x509if_AttributeValueAssertion },
1421 { 1, &hf_dap_substrings , BER_CLASS_CON, 1, 0, dissect_dap_T_substrings },
1422 { 2, &hf_dap_greaterOrEqual , BER_CLASS_CON, 2, 0, dissect_x509if_AttributeValueAssertion },
1423 { 3, &hf_dap_lessOrEqual , BER_CLASS_CON, 3, 0, dissect_x509if_AttributeValueAssertion },
1424 { 4, &hf_dap_present , BER_CLASS_CON, 4, 0, dissect_x509if_AttributeType },
1425 { 5, &hf_dap_approximateMatch, BER_CLASS_CON, 5, 0, dissect_x509if_AttributeValueAssertion },
1426 { 6, &hf_dap_extensibleMatch , BER_CLASS_CON, 6, 0, dissect_dap_MatchingRuleAssertion },
1427 { 7, &hf_dap_contextPresent , BER_CLASS_CON, 7, 0, dissect_x509if_AttributeTypeAssertion },
1428 { 0, NULL, 0, 0, 0, NULL }
1431 static int
1432 dissect_dap_FilterItem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1433 offset = dissect_ber_choice(actx, tree, tvb, offset,
1434 FilterItem_choice, hf_index, ett_dap_FilterItem,
1435 NULL);
1437 return offset;
1441 static const ber_sequence_t SetOfFilter_set_of[1] = {
1442 { &hf_dap_SetOfFilter_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_Filter },
1445 static int
1446 dissect_dap_SetOfFilter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1447 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1448 SetOfFilter_set_of, hf_index, ett_dap_SetOfFilter);
1450 return offset;
1454 const value_string dap_Filter_vals[] = {
1455 { 0, "item" },
1456 { 1, "and" },
1457 { 2, "or" },
1458 { 3, "not" },
1459 { 0, NULL }
1462 static const ber_choice_t Filter_choice[] = {
1463 { 0, &hf_dap_filter_item , BER_CLASS_CON, 0, 0, dissect_dap_FilterItem },
1464 { 1, &hf_dap_and , BER_CLASS_CON, 1, 0, dissect_dap_SetOfFilter },
1465 { 2, &hf_dap_or , BER_CLASS_CON, 2, 0, dissect_dap_SetOfFilter },
1466 { 3, &hf_dap_not , BER_CLASS_CON, 3, 0, dissect_dap_Filter },
1467 { 0, NULL, 0, 0, 0, NULL }
1471 dissect_dap_Filter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1472 // Filter -> SetOfFilter -> Filter
1473 actx->pinfo->dissection_depth += 2;
1474 increment_dissection_depth(actx->pinfo);
1475 offset = dissect_ber_choice(actx, tree, tvb, offset,
1476 Filter_choice, hf_index, ett_dap_Filter,
1477 NULL);
1479 actx->pinfo->dissection_depth -= 2;
1480 decrement_dissection_depth(actx->pinfo);
1481 return offset;
1485 static const ber_sequence_t SortKey_sequence[] = {
1486 { &hf_dap_type , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
1487 { &hf_dap_orderingRule , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_OBJECT_IDENTIFIER },
1488 { NULL, 0, 0, 0, NULL }
1491 static int
1492 dissect_dap_SortKey(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1493 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1494 SortKey_sequence, hf_index, ett_dap_SortKey);
1496 return offset;
1500 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_SortKey_sequence_of[1] = {
1501 { &hf_dap_sortKeys_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_SortKey },
1504 static int
1505 dissect_dap_SEQUENCE_SIZE_1_MAX_OF_SortKey(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1506 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1507 SEQUENCE_SIZE_1_MAX_OF_SortKey_sequence_of, hf_index, ett_dap_SEQUENCE_SIZE_1_MAX_OF_SortKey);
1509 return offset;
1513 static const ber_sequence_t T_newRequest_sequence[] = {
1514 { &hf_dap_pageSize , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_dap_INTEGER },
1515 { &hf_dap_sortKeys , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_SortKey },
1516 { &hf_dap_reverse , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
1517 { &hf_dap_unmerged , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
1518 { NULL, 0, 0, 0, NULL }
1521 static int
1522 dissect_dap_T_newRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1523 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1524 T_newRequest_sequence, hf_index, ett_dap_T_newRequest);
1526 return offset;
1531 static int
1532 dissect_dap_T_pagedResultsQueryReference(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1533 tvbuff_t *out_tvb;
1534 int i;
1535 int len;
1537 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1538 &out_tvb);
1541 if(out_tvb) {
1542 /* now see if we can add a string representation */
1543 len = tvb_reported_length(out_tvb);
1544 if(tvb_ascii_isprint(out_tvb, 0, len)) {
1545 if(actx->created_item) {
1547 proto_item_append_text(actx->created_item," (");
1548 for(i=0; i<len; i++)
1549 proto_item_append_text(actx->created_item,"%c",tvb_get_uint8(out_tvb,i));
1550 proto_item_append_text(actx->created_item,")");
1556 return offset;
1560 static const value_string dap_PagedResultsRequest_vals[] = {
1561 { 0, "newRequest" },
1562 { 1, "queryReference" },
1563 { 0, NULL }
1566 static const ber_choice_t PagedResultsRequest_choice[] = {
1567 { 0, &hf_dap_newRequest , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_newRequest },
1568 { 1, &hf_dap_pagedResultsQueryReference, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_T_pagedResultsQueryReference },
1569 { 0, NULL, 0, 0, 0, NULL }
1572 static int
1573 dissect_dap_PagedResultsRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1574 offset = dissect_ber_choice(actx, tree, tvb, offset,
1575 PagedResultsRequest_choice, hf_index, ett_dap_PagedResultsRequest,
1576 NULL);
1578 return offset;
1583 static int
1584 dissect_dap_UTCTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1585 offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index, NULL, NULL);
1587 return offset;
1592 static int
1593 dissect_dap_GeneralizedTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1594 offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
1596 return offset;
1600 static const value_string dap_Time_vals[] = {
1601 { 0, "utcTime" },
1602 { 1, "generalizedTime" },
1603 { 0, NULL }
1606 static const ber_choice_t Time_choice[] = {
1607 { 0, &hf_dap_utcTime , BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_dap_UTCTime },
1608 { 1, &hf_dap_generalizedTime , BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_dap_GeneralizedTime },
1609 { 0, NULL, 0, 0, 0, NULL }
1612 static int
1613 dissect_dap_Time(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1614 offset = dissect_ber_choice(actx, tree, tvb, offset,
1615 Time_choice, hf_index, ett_dap_Time,
1616 NULL);
1618 return offset;
1623 static int
1624 dissect_dap_BIT_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1625 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1626 NULL, 0, hf_index, -1,
1627 NULL);
1629 return offset;
1633 static const value_string dap_ProtectionRequest_vals[] = {
1634 { 0, "none" },
1635 { 1, "signed" },
1636 { 2, "encrypted" },
1637 { 3, "signed-encrypted" },
1638 { 0, NULL }
1642 static int
1643 dissect_dap_ProtectionRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1644 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1645 NULL);
1647 return offset;
1651 static const value_string dap_ErrorProtectionRequest_vals[] = {
1652 { 0, "none" },
1653 { 1, "signed" },
1654 { 2, "encrypted" },
1655 { 3, "signed-encrypted" },
1656 { 0, NULL }
1660 static int
1661 dissect_dap_ErrorProtectionRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1662 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1663 NULL);
1665 return offset;
1669 static const ber_sequence_t SecurityParameters_set[] = {
1670 { &hf_dap_certification_path, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509af_CertificationPath },
1671 { &hf_dap_distinguished_name, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
1672 { &hf_dap_time , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_Time },
1673 { &hf_dap_random , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
1674 { &hf_dap_target , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_ProtectionRequest },
1675 { &hf_dap_response , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
1676 { &hf_dap_operationCode , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_ros_Code },
1677 { &hf_dap_attributeCertificationPath, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_x509af_AttributeCertificationPath },
1678 { &hf_dap_errorProtection , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_dap_ErrorProtectionRequest },
1679 { &hf_dap_errorCode , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_ros_Code },
1680 { NULL, 0, 0, 0, NULL }
1684 dissect_dap_SecurityParameters(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1685 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1686 SecurityParameters_set, hf_index, ett_dap_SecurityParameters);
1688 return offset;
1692 static const value_string dap_T_time1_vals[] = {
1693 { 0, "utc" },
1694 { 1, "gt" },
1695 { 0, NULL }
1698 static const ber_choice_t T_time1_choice[] = {
1699 { 0, &hf_dap_utc , BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_dap_UTCTime },
1700 { 1, &hf_dap_gt , BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_dap_GeneralizedTime },
1701 { 0, NULL, 0, 0, 0, NULL }
1704 static int
1705 dissect_dap_T_time1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1706 offset = dissect_ber_choice(actx, tree, tvb, offset,
1707 T_time1_choice, hf_index, ett_dap_T_time1,
1708 NULL);
1710 return offset;
1714 static const value_string dap_T_time2_vals[] = {
1715 { 0, "utc" },
1716 { 1, "gt" },
1717 { 0, NULL }
1720 static const ber_choice_t T_time2_choice[] = {
1721 { 0, &hf_dap_utc , BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_dap_UTCTime },
1722 { 1, &hf_dap_gt , BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_dap_GeneralizedTime },
1723 { 0, NULL, 0, 0, 0, NULL }
1726 static int
1727 dissect_dap_T_time2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1728 offset = dissect_ber_choice(actx, tree, tvb, offset,
1729 T_time2_choice, hf_index, ett_dap_T_time2,
1730 NULL);
1732 return offset;
1736 static const ber_sequence_t T_validity_set[] = {
1737 { &hf_dap_time1 , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dap_T_time1 },
1738 { &hf_dap_time2 , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_T_time2 },
1739 { &hf_dap_random1 , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
1740 { &hf_dap_random2 , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
1741 { NULL, 0, 0, 0, NULL }
1744 static int
1745 dissect_dap_T_validity(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1746 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1747 T_validity_set, hf_index, ett_dap_T_validity);
1749 return offset;
1754 static int
1755 dissect_dap_OCTET_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1756 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1757 NULL);
1759 return offset;
1763 static const ber_sequence_t T_protected_sequence[] = {
1764 { &hf_dap_protectedPassword, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_OCTET_STRING },
1765 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1766 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
1767 { NULL, 0, 0, 0, NULL }
1770 static int
1771 dissect_dap_T_protected(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1772 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1773 T_protected_sequence, hf_index, ett_dap_T_protected);
1775 return offset;
1779 static const value_string dap_T_password_vals[] = {
1780 { 0, "unprotected" },
1781 { 1, "protected" },
1782 { 0, NULL }
1785 static const ber_choice_t T_password_choice[] = {
1786 { 0, &hf_dap_unprotected , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_OCTET_STRING },
1787 { 1, &hf_dap_protected , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_protected },
1788 { 0, NULL, 0, 0, 0, NULL }
1791 static int
1792 dissect_dap_T_password(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1793 offset = dissect_ber_choice(actx, tree, tvb, offset,
1794 T_password_choice, hf_index, ett_dap_T_password,
1795 NULL);
1797 return offset;
1801 static const ber_sequence_t SimpleCredentials_sequence[] = {
1802 { &hf_dap_distinguished_name, BER_CLASS_CON, 0, 0, dissect_x509if_DistinguishedName },
1803 { &hf_dap_validity , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_T_validity },
1804 { &hf_dap_password , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_T_password },
1805 { NULL, 0, 0, 0, NULL }
1808 static int
1809 dissect_dap_SimpleCredentials(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1811 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1812 SimpleCredentials_sequence, hf_index, ett_dap_SimpleCredentials);
1815 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", x509if_get_last_dn());
1821 return offset;
1825 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier_sequence_of[1] = {
1826 { &hf_dap_bindIntAlgorithm_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1829 static int
1830 dissect_dap_SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1831 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1832 SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier_sequence_of, hf_index, ett_dap_SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier);
1834 return offset;
1839 static int
1840 dissect_dap_BindKeyInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1841 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1842 NULL, 0, hf_index, -1,
1843 NULL);
1845 return offset;
1849 static const ber_sequence_t TokenData_sequence[] = {
1850 { &hf_dap_algorithm , BER_CLASS_CON, 0, 0, dissect_x509af_AlgorithmIdentifier },
1851 { &hf_dap_distinguished_name, BER_CLASS_CON, 1, 0, dissect_x509if_DistinguishedName },
1852 { &hf_dap_utctime , BER_CLASS_CON, 2, 0, dissect_dap_UTCTime },
1853 { &hf_dap_random , BER_CLASS_CON, 3, 0, dissect_dap_BIT_STRING },
1854 { &hf_dap_response , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
1855 { &hf_dap_bindIntAlgorithm, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier },
1856 { &hf_dap_bindIntKeyInfo , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_dap_BindKeyInfo },
1857 { &hf_dap_bindConfAlgorithm, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier },
1858 { &hf_dap_bindConfKeyInfo , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_dap_BindKeyInfo },
1859 { NULL, 0, 0, 0, NULL }
1862 static int
1863 dissect_dap_TokenData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1864 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1865 TokenData_sequence, hf_index, ett_dap_TokenData);
1867 return offset;
1871 static const ber_sequence_t Token_sequence[] = {
1872 { &hf_dap_token_data , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_TokenData },
1873 { &hf_dap_algorithm_identifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1874 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
1875 { NULL, 0, 0, 0, NULL }
1878 static int
1879 dissect_dap_Token(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1880 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1881 Token_sequence, hf_index, ett_dap_Token);
1883 return offset;
1887 static const ber_sequence_t StrongCredentials_set[] = {
1888 { &hf_dap_certification_path, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509af_CertificationPath },
1889 { &hf_dap_bind_token , BER_CLASS_CON, 1, 0, dissect_dap_Token },
1890 { &hf_dap_distinguished_name, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
1891 { &hf_dap_attributeCertificationPath, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509af_AttributeCertificationPath },
1892 { NULL, 0, 0, 0, NULL }
1895 static int
1896 dissect_dap_StrongCredentials(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1897 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1898 StrongCredentials_set, hf_index, ett_dap_StrongCredentials);
1900 return offset;
1905 static int
1906 dissect_dap_EXTERNAL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1907 offset = dissect_ber_external_type(implicit_tag, tree, tvb, offset, actx, hf_index, NULL);
1909 return offset;
1914 static int
1915 dissect_dap_T_req(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1916 /* XXX: not yet implemented */
1919 return offset;
1924 static int
1925 dissect_dap_T_rep(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1926 /* XXX: not yet implemented */
1929 return offset;
1933 static const value_string dap_SpkmCredentials_vals[] = {
1934 { 0, "req" },
1935 { 1, "rep" },
1936 { 0, NULL }
1939 static const ber_choice_t SpkmCredentials_choice[] = {
1940 { 0, &hf_dap_req , BER_CLASS_CON, 0, 0, dissect_dap_T_req },
1941 { 1, &hf_dap_rep , BER_CLASS_CON, 1, 0, dissect_dap_T_rep },
1942 { 0, NULL, 0, 0, 0, NULL }
1945 static int
1946 dissect_dap_SpkmCredentials(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1947 offset = dissect_ber_choice(actx, tree, tvb, offset,
1948 SpkmCredentials_choice, hf_index, ett_dap_SpkmCredentials,
1949 NULL);
1951 return offset;
1955 static const ber_sequence_t SaslCredentials_sequence[] = {
1956 { &hf_dap_mechanism , BER_CLASS_CON, 0, 0, dissect_x509sat_DirectoryString },
1957 { &hf_dap_saslCredentials , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_OCTET_STRING },
1958 { &hf_dap_saslAbort , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
1959 { NULL, 0, 0, 0, NULL }
1962 static int
1963 dissect_dap_SaslCredentials(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1964 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1965 SaslCredentials_sequence, hf_index, ett_dap_SaslCredentials);
1967 return offset;
1971 static const value_string dap_Credentials_vals[] = {
1972 { 0, "simple" },
1973 { 1, "strong" },
1974 { 2, "externalProcedure" },
1975 { 3, "spkm" },
1976 { 4, "sasl" },
1977 { 0, NULL }
1980 static const ber_choice_t Credentials_choice[] = {
1981 { 0, &hf_dap_simple , BER_CLASS_CON, 0, 0, dissect_dap_SimpleCredentials },
1982 { 1, &hf_dap_strong , BER_CLASS_CON, 1, 0, dissect_dap_StrongCredentials },
1983 { 2, &hf_dap_externalProcedure, BER_CLASS_CON, 2, 0, dissect_dap_EXTERNAL },
1984 { 3, &hf_dap_spkm , BER_CLASS_CON, 3, 0, dissect_dap_SpkmCredentials },
1985 { 4, &hf_dap_sasl , BER_CLASS_CON, 4, 0, dissect_dap_SaslCredentials },
1986 { 0, NULL, 0, 0, 0, NULL }
1989 static int
1990 dissect_dap_Credentials(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1991 offset = dissect_ber_choice(actx, tree, tvb, offset,
1992 Credentials_choice, hf_index, ett_dap_Credentials,
1993 NULL);
1995 return offset;
1999 static int * const Versions_bits[] = {
2000 &hf_dap_Versions_v1,
2001 &hf_dap_Versions_v2,
2002 NULL
2005 static int
2006 dissect_dap_Versions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2007 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2008 Versions_bits, 2, hf_index, ett_dap_Versions,
2009 NULL);
2011 return offset;
2015 static const ber_sequence_t DirectoryBindArgument_set[] = {
2016 { &hf_dap_credentials , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_Credentials },
2017 { &hf_dap_versions , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_Versions },
2018 { NULL, 0, 0, 0, NULL }
2022 dissect_dap_DirectoryBindArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2024 uint32_t len;
2026 /* check and see if this is an empty set */
2027 dissect_ber_length(actx->pinfo, tree, tvb, offset+1, &len, NULL);
2029 if(len == 0) {
2030 /* it's an empty set - i.e anonymous (assuming version is DEFAULTed) */
2031 proto_tree_add_expert(tree, actx->pinfo, &ei_dap_anonymous, tvb, offset, -1);
2033 col_append_str(actx->pinfo->cinfo, COL_INFO, " anonymous");
2036 /* do the default thing */
2038 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2039 DirectoryBindArgument_set, hf_index, ett_dap_DirectoryBindArgument);
2043 return offset;
2048 static int
2049 dissect_dap_DirectoryBindResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2050 offset = dissect_dap_DirectoryBindArgument(implicit_tag, tvb, offset, actx, tree, hf_index);
2052 return offset;
2056 static const value_string dap_ServiceProblem_vals[] = {
2057 { 1, "busy" },
2058 { 2, "unavailable" },
2059 { 3, "unwillingToPerform" },
2060 { 4, "chainingRequired" },
2061 { 5, "unableToProceed" },
2062 { 6, "invalidReference" },
2063 { 7, "timeLimitExceeded" },
2064 { 8, "administrativeLimitExceeded" },
2065 { 9, "loopDetected" },
2066 { 10, "unavailableCriticalExtension" },
2067 { 11, "outOfScope" },
2068 { 12, "ditError" },
2069 { 13, "invalidQueryReference" },
2070 { 14, "requestedServiceNotAvailable" },
2071 { 15, "unsupportedMatchingUse" },
2072 { 16, "ambiguousKeyAttributes" },
2073 { 17, "saslBindInProgress" },
2074 { 0, NULL }
2078 static int
2079 dissect_dap_ServiceProblem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2080 uint32_t problem;
2082 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2083 &problem);
2086 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", val_to_str(problem, dap_ServiceProblem_vals, "ServiceProblem(%d)"));
2089 return offset;
2093 const value_string dap_SecurityProblem_vals[] = {
2094 { 1, "inappropriateAuthentication" },
2095 { 2, "invalidCredentials" },
2096 { 3, "insufficientAccessRights" },
2097 { 4, "invalidSignature" },
2098 { 5, "protectionRequired" },
2099 { 6, "noInformation" },
2100 { 7, "blockedCredentials" },
2101 { 8, "invalidQOPMatch" },
2102 { 9, "spkmError" },
2103 { 0, NULL }
2108 dissect_dap_SecurityProblem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2109 uint32_t problem;
2111 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2112 &problem);
2115 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", val_to_str(problem, dap_SecurityProblem_vals, "SecurityProblem(%d)"));
2118 return offset;
2122 static const value_string dap_T_error_vals[] = {
2123 { 1, "serviceError" },
2124 { 2, "securityError" },
2125 { 0, NULL }
2128 static const ber_choice_t T_error_choice[] = {
2129 { 1, &hf_dap_serviceProblem , BER_CLASS_CON, 1, 0, dissect_dap_ServiceProblem },
2130 { 2, &hf_dap_securityProblem , BER_CLASS_CON, 2, 0, dissect_dap_SecurityProblem },
2131 { 0, NULL, 0, 0, 0, NULL }
2134 static int
2135 dissect_dap_T_error(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2136 offset = dissect_ber_choice(actx, tree, tvb, offset,
2137 T_error_choice, hf_index, ett_dap_T_error,
2138 NULL);
2140 return offset;
2144 static const ber_sequence_t DirectoryBindErrorData_set[] = {
2145 { &hf_dap_versions , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dap_Versions },
2146 { &hf_dap_error , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_T_error },
2147 { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
2148 { NULL, 0, 0, 0, NULL }
2151 static int
2152 dissect_dap_DirectoryBindErrorData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2153 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2154 DirectoryBindErrorData_set, hf_index, ett_dap_DirectoryBindErrorData);
2156 return offset;
2160 static const ber_sequence_t T_signedDirectoryBindError_sequence[] = {
2161 { &hf_dap_directoryBindError, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_DirectoryBindErrorData },
2162 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
2163 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
2164 { NULL, 0, 0, 0, NULL }
2167 static int
2168 dissect_dap_T_signedDirectoryBindError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2169 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2170 T_signedDirectoryBindError_sequence, hf_index, ett_dap_T_signedDirectoryBindError);
2172 return offset;
2176 const value_string dap_DirectoryBindError_vals[] = {
2177 { 0, "unsignedDirectoryBindError" },
2178 { 1, "signedDirectoryBindError" },
2179 { 0, NULL }
2182 static const ber_choice_t DirectoryBindError_choice[] = {
2183 { 0, &hf_dap_unsignedDirectoryBindError, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_DirectoryBindErrorData },
2184 { 1, &hf_dap_signedDirectoryBindError, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedDirectoryBindError },
2185 { 0, NULL, 0, 0, 0, NULL }
2189 dissect_dap_DirectoryBindError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2190 offset = dissect_ber_choice(actx, tree, tvb, offset,
2191 DirectoryBindError_choice, hf_index, ett_dap_DirectoryBindError,
2192 NULL);
2194 return offset;
2198 static const ber_sequence_t ReadArgumentData_set[] = {
2199 { &hf_dap_object , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
2200 { &hf_dap_selection , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_EntryInformationSelection },
2201 { &hf_dap_modifyRightsRequest, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2202 { &hf_dap_serviceControls , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControls },
2203 { &hf_dap_securityParameters, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
2204 { &hf_dap_requestor , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
2205 { &hf_dap_operationProgress, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dsp_OperationProgress },
2206 { &hf_dap_aliasedRDNs , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
2207 { &hf_dap_criticalExtensions, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
2208 { &hf_dap_referenceType , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_dsp_ReferenceType },
2209 { &hf_dap_entryOnly , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2210 { &hf_dap_exclusions , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL, dissect_dsp_Exclusions },
2211 { &hf_dap_nameResolveOnMaster, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2212 { &hf_dap_operationContexts, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_ContextSelection },
2213 { &hf_dap_familyGrouping , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
2214 { NULL, 0, 0, 0, NULL }
2217 static int
2218 dissect_dap_ReadArgumentData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2219 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2220 ReadArgumentData_set, hf_index, ett_dap_ReadArgumentData);
2222 return offset;
2226 static const ber_sequence_t T_signedReadArgument_sequence[] = {
2227 { &hf_dap_readArgument , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ReadArgumentData },
2228 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
2229 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
2230 { NULL, 0, 0, 0, NULL }
2233 static int
2234 dissect_dap_T_signedReadArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2235 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2236 T_signedReadArgument_sequence, hf_index, ett_dap_T_signedReadArgument);
2238 return offset;
2242 const value_string dap_ReadArgument_vals[] = {
2243 { 0, "unsignedReadArgument" },
2244 { 1, "signedReadArgument" },
2245 { 0, NULL }
2248 static const ber_choice_t ReadArgument_choice[] = {
2249 { 0, &hf_dap_unsignedReadArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ReadArgumentData },
2250 { 1, &hf_dap_signedReadArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedReadArgument },
2251 { 0, NULL, 0, 0, 0, NULL }
2255 dissect_dap_ReadArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2256 offset = dissect_ber_choice(actx, tree, tvb, offset,
2257 ReadArgument_choice, hf_index, ett_dap_ReadArgument,
2258 NULL);
2260 return offset;
2264 static const value_string dap_T_item_vals[] = {
2265 { 0, "entry" },
2266 { 1, "attribute" },
2267 { 2, "value" },
2268 { 0, NULL }
2271 static const ber_choice_t T_item_choice[] = {
2272 { 0, &hf_dap_item_entry , BER_CLASS_CON, 0, 0, dissect_dap_NULL },
2273 { 1, &hf_dap_attribute_type , BER_CLASS_CON, 1, 0, dissect_x509if_AttributeType },
2274 { 2, &hf_dap_value_assertion , BER_CLASS_CON, 2, 0, dissect_x509if_AttributeValueAssertion },
2275 { 0, NULL, 0, 0, 0, NULL }
2278 static int
2279 dissect_dap_T_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2280 offset = dissect_ber_choice(actx, tree, tvb, offset,
2281 T_item_choice, hf_index, ett_dap_T_item,
2282 NULL);
2284 return offset;
2288 static int * const T_permission_bits[] = {
2289 &hf_dap_T_permission_add,
2290 &hf_dap_T_permission_remove,
2291 &hf_dap_T_permission_rename,
2292 &hf_dap_T_permission_move,
2293 NULL
2296 static int
2297 dissect_dap_T_permission(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2298 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2299 T_permission_bits, 4, hf_index, ett_dap_T_permission,
2300 NULL);
2302 return offset;
2306 static const ber_sequence_t ModifyRights_item_sequence[] = {
2307 { &hf_dap_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_T_item },
2308 { &hf_dap_permission , BER_CLASS_CON, 3, 0, dissect_dap_T_permission },
2309 { NULL, 0, 0, 0, NULL }
2312 static int
2313 dissect_dap_ModifyRights_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2314 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2315 ModifyRights_item_sequence, hf_index, ett_dap_ModifyRights_item);
2317 return offset;
2321 static const ber_sequence_t ModifyRights_set_of[1] = {
2322 { &hf_dap_ModifyRights_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_ModifyRights_item },
2325 static int
2326 dissect_dap_ModifyRights(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2327 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2328 ModifyRights_set_of, hf_index, ett_dap_ModifyRights);
2330 return offset;
2334 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_Attribute_sequence_of[1] = {
2335 { &hf_dap_notification_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
2338 static int
2339 dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2340 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2341 SEQUENCE_SIZE_1_MAX_OF_Attribute_sequence_of, hf_index, ett_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute);
2343 return offset;
2347 static const ber_sequence_t ReadResultData_set[] = {
2348 { &hf_dap_entry , BER_CLASS_CON, 0, 0, dissect_dap_EntryInformation },
2349 { &hf_dap_modifyRights , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_ModifyRights },
2350 { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
2351 { &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
2352 { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2353 { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
2354 { NULL, 0, 0, 0, NULL }
2357 static int
2358 dissect_dap_ReadResultData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2359 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2360 ReadResultData_set, hf_index, ett_dap_ReadResultData);
2362 return offset;
2366 static const ber_sequence_t T_signedReadResult_sequence[] = {
2367 { &hf_dap_readResult , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ReadResultData },
2368 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
2369 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
2370 { NULL, 0, 0, 0, NULL }
2373 static int
2374 dissect_dap_T_signedReadResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2375 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2376 T_signedReadResult_sequence, hf_index, ett_dap_T_signedReadResult);
2378 return offset;
2382 const value_string dap_ReadResult_vals[] = {
2383 { 0, "unsignedReadResult" },
2384 { 1, "signedReadResult" },
2385 { 0, NULL }
2388 static const ber_choice_t ReadResult_choice[] = {
2389 { 0, &hf_dap_unsignedReadResult, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ReadResultData },
2390 { 1, &hf_dap_signedReadResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedReadResult },
2391 { 0, NULL, 0, 0, 0, NULL }
2395 dissect_dap_ReadResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2396 offset = dissect_ber_choice(actx, tree, tvb, offset,
2397 ReadResult_choice, hf_index, ett_dap_ReadResult,
2398 NULL);
2400 return offset;
2404 static const ber_sequence_t CompareArgumentData_set[] = {
2405 { &hf_dap_object , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
2406 { &hf_dap_purported , BER_CLASS_CON, 1, 0, dissect_x509if_AttributeValueAssertion },
2407 { &hf_dap_serviceControls , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControls },
2408 { &hf_dap_securityParameters, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
2409 { &hf_dap_requestor , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
2410 { &hf_dap_operationProgress, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dsp_OperationProgress },
2411 { &hf_dap_aliasedRDNs , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
2412 { &hf_dap_criticalExtensions, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
2413 { &hf_dap_referenceType , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_dsp_ReferenceType },
2414 { &hf_dap_entryOnly , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2415 { &hf_dap_exclusions , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL, dissect_dsp_Exclusions },
2416 { &hf_dap_nameResolveOnMaster, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2417 { &hf_dap_operationContexts, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_ContextSelection },
2418 { &hf_dap_familyGrouping , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
2419 { NULL, 0, 0, 0, NULL }
2422 static int
2423 dissect_dap_CompareArgumentData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2424 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2425 CompareArgumentData_set, hf_index, ett_dap_CompareArgumentData);
2427 return offset;
2431 static const ber_sequence_t T_signedCompareArgument_sequence[] = {
2432 { &hf_dap_compareArgument , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_CompareArgumentData },
2433 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
2434 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
2435 { NULL, 0, 0, 0, NULL }
2438 static int
2439 dissect_dap_T_signedCompareArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2440 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2441 T_signedCompareArgument_sequence, hf_index, ett_dap_T_signedCompareArgument);
2443 return offset;
2447 const value_string dap_CompareArgument_vals[] = {
2448 { 0, "unsignedCompareArgument" },
2449 { 1, "signedCompareArgument" },
2450 { 0, NULL }
2453 static const ber_choice_t CompareArgument_choice[] = {
2454 { 0, &hf_dap_unsignedCompareArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_CompareArgumentData },
2455 { 1, &hf_dap_signedCompareArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedCompareArgument },
2456 { 0, NULL, 0, 0, 0, NULL }
2460 dissect_dap_CompareArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2461 offset = dissect_ber_choice(actx, tree, tvb, offset,
2462 CompareArgument_choice, hf_index, ett_dap_CompareArgument,
2463 NULL);
2465 return offset;
2469 static const ber_sequence_t CompareResultData_set[] = {
2470 { &hf_dap_name , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
2471 { &hf_dap_matched , BER_CLASS_CON, 0, 0, dissect_dap_BOOLEAN },
2472 { &hf_dap_fromEntry , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2473 { &hf_dap_matchedSubtype , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_AttributeType },
2474 { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
2475 { &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
2476 { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2477 { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
2478 { NULL, 0, 0, 0, NULL }
2481 static int
2482 dissect_dap_CompareResultData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2483 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2484 CompareResultData_set, hf_index, ett_dap_CompareResultData);
2486 return offset;
2490 static const ber_sequence_t T_signedCompareResult_sequence[] = {
2491 { &hf_dap_compareResult , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_CompareResultData },
2492 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
2493 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
2494 { NULL, 0, 0, 0, NULL }
2497 static int
2498 dissect_dap_T_signedCompareResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2499 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2500 T_signedCompareResult_sequence, hf_index, ett_dap_T_signedCompareResult);
2502 return offset;
2506 const value_string dap_CompareResult_vals[] = {
2507 { 0, "unsignedCompareResult" },
2508 { 1, "signedCompareResult" },
2509 { 0, NULL }
2512 static const ber_choice_t CompareResult_choice[] = {
2513 { 0, &hf_dap_unsignedCompareResult, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_CompareResultData },
2514 { 1, &hf_dap_signedCompareResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedCompareResult },
2515 { 0, NULL, 0, 0, 0, NULL }
2519 dissect_dap_CompareResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2520 offset = dissect_ber_choice(actx, tree, tvb, offset,
2521 CompareResult_choice, hf_index, ett_dap_CompareResult,
2522 NULL);
2524 return offset;
2528 static const ber_sequence_t AbandonArgumentData_sequence[] = {
2529 { &hf_dap_invokeID , BER_CLASS_CON, 0, 0, dissect_ros_InvokeId },
2530 { NULL, 0, 0, 0, NULL }
2533 static int
2534 dissect_dap_AbandonArgumentData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2535 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2536 AbandonArgumentData_sequence, hf_index, ett_dap_AbandonArgumentData);
2538 return offset;
2542 static const ber_sequence_t T_signedAbandonArgument_sequence[] = {
2543 { &hf_dap_abandonArgument , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_AbandonArgumentData },
2544 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
2545 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
2546 { NULL, 0, 0, 0, NULL }
2549 static int
2550 dissect_dap_T_signedAbandonArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2551 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2552 T_signedAbandonArgument_sequence, hf_index, ett_dap_T_signedAbandonArgument);
2554 return offset;
2558 const value_string dap_AbandonArgument_vals[] = {
2559 { 0, "unsignedAbandonArgument" },
2560 { 1, "signedAbandonArgument" },
2561 { 0, NULL }
2564 static const ber_choice_t AbandonArgument_choice[] = {
2565 { 0, &hf_dap_unsignedAbandonArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_AbandonArgumentData },
2566 { 1, &hf_dap_signedAbandonArgument, BER_CLASS_CON, 0, 0, dissect_dap_T_signedAbandonArgument },
2567 { 0, NULL, 0, 0, 0, NULL }
2571 dissect_dap_AbandonArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2572 offset = dissect_ber_choice(actx, tree, tvb, offset,
2573 AbandonArgument_choice, hf_index, ett_dap_AbandonArgument,
2574 NULL);
2576 return offset;
2580 static const ber_sequence_t AbandonResultData_sequence[] = {
2581 { &hf_dap_invokeID , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ros_InvokeId },
2582 { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
2583 { &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
2584 { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2585 { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
2586 { NULL, 0, 0, 0, NULL }
2589 static int
2590 dissect_dap_AbandonResultData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2591 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2592 AbandonResultData_sequence, hf_index, ett_dap_AbandonResultData);
2594 return offset;
2598 static const ber_sequence_t T_signedAbandonResult_sequence[] = {
2599 { &hf_dap_abandonResult , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_AbandonResultData },
2600 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
2601 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
2602 { NULL, 0, 0, 0, NULL }
2605 static int
2606 dissect_dap_T_signedAbandonResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2607 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2608 T_signedAbandonResult_sequence, hf_index, ett_dap_T_signedAbandonResult);
2610 return offset;
2614 static const value_string dap_AbandonInformation_vals[] = {
2615 { 0, "unsignedAbandonResult" },
2616 { 1, "signedAbandonResult" },
2617 { 0, NULL }
2620 static const ber_choice_t AbandonInformation_choice[] = {
2621 { 0, &hf_dap_unsignedAbandonResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_AbandonResultData },
2622 { 1, &hf_dap_signedAbandonResult, BER_CLASS_CON, 0, 0, dissect_dap_T_signedAbandonResult },
2623 { 0, NULL, 0, 0, 0, NULL }
2626 static int
2627 dissect_dap_AbandonInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2628 offset = dissect_ber_choice(actx, tree, tvb, offset,
2629 AbandonInformation_choice, hf_index, ett_dap_AbandonInformation,
2630 NULL);
2632 return offset;
2636 const value_string dap_AbandonResult_vals[] = {
2637 { 0, "null" },
2638 { 1, "information" },
2639 { 0, NULL }
2642 static const ber_choice_t AbandonResult_choice[] = {
2643 { 0, &hf_dap_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_dap_NULL },
2644 { 1, &hf_dap_abandon_information, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_dap_AbandonInformation },
2645 { 0, NULL, 0, 0, 0, NULL }
2649 dissect_dap_AbandonResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2650 offset = dissect_ber_choice(actx, tree, tvb, offset,
2651 AbandonResult_choice, hf_index, ett_dap_AbandonResult,
2652 NULL);
2654 return offset;
2658 static const ber_sequence_t ListArgumentData_set[] = {
2659 { &hf_dap_object , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
2660 { &hf_dap_pagedResults , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_PagedResultsRequest },
2661 { &hf_dap_listFamily , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2662 { &hf_dap_serviceControls , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControls },
2663 { &hf_dap_securityParameters, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
2664 { &hf_dap_requestor , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
2665 { &hf_dap_operationProgress, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dsp_OperationProgress },
2666 { &hf_dap_aliasedRDNs , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
2667 { &hf_dap_criticalExtensions, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
2668 { &hf_dap_referenceType , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_dsp_ReferenceType },
2669 { &hf_dap_entryOnly , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2670 { &hf_dap_exclusions , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL, dissect_dsp_Exclusions },
2671 { &hf_dap_nameResolveOnMaster, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2672 { &hf_dap_operationContexts, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_ContextSelection },
2673 { &hf_dap_familyGrouping , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
2674 { NULL, 0, 0, 0, NULL }
2677 static int
2678 dissect_dap_ListArgumentData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2679 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2680 ListArgumentData_set, hf_index, ett_dap_ListArgumentData);
2682 return offset;
2686 static const ber_sequence_t T_signedListArgument_sequence[] = {
2687 { &hf_dap_listArgument , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ListArgumentData },
2688 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
2689 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
2690 { NULL, 0, 0, 0, NULL }
2693 static int
2694 dissect_dap_T_signedListArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2695 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2696 T_signedListArgument_sequence, hf_index, ett_dap_T_signedListArgument);
2698 return offset;
2702 const value_string dap_ListArgument_vals[] = {
2703 { 0, "unsignedListArgument" },
2704 { 1, "signedListArgument" },
2705 { 0, NULL }
2708 static const ber_choice_t ListArgument_choice[] = {
2709 { 0, &hf_dap_unsignedListArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ListArgumentData },
2710 { 1, &hf_dap_signedListArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedListArgument },
2711 { 0, NULL, 0, 0, 0, NULL }
2715 dissect_dap_ListArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2716 offset = dissect_ber_choice(actx, tree, tvb, offset,
2717 ListArgument_choice, hf_index, ett_dap_ListArgument,
2718 NULL);
2720 return offset;
2724 static const ber_sequence_t T_subordinates_item_sequence[] = {
2725 { &hf_dap_rdn , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_RelativeDistinguishedName },
2726 { &hf_dap_aliasEntry , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2727 { &hf_dap_fromEntry , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2728 { NULL, 0, 0, 0, NULL }
2731 static int
2732 dissect_dap_T_subordinates_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2733 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2734 T_subordinates_item_sequence, hf_index, ett_dap_T_subordinates_item);
2736 return offset;
2740 static const ber_sequence_t T_subordinates_set_of[1] = {
2741 { &hf_dap_subordinates_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_subordinates_item },
2744 static int
2745 dissect_dap_T_subordinates(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2746 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2747 T_subordinates_set_of, hf_index, ett_dap_T_subordinates);
2749 return offset;
2753 static const value_string dap_LimitProblem_vals[] = {
2754 { 0, "timeLimitExceeded" },
2755 { 1, "sizeLimitExceeded" },
2756 { 2, "administrativeLimitExceeded" },
2757 { 0, NULL }
2761 static int
2762 dissect_dap_LimitProblem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2763 uint32_t problem;
2765 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2766 &problem);
2769 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", val_to_str(problem, dap_LimitProblem_vals, "LimitProblem(%d)"));
2772 return offset;
2776 static const ber_sequence_t SET_SIZE_1_MAX_OF_ContinuationReference_set_of[1] = {
2777 { &hf_dap_unexplored_item , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ContinuationReference },
2780 static int
2781 dissect_dap_SET_SIZE_1_MAX_OF_ContinuationReference(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2782 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2783 SET_SIZE_1_MAX_OF_ContinuationReference_set_of, hf_index, ett_dap_SET_SIZE_1_MAX_OF_ContinuationReference);
2785 return offset;
2789 static const ber_sequence_t T_unknownErrors_set_of[1] = {
2790 { &hf_dap_unknownErrors_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_dap_OBJECT_IDENTIFIER },
2793 static int
2794 dissect_dap_T_unknownErrors(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2795 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2796 T_unknownErrors_set_of, hf_index, ett_dap_T_unknownErrors);
2798 return offset;
2802 static const value_string dap_T_entryCount_vals[] = {
2803 { 7, "bestEstimate" },
2804 { 8, "lowEstimate" },
2805 { 9, "exact" },
2806 { 0, NULL }
2809 static const ber_choice_t T_entryCount_choice[] = {
2810 { 7, &hf_dap_bestEstimate , BER_CLASS_CON, 7, 0, dissect_dap_INTEGER },
2811 { 8, &hf_dap_lowEstimate , BER_CLASS_CON, 8, 0, dissect_dap_INTEGER },
2812 { 9, &hf_dap_exact , BER_CLASS_CON, 9, 0, dissect_dap_INTEGER },
2813 { 0, NULL, 0, 0, 0, NULL }
2816 static int
2817 dissect_dap_T_entryCount(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2818 offset = dissect_ber_choice(actx, tree, tvb, offset,
2819 T_entryCount_choice, hf_index, ett_dap_T_entryCount,
2820 NULL);
2822 return offset;
2826 static const ber_sequence_t PartialOutcomeQualifier_set[] = {
2827 { &hf_dap_limitProblem , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dap_LimitProblem },
2828 { &hf_dap_unexplored , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_SET_SIZE_1_MAX_OF_ContinuationReference },
2829 { &hf_dap_unavailableCriticalExtensions, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2830 { &hf_dap_unknownErrors , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dap_T_unknownErrors },
2831 { &hf_dap_queryReference , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_OCTET_STRING },
2832 { &hf_dap_overspecFilter , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_Filter },
2833 { &hf_dap_notification , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
2834 { &hf_dap_entryCount , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_T_entryCount },
2835 { &hf_dap_streamedResult , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2836 { NULL, 0, 0, 0, NULL }
2839 static int
2840 dissect_dap_PartialOutcomeQualifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2841 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2842 PartialOutcomeQualifier_set, hf_index, ett_dap_PartialOutcomeQualifier);
2844 return offset;
2848 static const ber_sequence_t T_listInfo_set[] = {
2849 { &hf_dap_name , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
2850 { &hf_dap_subordinates , BER_CLASS_CON, 1, 0, dissect_dap_T_subordinates },
2851 { &hf_dap_partialOutcomeQualifier, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_PartialOutcomeQualifier },
2852 { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
2853 { &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
2854 { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2855 { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
2856 { NULL, 0, 0, 0, NULL }
2859 static int
2860 dissect_dap_T_listInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2861 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2862 T_listInfo_set, hf_index, ett_dap_T_listInfo);
2864 return offset;
2868 static const ber_sequence_t T_signedListResult_sequence[] = {
2869 { &hf_dap_listResult , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_ListResultData },
2870 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
2871 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
2872 { NULL, 0, 0, 0, NULL }
2875 static int
2876 dissect_dap_T_signedListResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2877 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2878 T_signedListResult_sequence, hf_index, ett_dap_T_signedListResult);
2880 return offset;
2884 const value_string dap_ListResult_vals[] = {
2885 { 0, "unsignedListResult" },
2886 { 1, "signedListResult" },
2887 { 0, NULL }
2890 static const ber_choice_t ListResult_choice[] = {
2891 { 0, &hf_dap_unsignedListResult, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_dap_ListResultData },
2892 { 1, &hf_dap_signedListResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedListResult },
2893 { 0, NULL, 0, 0, 0, NULL }
2897 dissect_dap_ListResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2898 offset = dissect_ber_choice(actx, tree, tvb, offset,
2899 ListResult_choice, hf_index, ett_dap_ListResult,
2900 NULL);
2902 return offset;
2906 static const ber_sequence_t SET_OF_ListResult_set_of[1] = {
2907 { &hf_dap_uncorrelatedListInfo_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_ListResult },
2910 static int
2911 dissect_dap_SET_OF_ListResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2912 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2913 SET_OF_ListResult_set_of, hf_index, ett_dap_SET_OF_ListResult);
2915 return offset;
2919 static const value_string dap_ListResultData_vals[] = {
2920 { 0, "listInfo" },
2921 { 1, "uncorrelatedListInfo" },
2922 { 0, NULL }
2925 static const ber_choice_t ListResultData_choice[] = {
2926 { 0, &hf_dap_listInfo , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_T_listInfo },
2927 { 1, &hf_dap_uncorrelatedListInfo, BER_CLASS_CON, 0, 0, dissect_dap_SET_OF_ListResult },
2928 { 0, NULL, 0, 0, 0, NULL }
2931 static int
2932 dissect_dap_ListResultData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2933 // ListResultData -> ListResultData/uncorrelatedListInfo -> ListResult -> ListResultData
2934 actx->pinfo->dissection_depth += 3;
2935 increment_dissection_depth(actx->pinfo);
2936 offset = dissect_ber_choice(actx, tree, tvb, offset,
2937 ListResultData_choice, hf_index, ett_dap_ListResultData,
2938 NULL);
2940 actx->pinfo->dissection_depth -= 3;
2941 decrement_dissection_depth(actx->pinfo);
2942 return offset;
2946 static const value_string dap_T_subset_vals[] = {
2947 { 0, "baseObject" },
2948 { 1, "oneLevel" },
2949 { 2, "wholeSubtree" },
2950 { 0, NULL }
2954 static int
2955 dissect_dap_T_subset(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2956 uint32_t subset;
2958 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2959 &subset);
2962 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", val_to_str(subset, dap_T_subset_vals, "Subset(%d)"));
2966 return offset;
2970 static int * const HierarchySelections_bits[] = {
2971 &hf_dap_HierarchySelections_self,
2972 &hf_dap_HierarchySelections_children,
2973 &hf_dap_HierarchySelections_parent,
2974 &hf_dap_HierarchySelections_hierarchy,
2975 &hf_dap_HierarchySelections_top,
2976 &hf_dap_HierarchySelections_subtree,
2977 &hf_dap_HierarchySelections_siblings,
2978 &hf_dap_HierarchySelections_siblingChildren,
2979 &hf_dap_HierarchySelections_siblingSubtree,
2980 &hf_dap_HierarchySelections_all,
2981 NULL
2985 dissect_dap_HierarchySelections(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2986 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2987 HierarchySelections_bits, 10, hf_index, ett_dap_HierarchySelections,
2988 NULL);
2990 return offset;
2994 static int * const SearchControlOptions_bits[] = {
2995 &hf_dap_SearchControlOptions_searchAliases,
2996 &hf_dap_SearchControlOptions_matchedValuesOnly,
2997 &hf_dap_SearchControlOptions_checkOverspecified,
2998 &hf_dap_SearchControlOptions_performExactly,
2999 &hf_dap_SearchControlOptions_includeAllAreas,
3000 &hf_dap_SearchControlOptions_noSystemRelaxation,
3001 &hf_dap_SearchControlOptions_dnAttribute,
3002 &hf_dap_SearchControlOptions_matchOnResidualName,
3003 &hf_dap_SearchControlOptions_entryCount,
3004 &hf_dap_SearchControlOptions_useSubset,
3005 &hf_dap_SearchControlOptions_separateFamilyMembers,
3006 &hf_dap_SearchControlOptions_searchFamily,
3007 NULL
3011 dissect_dap_SearchControlOptions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3012 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
3013 SearchControlOptions_bits, 12, hf_index, ett_dap_SearchControlOptions,
3014 NULL);
3016 return offset;
3021 static int
3022 dissect_dap_DomainLocalID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3023 offset = dissect_x509sat_DirectoryString(implicit_tag, tvb, offset, actx, tree, hf_index);
3025 return offset;
3029 static const value_string dap_T_joinSubset_vals[] = {
3030 { 0, "baseObject" },
3031 { 1, "oneLevel" },
3032 { 2, "wholeSubtree" },
3033 { 0, NULL }
3037 static int
3038 dissect_dap_T_joinSubset(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3039 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3040 NULL);
3042 return offset;
3047 static int
3048 dissect_dap_JoinContextType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3049 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
3051 return offset;
3055 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_JoinContextType_sequence_of[1] = {
3056 { &hf_dap_joinContext_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_dap_JoinContextType },
3059 static int
3060 dissect_dap_SEQUENCE_SIZE_1_MAX_OF_JoinContextType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3061 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3062 SEQUENCE_SIZE_1_MAX_OF_JoinContextType_sequence_of, hf_index, ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinContextType);
3064 return offset;
3068 static const ber_sequence_t JoinAttPair_sequence[] = {
3069 { &hf_dap_baseAtt , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
3070 { &hf_dap_joinAtt , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
3071 { &hf_dap_joinContext , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_JoinContextType },
3072 { NULL, 0, 0, 0, NULL }
3075 static int
3076 dissect_dap_JoinAttPair(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3077 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3078 JoinAttPair_sequence, hf_index, ett_dap_JoinAttPair);
3080 return offset;
3084 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_JoinAttPair_sequence_of[1] = {
3085 { &hf_dap_joinAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_JoinAttPair },
3088 static int
3089 dissect_dap_SEQUENCE_SIZE_1_MAX_OF_JoinAttPair(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3090 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3091 SEQUENCE_SIZE_1_MAX_OF_JoinAttPair_sequence_of, hf_index, ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinAttPair);
3093 return offset;
3097 static const ber_sequence_t JoinArgument_sequence[] = {
3098 { &hf_dap_joinBaseObject , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
3099 { &hf_dap_domainLocalID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_DomainLocalID },
3100 { &hf_dap_joinSubset , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_T_joinSubset },
3101 { &hf_dap_joinFilter , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_Filter },
3102 { &hf_dap_joinAttributes , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_JoinAttPair },
3103 { &hf_dap_joinSelection , BER_CLASS_CON, 5, 0, dissect_dap_EntryInformationSelection },
3104 { NULL, 0, 0, 0, NULL }
3107 static int
3108 dissect_dap_JoinArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3109 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3110 JoinArgument_sequence, hf_index, ett_dap_JoinArgument);
3112 return offset;
3116 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_JoinArgument_sequence_of[1] = {
3117 { &hf_dap_joinArguments_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_JoinArgument },
3120 static int
3121 dissect_dap_SEQUENCE_SIZE_1_MAX_OF_JoinArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3122 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3123 SEQUENCE_SIZE_1_MAX_OF_JoinArgument_sequence_of, hf_index, ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinArgument);
3125 return offset;
3129 static const value_string dap_T_joinType_vals[] = {
3130 { 0, "innerJoin" },
3131 { 1, "leftOuterJoin" },
3132 { 2, "fullOuterJoin" },
3133 { 0, NULL }
3137 static int
3138 dissect_dap_T_joinType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3139 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3140 NULL);
3142 return offset;
3146 static const ber_sequence_t SearchArgumentData_set[] = {
3147 { &hf_dap_baseObject , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
3148 { &hf_dap_subset , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_T_subset },
3149 { &hf_dap_filter , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_Filter },
3150 { &hf_dap_searchAliases , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3151 { &hf_dap_selection , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_EntryInformationSelection },
3152 { &hf_dap_pagedResults , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_PagedResultsRequest },
3153 { &hf_dap_matchedValuesOnly, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3154 { &hf_dap_extendedFilter , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_Filter },
3155 { &hf_dap_checkOverspecified, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3156 { &hf_dap_relaxation , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_x509if_RelaxationPolicy },
3157 { &hf_dap_extendedArea , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
3158 { &hf_dap_hierarchySelections, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_dap_HierarchySelections },
3159 { &hf_dap_searchControlOptions, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_dap_SearchControlOptions },
3160 { &hf_dap_joinArguments , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_JoinArgument },
3161 { &hf_dap_joinType , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_dap_T_joinType },
3162 { &hf_dap_serviceControls , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControls },
3163 { &hf_dap_securityParameters, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3164 { &hf_dap_requestor , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3165 { &hf_dap_operationProgress, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dsp_OperationProgress },
3166 { &hf_dap_aliasedRDNs , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
3167 { &hf_dap_criticalExtensions, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
3168 { &hf_dap_referenceType , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_dsp_ReferenceType },
3169 { &hf_dap_entryOnly , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3170 { &hf_dap_exclusions , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL, dissect_dsp_Exclusions },
3171 { &hf_dap_nameResolveOnMaster, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3172 { &hf_dap_operationContexts, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_ContextSelection },
3173 { &hf_dap_familyGrouping , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
3174 { NULL, 0, 0, 0, NULL }
3177 static int
3178 dissect_dap_SearchArgumentData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3179 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3180 SearchArgumentData_set, hf_index, ett_dap_SearchArgumentData);
3182 return offset;
3186 static const ber_sequence_t T_signedSearchArgument_sequence[] = {
3187 { &hf_dap_searchArgument , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_SearchArgumentData },
3188 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
3189 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
3190 { NULL, 0, 0, 0, NULL }
3193 static int
3194 dissect_dap_T_signedSearchArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3195 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3196 T_signedSearchArgument_sequence, hf_index, ett_dap_T_signedSearchArgument);
3198 return offset;
3202 const value_string dap_SearchArgument_vals[] = {
3203 { 0, "unsignedSearchArgument" },
3204 { 1, "signedSearchArgument" },
3205 { 0, NULL }
3208 static const ber_choice_t SearchArgument_choice[] = {
3209 { 0, &hf_dap_unsignedSearchArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_SearchArgumentData },
3210 { 1, &hf_dap_signedSearchArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedSearchArgument },
3211 { 0, NULL, 0, 0, 0, NULL }
3215 dissect_dap_SearchArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3216 offset = dissect_ber_choice(actx, tree, tvb, offset,
3217 SearchArgument_choice, hf_index, ett_dap_SearchArgument,
3218 NULL);
3220 return offset;
3224 static const ber_sequence_t SET_OF_EntryInformation_set_of[1] = {
3225 { &hf_dap_entries_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_EntryInformation },
3228 static int
3229 dissect_dap_SET_OF_EntryInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3230 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
3231 SET_OF_EntryInformation_set_of, hf_index, ett_dap_SET_OF_EntryInformation);
3233 return offset;
3237 static const ber_sequence_t T_searchInfo_set[] = {
3238 { &hf_dap_name , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
3239 { &hf_dap_entries , BER_CLASS_CON, 0, 0, dissect_dap_SET_OF_EntryInformation },
3240 { &hf_dap_partialOutcomeQualifier, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_PartialOutcomeQualifier },
3241 { &hf_dap_altMatching , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3242 { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3243 { &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3244 { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3245 { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
3246 { NULL, 0, 0, 0, NULL }
3249 static int
3250 dissect_dap_T_searchInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3251 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3252 T_searchInfo_set, hf_index, ett_dap_T_searchInfo);
3254 return offset;
3258 static const ber_sequence_t T_signedSearchResult_sequence[] = {
3259 { &hf_dap_searchResult , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_SearchResultData },
3260 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
3261 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
3262 { NULL, 0, 0, 0, NULL }
3265 static int
3266 dissect_dap_T_signedSearchResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3267 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3268 T_signedSearchResult_sequence, hf_index, ett_dap_T_signedSearchResult);
3270 return offset;
3274 const value_string dap_SearchResult_vals[] = {
3275 { 0, "unsignedSearchResult" },
3276 { 1, "signedSearchResult" },
3277 { 0, NULL }
3280 static const ber_choice_t SearchResult_choice[] = {
3281 { 0, &hf_dap_unsignedSearchResult, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_dap_SearchResultData },
3282 { 1, &hf_dap_signedSearchResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedSearchResult },
3283 { 0, NULL, 0, 0, 0, NULL }
3287 dissect_dap_SearchResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3288 offset = dissect_ber_choice(actx, tree, tvb, offset,
3289 SearchResult_choice, hf_index, ett_dap_SearchResult,
3290 NULL);
3292 return offset;
3296 static const ber_sequence_t SET_OF_SearchResult_set_of[1] = {
3297 { &hf_dap_uncorrelatedSearchInfo_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_SearchResult },
3300 static int
3301 dissect_dap_SET_OF_SearchResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3302 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
3303 SET_OF_SearchResult_set_of, hf_index, ett_dap_SET_OF_SearchResult);
3305 return offset;
3309 static const value_string dap_SearchResultData_vals[] = {
3310 { 0, "searchInfo" },
3311 { 1, "uncorrelatedSearchInfo" },
3312 { 0, NULL }
3315 static const ber_choice_t SearchResultData_choice[] = {
3316 { 0, &hf_dap_searchInfo , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_T_searchInfo },
3317 { 1, &hf_dap_uncorrelatedSearchInfo, BER_CLASS_CON, 0, 0, dissect_dap_SET_OF_SearchResult },
3318 { 0, NULL, 0, 0, 0, NULL }
3321 static int
3322 dissect_dap_SearchResultData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3323 // SearchResultData -> SearchResultData/uncorrelatedSearchInfo -> SearchResult -> SearchResultData
3324 actx->pinfo->dissection_depth += 3;
3325 increment_dissection_depth(actx->pinfo);
3326 offset = dissect_ber_choice(actx, tree, tvb, offset,
3327 SearchResultData_choice, hf_index, ett_dap_SearchResultData,
3328 NULL);
3330 actx->pinfo->dissection_depth -= 3;
3331 decrement_dissection_depth(actx->pinfo);
3332 return offset;
3336 static const ber_sequence_t SET_OF_Attribute_set_of[1] = {
3337 { &hf_dap_add_entry_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
3340 static int
3341 dissect_dap_SET_OF_Attribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3342 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
3343 SET_OF_Attribute_set_of, hf_index, ett_dap_SET_OF_Attribute);
3345 return offset;
3349 static const ber_sequence_t AddEntryArgumentData_set[] = {
3350 { &hf_dap_object , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
3351 { &hf_dap_add_entry , BER_CLASS_CON, 1, 0, dissect_dap_SET_OF_Attribute },
3352 { &hf_dap_targetSystem , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dsp_AccessPoint },
3353 { &hf_dap_serviceControls , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControls },
3354 { &hf_dap_securityParameters, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3355 { &hf_dap_requestor , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3356 { &hf_dap_operationProgress, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dsp_OperationProgress },
3357 { &hf_dap_aliasedRDNs , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
3358 { &hf_dap_criticalExtensions, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
3359 { &hf_dap_referenceType , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_dsp_ReferenceType },
3360 { &hf_dap_entryOnly , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3361 { &hf_dap_exclusions , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL, dissect_dsp_Exclusions },
3362 { &hf_dap_nameResolveOnMaster, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3363 { &hf_dap_operationContexts, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_ContextSelection },
3364 { &hf_dap_familyGrouping , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
3365 { NULL, 0, 0, 0, NULL }
3368 static int
3369 dissect_dap_AddEntryArgumentData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3370 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3371 AddEntryArgumentData_set, hf_index, ett_dap_AddEntryArgumentData);
3373 return offset;
3377 static const ber_sequence_t T_signedAddEntryArgument_sequence[] = {
3378 { &hf_dap_addEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_AddEntryArgumentData },
3379 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
3380 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
3381 { NULL, 0, 0, 0, NULL }
3384 static int
3385 dissect_dap_T_signedAddEntryArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3386 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3387 T_signedAddEntryArgument_sequence, hf_index, ett_dap_T_signedAddEntryArgument);
3389 return offset;
3393 const value_string dap_AddEntryArgument_vals[] = {
3394 { 0, "unsignedAddEntryArgument" },
3395 { 1, "signedAddEntryArgument" },
3396 { 0, NULL }
3399 static const ber_choice_t AddEntryArgument_choice[] = {
3400 { 0, &hf_dap_unsignedAddEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_AddEntryArgumentData },
3401 { 1, &hf_dap_signedAddEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedAddEntryArgument },
3402 { 0, NULL, 0, 0, 0, NULL }
3406 dissect_dap_AddEntryArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3407 offset = dissect_ber_choice(actx, tree, tvb, offset,
3408 AddEntryArgument_choice, hf_index, ett_dap_AddEntryArgument,
3409 NULL);
3411 return offset;
3415 static const ber_sequence_t AddEntryResultData_sequence[] = {
3416 { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3417 { &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3418 { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3419 { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
3420 { NULL, 0, 0, 0, NULL }
3423 static int
3424 dissect_dap_AddEntryResultData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3425 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3426 AddEntryResultData_sequence, hf_index, ett_dap_AddEntryResultData);
3428 return offset;
3432 static const ber_sequence_t T_signedAddEntryResult_sequence[] = {
3433 { &hf_dap_addEntryResult , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_AddEntryResultData },
3434 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
3435 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
3436 { NULL, 0, 0, 0, NULL }
3439 static int
3440 dissect_dap_T_signedAddEntryResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3441 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3442 T_signedAddEntryResult_sequence, hf_index, ett_dap_T_signedAddEntryResult);
3444 return offset;
3448 static const value_string dap_AddEntryInformation_vals[] = {
3449 { 0, "unsignedAddEntryResult" },
3450 { 1, "signedAddEntryResult" },
3451 { 0, NULL }
3454 static const ber_choice_t AddEntryInformation_choice[] = {
3455 { 0, &hf_dap_unsignedAddEntryResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_AddEntryResultData },
3456 { 1, &hf_dap_signedAddEntryResult, BER_CLASS_CON, 0, 0, dissect_dap_T_signedAddEntryResult },
3457 { 0, NULL, 0, 0, 0, NULL }
3460 static int
3461 dissect_dap_AddEntryInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3462 offset = dissect_ber_choice(actx, tree, tvb, offset,
3463 AddEntryInformation_choice, hf_index, ett_dap_AddEntryInformation,
3464 NULL);
3466 return offset;
3470 const value_string dap_AddEntryResult_vals[] = {
3471 { 0, "null" },
3472 { 1, "information" },
3473 { 0, NULL }
3476 static const ber_choice_t AddEntryResult_choice[] = {
3477 { 0, &hf_dap_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_dap_NULL },
3478 { 1, &hf_dap_add_entry_information, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_dap_AddEntryInformation },
3479 { 0, NULL, 0, 0, 0, NULL }
3483 dissect_dap_AddEntryResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3484 offset = dissect_ber_choice(actx, tree, tvb, offset,
3485 AddEntryResult_choice, hf_index, ett_dap_AddEntryResult,
3486 NULL);
3488 return offset;
3492 static const ber_sequence_t RemoveEntryArgumentData_set[] = {
3493 { &hf_dap_object , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
3494 { &hf_dap_serviceControls , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControls },
3495 { &hf_dap_securityParameters, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3496 { &hf_dap_requestor , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3497 { &hf_dap_operationProgress, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dsp_OperationProgress },
3498 { &hf_dap_aliasedRDNs , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
3499 { &hf_dap_criticalExtensions, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
3500 { &hf_dap_referenceType , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_dsp_ReferenceType },
3501 { &hf_dap_entryOnly , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3502 { &hf_dap_exclusions , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL, dissect_dsp_Exclusions },
3503 { &hf_dap_nameResolveOnMaster, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3504 { &hf_dap_operationContexts, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_ContextSelection },
3505 { &hf_dap_familyGrouping , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
3506 { NULL, 0, 0, 0, NULL }
3509 static int
3510 dissect_dap_RemoveEntryArgumentData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3511 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3512 RemoveEntryArgumentData_set, hf_index, ett_dap_RemoveEntryArgumentData);
3514 return offset;
3518 static const ber_sequence_t T_signedRemoveEntryArgument_sequence[] = {
3519 { &hf_dap_removeEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_RemoveEntryArgumentData },
3520 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
3521 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
3522 { NULL, 0, 0, 0, NULL }
3525 static int
3526 dissect_dap_T_signedRemoveEntryArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3527 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3528 T_signedRemoveEntryArgument_sequence, hf_index, ett_dap_T_signedRemoveEntryArgument);
3530 return offset;
3534 const value_string dap_RemoveEntryArgument_vals[] = {
3535 { 0, "unsignedRemoveEntryArgument" },
3536 { 1, "signedRemoveEntryArgument" },
3537 { 0, NULL }
3540 static const ber_choice_t RemoveEntryArgument_choice[] = {
3541 { 0, &hf_dap_unsignedRemoveEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_RemoveEntryArgumentData },
3542 { 1, &hf_dap_signedRemoveEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedRemoveEntryArgument },
3543 { 0, NULL, 0, 0, 0, NULL }
3547 dissect_dap_RemoveEntryArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3548 offset = dissect_ber_choice(actx, tree, tvb, offset,
3549 RemoveEntryArgument_choice, hf_index, ett_dap_RemoveEntryArgument,
3550 NULL);
3552 return offset;
3556 static const ber_sequence_t RemoveEntryResultData_sequence[] = {
3557 { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3558 { &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3559 { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3560 { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
3561 { NULL, 0, 0, 0, NULL }
3564 static int
3565 dissect_dap_RemoveEntryResultData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3566 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3567 RemoveEntryResultData_sequence, hf_index, ett_dap_RemoveEntryResultData);
3569 return offset;
3573 static const ber_sequence_t T_signedRemoveEntryResult_sequence[] = {
3574 { &hf_dap_removeEntryResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_RemoveEntryResultData },
3575 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
3576 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
3577 { NULL, 0, 0, 0, NULL }
3580 static int
3581 dissect_dap_T_signedRemoveEntryResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3582 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3583 T_signedRemoveEntryResult_sequence, hf_index, ett_dap_T_signedRemoveEntryResult);
3585 return offset;
3589 static const value_string dap_RemoveEntryInformation_vals[] = {
3590 { 0, "unsignedRemoveEntryResult" },
3591 { 1, "signedRemoveEntryResult" },
3592 { 0, NULL }
3595 static const ber_choice_t RemoveEntryInformation_choice[] = {
3596 { 0, &hf_dap_unsignedRemoveEntryResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_RemoveEntryResultData },
3597 { 1, &hf_dap_signedRemoveEntryResult, BER_CLASS_CON, 0, 0, dissect_dap_T_signedRemoveEntryResult },
3598 { 0, NULL, 0, 0, 0, NULL }
3601 static int
3602 dissect_dap_RemoveEntryInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3603 offset = dissect_ber_choice(actx, tree, tvb, offset,
3604 RemoveEntryInformation_choice, hf_index, ett_dap_RemoveEntryInformation,
3605 NULL);
3607 return offset;
3611 const value_string dap_RemoveEntryResult_vals[] = {
3612 { 0, "null" },
3613 { 1, "information" },
3614 { 0, NULL }
3617 static const ber_choice_t RemoveEntryResult_choice[] = {
3618 { 0, &hf_dap_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_dap_NULL },
3619 { 1, &hf_dap_remove_entry_information, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_dap_RemoveEntryInformation },
3620 { 0, NULL, 0, 0, 0, NULL }
3624 dissect_dap_RemoveEntryResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3625 offset = dissect_ber_choice(actx, tree, tvb, offset,
3626 RemoveEntryResult_choice, hf_index, ett_dap_RemoveEntryResult,
3627 NULL);
3629 return offset;
3633 const value_string dap_EntryModification_vals[] = {
3634 { 0, "addAttribute" },
3635 { 1, "removeAttribute" },
3636 { 2, "addValues" },
3637 { 3, "removeValues" },
3638 { 4, "alterValues" },
3639 { 5, "resetValue" },
3640 { 0, NULL }
3643 static const ber_choice_t EntryModification_choice[] = {
3644 { 0, &hf_dap_addAttribute , BER_CLASS_CON, 0, 0, dissect_x509if_Attribute },
3645 { 1, &hf_dap_removeAttribute , BER_CLASS_CON, 1, 0, dissect_x509if_AttributeType },
3646 { 2, &hf_dap_addValues , BER_CLASS_CON, 2, 0, dissect_x509if_Attribute },
3647 { 3, &hf_dap_removeValues , BER_CLASS_CON, 3, 0, dissect_x509if_Attribute },
3648 { 4, &hf_dap_alterValues , BER_CLASS_CON, 4, 0, dissect_crmf_AttributeTypeAndValue },
3649 { 5, &hf_dap_resetValue , BER_CLASS_CON, 5, 0, dissect_x509if_AttributeType },
3650 { 0, NULL, 0, 0, 0, NULL }
3654 dissect_dap_EntryModification(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3655 offset = dissect_ber_choice(actx, tree, tvb, offset,
3656 EntryModification_choice, hf_index, ett_dap_EntryModification,
3657 NULL);
3659 return offset;
3663 static const ber_sequence_t SEQUENCE_OF_EntryModification_sequence_of[1] = {
3664 { &hf_dap_changes_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_EntryModification },
3667 static int
3668 dissect_dap_SEQUENCE_OF_EntryModification(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3669 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3670 SEQUENCE_OF_EntryModification_sequence_of, hf_index, ett_dap_SEQUENCE_OF_EntryModification);
3672 return offset;
3676 static const ber_sequence_t ModifyEntryArgumentData_set[] = {
3677 { &hf_dap_object , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
3678 { &hf_dap_changes , BER_CLASS_CON, 1, 0, dissect_dap_SEQUENCE_OF_EntryModification },
3679 { &hf_dap_selection , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_EntryInformationSelection },
3680 { &hf_dap_serviceControls , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControls },
3681 { &hf_dap_securityParameters, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3682 { &hf_dap_requestor , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3683 { &hf_dap_operationProgress, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dsp_OperationProgress },
3684 { &hf_dap_aliasedRDNs , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
3685 { &hf_dap_criticalExtensions, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
3686 { &hf_dap_referenceType , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_dsp_ReferenceType },
3687 { &hf_dap_entryOnly , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3688 { &hf_dap_exclusions , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL, dissect_dsp_Exclusions },
3689 { &hf_dap_nameResolveOnMaster, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3690 { &hf_dap_operationContexts, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_ContextSelection },
3691 { &hf_dap_familyGrouping , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
3692 { NULL, 0, 0, 0, NULL }
3695 static int
3696 dissect_dap_ModifyEntryArgumentData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3697 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3698 ModifyEntryArgumentData_set, hf_index, ett_dap_ModifyEntryArgumentData);
3700 return offset;
3704 static const ber_sequence_t T_signedModifyEntryArgument_sequence[] = {
3705 { &hf_dap_modifyEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ModifyEntryArgumentData },
3706 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
3707 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
3708 { NULL, 0, 0, 0, NULL }
3711 static int
3712 dissect_dap_T_signedModifyEntryArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3713 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3714 T_signedModifyEntryArgument_sequence, hf_index, ett_dap_T_signedModifyEntryArgument);
3716 return offset;
3720 const value_string dap_ModifyEntryArgument_vals[] = {
3721 { 0, "unsignedModifyEntryArgument" },
3722 { 1, "signedModifyEntryArgument" },
3723 { 0, NULL }
3726 static const ber_choice_t ModifyEntryArgument_choice[] = {
3727 { 0, &hf_dap_unsignedModifyEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ModifyEntryArgumentData },
3728 { 1, &hf_dap_signedModifyEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedModifyEntryArgument },
3729 { 0, NULL, 0, 0, 0, NULL }
3733 dissect_dap_ModifyEntryArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3734 offset = dissect_ber_choice(actx, tree, tvb, offset,
3735 ModifyEntryArgument_choice, hf_index, ett_dap_ModifyEntryArgument,
3736 NULL);
3738 return offset;
3742 static const ber_sequence_t ModifyEntryResultData_sequence[] = {
3743 { &hf_dap_entry , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dap_EntryInformation },
3744 { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3745 { &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3746 { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3747 { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
3748 { NULL, 0, 0, 0, NULL }
3751 static int
3752 dissect_dap_ModifyEntryResultData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3753 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3754 ModifyEntryResultData_sequence, hf_index, ett_dap_ModifyEntryResultData);
3756 return offset;
3760 static const ber_sequence_t T_signedModifyEntryResult_sequence[] = {
3761 { &hf_dap_modifyEntryResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_ModifyEntryResultData },
3762 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
3763 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
3764 { NULL, 0, 0, 0, NULL }
3767 static int
3768 dissect_dap_T_signedModifyEntryResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3769 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3770 T_signedModifyEntryResult_sequence, hf_index, ett_dap_T_signedModifyEntryResult);
3772 return offset;
3776 static const value_string dap_ModifyEntryInformation_vals[] = {
3777 { 0, "unsignedModifyEntryResult" },
3778 { 1, "signedModifyEntryResult" },
3779 { 0, NULL }
3782 static const ber_choice_t ModifyEntryInformation_choice[] = {
3783 { 0, &hf_dap_unsignedModifyEntryResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_ModifyEntryResultData },
3784 { 1, &hf_dap_signedModifyEntryResult, BER_CLASS_CON, 0, 0, dissect_dap_T_signedModifyEntryResult },
3785 { 0, NULL, 0, 0, 0, NULL }
3788 static int
3789 dissect_dap_ModifyEntryInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3790 offset = dissect_ber_choice(actx, tree, tvb, offset,
3791 ModifyEntryInformation_choice, hf_index, ett_dap_ModifyEntryInformation,
3792 NULL);
3794 return offset;
3798 const value_string dap_ModifyEntryResult_vals[] = {
3799 { 0, "null" },
3800 { 1, "information" },
3801 { 0, NULL }
3804 static const ber_choice_t ModifyEntryResult_choice[] = {
3805 { 0, &hf_dap_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_dap_NULL },
3806 { 1, &hf_dap_modify_entry_information, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_dap_ModifyEntryInformation },
3807 { 0, NULL, 0, 0, 0, NULL }
3811 dissect_dap_ModifyEntryResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3812 offset = dissect_ber_choice(actx, tree, tvb, offset,
3813 ModifyEntryResult_choice, hf_index, ett_dap_ModifyEntryResult,
3814 NULL);
3816 return offset;
3820 static const ber_sequence_t ModifyDNArgument_set[] = {
3821 { &hf_dap_distinguished_name, BER_CLASS_CON, 0, 0, dissect_x509if_DistinguishedName },
3822 { &hf_dap_newRDN , BER_CLASS_CON, 1, 0, dissect_x509if_RelativeDistinguishedName },
3823 { &hf_dap_deleteOldRDN , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3824 { &hf_dap_newSuperior , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3825 { &hf_dap_serviceControls , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControls },
3826 { &hf_dap_securityParameters, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3827 { &hf_dap_requestor , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3828 { &hf_dap_operationProgress, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dsp_OperationProgress },
3829 { &hf_dap_aliasedRDNs , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
3830 { &hf_dap_criticalExtensions, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
3831 { &hf_dap_referenceType , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_dsp_ReferenceType },
3832 { &hf_dap_entryOnly , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3833 { &hf_dap_exclusions , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL, dissect_dsp_Exclusions },
3834 { &hf_dap_nameResolveOnMaster, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3835 { &hf_dap_operationContexts, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_ContextSelection },
3836 { &hf_dap_familyGrouping , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
3837 { NULL, 0, 0, 0, NULL }
3841 dissect_dap_ModifyDNArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3842 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3843 ModifyDNArgument_set, hf_index, ett_dap_ModifyDNArgument);
3845 return offset;
3849 static const ber_sequence_t ModifyDNResultData_sequence[] = {
3850 { &hf_dap_newRDN , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_RelativeDistinguishedName },
3851 { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3852 { &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3853 { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3854 { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
3855 { NULL, 0, 0, 0, NULL }
3858 static int
3859 dissect_dap_ModifyDNResultData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3860 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3861 ModifyDNResultData_sequence, hf_index, ett_dap_ModifyDNResultData);
3863 return offset;
3867 static const ber_sequence_t T_signedModifyDNResult_sequence[] = {
3868 { &hf_dap_modifyDNResult , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_ModifyDNResultData },
3869 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
3870 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
3871 { NULL, 0, 0, 0, NULL }
3874 static int
3875 dissect_dap_T_signedModifyDNResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3876 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3877 T_signedModifyDNResult_sequence, hf_index, ett_dap_T_signedModifyDNResult);
3879 return offset;
3883 static const value_string dap_ModifyDNInformation_vals[] = {
3884 { 0, "unsignedModifyDNResult" },
3885 { 1, "signedModifyDNResult" },
3886 { 0, NULL }
3889 static const ber_choice_t ModifyDNInformation_choice[] = {
3890 { 0, &hf_dap_unsignedModifyDNResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_ModifyDNResultData },
3891 { 1, &hf_dap_signedModifyDNResult, BER_CLASS_CON, 0, 0, dissect_dap_T_signedModifyDNResult },
3892 { 0, NULL, 0, 0, 0, NULL }
3895 static int
3896 dissect_dap_ModifyDNInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3897 offset = dissect_ber_choice(actx, tree, tvb, offset,
3898 ModifyDNInformation_choice, hf_index, ett_dap_ModifyDNInformation,
3899 NULL);
3901 return offset;
3905 const value_string dap_ModifyDNResult_vals[] = {
3906 { 0, "null" },
3907 { 1, "information" },
3908 { 0, NULL }
3911 static const ber_choice_t ModifyDNResult_choice[] = {
3912 { 0, &hf_dap_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_dap_NULL },
3913 { 1, &hf_dap_modify_dn_information, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_dap_ModifyDNInformation },
3914 { 0, NULL, 0, 0, 0, NULL }
3918 dissect_dap_ModifyDNResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3919 offset = dissect_ber_choice(actx, tree, tvb, offset,
3920 ModifyDNResult_choice, hf_index, ett_dap_ModifyDNResult,
3921 NULL);
3923 return offset;
3927 static const ber_sequence_t AbandonedData_set[] = {
3928 { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3929 { &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3930 { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3931 { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
3932 { NULL, 0, 0, 0, NULL }
3935 static int
3936 dissect_dap_AbandonedData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3937 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3938 AbandonedData_set, hf_index, ett_dap_AbandonedData);
3940 return offset;
3944 static const ber_sequence_t T_signedAbandoned_sequence[] = {
3945 { &hf_dap_abandoned , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_AbandonedData },
3946 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
3947 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
3948 { NULL, 0, 0, 0, NULL }
3951 static int
3952 dissect_dap_T_signedAbandoned(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3953 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3954 T_signedAbandoned_sequence, hf_index, ett_dap_T_signedAbandoned);
3956 return offset;
3960 const value_string dap_Abandoned_vals[] = {
3961 { 0, "unsignedAbandoned" },
3962 { 1, "signedAbandoned" },
3963 { 0, NULL }
3966 static const ber_choice_t Abandoned_choice[] = {
3967 { 0, &hf_dap_unsignedAbandoned, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_AbandonedData },
3968 { 1, &hf_dap_signedAbandoned , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedAbandoned },
3969 { 0, NULL, 0, 0, 0, NULL }
3973 dissect_dap_Abandoned(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3974 offset = dissect_ber_choice(actx, tree, tvb, offset,
3975 Abandoned_choice, hf_index, ett_dap_Abandoned,
3976 NULL);
3978 return offset;
3982 static const value_string dap_AbandonProblem_vals[] = {
3983 { 1, "noSuchOperation" },
3984 { 2, "tooLate" },
3985 { 3, "cannotAbandon" },
3986 { 0, NULL }
3990 static int
3991 dissect_dap_AbandonProblem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3992 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3993 NULL);
3995 return offset;
3999 static const ber_sequence_t AbandonFailedErrorData_set[] = {
4000 { &hf_dap_abandon_failed_problem, BER_CLASS_CON, 0, 0, dissect_dap_AbandonProblem },
4001 { &hf_dap_operation , BER_CLASS_CON, 1, 0, dissect_ros_InvokeId },
4002 { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
4003 { &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
4004 { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
4005 { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
4006 { NULL, 0, 0, 0, NULL }
4009 static int
4010 dissect_dap_AbandonFailedErrorData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4011 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4012 AbandonFailedErrorData_set, hf_index, ett_dap_AbandonFailedErrorData);
4014 return offset;
4018 static const ber_sequence_t T_signedAbandonFailedError_sequence[] = {
4019 { &hf_dap_abandonFailedError, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_AbandonFailedErrorData },
4020 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
4021 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
4022 { NULL, 0, 0, 0, NULL }
4025 static int
4026 dissect_dap_T_signedAbandonFailedError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4027 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4028 T_signedAbandonFailedError_sequence, hf_index, ett_dap_T_signedAbandonFailedError);
4030 return offset;
4034 const value_string dap_AbandonFailedError_vals[] = {
4035 { 0, "unsignedAbandonFailedError" },
4036 { 1, "signedAbandonFailedError" },
4037 { 0, NULL }
4040 static const ber_choice_t AbandonFailedError_choice[] = {
4041 { 0, &hf_dap_unsignedAbandonFailedError, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_AbandonFailedErrorData },
4042 { 1, &hf_dap_signedAbandonFailedError, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedAbandonFailedError },
4043 { 0, NULL, 0, 0, 0, NULL }
4047 dissect_dap_AbandonFailedError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4048 offset = dissect_ber_choice(actx, tree, tvb, offset,
4049 AbandonFailedError_choice, hf_index, ett_dap_AbandonFailedError,
4050 NULL);
4052 return offset;
4056 static const value_string dap_AttributeProblem_vals[] = {
4057 { 1, "noSuchAttributeOrValue" },
4058 { 2, "invalidAttributeSyntax" },
4059 { 3, "undefinedAttributeType" },
4060 { 4, "inappropriateMatching" },
4061 { 5, "constraintViolation" },
4062 { 6, "attributeOrValueAlreadyExists" },
4063 { 7, "contextViolation" },
4064 { 0, NULL }
4068 static int
4069 dissect_dap_AttributeProblem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4070 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4071 NULL);
4073 return offset;
4077 static const ber_sequence_t T_problems_item_sequence[] = {
4078 { &hf_dap_attribute_error_problem, BER_CLASS_CON, 0, 0, dissect_dap_AttributeProblem },
4079 { &hf_dap_type , BER_CLASS_CON, 1, 0, dissect_x509if_AttributeType },
4080 { &hf_dap_value , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_AttributeValue },
4081 { NULL, 0, 0, 0, NULL }
4084 static int
4085 dissect_dap_T_problems_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4086 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4087 T_problems_item_sequence, hf_index, ett_dap_T_problems_item);
4089 return offset;
4093 static const ber_sequence_t T_problems_set_of[1] = {
4094 { &hf_dap_problems_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_problems_item },
4097 static int
4098 dissect_dap_T_problems(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4099 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
4100 T_problems_set_of, hf_index, ett_dap_T_problems);
4102 return offset;
4106 static const ber_sequence_t AttributeErrorData_set[] = {
4107 { &hf_dap_object , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
4108 { &hf_dap_problems , BER_CLASS_CON, 1, 0, dissect_dap_T_problems },
4109 { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
4110 { &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
4111 { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
4112 { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
4113 { NULL, 0, 0, 0, NULL }
4116 static int
4117 dissect_dap_AttributeErrorData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4118 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4119 AttributeErrorData_set, hf_index, ett_dap_AttributeErrorData);
4121 return offset;
4125 static const ber_sequence_t T_signedAttributeError_sequence[] = {
4126 { &hf_dap_attributeError , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_AttributeErrorData },
4127 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
4128 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
4129 { NULL, 0, 0, 0, NULL }
4132 static int
4133 dissect_dap_T_signedAttributeError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4134 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4135 T_signedAttributeError_sequence, hf_index, ett_dap_T_signedAttributeError);
4137 return offset;
4141 const value_string dap_AttributeError_vals[] = {
4142 { 0, "unsignedAttributeError" },
4143 { 1, "signedAttributeError" },
4144 { 0, NULL }
4147 static const ber_choice_t AttributeError_choice[] = {
4148 { 0, &hf_dap_unsignedAttributeError, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_AttributeErrorData },
4149 { 1, &hf_dap_signedAttributeError, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedAttributeError },
4150 { 0, NULL, 0, 0, 0, NULL }
4154 dissect_dap_AttributeError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4155 offset = dissect_ber_choice(actx, tree, tvb, offset,
4156 AttributeError_choice, hf_index, ett_dap_AttributeError,
4157 NULL);
4159 return offset;
4163 static const value_string dap_NameProblem_vals[] = {
4164 { 1, "noSuchObject" },
4165 { 2, "aliasProblem" },
4166 { 3, "invalidAttributeSyntax" },
4167 { 4, "aliasDereferencingProblem" },
4168 { 5, "contextProblem" },
4169 { 0, NULL }
4173 static int
4174 dissect_dap_NameProblem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4175 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4176 NULL);
4178 return offset;
4182 static const ber_sequence_t NameErrorData_set[] = {
4183 { &hf_dap_name_error_problem, BER_CLASS_CON, 0, 0, dissect_dap_NameProblem },
4184 { &hf_dap_matched_name , BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
4185 { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
4186 { &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
4187 { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
4188 { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
4189 { NULL, 0, 0, 0, NULL }
4192 static int
4193 dissect_dap_NameErrorData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4194 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4195 NameErrorData_set, hf_index, ett_dap_NameErrorData);
4197 return offset;
4201 static const ber_sequence_t T_signedNameError_sequence[] = {
4202 { &hf_dap_nameError , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_NameErrorData },
4203 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
4204 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
4205 { NULL, 0, 0, 0, NULL }
4208 static int
4209 dissect_dap_T_signedNameError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4210 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4211 T_signedNameError_sequence, hf_index, ett_dap_T_signedNameError);
4213 return offset;
4217 const value_string dap_NameError_vals[] = {
4218 { 0, "unsignedNameError" },
4219 { 1, "signedNameError" },
4220 { 0, NULL }
4223 static const ber_choice_t NameError_choice[] = {
4224 { 0, &hf_dap_unsignedNameError, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_NameErrorData },
4225 { 1, &hf_dap_signedNameError , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedNameError },
4226 { 0, NULL, 0, 0, 0, NULL }
4230 dissect_dap_NameError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4231 offset = dissect_ber_choice(actx, tree, tvb, offset,
4232 NameError_choice, hf_index, ett_dap_NameError,
4233 NULL);
4235 return offset;
4239 static const ber_sequence_t ReferralData_set[] = {
4240 { &hf_dap_candidate , BER_CLASS_CON, 0, 0, dissect_dsp_ContinuationReference },
4241 { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
4242 { &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
4243 { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
4244 { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
4245 { NULL, 0, 0, 0, NULL }
4248 static int
4249 dissect_dap_ReferralData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4250 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4251 ReferralData_set, hf_index, ett_dap_ReferralData);
4253 return offset;
4257 static const ber_sequence_t T_signedReferral_sequence[] = {
4258 { &hf_dap_referral , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ReferralData },
4259 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
4260 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
4261 { NULL, 0, 0, 0, NULL }
4264 static int
4265 dissect_dap_T_signedReferral(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4266 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4267 T_signedReferral_sequence, hf_index, ett_dap_T_signedReferral);
4269 return offset;
4273 const value_string dap_Referral_vals[] = {
4274 { 0, "unsignedReferral" },
4275 { 1, "signedReferral" },
4276 { 0, NULL }
4279 static const ber_choice_t Referral_choice[] = {
4280 { 0, &hf_dap_unsignedReferral, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ReferralData },
4281 { 1, &hf_dap_signedReferral , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedReferral },
4282 { 0, NULL, 0, 0, 0, NULL }
4286 dissect_dap_Referral(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4287 offset = dissect_ber_choice(actx, tree, tvb, offset,
4288 Referral_choice, hf_index, ett_dap_Referral,
4289 NULL);
4291 return offset;
4296 static int
4297 dissect_dap_T_spkmInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4298 /* XXX: not yet implemented */
4301 return offset;
4305 static const ber_sequence_t SecurityErrorData_set[] = {
4306 { &hf_dap_security_error_problem, BER_CLASS_CON, 0, 0, dissect_dap_SecurityProblem },
4307 { &hf_dap_spkmInfo , BER_CLASS_CON, 1, 0, dissect_dap_T_spkmInfo },
4308 { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
4309 { &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
4310 { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
4311 { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
4312 { NULL, 0, 0, 0, NULL }
4315 static int
4316 dissect_dap_SecurityErrorData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4317 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4318 SecurityErrorData_set, hf_index, ett_dap_SecurityErrorData);
4320 return offset;
4324 static const ber_sequence_t T_signedSecurityError_sequence[] = {
4325 { &hf_dap_securityErrorData, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_SecurityErrorData },
4326 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
4327 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
4328 { NULL, 0, 0, 0, NULL }
4331 static int
4332 dissect_dap_T_signedSecurityError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4333 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4334 T_signedSecurityError_sequence, hf_index, ett_dap_T_signedSecurityError);
4336 return offset;
4340 const value_string dap_SecurityError_vals[] = {
4341 { 0, "unsignedSecurityError" },
4342 { 1, "signedSecurityError" },
4343 { 0, NULL }
4346 static const ber_choice_t SecurityError_choice[] = {
4347 { 0, &hf_dap_unsignedSecurityError, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_SecurityErrorData },
4348 { 1, &hf_dap_signedSecurityError, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedSecurityError },
4349 { 0, NULL, 0, 0, 0, NULL }
4353 dissect_dap_SecurityError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4354 offset = dissect_ber_choice(actx, tree, tvb, offset,
4355 SecurityError_choice, hf_index, ett_dap_SecurityError,
4356 NULL);
4358 return offset;
4362 static const ber_sequence_t ServiceErrorData_set[] = {
4363 { &hf_dap_service_error_problem, BER_CLASS_CON, 0, 0, dissect_dap_ServiceProblem },
4364 { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
4365 { &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
4366 { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
4367 { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
4368 { NULL, 0, 0, 0, NULL }
4371 static int
4372 dissect_dap_ServiceErrorData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4373 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4374 ServiceErrorData_set, hf_index, ett_dap_ServiceErrorData);
4376 return offset;
4380 static const ber_sequence_t T_signedServiceError_sequence[] = {
4381 { &hf_dap_serviceError , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ServiceErrorData },
4382 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
4383 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
4384 { NULL, 0, 0, 0, NULL }
4387 static int
4388 dissect_dap_T_signedServiceError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4389 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4390 T_signedServiceError_sequence, hf_index, ett_dap_T_signedServiceError);
4392 return offset;
4396 const value_string dap_ServiceError_vals[] = {
4397 { 0, "unsignedServiceError" },
4398 { 1, "signedServiceError" },
4399 { 0, NULL }
4402 static const ber_choice_t ServiceError_choice[] = {
4403 { 0, &hf_dap_unsignedServiceError, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ServiceErrorData },
4404 { 1, &hf_dap_signedServiceError, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedServiceError },
4405 { 0, NULL, 0, 0, 0, NULL }
4409 dissect_dap_ServiceError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4410 offset = dissect_ber_choice(actx, tree, tvb, offset,
4411 ServiceError_choice, hf_index, ett_dap_ServiceError,
4412 NULL);
4414 return offset;
4418 static const value_string dap_UpdateProblem_vals[] = {
4419 { 1, "namingViolation" },
4420 { 2, "objectClassViolation" },
4421 { 3, "notAllowedOnNonLeaf" },
4422 { 4, "notAllowedOnRDN" },
4423 { 5, "entryAlreadyExists" },
4424 { 6, "affectsMultipleDSAs" },
4425 { 7, "objectClassModificationProhibited" },
4426 { 8, "noSuchSuperior" },
4427 { 9, "notAncestor" },
4428 { 10, "parentNotAncestor" },
4429 { 11, "hierarchyRuleViolation" },
4430 { 12, "familyRuleViolation" },
4431 { 0, NULL }
4435 static int
4436 dissect_dap_UpdateProblem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4437 uint32_t problem;
4439 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4440 &problem);
4443 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", val_to_str(problem, dap_UpdateProblem_vals, "UpdateProblem(%d)"));
4446 return offset;
4450 static const value_string dap_T_attributeInfo_item_vals[] = {
4451 { 0, "attributeType" },
4452 { 1, "attribute" },
4453 { 0, NULL }
4456 static const ber_choice_t T_attributeInfo_item_choice[] = {
4457 { 0, &hf_dap_attributeType , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
4458 { 1, &hf_dap_attribute , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
4459 { 0, NULL, 0, 0, 0, NULL }
4462 static int
4463 dissect_dap_T_attributeInfo_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4464 offset = dissect_ber_choice(actx, tree, tvb, offset,
4465 T_attributeInfo_item_choice, hf_index, ett_dap_T_attributeInfo_item,
4466 NULL);
4468 return offset;
4472 static const ber_sequence_t T_attributeInfo_set_of[1] = {
4473 { &hf_dap_attributeInfo_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_T_attributeInfo_item },
4476 static int
4477 dissect_dap_T_attributeInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4478 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
4479 T_attributeInfo_set_of, hf_index, ett_dap_T_attributeInfo);
4481 return offset;
4485 static const ber_sequence_t UpdateErrorData_set[] = {
4486 { &hf_dap_update_error_problem, BER_CLASS_CON, 0, 0, dissect_dap_UpdateProblem },
4487 { &hf_dap_attributeInfo , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_T_attributeInfo },
4488 { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
4489 { &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
4490 { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
4491 { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
4492 { NULL, 0, 0, 0, NULL }
4495 static int
4496 dissect_dap_UpdateErrorData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4497 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4498 UpdateErrorData_set, hf_index, ett_dap_UpdateErrorData);
4500 return offset;
4504 static const ber_sequence_t T_signedUpdateError_sequence[] = {
4505 { &hf_dap_updateError , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_UpdateErrorData },
4506 { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
4507 { &hf_dap_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
4508 { NULL, 0, 0, 0, NULL }
4511 static int
4512 dissect_dap_T_signedUpdateError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4513 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4514 T_signedUpdateError_sequence, hf_index, ett_dap_T_signedUpdateError);
4516 return offset;
4520 const value_string dap_UpdateError_vals[] = {
4521 { 0, "unsignedUpdateError" },
4522 { 1, "signedUpdateError" },
4523 { 0, NULL }
4526 static const ber_choice_t UpdateError_choice[] = {
4527 { 0, &hf_dap_unsignedUpdateError, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_UpdateErrorData },
4528 { 1, &hf_dap_signedUpdateError, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedUpdateError },
4529 { 0, NULL, 0, 0, 0, NULL }
4533 dissect_dap_UpdateError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4534 offset = dissect_ber_choice(actx, tree, tvb, offset,
4535 UpdateError_choice, hf_index, ett_dap_UpdateError,
4536 NULL);
4538 return offset;
4541 /*--- PDUs ---*/
4543 static int dissect_DirectoryBindArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4544 int offset = 0;
4545 asn1_ctx_t asn1_ctx;
4546 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4547 offset = dissect_dap_DirectoryBindArgument(false, tvb, offset, &asn1_ctx, tree, hf_dap_DirectoryBindArgument_PDU);
4548 return offset;
4550 static int dissect_DirectoryBindResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4551 int offset = 0;
4552 asn1_ctx_t asn1_ctx;
4553 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4554 offset = dissect_dap_DirectoryBindResult(false, tvb, offset, &asn1_ctx, tree, hf_dap_DirectoryBindResult_PDU);
4555 return offset;
4557 static int dissect_DirectoryBindError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4558 int offset = 0;
4559 asn1_ctx_t asn1_ctx;
4560 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4561 offset = dissect_dap_DirectoryBindError(false, tvb, offset, &asn1_ctx, tree, hf_dap_DirectoryBindError_PDU);
4562 return offset;
4564 static int dissect_ReadArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4565 int offset = 0;
4566 asn1_ctx_t asn1_ctx;
4567 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4568 offset = dissect_dap_ReadArgument(false, tvb, offset, &asn1_ctx, tree, hf_dap_ReadArgument_PDU);
4569 return offset;
4571 static int dissect_ReadResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4572 int offset = 0;
4573 asn1_ctx_t asn1_ctx;
4574 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4575 offset = dissect_dap_ReadResult(false, tvb, offset, &asn1_ctx, tree, hf_dap_ReadResult_PDU);
4576 return offset;
4578 static int dissect_CompareArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4579 int offset = 0;
4580 asn1_ctx_t asn1_ctx;
4581 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4582 offset = dissect_dap_CompareArgument(false, tvb, offset, &asn1_ctx, tree, hf_dap_CompareArgument_PDU);
4583 return offset;
4585 static int dissect_CompareResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4586 int offset = 0;
4587 asn1_ctx_t asn1_ctx;
4588 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4589 offset = dissect_dap_CompareResult(false, tvb, offset, &asn1_ctx, tree, hf_dap_CompareResult_PDU);
4590 return offset;
4592 static int dissect_AbandonArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4593 int offset = 0;
4594 asn1_ctx_t asn1_ctx;
4595 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4596 offset = dissect_dap_AbandonArgument(false, tvb, offset, &asn1_ctx, tree, hf_dap_AbandonArgument_PDU);
4597 return offset;
4599 static int dissect_AbandonResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4600 int offset = 0;
4601 asn1_ctx_t asn1_ctx;
4602 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4603 offset = dissect_dap_AbandonResult(false, tvb, offset, &asn1_ctx, tree, hf_dap_AbandonResult_PDU);
4604 return offset;
4606 static int dissect_ListArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4607 int offset = 0;
4608 asn1_ctx_t asn1_ctx;
4609 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4610 offset = dissect_dap_ListArgument(false, tvb, offset, &asn1_ctx, tree, hf_dap_ListArgument_PDU);
4611 return offset;
4613 static int dissect_ListResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4614 int offset = 0;
4615 asn1_ctx_t asn1_ctx;
4616 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4617 offset = dissect_dap_ListResult(false, tvb, offset, &asn1_ctx, tree, hf_dap_ListResult_PDU);
4618 return offset;
4620 static int dissect_SearchArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4621 int offset = 0;
4622 asn1_ctx_t asn1_ctx;
4623 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4624 offset = dissect_dap_SearchArgument(false, tvb, offset, &asn1_ctx, tree, hf_dap_SearchArgument_PDU);
4625 return offset;
4627 static int dissect_SearchResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4628 int offset = 0;
4629 asn1_ctx_t asn1_ctx;
4630 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4631 offset = dissect_dap_SearchResult(false, tvb, offset, &asn1_ctx, tree, hf_dap_SearchResult_PDU);
4632 return offset;
4634 static int dissect_AddEntryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4635 int offset = 0;
4636 asn1_ctx_t asn1_ctx;
4637 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4638 offset = dissect_dap_AddEntryArgument(false, tvb, offset, &asn1_ctx, tree, hf_dap_AddEntryArgument_PDU);
4639 return offset;
4641 static int dissect_AddEntryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4642 int offset = 0;
4643 asn1_ctx_t asn1_ctx;
4644 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4645 offset = dissect_dap_AddEntryResult(false, tvb, offset, &asn1_ctx, tree, hf_dap_AddEntryResult_PDU);
4646 return offset;
4648 static int dissect_RemoveEntryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4649 int offset = 0;
4650 asn1_ctx_t asn1_ctx;
4651 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4652 offset = dissect_dap_RemoveEntryArgument(false, tvb, offset, &asn1_ctx, tree, hf_dap_RemoveEntryArgument_PDU);
4653 return offset;
4655 static int dissect_RemoveEntryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4656 int offset = 0;
4657 asn1_ctx_t asn1_ctx;
4658 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4659 offset = dissect_dap_RemoveEntryResult(false, tvb, offset, &asn1_ctx, tree, hf_dap_RemoveEntryResult_PDU);
4660 return offset;
4662 static int dissect_ModifyEntryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4663 int offset = 0;
4664 asn1_ctx_t asn1_ctx;
4665 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4666 offset = dissect_dap_ModifyEntryArgument(false, tvb, offset, &asn1_ctx, tree, hf_dap_ModifyEntryArgument_PDU);
4667 return offset;
4669 static int dissect_ModifyEntryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4670 int offset = 0;
4671 asn1_ctx_t asn1_ctx;
4672 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4673 offset = dissect_dap_ModifyEntryResult(false, tvb, offset, &asn1_ctx, tree, hf_dap_ModifyEntryResult_PDU);
4674 return offset;
4676 static int dissect_ModifyDNArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4677 int offset = 0;
4678 asn1_ctx_t asn1_ctx;
4679 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4680 offset = dissect_dap_ModifyDNArgument(false, tvb, offset, &asn1_ctx, tree, hf_dap_ModifyDNArgument_PDU);
4681 return offset;
4683 static int dissect_ModifyDNResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4684 int offset = 0;
4685 asn1_ctx_t asn1_ctx;
4686 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4687 offset = dissect_dap_ModifyDNResult(false, tvb, offset, &asn1_ctx, tree, hf_dap_ModifyDNResult_PDU);
4688 return offset;
4690 static int dissect_Abandoned_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4691 int offset = 0;
4692 asn1_ctx_t asn1_ctx;
4693 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4694 offset = dissect_dap_Abandoned(false, tvb, offset, &asn1_ctx, tree, hf_dap_Abandoned_PDU);
4695 return offset;
4697 static int dissect_AbandonFailedError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4698 int offset = 0;
4699 asn1_ctx_t asn1_ctx;
4700 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4701 offset = dissect_dap_AbandonFailedError(false, tvb, offset, &asn1_ctx, tree, hf_dap_AbandonFailedError_PDU);
4702 return offset;
4704 static int dissect_AttributeError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4705 int offset = 0;
4706 asn1_ctx_t asn1_ctx;
4707 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4708 offset = dissect_dap_AttributeError(false, tvb, offset, &asn1_ctx, tree, hf_dap_AttributeError_PDU);
4709 return offset;
4711 static int dissect_NameError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4712 int offset = 0;
4713 asn1_ctx_t asn1_ctx;
4714 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4715 offset = dissect_dap_NameError(false, tvb, offset, &asn1_ctx, tree, hf_dap_NameError_PDU);
4716 return offset;
4718 static int dissect_Referral_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4719 int offset = 0;
4720 asn1_ctx_t asn1_ctx;
4721 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4722 offset = dissect_dap_Referral(false, tvb, offset, &asn1_ctx, tree, hf_dap_Referral_PDU);
4723 return offset;
4725 static int dissect_SecurityError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4726 int offset = 0;
4727 asn1_ctx_t asn1_ctx;
4728 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4729 offset = dissect_dap_SecurityError(false, tvb, offset, &asn1_ctx, tree, hf_dap_SecurityError_PDU);
4730 return offset;
4732 static int dissect_ServiceError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4733 int offset = 0;
4734 asn1_ctx_t asn1_ctx;
4735 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4736 offset = dissect_dap_ServiceError(false, tvb, offset, &asn1_ctx, tree, hf_dap_ServiceError_PDU);
4737 return offset;
4739 static int dissect_UpdateError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4740 int offset = 0;
4741 asn1_ctx_t asn1_ctx;
4742 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4743 offset = dissect_dap_UpdateError(false, tvb, offset, &asn1_ctx, tree, hf_dap_UpdateError_PDU);
4744 return offset;
4749 static const ros_opr_t dap_opr_tab[] = {
4750 /* directoryBind */
4751 { op_ros_bind , dissect_DirectoryBindArgument_PDU, dissect_DirectoryBindResult_PDU },
4752 /* read */
4753 { id_opcode_read , dissect_ReadArgument_PDU, dissect_ReadResult_PDU },
4754 /* compare */
4755 { id_opcode_compare , dissect_CompareArgument_PDU, dissect_CompareResult_PDU },
4756 /* abandon */
4757 { id_opcode_abandon , dissect_AbandonArgument_PDU, dissect_AbandonResult_PDU },
4758 /* list */
4759 { id_opcode_list , dissect_ListArgument_PDU, dissect_ListResult_PDU },
4760 /* search */
4761 { id_opcode_search , dissect_SearchArgument_PDU, dissect_SearchResult_PDU },
4762 /* addEntry */
4763 { id_opcode_addEntry , dissect_AddEntryArgument_PDU, dissect_AddEntryResult_PDU },
4764 /* removeEntry */
4765 { id_opcode_removeEntry , dissect_RemoveEntryArgument_PDU, dissect_RemoveEntryResult_PDU },
4766 /* modifyEntry */
4767 { id_opcode_modifyEntry , dissect_ModifyEntryArgument_PDU, dissect_ModifyEntryResult_PDU },
4768 /* modifyDN */
4769 { id_opcode_modifyDN , dissect_ModifyDNArgument_PDU, dissect_ModifyDNResult_PDU },
4770 { 0, (dissector_t)(-1), (dissector_t)(-1) },
4774 static const ros_err_t dap_err_tab[] = {
4775 /* directoryBindError*/
4776 { err_ros_bind, dissect_DirectoryBindError_PDU },
4777 /* abandoned*/
4778 { id_errcode_abandoned, dissect_Abandoned_PDU },
4779 /* abandonFailed*/
4780 { id_errcode_abandonFailed, dissect_AbandonFailedError_PDU },
4781 /* attributeError*/
4782 { id_errcode_attributeError, dissect_AttributeError_PDU },
4783 /* nameError*/
4784 { id_errcode_nameError, dissect_NameError_PDU },
4785 /* referral*/
4786 { id_errcode_referral, dissect_Referral_PDU },
4787 /* securityError*/
4788 { id_errcode_securityError, dissect_SecurityError_PDU },
4789 /* serviceError*/
4790 { id_errcode_serviceError, dissect_ServiceError_PDU },
4791 /* updateError*/
4792 { id_errcode_updateError, dissect_UpdateError_PDU },
4793 { 0, (dissector_t)(-1) },
4797 static const ros_info_t dap_ros_info = {
4798 "DAP",
4799 &proto_dap,
4800 &ett_dap,
4801 dap_opr_code_string_vals,
4802 dap_opr_tab,
4803 dap_err_code_string_vals,
4804 dap_err_tab
4808 /*--- proto_register_dap -------------------------------------------*/
4809 void proto_register_dap(void) {
4811 /* List of fields */
4812 static hf_register_info hf[] =
4814 { &hf_dap_DirectoryBindArgument_PDU,
4815 { "DirectoryBindArgument", "dap.DirectoryBindArgument_element",
4816 FT_NONE, BASE_NONE, NULL, 0,
4817 NULL, HFILL }},
4818 { &hf_dap_DirectoryBindResult_PDU,
4819 { "DirectoryBindResult", "dap.DirectoryBindResult_element",
4820 FT_NONE, BASE_NONE, NULL, 0,
4821 NULL, HFILL }},
4822 { &hf_dap_DirectoryBindError_PDU,
4823 { "DirectoryBindError", "dap.DirectoryBindError",
4824 FT_UINT32, BASE_DEC, VALS(dap_DirectoryBindError_vals), 0,
4825 NULL, HFILL }},
4826 { &hf_dap_ReadArgument_PDU,
4827 { "ReadArgument", "dap.ReadArgument",
4828 FT_UINT32, BASE_DEC, VALS(dap_ReadArgument_vals), 0,
4829 NULL, HFILL }},
4830 { &hf_dap_ReadResult_PDU,
4831 { "ReadResult", "dap.ReadResult",
4832 FT_UINT32, BASE_DEC, VALS(dap_ReadResult_vals), 0,
4833 NULL, HFILL }},
4834 { &hf_dap_CompareArgument_PDU,
4835 { "CompareArgument", "dap.CompareArgument",
4836 FT_UINT32, BASE_DEC, VALS(dap_CompareArgument_vals), 0,
4837 NULL, HFILL }},
4838 { &hf_dap_CompareResult_PDU,
4839 { "CompareResult", "dap.CompareResult",
4840 FT_UINT32, BASE_DEC, VALS(dap_CompareResult_vals), 0,
4841 NULL, HFILL }},
4842 { &hf_dap_AbandonArgument_PDU,
4843 { "AbandonArgument", "dap.AbandonArgument",
4844 FT_UINT32, BASE_DEC, VALS(dap_AbandonArgument_vals), 0,
4845 NULL, HFILL }},
4846 { &hf_dap_AbandonResult_PDU,
4847 { "AbandonResult", "dap.AbandonResult",
4848 FT_UINT32, BASE_DEC, VALS(dap_AbandonResult_vals), 0,
4849 NULL, HFILL }},
4850 { &hf_dap_ListArgument_PDU,
4851 { "ListArgument", "dap.ListArgument",
4852 FT_UINT32, BASE_DEC, VALS(dap_ListArgument_vals), 0,
4853 NULL, HFILL }},
4854 { &hf_dap_ListResult_PDU,
4855 { "ListResult", "dap.ListResult",
4856 FT_UINT32, BASE_DEC, VALS(dap_ListResult_vals), 0,
4857 NULL, HFILL }},
4858 { &hf_dap_SearchArgument_PDU,
4859 { "SearchArgument", "dap.SearchArgument",
4860 FT_UINT32, BASE_DEC, VALS(dap_SearchArgument_vals), 0,
4861 NULL, HFILL }},
4862 { &hf_dap_SearchResult_PDU,
4863 { "SearchResult", "dap.SearchResult",
4864 FT_UINT32, BASE_DEC, VALS(dap_SearchResult_vals), 0,
4865 NULL, HFILL }},
4866 { &hf_dap_AddEntryArgument_PDU,
4867 { "AddEntryArgument", "dap.AddEntryArgument",
4868 FT_UINT32, BASE_DEC, VALS(dap_AddEntryArgument_vals), 0,
4869 NULL, HFILL }},
4870 { &hf_dap_AddEntryResult_PDU,
4871 { "AddEntryResult", "dap.AddEntryResult",
4872 FT_UINT32, BASE_DEC, VALS(dap_AddEntryResult_vals), 0,
4873 NULL, HFILL }},
4874 { &hf_dap_RemoveEntryArgument_PDU,
4875 { "RemoveEntryArgument", "dap.RemoveEntryArgument",
4876 FT_UINT32, BASE_DEC, VALS(dap_RemoveEntryArgument_vals), 0,
4877 NULL, HFILL }},
4878 { &hf_dap_RemoveEntryResult_PDU,
4879 { "RemoveEntryResult", "dap.RemoveEntryResult",
4880 FT_UINT32, BASE_DEC, VALS(dap_RemoveEntryResult_vals), 0,
4881 NULL, HFILL }},
4882 { &hf_dap_ModifyEntryArgument_PDU,
4883 { "ModifyEntryArgument", "dap.ModifyEntryArgument",
4884 FT_UINT32, BASE_DEC, VALS(dap_ModifyEntryArgument_vals), 0,
4885 NULL, HFILL }},
4886 { &hf_dap_ModifyEntryResult_PDU,
4887 { "ModifyEntryResult", "dap.ModifyEntryResult",
4888 FT_UINT32, BASE_DEC, VALS(dap_ModifyEntryResult_vals), 0,
4889 NULL, HFILL }},
4890 { &hf_dap_ModifyDNArgument_PDU,
4891 { "ModifyDNArgument", "dap.ModifyDNArgument_element",
4892 FT_NONE, BASE_NONE, NULL, 0,
4893 NULL, HFILL }},
4894 { &hf_dap_ModifyDNResult_PDU,
4895 { "ModifyDNResult", "dap.ModifyDNResult",
4896 FT_UINT32, BASE_DEC, VALS(dap_ModifyDNResult_vals), 0,
4897 NULL, HFILL }},
4898 { &hf_dap_Abandoned_PDU,
4899 { "Abandoned", "dap.Abandoned",
4900 FT_UINT32, BASE_DEC, VALS(dap_Abandoned_vals), 0,
4901 NULL, HFILL }},
4902 { &hf_dap_AbandonFailedError_PDU,
4903 { "AbandonFailedError", "dap.AbandonFailedError",
4904 FT_UINT32, BASE_DEC, VALS(dap_AbandonFailedError_vals), 0,
4905 NULL, HFILL }},
4906 { &hf_dap_AttributeError_PDU,
4907 { "AttributeError", "dap.AttributeError",
4908 FT_UINT32, BASE_DEC, VALS(dap_AttributeError_vals), 0,
4909 NULL, HFILL }},
4910 { &hf_dap_NameError_PDU,
4911 { "NameError", "dap.NameError",
4912 FT_UINT32, BASE_DEC, VALS(dap_NameError_vals), 0,
4913 NULL, HFILL }},
4914 { &hf_dap_Referral_PDU,
4915 { "Referral", "dap.Referral",
4916 FT_UINT32, BASE_DEC, VALS(dap_Referral_vals), 0,
4917 NULL, HFILL }},
4918 { &hf_dap_SecurityError_PDU,
4919 { "SecurityError", "dap.SecurityError",
4920 FT_UINT32, BASE_DEC, VALS(dap_SecurityError_vals), 0,
4921 NULL, HFILL }},
4922 { &hf_dap_ServiceError_PDU,
4923 { "ServiceError", "dap.ServiceError",
4924 FT_UINT32, BASE_DEC, VALS(dap_ServiceError_vals), 0,
4925 NULL, HFILL }},
4926 { &hf_dap_UpdateError_PDU,
4927 { "UpdateError", "dap.UpdateError",
4928 FT_UINT32, BASE_DEC, VALS(dap_UpdateError_vals), 0,
4929 NULL, HFILL }},
4930 { &hf_dap_options,
4931 { "options", "dap.options",
4932 FT_BYTES, BASE_NONE, NULL, 0,
4933 "ServiceControlOptions", HFILL }},
4934 { &hf_dap_priority,
4935 { "priority", "dap.priority",
4936 FT_INT32, BASE_DEC, VALS(dap_T_priority_vals), 0,
4937 NULL, HFILL }},
4938 { &hf_dap_timeLimit,
4939 { "timeLimit", "dap.timeLimit",
4940 FT_INT32, BASE_DEC, NULL, 0,
4941 "INTEGER", HFILL }},
4942 { &hf_dap_sizeLimit,
4943 { "sizeLimit", "dap.sizeLimit",
4944 FT_INT32, BASE_DEC, NULL, 0,
4945 "INTEGER", HFILL }},
4946 { &hf_dap_scopeOfReferral,
4947 { "scopeOfReferral", "dap.scopeOfReferral",
4948 FT_INT32, BASE_DEC, VALS(dap_T_scopeOfReferral_vals), 0,
4949 NULL, HFILL }},
4950 { &hf_dap_attributeSizeLimit,
4951 { "attributeSizeLimit", "dap.attributeSizeLimit",
4952 FT_INT32, BASE_DEC, NULL, 0,
4953 "INTEGER", HFILL }},
4954 { &hf_dap_manageDSAITPlaneRef,
4955 { "manageDSAITPlaneRef", "dap.manageDSAITPlaneRef_element",
4956 FT_NONE, BASE_NONE, NULL, 0,
4957 NULL, HFILL }},
4958 { &hf_dap_dsaName,
4959 { "dsaName", "dap.dsaName",
4960 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
4961 "Name", HFILL }},
4962 { &hf_dap_agreementID,
4963 { "agreementID", "dap.agreementID_element",
4964 FT_NONE, BASE_NONE, NULL, 0,
4965 NULL, HFILL }},
4966 { &hf_dap_serviceType,
4967 { "serviceType", "dap.serviceType",
4968 FT_OID, BASE_NONE, NULL, 0,
4969 "OBJECT_IDENTIFIER", HFILL }},
4970 { &hf_dap_userClass,
4971 { "userClass", "dap.userClass",
4972 FT_INT32, BASE_DEC, NULL, 0,
4973 "INTEGER", HFILL }},
4974 { &hf_dap_attributes,
4975 { "attributes", "dap.attributes",
4976 FT_UINT32, BASE_DEC, VALS(dap_T_attributes_vals), 0,
4977 NULL, HFILL }},
4978 { &hf_dap_allUserAttributes,
4979 { "allUserAttributes", "dap.allUserAttributes_element",
4980 FT_NONE, BASE_NONE, NULL, 0,
4981 NULL, HFILL }},
4982 { &hf_dap_select,
4983 { "select", "dap.select",
4984 FT_UINT32, BASE_DEC, NULL, 0,
4985 "SET_OF_AttributeType", HFILL }},
4986 { &hf_dap_select_item,
4987 { "AttributeType", "dap.AttributeType",
4988 FT_OID, BASE_NONE, NULL, 0,
4989 NULL, HFILL }},
4990 { &hf_dap_infoTypes,
4991 { "infoTypes", "dap.infoTypes",
4992 FT_INT32, BASE_DEC, VALS(dap_T_infoTypes_vals), 0,
4993 NULL, HFILL }},
4994 { &hf_dap_extraAttributes,
4995 { "extraAttributes", "dap.extraAttributes",
4996 FT_UINT32, BASE_DEC, VALS(dap_T_extraAttributes_vals), 0,
4997 NULL, HFILL }},
4998 { &hf_dap_allOperationalAttributes,
4999 { "allOperationalAttributes", "dap.allOperationalAttributes_element",
5000 FT_NONE, BASE_NONE, NULL, 0,
5001 NULL, HFILL }},
5002 { &hf_dap_extraSelect,
5003 { "select", "dap.extraSelect",
5004 FT_UINT32, BASE_DEC, NULL, 0,
5005 "SET_SIZE_1_MAX_OF_AttributeType", HFILL }},
5006 { &hf_dap_extraSelect_item,
5007 { "AttributeType", "dap.AttributeType",
5008 FT_OID, BASE_NONE, NULL, 0,
5009 NULL, HFILL }},
5010 { &hf_dap_contextSelection,
5011 { "contextSelection", "dap.contextSelection",
5012 FT_UINT32, BASE_DEC, VALS(dap_ContextSelection_vals), 0,
5013 NULL, HFILL }},
5014 { &hf_dap_returnContexts,
5015 { "returnContexts", "dap.returnContexts",
5016 FT_BOOLEAN, BASE_NONE, NULL, 0,
5017 "BOOLEAN", HFILL }},
5018 { &hf_dap_familyReturn,
5019 { "familyReturn", "dap.familyReturn_element",
5020 FT_NONE, BASE_NONE, NULL, 0,
5021 NULL, HFILL }},
5022 { &hf_dap_allContexts,
5023 { "allContexts", "dap.allContexts_element",
5024 FT_NONE, BASE_NONE, NULL, 0,
5025 NULL, HFILL }},
5026 { &hf_dap_selectedContexts,
5027 { "selectedContexts", "dap.selectedContexts",
5028 FT_UINT32, BASE_DEC, NULL, 0,
5029 "SET_SIZE_1_MAX_OF_TypeAndContextAssertion", HFILL }},
5030 { &hf_dap_selectedContexts_item,
5031 { "TypeAndContextAssertion", "dap.TypeAndContextAssertion_element",
5032 FT_NONE, BASE_NONE, NULL, 0,
5033 NULL, HFILL }},
5034 { &hf_dap_type,
5035 { "type", "dap.type",
5036 FT_OID, BASE_NONE, NULL, 0,
5037 "AttributeType", HFILL }},
5038 { &hf_dap_contextAssertions,
5039 { "contextAssertions", "dap.contextAssertions",
5040 FT_UINT32, BASE_DEC, VALS(dap_T_contextAssertions_vals), 0,
5041 NULL, HFILL }},
5042 { &hf_dap_preference,
5043 { "preference", "dap.preference",
5044 FT_UINT32, BASE_DEC, NULL, 0,
5045 "SEQUENCE_OF_ContextAssertion", HFILL }},
5046 { &hf_dap_preference_item,
5047 { "ContextAssertion", "dap.ContextAssertion_element",
5048 FT_NONE, BASE_NONE, NULL, 0,
5049 NULL, HFILL }},
5050 { &hf_dap_all,
5051 { "all", "dap.all",
5052 FT_UINT32, BASE_DEC, NULL, 0,
5053 "SET_OF_ContextAssertion", HFILL }},
5054 { &hf_dap_all_item,
5055 { "ContextAssertion", "dap.ContextAssertion_element",
5056 FT_NONE, BASE_NONE, NULL, 0,
5057 NULL, HFILL }},
5058 { &hf_dap_memberSelect,
5059 { "memberSelect", "dap.memberSelect",
5060 FT_UINT32, BASE_DEC, VALS(dap_T_memberSelect_vals), 0,
5061 NULL, HFILL }},
5062 { &hf_dap_familySelect,
5063 { "familySelect", "dap.familySelect",
5064 FT_UINT32, BASE_DEC, NULL, 0,
5065 NULL, HFILL }},
5066 { &hf_dap_familySelect_item,
5067 { "familySelect item", "dap.familySelect_item",
5068 FT_OID, BASE_NONE, NULL, 0,
5069 "OBJECT_IDENTIFIER", HFILL }},
5070 { &hf_dap_name,
5071 { "name", "dap.name",
5072 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
5073 NULL, HFILL }},
5074 { &hf_dap_fromEntry,
5075 { "fromEntry", "dap.fromEntry",
5076 FT_BOOLEAN, BASE_NONE, NULL, 0,
5077 "BOOLEAN", HFILL }},
5078 { &hf_dap_entry_information,
5079 { "information", "dap.entry_information",
5080 FT_UINT32, BASE_DEC, NULL, 0,
5081 "T_entry_information", HFILL }},
5082 { &hf_dap_entry_information_item,
5083 { "information item", "dap.entry_information_item",
5084 FT_UINT32, BASE_DEC, VALS(dap_EntryInformationItem_vals), 0,
5085 "EntryInformationItem", HFILL }},
5086 { &hf_dap_attributeType,
5087 { "attributeType", "dap.attributeType",
5088 FT_OID, BASE_NONE, NULL, 0,
5089 NULL, HFILL }},
5090 { &hf_dap_attribute,
5091 { "attribute", "dap.attribute_element",
5092 FT_NONE, BASE_NONE, NULL, 0,
5093 NULL, HFILL }},
5094 { &hf_dap_incompleteEntry,
5095 { "incompleteEntry", "dap.incompleteEntry",
5096 FT_BOOLEAN, BASE_NONE, NULL, 0,
5097 "BOOLEAN", HFILL }},
5098 { &hf_dap_partialName,
5099 { "partialName", "dap.partialName",
5100 FT_BOOLEAN, BASE_NONE, NULL, 0,
5101 "BOOLEAN", HFILL }},
5102 { &hf_dap_derivedEntry,
5103 { "derivedEntry", "dap.derivedEntry",
5104 FT_BOOLEAN, BASE_NONE, NULL, 0,
5105 "BOOLEAN", HFILL }},
5106 { &hf_dap_family_class,
5107 { "family-class", "dap.family_class",
5108 FT_OID, BASE_NONE, NULL, 0,
5109 "OBJECT_IDENTIFIER", HFILL }},
5110 { &hf_dap_familyEntries,
5111 { "familyEntries", "dap.familyEntries",
5112 FT_UINT32, BASE_DEC, NULL, 0,
5113 "SEQUENCE_OF_FamilyEntry", HFILL }},
5114 { &hf_dap_familyEntries_item,
5115 { "FamilyEntry", "dap.FamilyEntry_element",
5116 FT_NONE, BASE_NONE, NULL, 0,
5117 NULL, HFILL }},
5118 { &hf_dap_rdn,
5119 { "rdn", "dap.rdn",
5120 FT_UINT32, BASE_DEC, NULL, 0,
5121 "RelativeDistinguishedName", HFILL }},
5122 { &hf_dap_family_information,
5123 { "information", "dap.family_information",
5124 FT_UINT32, BASE_DEC, NULL, 0,
5125 "FamilyInformation", HFILL }},
5126 { &hf_dap_family_information_item,
5127 { "information item", "dap.family_information_item",
5128 FT_UINT32, BASE_DEC, VALS(dap_T_family_information_item_vals), 0,
5129 "T_family_information_item", HFILL }},
5130 { &hf_dap_family_info,
5131 { "family-info", "dap.family_info",
5132 FT_UINT32, BASE_DEC, NULL, 0,
5133 "SEQUENCE_SIZE_1_MAX_OF_FamilyEntries", HFILL }},
5134 { &hf_dap_family_info_item,
5135 { "FamilyEntries", "dap.FamilyEntries_element",
5136 FT_NONE, BASE_NONE, NULL, 0,
5137 NULL, HFILL }},
5138 { &hf_dap_filter_item,
5139 { "item", "dap.filter_item",
5140 FT_UINT32, BASE_DEC, VALS(dap_FilterItem_vals), 0,
5141 "FilterItem", HFILL }},
5142 { &hf_dap_and,
5143 { "and", "dap.and",
5144 FT_UINT32, BASE_DEC, NULL, 0,
5145 "SetOfFilter", HFILL }},
5146 { &hf_dap_or,
5147 { "or", "dap.or",
5148 FT_UINT32, BASE_DEC, NULL, 0,
5149 "SetOfFilter", HFILL }},
5150 { &hf_dap_not,
5151 { "not", "dap.not",
5152 FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
5153 "Filter", HFILL }},
5154 { &hf_dap_SetOfFilter_item,
5155 { "Filter", "dap.Filter",
5156 FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
5157 NULL, HFILL }},
5158 { &hf_dap_equality,
5159 { "equality", "dap.equality_element",
5160 FT_NONE, BASE_NONE, NULL, 0,
5161 "AttributeValueAssertion", HFILL }},
5162 { &hf_dap_substrings,
5163 { "substrings", "dap.substrings_element",
5164 FT_NONE, BASE_NONE, NULL, 0,
5165 NULL, HFILL }},
5166 { &hf_dap_sunstringType,
5167 { "type", "dap.sunstringType",
5168 FT_OID, BASE_NONE, NULL, 0,
5169 "OBJECT_IDENTIFIER", HFILL }},
5170 { &hf_dap_strings,
5171 { "strings", "dap.strings",
5172 FT_UINT32, BASE_DEC, NULL, 0,
5173 NULL, HFILL }},
5174 { &hf_dap_strings_item,
5175 { "strings item", "dap.strings_item",
5176 FT_UINT32, BASE_DEC, VALS(dap_T_strings_item_vals), 0,
5177 NULL, HFILL }},
5178 { &hf_dap_initial,
5179 { "initial", "dap.initial_element",
5180 FT_NONE, BASE_NONE, NULL, 0,
5181 NULL, HFILL }},
5182 { &hf_dap_any,
5183 { "any", "dap.any_element",
5184 FT_NONE, BASE_NONE, NULL, 0,
5185 NULL, HFILL }},
5186 { &hf_dap_final,
5187 { "final", "dap.final_element",
5188 FT_NONE, BASE_NONE, NULL, 0,
5189 NULL, HFILL }},
5190 { &hf_dap_control,
5191 { "control", "dap.control_element",
5192 FT_NONE, BASE_NONE, NULL, 0,
5193 "Attribute", HFILL }},
5194 { &hf_dap_greaterOrEqual,
5195 { "greaterOrEqual", "dap.greaterOrEqual_element",
5196 FT_NONE, BASE_NONE, NULL, 0,
5197 "AttributeValueAssertion", HFILL }},
5198 { &hf_dap_lessOrEqual,
5199 { "lessOrEqual", "dap.lessOrEqual_element",
5200 FT_NONE, BASE_NONE, NULL, 0,
5201 "AttributeValueAssertion", HFILL }},
5202 { &hf_dap_present,
5203 { "present", "dap.present",
5204 FT_OID, BASE_NONE, NULL, 0,
5205 "AttributeType", HFILL }},
5206 { &hf_dap_approximateMatch,
5207 { "approximateMatch", "dap.approximateMatch_element",
5208 FT_NONE, BASE_NONE, NULL, 0,
5209 "AttributeValueAssertion", HFILL }},
5210 { &hf_dap_extensibleMatch,
5211 { "extensibleMatch", "dap.extensibleMatch_element",
5212 FT_NONE, BASE_NONE, NULL, 0,
5213 "MatchingRuleAssertion", HFILL }},
5214 { &hf_dap_contextPresent,
5215 { "contextPresent", "dap.contextPresent_element",
5216 FT_NONE, BASE_NONE, NULL, 0,
5217 "AttributeTypeAssertion", HFILL }},
5218 { &hf_dap_matchingRule,
5219 { "matchingRule", "dap.matchingRule",
5220 FT_UINT32, BASE_DEC, NULL, 0,
5221 NULL, HFILL }},
5222 { &hf_dap_matchingRule_item,
5223 { "matchingRule item", "dap.matchingRule_item",
5224 FT_OID, BASE_NONE, NULL, 0,
5225 "OBJECT_IDENTIFIER", HFILL }},
5226 { &hf_dap_matchValue,
5227 { "matchValue", "dap.matchValue_element",
5228 FT_NONE, BASE_NONE, NULL, 0,
5229 NULL, HFILL }},
5230 { &hf_dap_dnAttributes,
5231 { "dnAttributes", "dap.dnAttributes",
5232 FT_BOOLEAN, BASE_NONE, NULL, 0,
5233 "BOOLEAN", HFILL }},
5234 { &hf_dap_newRequest,
5235 { "newRequest", "dap.newRequest_element",
5236 FT_NONE, BASE_NONE, NULL, 0,
5237 NULL, HFILL }},
5238 { &hf_dap_pageSize,
5239 { "pageSize", "dap.pageSize",
5240 FT_INT32, BASE_DEC, NULL, 0,
5241 "INTEGER", HFILL }},
5242 { &hf_dap_sortKeys,
5243 { "sortKeys", "dap.sortKeys",
5244 FT_UINT32, BASE_DEC, NULL, 0,
5245 "SEQUENCE_SIZE_1_MAX_OF_SortKey", HFILL }},
5246 { &hf_dap_sortKeys_item,
5247 { "SortKey", "dap.SortKey_element",
5248 FT_NONE, BASE_NONE, NULL, 0,
5249 NULL, HFILL }},
5250 { &hf_dap_reverse,
5251 { "reverse", "dap.reverse",
5252 FT_BOOLEAN, BASE_NONE, NULL, 0,
5253 "BOOLEAN", HFILL }},
5254 { &hf_dap_unmerged,
5255 { "unmerged", "dap.unmerged",
5256 FT_BOOLEAN, BASE_NONE, NULL, 0,
5257 "BOOLEAN", HFILL }},
5258 { &hf_dap_pagedResultsQueryReference,
5259 { "queryReference", "dap.pagedResultsQueryReference",
5260 FT_BYTES, BASE_NONE, NULL, 0,
5261 "T_pagedResultsQueryReference", HFILL }},
5262 { &hf_dap_orderingRule,
5263 { "orderingRule", "dap.orderingRule",
5264 FT_OID, BASE_NONE, NULL, 0,
5265 "OBJECT_IDENTIFIER", HFILL }},
5266 { &hf_dap_certification_path,
5267 { "certification-path", "dap.certification_path_element",
5268 FT_NONE, BASE_NONE, NULL, 0,
5269 "CertificationPath", HFILL }},
5270 { &hf_dap_distinguished_name,
5271 { "name", "dap.distinguished_name",
5272 FT_UINT32, BASE_DEC, NULL, 0,
5273 "DistinguishedName", HFILL }},
5274 { &hf_dap_time,
5275 { "time", "dap.time",
5276 FT_UINT32, BASE_DEC, VALS(dap_Time_vals), 0,
5277 NULL, HFILL }},
5278 { &hf_dap_random,
5279 { "random", "dap.random",
5280 FT_BYTES, BASE_NONE, NULL, 0,
5281 "BIT_STRING", HFILL }},
5282 { &hf_dap_target,
5283 { "target", "dap.target",
5284 FT_INT32, BASE_DEC, VALS(dap_ProtectionRequest_vals), 0,
5285 "ProtectionRequest", HFILL }},
5286 { &hf_dap_response,
5287 { "response", "dap.response",
5288 FT_BYTES, BASE_NONE, NULL, 0,
5289 "BIT_STRING", HFILL }},
5290 { &hf_dap_operationCode,
5291 { "operationCode", "dap.operationCode",
5292 FT_UINT32, BASE_DEC, VALS(ros_Code_vals), 0,
5293 "Code", HFILL }},
5294 { &hf_dap_attributeCertificationPath,
5295 { "attributeCertificationPath", "dap.attributeCertificationPath_element",
5296 FT_NONE, BASE_NONE, NULL, 0,
5297 NULL, HFILL }},
5298 { &hf_dap_errorProtection,
5299 { "errorProtection", "dap.errorProtection",
5300 FT_INT32, BASE_DEC, VALS(dap_ErrorProtectionRequest_vals), 0,
5301 "ErrorProtectionRequest", HFILL }},
5302 { &hf_dap_errorCode,
5303 { "errorCode", "dap.errorCode",
5304 FT_UINT32, BASE_DEC, VALS(ros_Code_vals), 0,
5305 "Code", HFILL }},
5306 { &hf_dap_utcTime,
5307 { "utcTime", "dap.utcTime",
5308 FT_STRING, BASE_NONE, NULL, 0,
5309 NULL, HFILL }},
5310 { &hf_dap_generalizedTime,
5311 { "generalizedTime", "dap.generalizedTime",
5312 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
5313 NULL, HFILL }},
5314 { &hf_dap_credentials,
5315 { "credentials", "dap.credentials",
5316 FT_UINT32, BASE_DEC, VALS(dap_Credentials_vals), 0,
5317 NULL, HFILL }},
5318 { &hf_dap_versions,
5319 { "versions", "dap.versions",
5320 FT_BYTES, BASE_NONE, NULL, 0,
5321 NULL, HFILL }},
5322 { &hf_dap_simple,
5323 { "simple", "dap.simple_element",
5324 FT_NONE, BASE_NONE, NULL, 0,
5325 "SimpleCredentials", HFILL }},
5326 { &hf_dap_strong,
5327 { "strong", "dap.strong_element",
5328 FT_NONE, BASE_NONE, NULL, 0,
5329 "StrongCredentials", HFILL }},
5330 { &hf_dap_externalProcedure,
5331 { "externalProcedure", "dap.externalProcedure_element",
5332 FT_NONE, BASE_NONE, NULL, 0,
5333 "EXTERNAL", HFILL }},
5334 { &hf_dap_spkm,
5335 { "spkm", "dap.spkm",
5336 FT_UINT32, BASE_DEC, VALS(dap_SpkmCredentials_vals), 0,
5337 "SpkmCredentials", HFILL }},
5338 { &hf_dap_sasl,
5339 { "sasl", "dap.sasl_element",
5340 FT_NONE, BASE_NONE, NULL, 0,
5341 "SaslCredentials", HFILL }},
5342 { &hf_dap_validity,
5343 { "validity", "dap.validity_element",
5344 FT_NONE, BASE_NONE, NULL, 0,
5345 NULL, HFILL }},
5346 { &hf_dap_time1,
5347 { "time1", "dap.time1",
5348 FT_UINT32, BASE_DEC, VALS(dap_T_time1_vals), 0,
5349 NULL, HFILL }},
5350 { &hf_dap_utc,
5351 { "utc", "dap.utc",
5352 FT_STRING, BASE_NONE, NULL, 0,
5353 "UTCTime", HFILL }},
5354 { &hf_dap_gt,
5355 { "gt", "dap.gt",
5356 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
5357 "GeneralizedTime", HFILL }},
5358 { &hf_dap_time2,
5359 { "time2", "dap.time2",
5360 FT_UINT32, BASE_DEC, VALS(dap_T_time2_vals), 0,
5361 NULL, HFILL }},
5362 { &hf_dap_random1,
5363 { "random1", "dap.random1",
5364 FT_BYTES, BASE_NONE, NULL, 0,
5365 "BIT_STRING", HFILL }},
5366 { &hf_dap_random2,
5367 { "random2", "dap.random2",
5368 FT_BYTES, BASE_NONE, NULL, 0,
5369 "BIT_STRING", HFILL }},
5370 { &hf_dap_password,
5371 { "password", "dap.password",
5372 FT_UINT32, BASE_DEC, VALS(dap_T_password_vals), 0,
5373 NULL, HFILL }},
5374 { &hf_dap_unprotected,
5375 { "unprotected", "dap.unprotected",
5376 FT_BYTES, BASE_NONE, NULL, 0,
5377 "OCTET_STRING", HFILL }},
5378 { &hf_dap_protected,
5379 { "protected", "dap.protected_element",
5380 FT_NONE, BASE_NONE, NULL, 0,
5381 NULL, HFILL }},
5382 { &hf_dap_protectedPassword,
5383 { "protectedPassword", "dap.protectedPassword",
5384 FT_BYTES, BASE_NONE, NULL, 0,
5385 "OCTET_STRING", HFILL }},
5386 { &hf_dap_algorithmIdentifier,
5387 { "algorithmIdentifier", "dap.algorithmIdentifier_element",
5388 FT_NONE, BASE_NONE, NULL, 0,
5389 NULL, HFILL }},
5390 { &hf_dap_encrypted,
5391 { "encrypted", "dap.encrypted",
5392 FT_BYTES, BASE_NONE, NULL, 0,
5393 "BIT_STRING", HFILL }},
5394 { &hf_dap_bind_token,
5395 { "bind-token", "dap.bind_token_element",
5396 FT_NONE, BASE_NONE, NULL, 0,
5397 "Token", HFILL }},
5398 { &hf_dap_req,
5399 { "req", "dap.req_element",
5400 FT_NONE, BASE_NONE, NULL, 0,
5401 NULL, HFILL }},
5402 { &hf_dap_rep,
5403 { "rep", "dap.rep_element",
5404 FT_NONE, BASE_NONE, NULL, 0,
5405 NULL, HFILL }},
5406 { &hf_dap_mechanism,
5407 { "mechanism", "dap.mechanism",
5408 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
5409 "DirectoryString", HFILL }},
5410 { &hf_dap_saslCredentials,
5411 { "credentials", "dap.saslCredentials",
5412 FT_BYTES, BASE_NONE, NULL, 0,
5413 "OCTET_STRING", HFILL }},
5414 { &hf_dap_saslAbort,
5415 { "saslAbort", "dap.saslAbort",
5416 FT_BOOLEAN, BASE_NONE, NULL, 0,
5417 "BOOLEAN", HFILL }},
5418 { &hf_dap_algorithm,
5419 { "algorithm", "dap.algorithm_element",
5420 FT_NONE, BASE_NONE, NULL, 0,
5421 "AlgorithmIdentifier", HFILL }},
5422 { &hf_dap_utctime,
5423 { "time", "dap.utctime",
5424 FT_STRING, BASE_NONE, NULL, 0,
5425 "UTCTime", HFILL }},
5426 { &hf_dap_bindIntAlgorithm,
5427 { "bindIntAlgorithm", "dap.bindIntAlgorithm",
5428 FT_UINT32, BASE_DEC, NULL, 0,
5429 "SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier", HFILL }},
5430 { &hf_dap_bindIntAlgorithm_item,
5431 { "AlgorithmIdentifier", "dap.AlgorithmIdentifier_element",
5432 FT_NONE, BASE_NONE, NULL, 0,
5433 NULL, HFILL }},
5434 { &hf_dap_bindIntKeyInfo,
5435 { "bindIntKeyInfo", "dap.bindIntKeyInfo",
5436 FT_BYTES, BASE_NONE, NULL, 0,
5437 "BindKeyInfo", HFILL }},
5438 { &hf_dap_bindConfAlgorithm,
5439 { "bindConfAlgorithm", "dap.bindConfAlgorithm",
5440 FT_UINT32, BASE_DEC, NULL, 0,
5441 "SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier", HFILL }},
5442 { &hf_dap_bindConfAlgorithm_item,
5443 { "AlgorithmIdentifier", "dap.AlgorithmIdentifier_element",
5444 FT_NONE, BASE_NONE, NULL, 0,
5445 NULL, HFILL }},
5446 { &hf_dap_bindConfKeyInfo,
5447 { "bindConfKeyInfo", "dap.bindConfKeyInfo",
5448 FT_BYTES, BASE_NONE, NULL, 0,
5449 "BindKeyInfo", HFILL }},
5450 { &hf_dap_token_data,
5451 { "token-data", "dap.token_data_element",
5452 FT_NONE, BASE_NONE, NULL, 0,
5453 "TokenData", HFILL }},
5454 { &hf_dap_algorithm_identifier,
5455 { "algorithm-identifier", "dap.algorithm_identifier_element",
5456 FT_NONE, BASE_NONE, NULL, 0,
5457 "AlgorithmIdentifier", HFILL }},
5458 { &hf_dap_unsignedDirectoryBindError,
5459 { "unsignedDirectoryBindError", "dap.unsignedDirectoryBindError_element",
5460 FT_NONE, BASE_NONE, NULL, 0,
5461 "DirectoryBindErrorData", HFILL }},
5462 { &hf_dap_signedDirectoryBindError,
5463 { "signedDirectoryBindError", "dap.signedDirectoryBindError_element",
5464 FT_NONE, BASE_NONE, NULL, 0,
5465 NULL, HFILL }},
5466 { &hf_dap_directoryBindError,
5467 { "directoryBindError", "dap.directoryBindError_element",
5468 FT_NONE, BASE_NONE, NULL, 0,
5469 "DirectoryBindErrorData", HFILL }},
5470 { &hf_dap_error,
5471 { "error", "dap.error",
5472 FT_UINT32, BASE_DEC, VALS(dap_T_error_vals), 0,
5473 NULL, HFILL }},
5474 { &hf_dap_serviceProblem,
5475 { "serviceError", "dap.serviceProblem",
5476 FT_INT32, BASE_DEC, VALS(dap_ServiceProblem_vals), 0,
5477 "ServiceProblem", HFILL }},
5478 { &hf_dap_securityProblem,
5479 { "securityError", "dap.securityProblem",
5480 FT_INT32, BASE_DEC, VALS(dap_SecurityProblem_vals), 0,
5481 "SecurityProblem", HFILL }},
5482 { &hf_dap_securityParameters,
5483 { "securityParameters", "dap.securityParameters_element",
5484 FT_NONE, BASE_NONE, NULL, 0,
5485 NULL, HFILL }},
5486 { &hf_dap_object,
5487 { "object", "dap.object",
5488 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
5489 "Name", HFILL }},
5490 { &hf_dap_selection,
5491 { "selection", "dap.selection_element",
5492 FT_NONE, BASE_NONE, NULL, 0,
5493 "EntryInformationSelection", HFILL }},
5494 { &hf_dap_modifyRightsRequest,
5495 { "modifyRightsRequest", "dap.modifyRightsRequest",
5496 FT_BOOLEAN, BASE_NONE, NULL, 0,
5497 "BOOLEAN", HFILL }},
5498 { &hf_dap_serviceControls,
5499 { "serviceControls", "dap.serviceControls_element",
5500 FT_NONE, BASE_NONE, NULL, 0,
5501 NULL, HFILL }},
5502 { &hf_dap_requestor,
5503 { "requestor", "dap.requestor",
5504 FT_UINT32, BASE_DEC, NULL, 0,
5505 "DistinguishedName", HFILL }},
5506 { &hf_dap_operationProgress,
5507 { "operationProgress", "dap.operationProgress_element",
5508 FT_NONE, BASE_NONE, NULL, 0,
5509 NULL, HFILL }},
5510 { &hf_dap_aliasedRDNs,
5511 { "aliasedRDNs", "dap.aliasedRDNs",
5512 FT_INT32, BASE_DEC, NULL, 0,
5513 "INTEGER", HFILL }},
5514 { &hf_dap_criticalExtensions,
5515 { "criticalExtensions", "dap.criticalExtensions",
5516 FT_BYTES, BASE_NONE, NULL, 0,
5517 "BIT_STRING", HFILL }},
5518 { &hf_dap_referenceType,
5519 { "referenceType", "dap.referenceType",
5520 FT_UINT32, BASE_DEC, VALS(dsp_ReferenceType_vals), 0,
5521 NULL, HFILL }},
5522 { &hf_dap_entryOnly,
5523 { "entryOnly", "dap.entryOnly",
5524 FT_BOOLEAN, BASE_NONE, NULL, 0,
5525 "BOOLEAN", HFILL }},
5526 { &hf_dap_exclusions,
5527 { "exclusions", "dap.exclusions",
5528 FT_UINT32, BASE_DEC, NULL, 0,
5529 NULL, HFILL }},
5530 { &hf_dap_nameResolveOnMaster,
5531 { "nameResolveOnMaster", "dap.nameResolveOnMaster",
5532 FT_BOOLEAN, BASE_NONE, NULL, 0,
5533 "BOOLEAN", HFILL }},
5534 { &hf_dap_operationContexts,
5535 { "operationContexts", "dap.operationContexts",
5536 FT_UINT32, BASE_DEC, VALS(dap_ContextSelection_vals), 0,
5537 "ContextSelection", HFILL }},
5538 { &hf_dap_familyGrouping,
5539 { "familyGrouping", "dap.familyGrouping",
5540 FT_UINT32, BASE_DEC, VALS(dap_FamilyGrouping_vals), 0,
5541 NULL, HFILL }},
5542 { &hf_dap_rdnSequence,
5543 { "rdnSequence", "dap.rdnSequence",
5544 FT_UINT32, BASE_DEC, NULL, 0,
5545 NULL, HFILL }},
5546 { &hf_dap_unsignedReadArgument,
5547 { "unsignedReadArgument", "dap.unsignedReadArgument_element",
5548 FT_NONE, BASE_NONE, NULL, 0,
5549 "ReadArgumentData", HFILL }},
5550 { &hf_dap_signedReadArgument,
5551 { "signedReadArgument", "dap.signedReadArgument_element",
5552 FT_NONE, BASE_NONE, NULL, 0,
5553 NULL, HFILL }},
5554 { &hf_dap_readArgument,
5555 { "readArgument", "dap.readArgument_element",
5556 FT_NONE, BASE_NONE, NULL, 0,
5557 "ReadArgumentData", HFILL }},
5558 { &hf_dap_entry,
5559 { "entry", "dap.entry_element",
5560 FT_NONE, BASE_NONE, NULL, 0,
5561 "EntryInformation", HFILL }},
5562 { &hf_dap_modifyRights,
5563 { "modifyRights", "dap.modifyRights",
5564 FT_UINT32, BASE_DEC, NULL, 0,
5565 NULL, HFILL }},
5566 { &hf_dap_performer,
5567 { "performer", "dap.performer",
5568 FT_UINT32, BASE_DEC, NULL, 0,
5569 "DistinguishedName", HFILL }},
5570 { &hf_dap_aliasDereferenced,
5571 { "aliasDereferenced", "dap.aliasDereferenced",
5572 FT_BOOLEAN, BASE_NONE, NULL, 0,
5573 "BOOLEAN", HFILL }},
5574 { &hf_dap_notification,
5575 { "notification", "dap.notification",
5576 FT_UINT32, BASE_DEC, NULL, 0,
5577 "SEQUENCE_SIZE_1_MAX_OF_Attribute", HFILL }},
5578 { &hf_dap_notification_item,
5579 { "Attribute", "dap.Attribute_element",
5580 FT_NONE, BASE_NONE, NULL, 0,
5581 NULL, HFILL }},
5582 { &hf_dap_unsignedReadResult,
5583 { "unsignedReadResult", "dap.unsignedReadResult_element",
5584 FT_NONE, BASE_NONE, NULL, 0,
5585 "ReadResultData", HFILL }},
5586 { &hf_dap_signedReadResult,
5587 { "signedReadResult", "dap.signedReadResult_element",
5588 FT_NONE, BASE_NONE, NULL, 0,
5589 NULL, HFILL }},
5590 { &hf_dap_readResult,
5591 { "readResult", "dap.readResult_element",
5592 FT_NONE, BASE_NONE, NULL, 0,
5593 "ReadResultData", HFILL }},
5594 { &hf_dap_ModifyRights_item,
5595 { "ModifyRights item", "dap.ModifyRights_item_element",
5596 FT_NONE, BASE_NONE, NULL, 0,
5597 NULL, HFILL }},
5598 { &hf_dap_item,
5599 { "item", "dap.item",
5600 FT_UINT32, BASE_DEC, VALS(dap_T_item_vals), 0,
5601 NULL, HFILL }},
5602 { &hf_dap_item_entry,
5603 { "entry", "dap.item_entry_element",
5604 FT_NONE, BASE_NONE, NULL, 0,
5605 NULL, HFILL }},
5606 { &hf_dap_attribute_type,
5607 { "attribute", "dap.attribute_type",
5608 FT_OID, BASE_NONE, NULL, 0,
5609 "AttributeType", HFILL }},
5610 { &hf_dap_value_assertion,
5611 { "value", "dap.value_assertion_element",
5612 FT_NONE, BASE_NONE, NULL, 0,
5613 "AttributeValueAssertion", HFILL }},
5614 { &hf_dap_permission,
5615 { "permission", "dap.permission",
5616 FT_BYTES, BASE_NONE, NULL, 0,
5617 NULL, HFILL }},
5618 { &hf_dap_purported,
5619 { "purported", "dap.purported_element",
5620 FT_NONE, BASE_NONE, NULL, 0,
5621 "AttributeValueAssertion", HFILL }},
5622 { &hf_dap_unsignedCompareArgument,
5623 { "unsignedCompareArgument", "dap.unsignedCompareArgument_element",
5624 FT_NONE, BASE_NONE, NULL, 0,
5625 "CompareArgumentData", HFILL }},
5626 { &hf_dap_signedCompareArgument,
5627 { "signedCompareArgument", "dap.signedCompareArgument_element",
5628 FT_NONE, BASE_NONE, NULL, 0,
5629 NULL, HFILL }},
5630 { &hf_dap_compareArgument,
5631 { "compareArgument", "dap.compareArgument_element",
5632 FT_NONE, BASE_NONE, NULL, 0,
5633 "CompareArgumentData", HFILL }},
5634 { &hf_dap_matched,
5635 { "matched", "dap.matched",
5636 FT_BOOLEAN, BASE_NONE, NULL, 0,
5637 "BOOLEAN", HFILL }},
5638 { &hf_dap_matchedSubtype,
5639 { "matchedSubtype", "dap.matchedSubtype",
5640 FT_OID, BASE_NONE, NULL, 0,
5641 "AttributeType", HFILL }},
5642 { &hf_dap_unsignedCompareResult,
5643 { "unsignedCompareResult", "dap.unsignedCompareResult_element",
5644 FT_NONE, BASE_NONE, NULL, 0,
5645 "CompareResultData", HFILL }},
5646 { &hf_dap_signedCompareResult,
5647 { "signedCompareResult", "dap.signedCompareResult_element",
5648 FT_NONE, BASE_NONE, NULL, 0,
5649 NULL, HFILL }},
5650 { &hf_dap_compareResult,
5651 { "compareResult", "dap.compareResult_element",
5652 FT_NONE, BASE_NONE, NULL, 0,
5653 "CompareResultData", HFILL }},
5654 { &hf_dap_invokeID,
5655 { "invokeID", "dap.invokeID",
5656 FT_UINT32, BASE_DEC, VALS(ros_InvokeId_vals), 0,
5657 NULL, HFILL }},
5658 { &hf_dap_unsignedAbandonArgument,
5659 { "unsignedAbandonArgument", "dap.unsignedAbandonArgument_element",
5660 FT_NONE, BASE_NONE, NULL, 0,
5661 "AbandonArgumentData", HFILL }},
5662 { &hf_dap_signedAbandonArgument,
5663 { "signedAbandonArgument", "dap.signedAbandonArgument_element",
5664 FT_NONE, BASE_NONE, NULL, 0,
5665 NULL, HFILL }},
5666 { &hf_dap_abandonArgument,
5667 { "abandonArgument", "dap.abandonArgument_element",
5668 FT_NONE, BASE_NONE, NULL, 0,
5669 "AbandonArgumentData", HFILL }},
5670 { &hf_dap_null,
5671 { "null", "dap.null_element",
5672 FT_NONE, BASE_NONE, NULL, 0,
5673 NULL, HFILL }},
5674 { &hf_dap_abandon_information,
5675 { "information", "dap.abandon_information",
5676 FT_UINT32, BASE_DEC, VALS(dap_AbandonInformation_vals), 0,
5677 "AbandonInformation", HFILL }},
5678 { &hf_dap_unsignedAbandonResult,
5679 { "unsignedAbandonResult", "dap.unsignedAbandonResult_element",
5680 FT_NONE, BASE_NONE, NULL, 0,
5681 "AbandonResultData", HFILL }},
5682 { &hf_dap_signedAbandonResult,
5683 { "signedAbandonResult", "dap.signedAbandonResult_element",
5684 FT_NONE, BASE_NONE, NULL, 0,
5685 NULL, HFILL }},
5686 { &hf_dap_abandonResult,
5687 { "abandonResult", "dap.abandonResult_element",
5688 FT_NONE, BASE_NONE, NULL, 0,
5689 "AbandonResultData", HFILL }},
5690 { &hf_dap_pagedResults,
5691 { "pagedResults", "dap.pagedResults",
5692 FT_UINT32, BASE_DEC, VALS(dap_PagedResultsRequest_vals), 0,
5693 "PagedResultsRequest", HFILL }},
5694 { &hf_dap_listFamily,
5695 { "listFamily", "dap.listFamily",
5696 FT_BOOLEAN, BASE_NONE, NULL, 0,
5697 "BOOLEAN", HFILL }},
5698 { &hf_dap_unsignedListArgument,
5699 { "unsignedListArgument", "dap.unsignedListArgument_element",
5700 FT_NONE, BASE_NONE, NULL, 0,
5701 "ListArgumentData", HFILL }},
5702 { &hf_dap_signedListArgument,
5703 { "signedListArgument", "dap.signedListArgument_element",
5704 FT_NONE, BASE_NONE, NULL, 0,
5705 NULL, HFILL }},
5706 { &hf_dap_listArgument,
5707 { "listArgument", "dap.listArgument_element",
5708 FT_NONE, BASE_NONE, NULL, 0,
5709 "ListArgumentData", HFILL }},
5710 { &hf_dap_listInfo,
5711 { "listInfo", "dap.listInfo_element",
5712 FT_NONE, BASE_NONE, NULL, 0,
5713 NULL, HFILL }},
5714 { &hf_dap_subordinates,
5715 { "subordinates", "dap.subordinates",
5716 FT_UINT32, BASE_DEC, NULL, 0,
5717 NULL, HFILL }},
5718 { &hf_dap_subordinates_item,
5719 { "subordinates item", "dap.subordinates_item_element",
5720 FT_NONE, BASE_NONE, NULL, 0,
5721 NULL, HFILL }},
5722 { &hf_dap_aliasEntry,
5723 { "aliasEntry", "dap.aliasEntry",
5724 FT_BOOLEAN, BASE_NONE, NULL, 0,
5725 "BOOLEAN", HFILL }},
5726 { &hf_dap_partialOutcomeQualifier,
5727 { "partialOutcomeQualifier", "dap.partialOutcomeQualifier_element",
5728 FT_NONE, BASE_NONE, NULL, 0,
5729 NULL, HFILL }},
5730 { &hf_dap_uncorrelatedListInfo,
5731 { "uncorrelatedListInfo", "dap.uncorrelatedListInfo",
5732 FT_UINT32, BASE_DEC, NULL, 0,
5733 "SET_OF_ListResult", HFILL }},
5734 { &hf_dap_uncorrelatedListInfo_item,
5735 { "ListResult", "dap.ListResult",
5736 FT_UINT32, BASE_DEC, VALS(dap_ListResult_vals), 0,
5737 NULL, HFILL }},
5738 { &hf_dap_unsignedListResult,
5739 { "unsignedListResult", "dap.unsignedListResult",
5740 FT_UINT32, BASE_DEC, VALS(dap_ListResultData_vals), 0,
5741 "ListResultData", HFILL }},
5742 { &hf_dap_signedListResult,
5743 { "signedListResult", "dap.signedListResult_element",
5744 FT_NONE, BASE_NONE, NULL, 0,
5745 NULL, HFILL }},
5746 { &hf_dap_listResult,
5747 { "listResult", "dap.listResult",
5748 FT_UINT32, BASE_DEC, VALS(dap_ListResultData_vals), 0,
5749 "ListResultData", HFILL }},
5750 { &hf_dap_limitProblem,
5751 { "limitProblem", "dap.limitProblem",
5752 FT_INT32, BASE_DEC, VALS(dap_LimitProblem_vals), 0,
5753 NULL, HFILL }},
5754 { &hf_dap_unexplored,
5755 { "unexplored", "dap.unexplored",
5756 FT_UINT32, BASE_DEC, NULL, 0,
5757 "SET_SIZE_1_MAX_OF_ContinuationReference", HFILL }},
5758 { &hf_dap_unexplored_item,
5759 { "ContinuationReference", "dap.ContinuationReference_element",
5760 FT_NONE, BASE_NONE, NULL, 0,
5761 NULL, HFILL }},
5762 { &hf_dap_unavailableCriticalExtensions,
5763 { "unavailableCriticalExtensions", "dap.unavailableCriticalExtensions",
5764 FT_BOOLEAN, BASE_NONE, NULL, 0,
5765 "BOOLEAN", HFILL }},
5766 { &hf_dap_unknownErrors,
5767 { "unknownErrors", "dap.unknownErrors",
5768 FT_UINT32, BASE_DEC, NULL, 0,
5769 NULL, HFILL }},
5770 { &hf_dap_unknownErrors_item,
5771 { "unknownErrors item", "dap.unknownErrors_item",
5772 FT_OID, BASE_NONE, NULL, 0,
5773 "OBJECT_IDENTIFIER", HFILL }},
5774 { &hf_dap_queryReference,
5775 { "queryReference", "dap.queryReference",
5776 FT_BYTES, BASE_NONE, NULL, 0,
5777 "OCTET_STRING", HFILL }},
5778 { &hf_dap_overspecFilter,
5779 { "overspecFilter", "dap.overspecFilter",
5780 FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
5781 "Filter", HFILL }},
5782 { &hf_dap_entryCount,
5783 { "entryCount", "dap.entryCount",
5784 FT_UINT32, BASE_DEC, VALS(dap_T_entryCount_vals), 0,
5785 NULL, HFILL }},
5786 { &hf_dap_bestEstimate,
5787 { "bestEstimate", "dap.bestEstimate",
5788 FT_INT32, BASE_DEC, NULL, 0,
5789 "INTEGER", HFILL }},
5790 { &hf_dap_lowEstimate,
5791 { "lowEstimate", "dap.lowEstimate",
5792 FT_INT32, BASE_DEC, NULL, 0,
5793 "INTEGER", HFILL }},
5794 { &hf_dap_exact,
5795 { "exact", "dap.exact",
5796 FT_INT32, BASE_DEC, NULL, 0,
5797 "INTEGER", HFILL }},
5798 { &hf_dap_streamedResult,
5799 { "streamedResult", "dap.streamedResult",
5800 FT_BOOLEAN, BASE_NONE, NULL, 0,
5801 "BOOLEAN", HFILL }},
5802 { &hf_dap_baseObject,
5803 { "baseObject", "dap.baseObject",
5804 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
5805 "Name", HFILL }},
5806 { &hf_dap_subset,
5807 { "subset", "dap.subset",
5808 FT_INT32, BASE_DEC, VALS(dap_T_subset_vals), 0,
5809 NULL, HFILL }},
5810 { &hf_dap_filter,
5811 { "filter", "dap.filter",
5812 FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
5813 NULL, HFILL }},
5814 { &hf_dap_searchAliases,
5815 { "searchAliases", "dap.searchAliases",
5816 FT_BOOLEAN, BASE_NONE, NULL, 0,
5817 "BOOLEAN", HFILL }},
5818 { &hf_dap_matchedValuesOnly,
5819 { "matchedValuesOnly", "dap.matchedValuesOnly",
5820 FT_BOOLEAN, BASE_NONE, NULL, 0,
5821 "BOOLEAN", HFILL }},
5822 { &hf_dap_extendedFilter,
5823 { "extendedFilter", "dap.extendedFilter",
5824 FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
5825 "Filter", HFILL }},
5826 { &hf_dap_checkOverspecified,
5827 { "checkOverspecified", "dap.checkOverspecified",
5828 FT_BOOLEAN, BASE_NONE, NULL, 0,
5829 "BOOLEAN", HFILL }},
5830 { &hf_dap_relaxation,
5831 { "relaxation", "dap.relaxation_element",
5832 FT_NONE, BASE_NONE, NULL, 0,
5833 "RelaxationPolicy", HFILL }},
5834 { &hf_dap_extendedArea,
5835 { "extendedArea", "dap.extendedArea",
5836 FT_INT32, BASE_DEC, NULL, 0,
5837 "INTEGER", HFILL }},
5838 { &hf_dap_hierarchySelections,
5839 { "hierarchySelections", "dap.hierarchySelections",
5840 FT_BYTES, BASE_NONE, NULL, 0,
5841 NULL, HFILL }},
5842 { &hf_dap_searchControlOptions,
5843 { "searchControlOptions", "dap.searchControlOptions",
5844 FT_BYTES, BASE_NONE, NULL, 0,
5845 NULL, HFILL }},
5846 { &hf_dap_joinArguments,
5847 { "joinArguments", "dap.joinArguments",
5848 FT_UINT32, BASE_DEC, NULL, 0,
5849 "SEQUENCE_SIZE_1_MAX_OF_JoinArgument", HFILL }},
5850 { &hf_dap_joinArguments_item,
5851 { "JoinArgument", "dap.JoinArgument_element",
5852 FT_NONE, BASE_NONE, NULL, 0,
5853 NULL, HFILL }},
5854 { &hf_dap_joinType,
5855 { "joinType", "dap.joinType",
5856 FT_UINT32, BASE_DEC, VALS(dap_T_joinType_vals), 0,
5857 NULL, HFILL }},
5858 { &hf_dap_unsignedSearchArgument,
5859 { "unsignedSearchArgument", "dap.unsignedSearchArgument_element",
5860 FT_NONE, BASE_NONE, NULL, 0,
5861 "SearchArgumentData", HFILL }},
5862 { &hf_dap_signedSearchArgument,
5863 { "signedSearchArgument", "dap.signedSearchArgument_element",
5864 FT_NONE, BASE_NONE, NULL, 0,
5865 NULL, HFILL }},
5866 { &hf_dap_searchArgument,
5867 { "searchArgument", "dap.searchArgument_element",
5868 FT_NONE, BASE_NONE, NULL, 0,
5869 "SearchArgumentData", HFILL }},
5870 { &hf_dap_joinBaseObject,
5871 { "joinBaseObject", "dap.joinBaseObject",
5872 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
5873 "Name", HFILL }},
5874 { &hf_dap_domainLocalID,
5875 { "domainLocalID", "dap.domainLocalID",
5876 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
5877 NULL, HFILL }},
5878 { &hf_dap_joinSubset,
5879 { "joinSubset", "dap.joinSubset",
5880 FT_UINT32, BASE_DEC, VALS(dap_T_joinSubset_vals), 0,
5881 NULL, HFILL }},
5882 { &hf_dap_joinFilter,
5883 { "joinFilter", "dap.joinFilter",
5884 FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
5885 "Filter", HFILL }},
5886 { &hf_dap_joinAttributes,
5887 { "joinAttributes", "dap.joinAttributes",
5888 FT_UINT32, BASE_DEC, NULL, 0,
5889 "SEQUENCE_SIZE_1_MAX_OF_JoinAttPair", HFILL }},
5890 { &hf_dap_joinAttributes_item,
5891 { "JoinAttPair", "dap.JoinAttPair_element",
5892 FT_NONE, BASE_NONE, NULL, 0,
5893 NULL, HFILL }},
5894 { &hf_dap_joinSelection,
5895 { "joinSelection", "dap.joinSelection_element",
5896 FT_NONE, BASE_NONE, NULL, 0,
5897 "EntryInformationSelection", HFILL }},
5898 { &hf_dap_baseAtt,
5899 { "baseAtt", "dap.baseAtt",
5900 FT_OID, BASE_NONE, NULL, 0,
5901 "AttributeType", HFILL }},
5902 { &hf_dap_joinAtt,
5903 { "joinAtt", "dap.joinAtt",
5904 FT_OID, BASE_NONE, NULL, 0,
5905 "AttributeType", HFILL }},
5906 { &hf_dap_joinContext,
5907 { "joinContext", "dap.joinContext",
5908 FT_UINT32, BASE_DEC, NULL, 0,
5909 "SEQUENCE_SIZE_1_MAX_OF_JoinContextType", HFILL }},
5910 { &hf_dap_joinContext_item,
5911 { "JoinContextType", "dap.JoinContextType",
5912 FT_OID, BASE_NONE, NULL, 0,
5913 NULL, HFILL }},
5914 { &hf_dap_searchInfo,
5915 { "searchInfo", "dap.searchInfo_element",
5916 FT_NONE, BASE_NONE, NULL, 0,
5917 NULL, HFILL }},
5918 { &hf_dap_entries,
5919 { "entries", "dap.entries",
5920 FT_UINT32, BASE_DEC, NULL, 0,
5921 "SET_OF_EntryInformation", HFILL }},
5922 { &hf_dap_entries_item,
5923 { "EntryInformation", "dap.EntryInformation_element",
5924 FT_NONE, BASE_NONE, NULL, 0,
5925 NULL, HFILL }},
5926 { &hf_dap_altMatching,
5927 { "altMatching", "dap.altMatching",
5928 FT_BOOLEAN, BASE_NONE, NULL, 0,
5929 "BOOLEAN", HFILL }},
5930 { &hf_dap_uncorrelatedSearchInfo,
5931 { "uncorrelatedSearchInfo", "dap.uncorrelatedSearchInfo",
5932 FT_UINT32, BASE_DEC, NULL, 0,
5933 "SET_OF_SearchResult", HFILL }},
5934 { &hf_dap_uncorrelatedSearchInfo_item,
5935 { "SearchResult", "dap.SearchResult",
5936 FT_UINT32, BASE_DEC, VALS(dap_SearchResult_vals), 0,
5937 NULL, HFILL }},
5938 { &hf_dap_unsignedSearchResult,
5939 { "unsignedSearchResult", "dap.unsignedSearchResult",
5940 FT_UINT32, BASE_DEC, VALS(dap_SearchResultData_vals), 0,
5941 "SearchResultData", HFILL }},
5942 { &hf_dap_signedSearchResult,
5943 { "signedSearchResult", "dap.signedSearchResult_element",
5944 FT_NONE, BASE_NONE, NULL, 0,
5945 NULL, HFILL }},
5946 { &hf_dap_searchResult,
5947 { "searchResult", "dap.searchResult",
5948 FT_UINT32, BASE_DEC, VALS(dap_SearchResultData_vals), 0,
5949 "SearchResultData", HFILL }},
5950 { &hf_dap_add_entry,
5951 { "entry", "dap.add_entry",
5952 FT_UINT32, BASE_DEC, NULL, 0,
5953 "SET_OF_Attribute", HFILL }},
5954 { &hf_dap_add_entry_item,
5955 { "Attribute", "dap.Attribute_element",
5956 FT_NONE, BASE_NONE, NULL, 0,
5957 NULL, HFILL }},
5958 { &hf_dap_targetSystem,
5959 { "targetSystem", "dap.targetSystem_element",
5960 FT_NONE, BASE_NONE, NULL, 0,
5961 "AccessPoint", HFILL }},
5962 { &hf_dap_unsignedAddEntryArgument,
5963 { "unsignedAddEntryArgument", "dap.unsignedAddEntryArgument_element",
5964 FT_NONE, BASE_NONE, NULL, 0,
5965 "AddEntryArgumentData", HFILL }},
5966 { &hf_dap_signedAddEntryArgument,
5967 { "signedAddEntryArgument", "dap.signedAddEntryArgument_element",
5968 FT_NONE, BASE_NONE, NULL, 0,
5969 NULL, HFILL }},
5970 { &hf_dap_addEntryArgument,
5971 { "addEntryArgument", "dap.addEntryArgument_element",
5972 FT_NONE, BASE_NONE, NULL, 0,
5973 "AddEntryArgumentData", HFILL }},
5974 { &hf_dap_add_entry_information,
5975 { "information", "dap.add_entry_information",
5976 FT_UINT32, BASE_DEC, VALS(dap_AddEntryInformation_vals), 0,
5977 "AddEntryInformation", HFILL }},
5978 { &hf_dap_unsignedAddEntryResult,
5979 { "unsignedAddEntryResult", "dap.unsignedAddEntryResult_element",
5980 FT_NONE, BASE_NONE, NULL, 0,
5981 "AddEntryResultData", HFILL }},
5982 { &hf_dap_signedAddEntryResult,
5983 { "signedAddEntryResult", "dap.signedAddEntryResult_element",
5984 FT_NONE, BASE_NONE, NULL, 0,
5985 NULL, HFILL }},
5986 { &hf_dap_addEntryResult,
5987 { "addEntryResult", "dap.addEntryResult_element",
5988 FT_NONE, BASE_NONE, NULL, 0,
5989 "AddEntryResultData", HFILL }},
5990 { &hf_dap_unsignedRemoveEntryArgument,
5991 { "unsignedRemoveEntryArgument", "dap.unsignedRemoveEntryArgument_element",
5992 FT_NONE, BASE_NONE, NULL, 0,
5993 "RemoveEntryArgumentData", HFILL }},
5994 { &hf_dap_signedRemoveEntryArgument,
5995 { "signedRemoveEntryArgument", "dap.signedRemoveEntryArgument_element",
5996 FT_NONE, BASE_NONE, NULL, 0,
5997 NULL, HFILL }},
5998 { &hf_dap_removeEntryArgument,
5999 { "removeEntryArgument", "dap.removeEntryArgument_element",
6000 FT_NONE, BASE_NONE, NULL, 0,
6001 "RemoveEntryArgumentData", HFILL }},
6002 { &hf_dap_remove_entry_information,
6003 { "information", "dap.remove_entry_information",
6004 FT_UINT32, BASE_DEC, VALS(dap_RemoveEntryInformation_vals), 0,
6005 "RemoveEntryInformation", HFILL }},
6006 { &hf_dap_unsignedRemoveEntryResult,
6007 { "unsignedRemoveEntryResult", "dap.unsignedRemoveEntryResult_element",
6008 FT_NONE, BASE_NONE, NULL, 0,
6009 "RemoveEntryResultData", HFILL }},
6010 { &hf_dap_signedRemoveEntryResult,
6011 { "signedRemoveEntryResult", "dap.signedRemoveEntryResult_element",
6012 FT_NONE, BASE_NONE, NULL, 0,
6013 NULL, HFILL }},
6014 { &hf_dap_removeEntryResult,
6015 { "removeEntryResult", "dap.removeEntryResult_element",
6016 FT_NONE, BASE_NONE, NULL, 0,
6017 "RemoveEntryResultData", HFILL }},
6018 { &hf_dap_changes,
6019 { "changes", "dap.changes",
6020 FT_UINT32, BASE_DEC, NULL, 0,
6021 "SEQUENCE_OF_EntryModification", HFILL }},
6022 { &hf_dap_changes_item,
6023 { "EntryModification", "dap.EntryModification",
6024 FT_UINT32, BASE_DEC, VALS(dap_EntryModification_vals), 0,
6025 NULL, HFILL }},
6026 { &hf_dap_unsignedModifyEntryArgument,
6027 { "unsignedModifyEntryArgument", "dap.unsignedModifyEntryArgument_element",
6028 FT_NONE, BASE_NONE, NULL, 0,
6029 "ModifyEntryArgumentData", HFILL }},
6030 { &hf_dap_signedModifyEntryArgument,
6031 { "signedModifyEntryArgument", "dap.signedModifyEntryArgument_element",
6032 FT_NONE, BASE_NONE, NULL, 0,
6033 NULL, HFILL }},
6034 { &hf_dap_modifyEntryArgument,
6035 { "modifyEntryArgument", "dap.modifyEntryArgument_element",
6036 FT_NONE, BASE_NONE, NULL, 0,
6037 "ModifyEntryArgumentData", HFILL }},
6038 { &hf_dap_modify_entry_information,
6039 { "information", "dap.modify_entry_information",
6040 FT_UINT32, BASE_DEC, VALS(dap_ModifyEntryInformation_vals), 0,
6041 "ModifyEntryInformation", HFILL }},
6042 { &hf_dap_unsignedModifyEntryResult,
6043 { "unsignedModifyEntryResult", "dap.unsignedModifyEntryResult_element",
6044 FT_NONE, BASE_NONE, NULL, 0,
6045 "ModifyEntryResultData", HFILL }},
6046 { &hf_dap_signedModifyEntryResult,
6047 { "signedModifyEntryResult", "dap.signedModifyEntryResult_element",
6048 FT_NONE, BASE_NONE, NULL, 0,
6049 NULL, HFILL }},
6050 { &hf_dap_modifyEntryResult,
6051 { "modifyEntryResult", "dap.modifyEntryResult_element",
6052 FT_NONE, BASE_NONE, NULL, 0,
6053 "ModifyEntryResultData", HFILL }},
6054 { &hf_dap_addAttribute,
6055 { "addAttribute", "dap.addAttribute_element",
6056 FT_NONE, BASE_NONE, NULL, 0,
6057 "Attribute", HFILL }},
6058 { &hf_dap_removeAttribute,
6059 { "removeAttribute", "dap.removeAttribute",
6060 FT_OID, BASE_NONE, NULL, 0,
6061 "AttributeType", HFILL }},
6062 { &hf_dap_addValues,
6063 { "addValues", "dap.addValues_element",
6064 FT_NONE, BASE_NONE, NULL, 0,
6065 "Attribute", HFILL }},
6066 { &hf_dap_removeValues,
6067 { "removeValues", "dap.removeValues_element",
6068 FT_NONE, BASE_NONE, NULL, 0,
6069 "Attribute", HFILL }},
6070 { &hf_dap_alterValues,
6071 { "alterValues", "dap.alterValues_element",
6072 FT_NONE, BASE_NONE, NULL, 0,
6073 "AttributeTypeAndValue", HFILL }},
6074 { &hf_dap_resetValue,
6075 { "resetValue", "dap.resetValue",
6076 FT_OID, BASE_NONE, NULL, 0,
6077 "AttributeType", HFILL }},
6078 { &hf_dap_newRDN,
6079 { "newRDN", "dap.newRDN",
6080 FT_UINT32, BASE_DEC, NULL, 0,
6081 "RelativeDistinguishedName", HFILL }},
6082 { &hf_dap_deleteOldRDN,
6083 { "deleteOldRDN", "dap.deleteOldRDN",
6084 FT_BOOLEAN, BASE_NONE, NULL, 0,
6085 "BOOLEAN", HFILL }},
6086 { &hf_dap_newSuperior,
6087 { "newSuperior", "dap.newSuperior",
6088 FT_UINT32, BASE_DEC, NULL, 0,
6089 "DistinguishedName", HFILL }},
6090 { &hf_dap_modify_dn_information,
6091 { "information", "dap.modify_dn_information",
6092 FT_UINT32, BASE_DEC, VALS(dap_ModifyDNInformation_vals), 0,
6093 "ModifyDNInformation", HFILL }},
6094 { &hf_dap_unsignedModifyDNResult,
6095 { "unsignedModifyDNResult", "dap.unsignedModifyDNResult_element",
6096 FT_NONE, BASE_NONE, NULL, 0,
6097 "ModifyDNResultData", HFILL }},
6098 { &hf_dap_signedModifyDNResult,
6099 { "signedModifyDNResult", "dap.signedModifyDNResult_element",
6100 FT_NONE, BASE_NONE, NULL, 0,
6101 NULL, HFILL }},
6102 { &hf_dap_modifyDNResult,
6103 { "modifyDNResult", "dap.modifyDNResult_element",
6104 FT_NONE, BASE_NONE, NULL, 0,
6105 "ModifyDNResultData", HFILL }},
6106 { &hf_dap_unsignedAbandoned,
6107 { "unsignedAbandoned", "dap.unsignedAbandoned_element",
6108 FT_NONE, BASE_NONE, NULL, 0,
6109 "AbandonedData", HFILL }},
6110 { &hf_dap_signedAbandoned,
6111 { "signedAbandoned", "dap.signedAbandoned_element",
6112 FT_NONE, BASE_NONE, NULL, 0,
6113 NULL, HFILL }},
6114 { &hf_dap_abandoned,
6115 { "abandoned", "dap.abandoned_element",
6116 FT_NONE, BASE_NONE, NULL, 0,
6117 "AbandonedData", HFILL }},
6118 { &hf_dap_abandon_failed_problem,
6119 { "problem", "dap.abandon_failed_problem",
6120 FT_INT32, BASE_DEC, VALS(dap_AbandonProblem_vals), 0,
6121 "AbandonProblem", HFILL }},
6122 { &hf_dap_operation,
6123 { "operation", "dap.operation",
6124 FT_UINT32, BASE_DEC, VALS(ros_InvokeId_vals), 0,
6125 "InvokeId", HFILL }},
6126 { &hf_dap_unsignedAbandonFailedError,
6127 { "unsignedAbandonFailedError", "dap.unsignedAbandonFailedError_element",
6128 FT_NONE, BASE_NONE, NULL, 0,
6129 "AbandonFailedErrorData", HFILL }},
6130 { &hf_dap_signedAbandonFailedError,
6131 { "signedAbandonFailedError", "dap.signedAbandonFailedError_element",
6132 FT_NONE, BASE_NONE, NULL, 0,
6133 NULL, HFILL }},
6134 { &hf_dap_abandonFailedError,
6135 { "abandonFailedError", "dap.abandonFailedError_element",
6136 FT_NONE, BASE_NONE, NULL, 0,
6137 "AbandonFailedErrorData", HFILL }},
6138 { &hf_dap_problems,
6139 { "problems", "dap.problems",
6140 FT_UINT32, BASE_DEC, NULL, 0,
6141 NULL, HFILL }},
6142 { &hf_dap_problems_item,
6143 { "problems item", "dap.problems_item_element",
6144 FT_NONE, BASE_NONE, NULL, 0,
6145 NULL, HFILL }},
6146 { &hf_dap_attribute_error_problem,
6147 { "problem", "dap.attribute_error_problem",
6148 FT_INT32, BASE_DEC, VALS(dap_AttributeProblem_vals), 0,
6149 "AttributeProblem", HFILL }},
6150 { &hf_dap_value,
6151 { "value", "dap.value_element",
6152 FT_NONE, BASE_NONE, NULL, 0,
6153 "AttributeValue", HFILL }},
6154 { &hf_dap_unsignedAttributeError,
6155 { "unsignedAttributeError", "dap.unsignedAttributeError_element",
6156 FT_NONE, BASE_NONE, NULL, 0,
6157 "AttributeErrorData", HFILL }},
6158 { &hf_dap_signedAttributeError,
6159 { "signedAttributeError", "dap.signedAttributeError_element",
6160 FT_NONE, BASE_NONE, NULL, 0,
6161 NULL, HFILL }},
6162 { &hf_dap_attributeError,
6163 { "attributeError", "dap.attributeError_element",
6164 FT_NONE, BASE_NONE, NULL, 0,
6165 "AttributeErrorData", HFILL }},
6166 { &hf_dap_name_error_problem,
6167 { "problem", "dap.name_error_problem",
6168 FT_INT32, BASE_DEC, VALS(dap_NameProblem_vals), 0,
6169 "NameProblem", HFILL }},
6170 { &hf_dap_matched_name,
6171 { "matched", "dap.matched_name",
6172 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
6173 "Name", HFILL }},
6174 { &hf_dap_unsignedNameError,
6175 { "unsignedNameError", "dap.unsignedNameError_element",
6176 FT_NONE, BASE_NONE, NULL, 0,
6177 "NameErrorData", HFILL }},
6178 { &hf_dap_signedNameError,
6179 { "signedNameError", "dap.signedNameError_element",
6180 FT_NONE, BASE_NONE, NULL, 0,
6181 NULL, HFILL }},
6182 { &hf_dap_nameError,
6183 { "nameError", "dap.nameError_element",
6184 FT_NONE, BASE_NONE, NULL, 0,
6185 "NameErrorData", HFILL }},
6186 { &hf_dap_candidate,
6187 { "candidate", "dap.candidate_element",
6188 FT_NONE, BASE_NONE, NULL, 0,
6189 "ContinuationReference", HFILL }},
6190 { &hf_dap_unsignedReferral,
6191 { "unsignedReferral", "dap.unsignedReferral_element",
6192 FT_NONE, BASE_NONE, NULL, 0,
6193 "ReferralData", HFILL }},
6194 { &hf_dap_signedReferral,
6195 { "signedReferral", "dap.signedReferral_element",
6196 FT_NONE, BASE_NONE, NULL, 0,
6197 NULL, HFILL }},
6198 { &hf_dap_referral,
6199 { "referral", "dap.referral_element",
6200 FT_NONE, BASE_NONE, NULL, 0,
6201 "ReferralData", HFILL }},
6202 { &hf_dap_security_error_problem,
6203 { "problem", "dap.security_error_problem",
6204 FT_INT32, BASE_DEC, VALS(dap_SecurityProblem_vals), 0,
6205 "SecurityProblem", HFILL }},
6206 { &hf_dap_spkmInfo,
6207 { "spkmInfo", "dap.spkmInfo_element",
6208 FT_NONE, BASE_NONE, NULL, 0,
6209 NULL, HFILL }},
6210 { &hf_dap_unsignedSecurityError,
6211 { "unsignedSecurityError", "dap.unsignedSecurityError_element",
6212 FT_NONE, BASE_NONE, NULL, 0,
6213 "SecurityErrorData", HFILL }},
6214 { &hf_dap_signedSecurityError,
6215 { "signedSecurityError", "dap.signedSecurityError_element",
6216 FT_NONE, BASE_NONE, NULL, 0,
6217 NULL, HFILL }},
6218 { &hf_dap_securityErrorData,
6219 { "securityError", "dap.securityErrorData_element",
6220 FT_NONE, BASE_NONE, NULL, 0,
6221 "SecurityErrorData", HFILL }},
6222 { &hf_dap_service_error_problem,
6223 { "problem", "dap.service_error_problem",
6224 FT_INT32, BASE_DEC, VALS(dap_ServiceProblem_vals), 0,
6225 "ServiceProblem", HFILL }},
6226 { &hf_dap_unsignedServiceError,
6227 { "unsignedServiceError", "dap.unsignedServiceError_element",
6228 FT_NONE, BASE_NONE, NULL, 0,
6229 "ServiceErrorData", HFILL }},
6230 { &hf_dap_signedServiceError,
6231 { "signedServiceError", "dap.signedServiceError_element",
6232 FT_NONE, BASE_NONE, NULL, 0,
6233 NULL, HFILL }},
6234 { &hf_dap_serviceError,
6235 { "serviceError", "dap.serviceError_element",
6236 FT_NONE, BASE_NONE, NULL, 0,
6237 "ServiceErrorData", HFILL }},
6238 { &hf_dap_update_error_problem,
6239 { "problem", "dap.update_error_problem",
6240 FT_INT32, BASE_DEC, VALS(dap_UpdateProblem_vals), 0,
6241 "UpdateProblem", HFILL }},
6242 { &hf_dap_attributeInfo,
6243 { "attributeInfo", "dap.attributeInfo",
6244 FT_UINT32, BASE_DEC, NULL, 0,
6245 NULL, HFILL }},
6246 { &hf_dap_attributeInfo_item,
6247 { "attributeInfo item", "dap.attributeInfo_item",
6248 FT_UINT32, BASE_DEC, VALS(dap_T_attributeInfo_item_vals), 0,
6249 NULL, HFILL }},
6250 { &hf_dap_unsignedUpdateError,
6251 { "unsignedUpdateError", "dap.unsignedUpdateError_element",
6252 FT_NONE, BASE_NONE, NULL, 0,
6253 "UpdateErrorData", HFILL }},
6254 { &hf_dap_signedUpdateError,
6255 { "signedUpdateError", "dap.signedUpdateError_element",
6256 FT_NONE, BASE_NONE, NULL, 0,
6257 NULL, HFILL }},
6258 { &hf_dap_updateError,
6259 { "updateError", "dap.updateError_element",
6260 FT_NONE, BASE_NONE, NULL, 0,
6261 "UpdateErrorData", HFILL }},
6262 { &hf_dap_ServiceControlOptions_preferChaining,
6263 { "preferChaining", "dap.ServiceControlOptions.preferChaining",
6264 FT_BOOLEAN, 8, NULL, 0x80,
6265 NULL, HFILL }},
6266 { &hf_dap_ServiceControlOptions_chainingProhibited,
6267 { "chainingProhibited", "dap.ServiceControlOptions.chainingProhibited",
6268 FT_BOOLEAN, 8, NULL, 0x40,
6269 NULL, HFILL }},
6270 { &hf_dap_ServiceControlOptions_localScope,
6271 { "localScope", "dap.ServiceControlOptions.localScope",
6272 FT_BOOLEAN, 8, NULL, 0x20,
6273 NULL, HFILL }},
6274 { &hf_dap_ServiceControlOptions_dontUseCopy,
6275 { "dontUseCopy", "dap.ServiceControlOptions.dontUseCopy",
6276 FT_BOOLEAN, 8, NULL, 0x10,
6277 NULL, HFILL }},
6278 { &hf_dap_ServiceControlOptions_dontDereferenceAliases,
6279 { "dontDereferenceAliases", "dap.ServiceControlOptions.dontDereferenceAliases",
6280 FT_BOOLEAN, 8, NULL, 0x08,
6281 NULL, HFILL }},
6282 { &hf_dap_ServiceControlOptions_subentries,
6283 { "subentries", "dap.ServiceControlOptions.subentries",
6284 FT_BOOLEAN, 8, NULL, 0x04,
6285 NULL, HFILL }},
6286 { &hf_dap_ServiceControlOptions_copyShallDo,
6287 { "copyShallDo", "dap.ServiceControlOptions.copyShallDo",
6288 FT_BOOLEAN, 8, NULL, 0x02,
6289 NULL, HFILL }},
6290 { &hf_dap_ServiceControlOptions_partialNameResolution,
6291 { "partialNameResolution", "dap.ServiceControlOptions.partialNameResolution",
6292 FT_BOOLEAN, 8, NULL, 0x01,
6293 NULL, HFILL }},
6294 { &hf_dap_ServiceControlOptions_manageDSAIT,
6295 { "manageDSAIT", "dap.ServiceControlOptions.manageDSAIT",
6296 FT_BOOLEAN, 8, NULL, 0x80,
6297 NULL, HFILL }},
6298 { &hf_dap_ServiceControlOptions_noSubtypeMatch,
6299 { "noSubtypeMatch", "dap.ServiceControlOptions.noSubtypeMatch",
6300 FT_BOOLEAN, 8, NULL, 0x40,
6301 NULL, HFILL }},
6302 { &hf_dap_ServiceControlOptions_noSubtypeSelection,
6303 { "noSubtypeSelection", "dap.ServiceControlOptions.noSubtypeSelection",
6304 FT_BOOLEAN, 8, NULL, 0x20,
6305 NULL, HFILL }},
6306 { &hf_dap_ServiceControlOptions_countFamily,
6307 { "countFamily", "dap.ServiceControlOptions.countFamily",
6308 FT_BOOLEAN, 8, NULL, 0x10,
6309 NULL, HFILL }},
6310 { &hf_dap_ServiceControlOptions_dontSelectFriends,
6311 { "dontSelectFriends", "dap.ServiceControlOptions.dontSelectFriends",
6312 FT_BOOLEAN, 8, NULL, 0x08,
6313 NULL, HFILL }},
6314 { &hf_dap_ServiceControlOptions_dontMatchFriends,
6315 { "dontMatchFriends", "dap.ServiceControlOptions.dontMatchFriends",
6316 FT_BOOLEAN, 8, NULL, 0x04,
6317 NULL, HFILL }},
6318 { &hf_dap_Versions_v1,
6319 { "v1", "dap.Versions.v1",
6320 FT_BOOLEAN, 8, NULL, 0x80,
6321 NULL, HFILL }},
6322 { &hf_dap_Versions_v2,
6323 { "v2", "dap.Versions.v2",
6324 FT_BOOLEAN, 8, NULL, 0x40,
6325 NULL, HFILL }},
6326 { &hf_dap_T_permission_add,
6327 { "add", "dap.T.permission.add",
6328 FT_BOOLEAN, 8, NULL, 0x80,
6329 NULL, HFILL }},
6330 { &hf_dap_T_permission_remove,
6331 { "remove", "dap.T.permission.remove",
6332 FT_BOOLEAN, 8, NULL, 0x40,
6333 NULL, HFILL }},
6334 { &hf_dap_T_permission_rename,
6335 { "rename", "dap.T.permission.rename",
6336 FT_BOOLEAN, 8, NULL, 0x20,
6337 NULL, HFILL }},
6338 { &hf_dap_T_permission_move,
6339 { "move", "dap.T.permission.move",
6340 FT_BOOLEAN, 8, NULL, 0x10,
6341 NULL, HFILL }},
6342 { &hf_dap_HierarchySelections_self,
6343 { "self", "dap.HierarchySelections.self",
6344 FT_BOOLEAN, 8, NULL, 0x80,
6345 NULL, HFILL }},
6346 { &hf_dap_HierarchySelections_children,
6347 { "children", "dap.HierarchySelections.children",
6348 FT_BOOLEAN, 8, NULL, 0x40,
6349 NULL, HFILL }},
6350 { &hf_dap_HierarchySelections_parent,
6351 { "parent", "dap.HierarchySelections.parent",
6352 FT_BOOLEAN, 8, NULL, 0x20,
6353 NULL, HFILL }},
6354 { &hf_dap_HierarchySelections_hierarchy,
6355 { "hierarchy", "dap.HierarchySelections.hierarchy",
6356 FT_BOOLEAN, 8, NULL, 0x10,
6357 NULL, HFILL }},
6358 { &hf_dap_HierarchySelections_top,
6359 { "top", "dap.HierarchySelections.top",
6360 FT_BOOLEAN, 8, NULL, 0x08,
6361 NULL, HFILL }},
6362 { &hf_dap_HierarchySelections_subtree,
6363 { "subtree", "dap.HierarchySelections.subtree",
6364 FT_BOOLEAN, 8, NULL, 0x04,
6365 NULL, HFILL }},
6366 { &hf_dap_HierarchySelections_siblings,
6367 { "siblings", "dap.HierarchySelections.siblings",
6368 FT_BOOLEAN, 8, NULL, 0x02,
6369 NULL, HFILL }},
6370 { &hf_dap_HierarchySelections_siblingChildren,
6371 { "siblingChildren", "dap.HierarchySelections.siblingChildren",
6372 FT_BOOLEAN, 8, NULL, 0x01,
6373 NULL, HFILL }},
6374 { &hf_dap_HierarchySelections_siblingSubtree,
6375 { "siblingSubtree", "dap.HierarchySelections.siblingSubtree",
6376 FT_BOOLEAN, 8, NULL, 0x80,
6377 NULL, HFILL }},
6378 { &hf_dap_HierarchySelections_all,
6379 { "all", "dap.HierarchySelections.all",
6380 FT_BOOLEAN, 8, NULL, 0x40,
6381 NULL, HFILL }},
6382 { &hf_dap_SearchControlOptions_searchAliases,
6383 { "searchAliases", "dap.SearchControlOptions.searchAliases",
6384 FT_BOOLEAN, 8, NULL, 0x80,
6385 NULL, HFILL }},
6386 { &hf_dap_SearchControlOptions_matchedValuesOnly,
6387 { "matchedValuesOnly", "dap.SearchControlOptions.matchedValuesOnly",
6388 FT_BOOLEAN, 8, NULL, 0x40,
6389 NULL, HFILL }},
6390 { &hf_dap_SearchControlOptions_checkOverspecified,
6391 { "checkOverspecified", "dap.SearchControlOptions.checkOverspecified",
6392 FT_BOOLEAN, 8, NULL, 0x20,
6393 NULL, HFILL }},
6394 { &hf_dap_SearchControlOptions_performExactly,
6395 { "performExactly", "dap.SearchControlOptions.performExactly",
6396 FT_BOOLEAN, 8, NULL, 0x10,
6397 NULL, HFILL }},
6398 { &hf_dap_SearchControlOptions_includeAllAreas,
6399 { "includeAllAreas", "dap.SearchControlOptions.includeAllAreas",
6400 FT_BOOLEAN, 8, NULL, 0x08,
6401 NULL, HFILL }},
6402 { &hf_dap_SearchControlOptions_noSystemRelaxation,
6403 { "noSystemRelaxation", "dap.SearchControlOptions.noSystemRelaxation",
6404 FT_BOOLEAN, 8, NULL, 0x04,
6405 NULL, HFILL }},
6406 { &hf_dap_SearchControlOptions_dnAttribute,
6407 { "dnAttribute", "dap.SearchControlOptions.dnAttribute",
6408 FT_BOOLEAN, 8, NULL, 0x02,
6409 NULL, HFILL }},
6410 { &hf_dap_SearchControlOptions_matchOnResidualName,
6411 { "matchOnResidualName", "dap.SearchControlOptions.matchOnResidualName",
6412 FT_BOOLEAN, 8, NULL, 0x01,
6413 NULL, HFILL }},
6414 { &hf_dap_SearchControlOptions_entryCount,
6415 { "entryCount", "dap.SearchControlOptions.entryCount",
6416 FT_BOOLEAN, 8, NULL, 0x80,
6417 NULL, HFILL }},
6418 { &hf_dap_SearchControlOptions_useSubset,
6419 { "useSubset", "dap.SearchControlOptions.useSubset",
6420 FT_BOOLEAN, 8, NULL, 0x40,
6421 NULL, HFILL }},
6422 { &hf_dap_SearchControlOptions_separateFamilyMembers,
6423 { "separateFamilyMembers", "dap.SearchControlOptions.separateFamilyMembers",
6424 FT_BOOLEAN, 8, NULL, 0x20,
6425 NULL, HFILL }},
6426 { &hf_dap_SearchControlOptions_searchFamily,
6427 { "searchFamily", "dap.SearchControlOptions.searchFamily",
6428 FT_BOOLEAN, 8, NULL, 0x10,
6429 NULL, HFILL }},
6432 /* List of subtrees */
6433 static int *ett[] = {
6434 &ett_dap,
6435 &ett_dap_ServiceControls,
6436 &ett_dap_T_manageDSAITPlaneRef,
6437 &ett_dap_ServiceControlOptions,
6438 &ett_dap_EntryInformationSelection,
6439 &ett_dap_T_attributes,
6440 &ett_dap_SET_OF_AttributeType,
6441 &ett_dap_T_extraAttributes,
6442 &ett_dap_SET_SIZE_1_MAX_OF_AttributeType,
6443 &ett_dap_ContextSelection,
6444 &ett_dap_SET_SIZE_1_MAX_OF_TypeAndContextAssertion,
6445 &ett_dap_TypeAndContextAssertion,
6446 &ett_dap_T_contextAssertions,
6447 &ett_dap_SEQUENCE_OF_ContextAssertion,
6448 &ett_dap_SET_OF_ContextAssertion,
6449 &ett_dap_FamilyReturn,
6450 &ett_dap_T_familySelect,
6451 &ett_dap_EntryInformation,
6452 &ett_dap_T_entry_information,
6453 &ett_dap_EntryInformationItem,
6454 &ett_dap_FamilyEntries,
6455 &ett_dap_SEQUENCE_OF_FamilyEntry,
6456 &ett_dap_FamilyEntry,
6457 &ett_dap_FamilyInformation,
6458 &ett_dap_T_family_information_item,
6459 &ett_dap_SEQUENCE_SIZE_1_MAX_OF_FamilyEntries,
6460 &ett_dap_Filter,
6461 &ett_dap_SetOfFilter,
6462 &ett_dap_FilterItem,
6463 &ett_dap_T_substrings,
6464 &ett_dap_T_strings,
6465 &ett_dap_T_strings_item,
6466 &ett_dap_MatchingRuleAssertion,
6467 &ett_dap_T_matchingRule,
6468 &ett_dap_PagedResultsRequest,
6469 &ett_dap_T_newRequest,
6470 &ett_dap_SEQUENCE_SIZE_1_MAX_OF_SortKey,
6471 &ett_dap_SortKey,
6472 &ett_dap_SecurityParameters,
6473 &ett_dap_Time,
6474 &ett_dap_DirectoryBindArgument,
6475 &ett_dap_Credentials,
6476 &ett_dap_SimpleCredentials,
6477 &ett_dap_T_validity,
6478 &ett_dap_T_time1,
6479 &ett_dap_T_time2,
6480 &ett_dap_T_password,
6481 &ett_dap_T_protected,
6482 &ett_dap_StrongCredentials,
6483 &ett_dap_SpkmCredentials,
6484 &ett_dap_SaslCredentials,
6485 &ett_dap_TokenData,
6486 &ett_dap_SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier,
6487 &ett_dap_Token,
6488 &ett_dap_Versions,
6489 &ett_dap_DirectoryBindError,
6490 &ett_dap_T_signedDirectoryBindError,
6491 &ett_dap_DirectoryBindErrorData,
6492 &ett_dap_T_error,
6493 &ett_dap_ReadArgumentData,
6494 &ett_dap_Name,
6495 &ett_dap_ReadArgument,
6496 &ett_dap_T_signedReadArgument,
6497 &ett_dap_ReadResultData,
6498 &ett_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute,
6499 &ett_dap_ReadResult,
6500 &ett_dap_T_signedReadResult,
6501 &ett_dap_ModifyRights,
6502 &ett_dap_ModifyRights_item,
6503 &ett_dap_T_item,
6504 &ett_dap_T_permission,
6505 &ett_dap_CompareArgumentData,
6506 &ett_dap_CompareArgument,
6507 &ett_dap_T_signedCompareArgument,
6508 &ett_dap_CompareResultData,
6509 &ett_dap_CompareResult,
6510 &ett_dap_T_signedCompareResult,
6511 &ett_dap_AbandonArgumentData,
6512 &ett_dap_AbandonArgument,
6513 &ett_dap_T_signedAbandonArgument,
6514 &ett_dap_AbandonResultData,
6515 &ett_dap_AbandonResult,
6516 &ett_dap_AbandonInformation,
6517 &ett_dap_T_signedAbandonResult,
6518 &ett_dap_ListArgumentData,
6519 &ett_dap_ListArgument,
6520 &ett_dap_T_signedListArgument,
6521 &ett_dap_ListResultData,
6522 &ett_dap_T_listInfo,
6523 &ett_dap_T_subordinates,
6524 &ett_dap_T_subordinates_item,
6525 &ett_dap_SET_OF_ListResult,
6526 &ett_dap_ListResult,
6527 &ett_dap_T_signedListResult,
6528 &ett_dap_PartialOutcomeQualifier,
6529 &ett_dap_SET_SIZE_1_MAX_OF_ContinuationReference,
6530 &ett_dap_T_unknownErrors,
6531 &ett_dap_T_entryCount,
6532 &ett_dap_SearchArgumentData,
6533 &ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinArgument,
6534 &ett_dap_SearchArgument,
6535 &ett_dap_T_signedSearchArgument,
6536 &ett_dap_HierarchySelections,
6537 &ett_dap_SearchControlOptions,
6538 &ett_dap_JoinArgument,
6539 &ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinAttPair,
6540 &ett_dap_JoinAttPair,
6541 &ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinContextType,
6542 &ett_dap_SearchResultData,
6543 &ett_dap_T_searchInfo,
6544 &ett_dap_SET_OF_EntryInformation,
6545 &ett_dap_SET_OF_SearchResult,
6546 &ett_dap_SearchResult,
6547 &ett_dap_T_signedSearchResult,
6548 &ett_dap_AddEntryArgumentData,
6549 &ett_dap_SET_OF_Attribute,
6550 &ett_dap_AddEntryArgument,
6551 &ett_dap_T_signedAddEntryArgument,
6552 &ett_dap_AddEntryResultData,
6553 &ett_dap_AddEntryResult,
6554 &ett_dap_AddEntryInformation,
6555 &ett_dap_T_signedAddEntryResult,
6556 &ett_dap_RemoveEntryArgumentData,
6557 &ett_dap_RemoveEntryArgument,
6558 &ett_dap_T_signedRemoveEntryArgument,
6559 &ett_dap_RemoveEntryResultData,
6560 &ett_dap_RemoveEntryResult,
6561 &ett_dap_RemoveEntryInformation,
6562 &ett_dap_T_signedRemoveEntryResult,
6563 &ett_dap_ModifyEntryArgumentData,
6564 &ett_dap_SEQUENCE_OF_EntryModification,
6565 &ett_dap_ModifyEntryArgument,
6566 &ett_dap_T_signedModifyEntryArgument,
6567 &ett_dap_ModifyEntryResultData,
6568 &ett_dap_ModifyEntryResult,
6569 &ett_dap_ModifyEntryInformation,
6570 &ett_dap_T_signedModifyEntryResult,
6571 &ett_dap_EntryModification,
6572 &ett_dap_ModifyDNArgument,
6573 &ett_dap_ModifyDNResultData,
6574 &ett_dap_ModifyDNResult,
6575 &ett_dap_ModifyDNInformation,
6576 &ett_dap_T_signedModifyDNResult,
6577 &ett_dap_AbandonedData,
6578 &ett_dap_Abandoned,
6579 &ett_dap_T_signedAbandoned,
6580 &ett_dap_AbandonFailedErrorData,
6581 &ett_dap_AbandonFailedError,
6582 &ett_dap_T_signedAbandonFailedError,
6583 &ett_dap_AttributeErrorData,
6584 &ett_dap_T_problems,
6585 &ett_dap_T_problems_item,
6586 &ett_dap_AttributeError,
6587 &ett_dap_T_signedAttributeError,
6588 &ett_dap_NameErrorData,
6589 &ett_dap_NameError,
6590 &ett_dap_T_signedNameError,
6591 &ett_dap_ReferralData,
6592 &ett_dap_Referral,
6593 &ett_dap_T_signedReferral,
6594 &ett_dap_SecurityErrorData,
6595 &ett_dap_SecurityError,
6596 &ett_dap_T_signedSecurityError,
6597 &ett_dap_ServiceErrorData,
6598 &ett_dap_ServiceError,
6599 &ett_dap_T_signedServiceError,
6600 &ett_dap_UpdateErrorData,
6601 &ett_dap_T_attributeInfo,
6602 &ett_dap_T_attributeInfo_item,
6603 &ett_dap_UpdateError,
6604 &ett_dap_T_signedUpdateError,
6607 static ei_register_info ei[] = {
6608 { &ei_dap_anonymous, { "dap.anonymous", PI_PROTOCOL, PI_NOTE, "Anonymous", EXPFILL }},
6611 module_t *dap_module;
6612 expert_module_t* expert_dap;
6614 /* Register protocol */
6615 proto_dap = proto_register_protocol(PNAME, PSNAME, PFNAME);
6617 /* Register fields and subtrees */
6618 proto_register_field_array(proto_dap, hf, array_length(hf));
6619 proto_register_subtree_array(ett, array_length(ett));
6620 expert_dap = expert_register_protocol(proto_dap);
6621 expert_register_field_array(expert_dap, ei, array_length(ei));
6623 /* Register our configuration options for DAP, particularly our port */
6625 dap_module = prefs_register_protocol_subtree("OSI/X.500", proto_dap, NULL);
6627 prefs_register_obsolete_preference(dap_module, "tcp.port");
6629 prefs_register_static_text_preference(dap_module, "tcp_port_info",
6630 "The TCP ports used by the DAP protocol should be added to the TPKT preference \"TPKT TCP ports\", or the IDMP preference \"IDMP TCP Port\", or by selecting \"TPKT\" as the \"Transport\" protocol in the \"Decode As\" dialog.",
6631 "DAP TCP Port preference moved information");
6635 /*--- proto_reg_handoff_dap --- */
6636 void proto_reg_handoff_dap(void) {
6638 /* #include "packet-dap-dis-tab.c" */
6640 /* APPLICATION CONTEXT */
6642 oid_add_from_string("id-ac-directory-access","2.5.3.1");
6644 /* ABSTRACT SYNTAXES */
6646 /* Register DAP with ROS (with no use of RTSE) */
6647 register_ros_protocol_info("2.5.9.1", &dap_ros_info, 0, "id-as-directory-access", false);
6649 register_idmp_protocol_info("2.5.33.0", &dap_ros_info, 0, "dap-ip");
6651 /* AttributeValueAssertions */
6652 x509if_register_fmt(hf_dap_equality, "=");
6653 x509if_register_fmt(hf_dap_greaterOrEqual, ">=");
6654 x509if_register_fmt(hf_dap_lessOrEqual, "<=");
6655 x509if_register_fmt(hf_dap_approximateMatch, "=~");
6656 /* AttributeTypes */
6657 x509if_register_fmt(hf_dap_present, "= *");