#include <epan/conversation.h> and/or #include <epan/emem.h> not req'd ...
[obnox/wireshark/wip.git] / epan / dissectors / packet-dap.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
3 /* packet-dap.c                                                               */
4 /* ../../tools/asn2wrs.py -b -e -L -p dap -c dap.cnf -s packet-dap-template dap.asn DirectoryAccessProtocol.asn */
5
6 /* Input file: packet-dap-template.c */
7
8 #line 1 "packet-dap-template.c"
9 /* packet-dap.c
10  * Routines for X.511 (X.500 Directory Asbtract Service) and X.519 DAP  packet dissection
11  * Graeme Lunt 2005
12  *
13  * $Id$
14  *
15  * Wireshark - Network traffic analyzer
16  * By Gerald Combs <gerald@wireshark.org>
17  * Copyright 1998 Gerald Combs
18  *
19  * This program is free software; you can redistribute it and/or
20  * modify it under the terms of the GNU General Public License
21  * as published by the Free Software Foundation; either version 2
22  * of the License, or (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program; if not, write to the Free Software
31  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
32  */
33
34 #ifdef HAVE_CONFIG_H
35 # include "config.h"
36 #endif
37
38 #include <glib.h>
39 #include <epan/packet.h>
40 #include <epan/prefs.h>
41 #include <epan/oids.h>
42 #include <epan/asn1.h>
43
44 #include <stdio.h>
45 #include <string.h>
46
47 #include "packet-ber.h"
48 #include "packet-acse.h"
49 #include "packet-ros.h"
50
51 #include "packet-x509if.h"
52 #include "packet-x509af.h"
53 #include "packet-x509sat.h"
54 #include "packet-crmf.h"
55
56 #include "packet-dsp.h"
57 #include "packet-disp.h"
58 #include "packet-dap.h"
59 #include <epan/strutil.h>
60
61 /* we don't have a separate dissector for X519 - 
62    most of DAP is defined in X511 */
63 #define PNAME  "X.519 Directory Access Protocol"
64 #define PSNAME "DAP"
65 #define PFNAME "dap"
66
67 static guint global_dap_tcp_port = 102;
68 static dissector_handle_t tpkt_handle;
69 void prefs_register_dap(void); /* forward declaration for use in preferences registration */
70
71
72 /* Initialize the protocol and registered fields */
73 int proto_dap = -1;
74
75
76
77 /*--- Included file: packet-dap-hf.c ---*/
78 #line 1 "packet-dap-hf.c"
79 static int hf_dap_DirectoryBindArgument_PDU = -1;  /* DirectoryBindArgument */
80 static int hf_dap_DirectoryBindResult_PDU = -1;   /* DirectoryBindResult */
81 static int hf_dap_DirectoryBindError_PDU = -1;    /* DirectoryBindError */
82 static int hf_dap_ReadArgument_PDU = -1;          /* ReadArgument */
83 static int hf_dap_ReadResult_PDU = -1;            /* ReadResult */
84 static int hf_dap_CompareArgument_PDU = -1;       /* CompareArgument */
85 static int hf_dap_CompareResult_PDU = -1;         /* CompareResult */
86 static int hf_dap_AbandonArgument_PDU = -1;       /* AbandonArgument */
87 static int hf_dap_AbandonResult_PDU = -1;         /* AbandonResult */
88 static int hf_dap_ListArgument_PDU = -1;          /* ListArgument */
89 static int hf_dap_ListResult_PDU = -1;            /* ListResult */
90 static int hf_dap_SearchArgument_PDU = -1;        /* SearchArgument */
91 static int hf_dap_SearchResult_PDU = -1;          /* SearchResult */
92 static int hf_dap_AddEntryArgument_PDU = -1;      /* AddEntryArgument */
93 static int hf_dap_AddEntryResult_PDU = -1;        /* AddEntryResult */
94 static int hf_dap_RemoveEntryArgument_PDU = -1;   /* RemoveEntryArgument */
95 static int hf_dap_RemoveEntryResult_PDU = -1;     /* RemoveEntryResult */
96 static int hf_dap_ModifyEntryArgument_PDU = -1;   /* ModifyEntryArgument */
97 static int hf_dap_ModifyEntryResult_PDU = -1;     /* ModifyEntryResult */
98 static int hf_dap_ModifyDNArgument_PDU = -1;      /* ModifyDNArgument */
99 static int hf_dap_ModifyDNResult_PDU = -1;        /* ModifyDNResult */
100 static int hf_dap_Abandoned_PDU = -1;             /* Abandoned */
101 static int hf_dap_AbandonFailedError_PDU = -1;    /* AbandonFailedError */
102 static int hf_dap_AttributeError_PDU = -1;        /* AttributeError */
103 static int hf_dap_NameError_PDU = -1;             /* NameError */
104 static int hf_dap_Referral_PDU = -1;              /* Referral */
105 static int hf_dap_SecurityError_PDU = -1;         /* SecurityError */
106 static int hf_dap_ServiceError_PDU = -1;          /* ServiceError */
107 static int hf_dap_UpdateError_PDU = -1;           /* UpdateError */
108 static int hf_dap_options = -1;                   /* ServiceControlOptions */
109 static int hf_dap_priority = -1;                  /* T_priority */
110 static int hf_dap_timeLimit = -1;                 /* INTEGER */
111 static int hf_dap_sizeLimit = -1;                 /* INTEGER */
112 static int hf_dap_scopeOfReferral = -1;           /* T_scopeOfReferral */
113 static int hf_dap_attributeSizeLimit = -1;        /* INTEGER */
114 static int hf_dap_manageDSAITPlaneRef = -1;       /* T_manageDSAITPlaneRef */
115 static int hf_dap_dsaName = -1;                   /* Name */
116 static int hf_dap_agreementID = -1;               /* AgreementID */
117 static int hf_dap_serviceType = -1;               /* OBJECT_IDENTIFIER */
118 static int hf_dap_userClass = -1;                 /* INTEGER */
119 static int hf_dap_attributes = -1;                /* T_attributes */
120 static int hf_dap_allUserAttributes = -1;         /* NULL */
121 static int hf_dap_select = -1;                    /* SET_OF_AttributeType */
122 static int hf_dap_select_item = -1;               /* AttributeType */
123 static int hf_dap_infoTypes = -1;                 /* T_infoTypes */
124 static int hf_dap_extraAttributes = -1;           /* T_extraAttributes */
125 static int hf_dap_allOperationalAttributes = -1;  /* NULL */
126 static int hf_dap_extraSelect = -1;               /* SET_SIZE_1_MAX_OF_AttributeType */
127 static int hf_dap_extraSelect_item = -1;          /* AttributeType */
128 static int hf_dap_contextSelection = -1;          /* ContextSelection */
129 static int hf_dap_returnContexts = -1;            /* BOOLEAN */
130 static int hf_dap_familyReturn = -1;              /* FamilyReturn */
131 static int hf_dap_allContexts = -1;               /* NULL */
132 static int hf_dap_selectedContexts = -1;          /* SET_SIZE_1_MAX_OF_TypeAndContextAssertion */
133 static int hf_dap_selectedContexts_item = -1;     /* TypeAndContextAssertion */
134 static int hf_dap_type = -1;                      /* AttributeType */
135 static int hf_dap_contextAssertions = -1;         /* T_contextAssertions */
136 static int hf_dap_preference = -1;                /* SEQUENCE_OF_ContextAssertion */
137 static int hf_dap_preference_item = -1;           /* ContextAssertion */
138 static int hf_dap_all = -1;                       /* SET_OF_ContextAssertion */
139 static int hf_dap_all_item = -1;                  /* ContextAssertion */
140 static int hf_dap_memberSelect = -1;              /* T_memberSelect */
141 static int hf_dap_familySelect = -1;              /* T_familySelect */
142 static int hf_dap_familySelect_item = -1;         /* OBJECT_IDENTIFIER */
143 static int hf_dap_name = -1;                      /* Name */
144 static int hf_dap_fromEntry = -1;                 /* BOOLEAN */
145 static int hf_dap_entry_information = -1;         /* T_entry_information */
146 static int hf_dap_entry_information_item = -1;    /* EntryInformationItem */
147 static int hf_dap_attributeType = -1;             /* AttributeType */
148 static int hf_dap_attribute = -1;                 /* Attribute */
149 static int hf_dap_incompleteEntry = -1;           /* BOOLEAN */
150 static int hf_dap_partialName = -1;               /* BOOLEAN */
151 static int hf_dap_derivedEntry = -1;              /* BOOLEAN */
152 static int hf_dap_family_class = -1;              /* OBJECT_IDENTIFIER */
153 static int hf_dap_familyEntries = -1;             /* SEQUENCE_OF_FamilyEntry */
154 static int hf_dap_familyEntries_item = -1;        /* FamilyEntry */
155 static int hf_dap_rdn = -1;                       /* RelativeDistinguishedName */
156 static int hf_dap_family_information = -1;        /* FamilyInformation */
157 static int hf_dap_family_information_item = -1;   /* T_family_information_item */
158 static int hf_dap_family_info = -1;               /* SEQUENCE_SIZE_1_MAX_OF_FamilyEntries */
159 static int hf_dap_family_info_item = -1;          /* FamilyEntries */
160 static int hf_dap_filter_item = -1;               /* FilterItem */
161 static int hf_dap_and = -1;                       /* SetOfFilter */
162 static int hf_dap_or = -1;                        /* SetOfFilter */
163 static int hf_dap_not = -1;                       /* Filter */
164 static int hf_dap_SetOfFilter_item = -1;          /* Filter */
165 static int hf_dap_equality = -1;                  /* AttributeValueAssertion */
166 static int hf_dap_substrings = -1;                /* T_substrings */
167 static int hf_dap_sunstringType = -1;             /* OBJECT_IDENTIFIER */
168 static int hf_dap_strings = -1;                   /* T_strings */
169 static int hf_dap_strings_item = -1;              /* T_strings_item */
170 static int hf_dap_initial = -1;                   /* T_initial */
171 static int hf_dap_any = -1;                       /* T_any */
172 static int hf_dap_final = -1;                     /* T_final */
173 static int hf_dap_control = -1;                   /* Attribute */
174 static int hf_dap_greaterOrEqual = -1;            /* AttributeValueAssertion */
175 static int hf_dap_lessOrEqual = -1;               /* AttributeValueAssertion */
176 static int hf_dap_present = -1;                   /* AttributeType */
177 static int hf_dap_approximateMatch = -1;          /* AttributeValueAssertion */
178 static int hf_dap_extensibleMatch = -1;           /* MatchingRuleAssertion */
179 static int hf_dap_contextPresent = -1;            /* AttributeTypeAssertion */
180 static int hf_dap_matchingRule = -1;              /* T_matchingRule */
181 static int hf_dap_matchingRule_item = -1;         /* OBJECT_IDENTIFIER */
182 static int hf_dap_matchValue = -1;                /* T_matchValue */
183 static int hf_dap_dnAttributes = -1;              /* BOOLEAN */
184 static int hf_dap_newRequest = -1;                /* T_newRequest */
185 static int hf_dap_pageSize = -1;                  /* INTEGER */
186 static int hf_dap_sortKeys = -1;                  /* SEQUENCE_SIZE_1_MAX_OF_SortKey */
187 static int hf_dap_sortKeys_item = -1;             /* SortKey */
188 static int hf_dap_reverse = -1;                   /* BOOLEAN */
189 static int hf_dap_unmerged = -1;                  /* BOOLEAN */
190 static int hf_dap_pagedResultsQueryReference = -1;  /* T_pagedResultsQueryReference */
191 static int hf_dap_orderingRule = -1;              /* OBJECT_IDENTIFIER */
192 static int hf_dap_certification_path = -1;        /* CertificationPath */
193 static int hf_dap_distinguished_name = -1;        /* DistinguishedName */
194 static int hf_dap_time = -1;                      /* Time */
195 static int hf_dap_random = -1;                    /* BIT_STRING */
196 static int hf_dap_target = -1;                    /* ProtectionRequest */
197 static int hf_dap_response = -1;                  /* BIT_STRING */
198 static int hf_dap_operationCode = -1;             /* Code */
199 static int hf_dap_attributeCertificationPath = -1;  /* AttributeCertificationPath */
200 static int hf_dap_errorProtection = -1;           /* ErrorProtectionRequest */
201 static int hf_dap_errorCode = -1;                 /* Code */
202 static int hf_dap_utcTime = -1;                   /* UTCTime */
203 static int hf_dap_generalizedTime = -1;           /* GeneralizedTime */
204 static int hf_dap_credentials = -1;               /* Credentials */
205 static int hf_dap_versions = -1;                  /* Versions */
206 static int hf_dap_simple = -1;                    /* SimpleCredentials */
207 static int hf_dap_strong = -1;                    /* StrongCredentials */
208 static int hf_dap_externalProcedure = -1;         /* EXTERNAL */
209 static int hf_dap_spkm = -1;                      /* SpkmCredentials */
210 static int hf_dap_validity = -1;                  /* T_validity */
211 static int hf_dap_time1 = -1;                     /* T_time1 */
212 static int hf_dap_utc = -1;                       /* UTCTime */
213 static int hf_dap_gt = -1;                        /* GeneralizedTime */
214 static int hf_dap_time2 = -1;                     /* T_time2 */
215 static int hf_dap_random1 = -1;                   /* BIT_STRING */
216 static int hf_dap_random2 = -1;                   /* BIT_STRING */
217 static int hf_dap_password = -1;                  /* T_password */
218 static int hf_dap_unprotected = -1;               /* OCTET_STRING */
219 static int hf_dap_protected = -1;                 /* T_protected */
220 static int hf_dap_protectedPassword = -1;         /* OCTET_STRING */
221 static int hf_dap_algorithmIdentifier = -1;       /* AlgorithmIdentifier */
222 static int hf_dap_encrypted = -1;                 /* BIT_STRING */
223 static int hf_dap_bind_token = -1;                /* Token */
224 static int hf_dap_req = -1;                       /* T_req */
225 static int hf_dap_rep = -1;                       /* T_rep */
226 static int hf_dap_algorithm = -1;                 /* AlgorithmIdentifier */
227 static int hf_dap_utctime = -1;                   /* UTCTime */
228 static int hf_dap_bindIntAlgorithm = -1;          /* SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier */
229 static int hf_dap_bindIntAlgorithm_item = -1;     /* AlgorithmIdentifier */
230 static int hf_dap_bindIntKeyInfo = -1;            /* BindKeyInfo */
231 static int hf_dap_bindConfAlgorithm = -1;         /* SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier */
232 static int hf_dap_bindConfAlgorithm_item = -1;    /* AlgorithmIdentifier */
233 static int hf_dap_bindConfKeyInfo = -1;           /* BindKeyInfo */
234 static int hf_dap_token_data = -1;                /* TokenData */
235 static int hf_dap_algorithm_identifier = -1;      /* AlgorithmIdentifier */
236 static int hf_dap_unsignedDirectoryBindError = -1;  /* DirectoryBindErrorData */
237 static int hf_dap_signedDirectoryBindError = -1;  /* T_signedDirectoryBindError */
238 static int hf_dap_directoryBindError = -1;        /* DirectoryBindErrorData */
239 static int hf_dap_error = -1;                     /* T_error */
240 static int hf_dap_serviceProblem = -1;            /* ServiceProblem */
241 static int hf_dap_securityProblem = -1;           /* SecurityProblem */
242 static int hf_dap_object = -1;                    /* Name */
243 static int hf_dap_selection = -1;                 /* EntryInformationSelection */
244 static int hf_dap_modifyRightsRequest = -1;       /* BOOLEAN */
245 static int hf_dap_serviceControls = -1;           /* ServiceControls */
246 static int hf_dap_securityParameters = -1;        /* SecurityParameters */
247 static int hf_dap_requestor = -1;                 /* DistinguishedName */
248 static int hf_dap_operationProgress = -1;         /* OperationProgress */
249 static int hf_dap_aliasedRDNs = -1;               /* INTEGER */
250 static int hf_dap_criticalExtensions = -1;        /* BIT_STRING */
251 static int hf_dap_referenceType = -1;             /* ReferenceType */
252 static int hf_dap_entryOnly = -1;                 /* BOOLEAN */
253 static int hf_dap_nameResolveOnMaster = -1;       /* BOOLEAN */
254 static int hf_dap_operationContexts = -1;         /* ContextSelection */
255 static int hf_dap_familyGrouping = -1;            /* FamilyGrouping */
256 static int hf_dap_rdnSequence = -1;               /* RDNSequence */
257 static int hf_dap_unsignedReadArgument = -1;      /* ReadArgumentData */
258 static int hf_dap_signedReadArgument = -1;        /* T_signedReadArgument */
259 static int hf_dap_readArgument = -1;              /* ReadArgumentData */
260 static int hf_dap_entry = -1;                     /* EntryInformation */
261 static int hf_dap_modifyRights = -1;              /* ModifyRights */
262 static int hf_dap_performer = -1;                 /* DistinguishedName */
263 static int hf_dap_aliasDereferenced = -1;         /* BOOLEAN */
264 static int hf_dap_notification = -1;              /* SEQUENCE_SIZE_1_MAX_OF_Attribute */
265 static int hf_dap_notification_item = -1;         /* Attribute */
266 static int hf_dap_unsignedReadResult = -1;        /* ReadResultData */
267 static int hf_dap_signedReadResult = -1;          /* T_signedReadResult */
268 static int hf_dap_readResult = -1;                /* ReadResultData */
269 static int hf_dap_ModifyRights_item = -1;         /* ModifyRights_item */
270 static int hf_dap_item = -1;                      /* T_item */
271 static int hf_dap_item_entry = -1;                /* NULL */
272 static int hf_dap_attribute_type = -1;            /* AttributeType */
273 static int hf_dap_value_assertion = -1;           /* AttributeValueAssertion */
274 static int hf_dap_permission = -1;                /* T_permission */
275 static int hf_dap_purported = -1;                 /* AttributeValueAssertion */
276 static int hf_dap_unsignedCompareArgument = -1;   /* CompareArgumentData */
277 static int hf_dap_signedCompareArgument = -1;     /* T_signedCompareArgument */
278 static int hf_dap_compareArgument = -1;           /* CompareArgumentData */
279 static int hf_dap_matched = -1;                   /* BOOLEAN */
280 static int hf_dap_matchedSubtype = -1;            /* AttributeType */
281 static int hf_dap_unsignedCompareResult = -1;     /* CompareResultData */
282 static int hf_dap_signedCompareResult = -1;       /* T_signedCompareResult */
283 static int hf_dap_compareResult = -1;             /* CompareResultData */
284 static int hf_dap_invokeID = -1;                  /* InvokeId */
285 static int hf_dap_unsignedAbandonArgument = -1;   /* AbandonArgumentData */
286 static int hf_dap_signedAbandonArgument = -1;     /* T_signedAbandonArgument */
287 static int hf_dap_abandonArgument = -1;           /* AbandonArgumentData */
288 static int hf_dap_null = -1;                      /* NULL */
289 static int hf_dap_abandon_information = -1;       /* AbandonInformation */
290 static int hf_dap_unsignedAbandonResult = -1;     /* AbandonResultData */
291 static int hf_dap_signedAbandonResult = -1;       /* T_signedAbandonResult */
292 static int hf_dap_abandonResult = -1;             /* AbandonResultData */
293 static int hf_dap_pagedResults = -1;              /* PagedResultsRequest */
294 static int hf_dap_listFamily = -1;                /* BOOLEAN */
295 static int hf_dap_unsignedListArgument = -1;      /* ListArgumentData */
296 static int hf_dap_signedListArgument = -1;        /* T_signedListArgument */
297 static int hf_dap_listArgument = -1;              /* ListArgumentData */
298 static int hf_dap_listInfo = -1;                  /* T_listInfo */
299 static int hf_dap_subordinates = -1;              /* T_subordinates */
300 static int hf_dap_subordinates_item = -1;         /* T_subordinates_item */
301 static int hf_dap_aliasEntry = -1;                /* BOOLEAN */
302 static int hf_dap_partialOutcomeQualifier = -1;   /* PartialOutcomeQualifier */
303 static int hf_dap_uncorrelatedListInfo = -1;      /* SET_OF_ListResult */
304 static int hf_dap_uncorrelatedListInfo_item = -1;  /* ListResult */
305 static int hf_dap_unsignedListResult = -1;        /* ListResultData */
306 static int hf_dap_signedListResult = -1;          /* T_signedListResult */
307 static int hf_dap_listResult = -1;                /* ListResultData */
308 static int hf_dap_limitProblem = -1;              /* LimitProblem */
309 static int hf_dap_unexplored = -1;                /* SET_SIZE_1_MAX_OF_ContinuationReference */
310 static int hf_dap_unexplored_item = -1;           /* ContinuationReference */
311 static int hf_dap_unavailableCriticalExtensions = -1;  /* BOOLEAN */
312 static int hf_dap_unknownErrors = -1;             /* T_unknownErrors */
313 static int hf_dap_unknownErrors_item = -1;        /* OBJECT_IDENTIFIER */
314 static int hf_dap_queryReference = -1;            /* OCTET_STRING */
315 static int hf_dap_overspecFilter = -1;            /* Filter */
316 static int hf_dap_entryCount = -1;                /* T_entryCount */
317 static int hf_dap_bestEstimate = -1;              /* INTEGER */
318 static int hf_dap_lowEstimate = -1;               /* INTEGER */
319 static int hf_dap_baseObject = -1;                /* Name */
320 static int hf_dap_subset = -1;                    /* T_subset */
321 static int hf_dap_filter = -1;                    /* Filter */
322 static int hf_dap_searchAliases = -1;             /* BOOLEAN */
323 static int hf_dap_matchedValuesOnly = -1;         /* BOOLEAN */
324 static int hf_dap_extendedFilter = -1;            /* Filter */
325 static int hf_dap_checkOverspecified = -1;        /* BOOLEAN */
326 static int hf_dap_relaxation = -1;                /* RelaxationPolicy */
327 static int hf_dap_extendedArea = -1;              /* INTEGER */
328 static int hf_dap_hierarchySelections = -1;       /* HierarchySelections */
329 static int hf_dap_searchControlOptions = -1;      /* SearchControlOptions */
330 static int hf_dap_joinArguments = -1;             /* SEQUENCE_SIZE_1_MAX_OF_JoinArgument */
331 static int hf_dap_joinArguments_item = -1;        /* JoinArgument */
332 static int hf_dap_joinType = -1;                  /* T_joinType */
333 static int hf_dap_unsignedSearchArgument = -1;    /* SearchArgumentData */
334 static int hf_dap_signedSearchArgument = -1;      /* T_signedSearchArgument */
335 static int hf_dap_searchArgument = -1;            /* SearchArgumentData */
336 static int hf_dap_joinBaseObject = -1;            /* Name */
337 static int hf_dap_domainLocalID = -1;             /* DomainLocalID */
338 static int hf_dap_joinSubset = -1;                /* T_joinSubset */
339 static int hf_dap_joinFilter = -1;                /* Filter */
340 static int hf_dap_joinAttributes = -1;            /* SEQUENCE_SIZE_1_MAX_OF_JoinAttPair */
341 static int hf_dap_joinAttributes_item = -1;       /* JoinAttPair */
342 static int hf_dap_joinSelection = -1;             /* EntryInformationSelection */
343 static int hf_dap_baseAtt = -1;                   /* AttributeType */
344 static int hf_dap_joinAtt = -1;                   /* AttributeType */
345 static int hf_dap_joinContext = -1;               /* SEQUENCE_SIZE_1_MAX_OF_JoinContextType */
346 static int hf_dap_joinContext_item = -1;          /* JoinContextType */
347 static int hf_dap_searchInfo = -1;                /* T_searchInfo */
348 static int hf_dap_entries = -1;                   /* SET_OF_EntryInformation */
349 static int hf_dap_entries_item = -1;              /* EntryInformation */
350 static int hf_dap_altMatching = -1;               /* BOOLEAN */
351 static int hf_dap_uncorrelatedSearchInfo = -1;    /* SET_OF_SearchResult */
352 static int hf_dap_uncorrelatedSearchInfo_item = -1;  /* SearchResult */
353 static int hf_dap_unsignedSearchResult = -1;      /* SearchResultData */
354 static int hf_dap_signedSearchResult = -1;        /* T_signedSearchResult */
355 static int hf_dap_searchResult = -1;              /* SearchResultData */
356 static int hf_dap_add_entry = -1;                 /* SET_OF_Attribute */
357 static int hf_dap_add_entry_item = -1;            /* Attribute */
358 static int hf_dap_targetSystem = -1;              /* AccessPoint */
359 static int hf_dap_unsignedAddEntryArgument = -1;  /* AddEntryArgumentData */
360 static int hf_dap_signedAddEntryArgument = -1;    /* T_signedAddEntryArgument */
361 static int hf_dap_addEntryArgument = -1;          /* AddEntryArgumentData */
362 static int hf_dap_add_entry_information = -1;     /* AddEntryInformation */
363 static int hf_dap_unsignedAddEntryResult = -1;    /* AddEntryResultData */
364 static int hf_dap_signedAddEntryResult = -1;      /* T_signedAddEntryResult */
365 static int hf_dap_addEntryResult = -1;            /* AddEntryResultData */
366 static int hf_dap_unsignedRemoveEntryArgument = -1;  /* RemoveEntryArgumentData */
367 static int hf_dap_signedRemoveEntryArgument = -1;  /* T_signedRemoveEntryArgument */
368 static int hf_dap_removeEntryArgument = -1;       /* RemoveEntryArgumentData */
369 static int hf_dap_remove_entry_information = -1;  /* RemoveEntryInformation */
370 static int hf_dap_unsignedRemoveEntryResult = -1;  /* RemoveEntryResultData */
371 static int hf_dap_signedRemoveEntryResult = -1;   /* T_signedRemoveEntryResult */
372 static int hf_dap_removeEntryResult = -1;         /* RemoveEntryResultData */
373 static int hf_dap_changes = -1;                   /* SEQUENCE_OF_EntryModification */
374 static int hf_dap_changes_item = -1;              /* EntryModification */
375 static int hf_dap_unsignedModifyEntryArgument = -1;  /* ModifyEntryArgumentData */
376 static int hf_dap_signedModifyEntryArgument = -1;  /* T_signedModifyEntryArgument */
377 static int hf_dap_modifyEntryArgument = -1;       /* ModifyEntryArgumentData */
378 static int hf_dap_modify_entry_information = -1;  /* ModifyEntryInformation */
379 static int hf_dap_unsignedModifyEntryResult = -1;  /* ModifyEntryResultData */
380 static int hf_dap_signedModifyEntryResult = -1;   /* T_signedModifyEntryResult */
381 static int hf_dap_modifyEntryResult = -1;         /* ModifyEntryResultData */
382 static int hf_dap_addAttribute = -1;              /* Attribute */
383 static int hf_dap_removeAttribute = -1;           /* AttributeType */
384 static int hf_dap_addValues = -1;                 /* Attribute */
385 static int hf_dap_removeValues = -1;              /* Attribute */
386 static int hf_dap_alterValues = -1;               /* AttributeTypeAndValue */
387 static int hf_dap_resetValue = -1;                /* AttributeType */
388 static int hf_dap_newRDN = -1;                    /* RelativeDistinguishedName */
389 static int hf_dap_deleteOldRDN = -1;              /* BOOLEAN */
390 static int hf_dap_newSuperior = -1;               /* DistinguishedName */
391 static int hf_dap_modify_dn_information = -1;     /* ModifyDNInformation */
392 static int hf_dap_unsignedModifyDNResult = -1;    /* ModifyDNResultData */
393 static int hf_dap_signedModifyDNResult = -1;      /* T_signedModifyDNResult */
394 static int hf_dap_modifyDNResult = -1;            /* ModifyDNResultData */
395 static int hf_dap_unsignedAbandoned = -1;         /* AbandonedData */
396 static int hf_dap_signedAbandoned = -1;           /* T_signedAbandoned */
397 static int hf_dap_abandoned = -1;                 /* AbandonedData */
398 static int hf_dap_abandon_failed_problem = -1;    /* AbandonProblem */
399 static int hf_dap_operation = -1;                 /* InvokeId */
400 static int hf_dap_unsignedAbandonFailedError = -1;  /* AbandonFailedErrorData */
401 static int hf_dap_signedAbandonFailedError = -1;  /* T_signedAbandonFailedError */
402 static int hf_dap_abandonFailedError = -1;        /* AbandonFailedErrorData */
403 static int hf_dap_problems = -1;                  /* T_problems */
404 static int hf_dap_problems_item = -1;             /* T_problems_item */
405 static int hf_dap_attribute_error_problem = -1;   /* AttributeProblem */
406 static int hf_dap_value = -1;                     /* AttributeValue */
407 static int hf_dap_unsignedAttributeError = -1;    /* AttributeErrorData */
408 static int hf_dap_signedAttributeError = -1;      /* T_signedAttributeError */
409 static int hf_dap_attributeError = -1;            /* AttributeErrorData */
410 static int hf_dap_name_error_problem = -1;        /* NameProblem */
411 static int hf_dap_matched_name = -1;              /* Name */
412 static int hf_dap_unsignedNameError = -1;         /* NameErrorData */
413 static int hf_dap_signedNameError = -1;           /* T_signedNameError */
414 static int hf_dap_nameError = -1;                 /* NameErrorData */
415 static int hf_dap_candidate = -1;                 /* ContinuationReference */
416 static int hf_dap_unsignedReferral = -1;          /* ReferralData */
417 static int hf_dap_signedReferral = -1;            /* T_signedReferral */
418 static int hf_dap_referral = -1;                  /* ReferralData */
419 static int hf_dap_security_error_problem = -1;    /* SecurityProblem */
420 static int hf_dap_spkmInfo = -1;                  /* T_spkmInfo */
421 static int hf_dap_unsignedSecurityError = -1;     /* SecurityErrorData */
422 static int hf_dap_signedSecurityError = -1;       /* T_signedSecurityError */
423 static int hf_dap_securityErrorData = -1;         /* SecurityErrorData */
424 static int hf_dap_service_error_problem = -1;     /* ServiceProblem */
425 static int hf_dap_unsignedServiceError = -1;      /* ServiceErrorData */
426 static int hf_dap_signedServiceError = -1;        /* T_signedServiceError */
427 static int hf_dap_serviceError = -1;              /* ServiceErrorData */
428 static int hf_dap_update_error_problem = -1;      /* UpdateProblem */
429 static int hf_dap_attributeInfo = -1;             /* T_attributeInfo */
430 static int hf_dap_attributeInfo_item = -1;        /* T_attributeInfo_item */
431 static int hf_dap_unsignedUpdateError = -1;       /* UpdateErrorData */
432 static int hf_dap_signedUpdateError = -1;         /* T_signedUpdateError */
433 static int hf_dap_updateError = -1;               /* UpdateErrorData */
434 /* named bits */
435 static int hf_dap_ServiceControlOptions_preferChaining = -1;
436 static int hf_dap_ServiceControlOptions_chainingProhibited = -1;
437 static int hf_dap_ServiceControlOptions_localScope = -1;
438 static int hf_dap_ServiceControlOptions_dontUseCopy = -1;
439 static int hf_dap_ServiceControlOptions_dontDereferenceAliases = -1;
440 static int hf_dap_ServiceControlOptions_subentries = -1;
441 static int hf_dap_ServiceControlOptions_copyShallDo = -1;
442 static int hf_dap_ServiceControlOptions_partialNameResolution = -1;
443 static int hf_dap_ServiceControlOptions_manageDSAIT = -1;
444 static int hf_dap_ServiceControlOptions_noSubtypeMatch = -1;
445 static int hf_dap_ServiceControlOptions_noSubtypeSelection = -1;
446 static int hf_dap_ServiceControlOptions_countFamily = -1;
447 static int hf_dap_Versions_v1 = -1;
448 static int hf_dap_Versions_v2 = -1;
449 static int hf_dap_T_permission_add = -1;
450 static int hf_dap_T_permission_remove = -1;
451 static int hf_dap_T_permission_rename = -1;
452 static int hf_dap_T_permission_move = -1;
453 static int hf_dap_HierarchySelections_self = -1;
454 static int hf_dap_HierarchySelections_children = -1;
455 static int hf_dap_HierarchySelections_parent = -1;
456 static int hf_dap_HierarchySelections_hierarchy = -1;
457 static int hf_dap_HierarchySelections_top = -1;
458 static int hf_dap_HierarchySelections_subtree = -1;
459 static int hf_dap_HierarchySelections_siblings = -1;
460 static int hf_dap_HierarchySelections_siblingChildren = -1;
461 static int hf_dap_HierarchySelections_siblingSubtree = -1;
462 static int hf_dap_HierarchySelections_all = -1;
463 static int hf_dap_SearchControlOptions_searchAliases = -1;
464 static int hf_dap_SearchControlOptions_matchedValuesOnly = -1;
465 static int hf_dap_SearchControlOptions_checkOverspecified = -1;
466 static int hf_dap_SearchControlOptions_performExactly = -1;
467 static int hf_dap_SearchControlOptions_includeAllAreas = -1;
468 static int hf_dap_SearchControlOptions_noSystemRelaxation = -1;
469 static int hf_dap_SearchControlOptions_dnAttribute = -1;
470 static int hf_dap_SearchControlOptions_matchOnResidualName = -1;
471 static int hf_dap_SearchControlOptions_entryCount = -1;
472 static int hf_dap_SearchControlOptions_useSubset = -1;
473 static int hf_dap_SearchControlOptions_separateFamilyMembers = -1;
474 static int hf_dap_SearchControlOptions_searchFamily = -1;
475
476 /*--- End of included file: packet-dap-hf.c ---*/
477 #line 69 "packet-dap-template.c"
478
479 /* Initialize the subtree pointers */
480 static gint ett_dap = -1;
481
482 /*--- Included file: packet-dap-ett.c ---*/
483 #line 1 "packet-dap-ett.c"
484 static gint ett_dap_ServiceControls = -1;
485 static gint ett_dap_T_manageDSAITPlaneRef = -1;
486 static gint ett_dap_ServiceControlOptions = -1;
487 static gint ett_dap_EntryInformationSelection = -1;
488 static gint ett_dap_T_attributes = -1;
489 static gint ett_dap_SET_OF_AttributeType = -1;
490 static gint ett_dap_T_extraAttributes = -1;
491 static gint ett_dap_SET_SIZE_1_MAX_OF_AttributeType = -1;
492 static gint ett_dap_ContextSelection = -1;
493 static gint ett_dap_SET_SIZE_1_MAX_OF_TypeAndContextAssertion = -1;
494 static gint ett_dap_TypeAndContextAssertion = -1;
495 static gint ett_dap_T_contextAssertions = -1;
496 static gint ett_dap_SEQUENCE_OF_ContextAssertion = -1;
497 static gint ett_dap_SET_OF_ContextAssertion = -1;
498 static gint ett_dap_FamilyReturn = -1;
499 static gint ett_dap_T_familySelect = -1;
500 static gint ett_dap_EntryInformation = -1;
501 static gint ett_dap_T_entry_information = -1;
502 static gint ett_dap_EntryInformationItem = -1;
503 static gint ett_dap_FamilyEntries = -1;
504 static gint ett_dap_SEQUENCE_OF_FamilyEntry = -1;
505 static gint ett_dap_FamilyEntry = -1;
506 static gint ett_dap_FamilyInformation = -1;
507 static gint ett_dap_T_family_information_item = -1;
508 static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_FamilyEntries = -1;
509 static gint ett_dap_Filter = -1;
510 static gint ett_dap_SetOfFilter = -1;
511 static gint ett_dap_FilterItem = -1;
512 static gint ett_dap_T_substrings = -1;
513 static gint ett_dap_T_strings = -1;
514 static gint ett_dap_T_strings_item = -1;
515 static gint ett_dap_MatchingRuleAssertion = -1;
516 static gint ett_dap_T_matchingRule = -1;
517 static gint ett_dap_PagedResultsRequest = -1;
518 static gint ett_dap_T_newRequest = -1;
519 static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_SortKey = -1;
520 static gint ett_dap_SortKey = -1;
521 static gint ett_dap_SecurityParameters = -1;
522 static gint ett_dap_Time = -1;
523 static gint ett_dap_DirectoryBindArgument = -1;
524 static gint ett_dap_Credentials = -1;
525 static gint ett_dap_SimpleCredentials = -1;
526 static gint ett_dap_T_validity = -1;
527 static gint ett_dap_T_time1 = -1;
528 static gint ett_dap_T_time2 = -1;
529 static gint ett_dap_T_password = -1;
530 static gint ett_dap_T_protected = -1;
531 static gint ett_dap_StrongCredentials = -1;
532 static gint ett_dap_SpkmCredentials = -1;
533 static gint ett_dap_TokenData = -1;
534 static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier = -1;
535 static gint ett_dap_Token = -1;
536 static gint ett_dap_Versions = -1;
537 static gint ett_dap_DirectoryBindError = -1;
538 static gint ett_dap_T_signedDirectoryBindError = -1;
539 static gint ett_dap_DirectoryBindErrorData = -1;
540 static gint ett_dap_T_error = -1;
541 static gint ett_dap_ReadArgumentData = -1;
542 static gint ett_dap_Name = -1;
543 static gint ett_dap_ReadArgument = -1;
544 static gint ett_dap_T_signedReadArgument = -1;
545 static gint ett_dap_ReadResultData = -1;
546 static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute = -1;
547 static gint ett_dap_ReadResult = -1;
548 static gint ett_dap_T_signedReadResult = -1;
549 static gint ett_dap_ModifyRights = -1;
550 static gint ett_dap_ModifyRights_item = -1;
551 static gint ett_dap_T_item = -1;
552 static gint ett_dap_T_permission = -1;
553 static gint ett_dap_CompareArgumentData = -1;
554 static gint ett_dap_CompareArgument = -1;
555 static gint ett_dap_T_signedCompareArgument = -1;
556 static gint ett_dap_CompareResultData = -1;
557 static gint ett_dap_CompareResult = -1;
558 static gint ett_dap_T_signedCompareResult = -1;
559 static gint ett_dap_AbandonArgumentData = -1;
560 static gint ett_dap_AbandonArgument = -1;
561 static gint ett_dap_T_signedAbandonArgument = -1;
562 static gint ett_dap_AbandonResultData = -1;
563 static gint ett_dap_AbandonResult = -1;
564 static gint ett_dap_AbandonInformation = -1;
565 static gint ett_dap_T_signedAbandonResult = -1;
566 static gint ett_dap_ListArgumentData = -1;
567 static gint ett_dap_ListArgument = -1;
568 static gint ett_dap_T_signedListArgument = -1;
569 static gint ett_dap_ListResultData = -1;
570 static gint ett_dap_T_listInfo = -1;
571 static gint ett_dap_T_subordinates = -1;
572 static gint ett_dap_T_subordinates_item = -1;
573 static gint ett_dap_SET_OF_ListResult = -1;
574 static gint ett_dap_ListResult = -1;
575 static gint ett_dap_T_signedListResult = -1;
576 static gint ett_dap_PartialOutcomeQualifier = -1;
577 static gint ett_dap_SET_SIZE_1_MAX_OF_ContinuationReference = -1;
578 static gint ett_dap_T_unknownErrors = -1;
579 static gint ett_dap_T_entryCount = -1;
580 static gint ett_dap_SearchArgumentData = -1;
581 static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinArgument = -1;
582 static gint ett_dap_SearchArgument = -1;
583 static gint ett_dap_T_signedSearchArgument = -1;
584 static gint ett_dap_HierarchySelections = -1;
585 static gint ett_dap_SearchControlOptions = -1;
586 static gint ett_dap_JoinArgument = -1;
587 static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinAttPair = -1;
588 static gint ett_dap_JoinAttPair = -1;
589 static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinContextType = -1;
590 static gint ett_dap_SearchResultData = -1;
591 static gint ett_dap_T_searchInfo = -1;
592 static gint ett_dap_SET_OF_EntryInformation = -1;
593 static gint ett_dap_SET_OF_SearchResult = -1;
594 static gint ett_dap_SearchResult = -1;
595 static gint ett_dap_T_signedSearchResult = -1;
596 static gint ett_dap_AddEntryArgumentData = -1;
597 static gint ett_dap_SET_OF_Attribute = -1;
598 static gint ett_dap_AddEntryArgument = -1;
599 static gint ett_dap_T_signedAddEntryArgument = -1;
600 static gint ett_dap_AddEntryResultData = -1;
601 static gint ett_dap_AddEntryResult = -1;
602 static gint ett_dap_AddEntryInformation = -1;
603 static gint ett_dap_T_signedAddEntryResult = -1;
604 static gint ett_dap_RemoveEntryArgumentData = -1;
605 static gint ett_dap_RemoveEntryArgument = -1;
606 static gint ett_dap_T_signedRemoveEntryArgument = -1;
607 static gint ett_dap_RemoveEntryResultData = -1;
608 static gint ett_dap_RemoveEntryResult = -1;
609 static gint ett_dap_RemoveEntryInformation = -1;
610 static gint ett_dap_T_signedRemoveEntryResult = -1;
611 static gint ett_dap_ModifyEntryArgumentData = -1;
612 static gint ett_dap_SEQUENCE_OF_EntryModification = -1;
613 static gint ett_dap_ModifyEntryArgument = -1;
614 static gint ett_dap_T_signedModifyEntryArgument = -1;
615 static gint ett_dap_ModifyEntryResultData = -1;
616 static gint ett_dap_ModifyEntryResult = -1;
617 static gint ett_dap_ModifyEntryInformation = -1;
618 static gint ett_dap_T_signedModifyEntryResult = -1;
619 static gint ett_dap_EntryModification = -1;
620 static gint ett_dap_ModifyDNArgument = -1;
621 static gint ett_dap_ModifyDNResultData = -1;
622 static gint ett_dap_ModifyDNResult = -1;
623 static gint ett_dap_ModifyDNInformation = -1;
624 static gint ett_dap_T_signedModifyDNResult = -1;
625 static gint ett_dap_AbandonedData = -1;
626 static gint ett_dap_Abandoned = -1;
627 static gint ett_dap_T_signedAbandoned = -1;
628 static gint ett_dap_AbandonFailedErrorData = -1;
629 static gint ett_dap_AbandonFailedError = -1;
630 static gint ett_dap_T_signedAbandonFailedError = -1;
631 static gint ett_dap_AttributeErrorData = -1;
632 static gint ett_dap_T_problems = -1;
633 static gint ett_dap_T_problems_item = -1;
634 static gint ett_dap_AttributeError = -1;
635 static gint ett_dap_T_signedAttributeError = -1;
636 static gint ett_dap_NameErrorData = -1;
637 static gint ett_dap_NameError = -1;
638 static gint ett_dap_T_signedNameError = -1;
639 static gint ett_dap_ReferralData = -1;
640 static gint ett_dap_Referral = -1;
641 static gint ett_dap_T_signedReferral = -1;
642 static gint ett_dap_SecurityErrorData = -1;
643 static gint ett_dap_SecurityError = -1;
644 static gint ett_dap_T_signedSecurityError = -1;
645 static gint ett_dap_ServiceErrorData = -1;
646 static gint ett_dap_ServiceError = -1;
647 static gint ett_dap_T_signedServiceError = -1;
648 static gint ett_dap_UpdateErrorData = -1;
649 static gint ett_dap_T_attributeInfo = -1;
650 static gint ett_dap_T_attributeInfo_item = -1;
651 static gint ett_dap_UpdateError = -1;
652 static gint ett_dap_T_signedUpdateError = -1;
653
654 /*--- End of included file: packet-dap-ett.c ---*/
655 #line 73 "packet-dap-template.c"
656
657
658 /*--- Included file: packet-dap-val.h ---*/
659 #line 1 "packet-dap-val.h"
660 #define id_opcode_read                 1
661 #define id_opcode_compare              2
662 #define id_opcode_abandon              3
663 #define id_opcode_list                 4
664 #define id_opcode_search               5
665 #define id_opcode_addEntry             6
666 #define id_opcode_removeEntry          7
667 #define id_opcode_modifyEntry          8
668 #define id_opcode_modifyDN             9
669 #define id_errcode_attributeError      1
670 #define id_errcode_nameError           2
671 #define id_errcode_serviceError        3
672 #define id_errcode_referral            4
673 #define id_errcode_abandoned           5
674 #define id_errcode_securityError       6
675 #define id_errcode_abandonFailed       7
676 #define id_errcode_updateError         8
677 #define id_errcode_dsaReferral         9
678
679 /*--- End of included file: packet-dap-val.h ---*/
680 #line 75 "packet-dap-template.c"
681
682
683 /*--- Included file: packet-dap-table.c ---*/
684 #line 1 "packet-dap-table.c"
685
686 /* DAP OPERATIONS */
687 const value_string dap_opr_code_string_vals[] = {
688         { op_ros_bind, "directoryBind" },
689         { id_opcode_read, "read" },
690         { id_opcode_compare, "compare" },
691         { id_opcode_abandon, "abandon" },
692         { id_opcode_list, "list" },
693         { id_opcode_search, "search" },
694         { id_opcode_addEntry, "addEntry" },
695         { id_opcode_removeEntry, "removeEntry" },
696         { id_opcode_modifyEntry, "modifyEntry" },
697         { id_opcode_modifyDN, "modifyDN" },
698         { 0, NULL }
699 };
700
701
702 /* DAP ERRORS */
703 static const value_string dap_err_code_string_vals[] = {
704         { err_ros_bind, "directoryBindError" },  
705         { id_errcode_abandoned, "abandoned" },  
706         { id_errcode_abandonFailed, "abandonFailed" },  
707         { id_errcode_attributeError, "attributeError" },  
708         { id_errcode_nameError, "nameError" },  
709         { id_errcode_referral, "referral" },  
710         { id_errcode_securityError, "securityError" },  
711         { id_errcode_serviceError, "serviceError" },  
712         { id_errcode_updateError, "updateError" },  
713           { 0, NULL }
714 };
715
716
717 /*--- End of included file: packet-dap-table.c ---*/
718 #line 77 "packet-dap-template.c"
719
720
721 /*--- Included file: packet-dap-fn.c ---*/
722 #line 1 "packet-dap-fn.c"
723 /*--- Cyclic dependencies ---*/
724
725 /* FamilyEntries -> FamilyEntries/familyEntries -> FamilyEntry -> FamilyEntry/family-info -> FamilyEntries */
726 static int dissect_dap_FamilyEntries(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
727
728 /* Filter -> SetOfFilter -> Filter */
729 /* Filter -> Filter */
730 int dissect_dap_Filter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
731
732 /* ListResultData -> ListResultData/uncorrelatedListInfo -> ListResult -> ListResultData */
733 /* ListResultData -> ListResultData/uncorrelatedListInfo -> ListResult -> ListResult/signedListResult -> ListResultData */
734 static int dissect_dap_ListResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
735
736 /* SearchResultData -> SearchResultData/uncorrelatedSearchInfo -> SearchResult -> SearchResultData */
737 /* SearchResultData -> SearchResultData/uncorrelatedSearchInfo -> SearchResult -> SearchResult/signedSearchResult -> SearchResultData */
738 static int dissect_dap_SearchResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
739
740
741
742 const value_string dap_FamilyGrouping_vals[] = {
743   {   1, "entryOnly" },
744   {   2, "compoundEntry" },
745   {   3, "strands" },
746   {   4, "multiStrand" },
747   { 0, NULL }
748 };
749
750
751 int
752 dissect_dap_FamilyGrouping(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
753   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
754                                   NULL);
755
756   return offset;
757 }
758
759
760 static const asn_namedbit ServiceControlOptions_bits[] = {
761   {  0, &hf_dap_ServiceControlOptions_preferChaining, -1, -1, "preferChaining", NULL },
762   {  1, &hf_dap_ServiceControlOptions_chainingProhibited, -1, -1, "chainingProhibited", NULL },
763   {  2, &hf_dap_ServiceControlOptions_localScope, -1, -1, "localScope", NULL },
764   {  3, &hf_dap_ServiceControlOptions_dontUseCopy, -1, -1, "dontUseCopy", NULL },
765   {  4, &hf_dap_ServiceControlOptions_dontDereferenceAliases, -1, -1, "dontDereferenceAliases", NULL },
766   {  5, &hf_dap_ServiceControlOptions_subentries, -1, -1, "subentries", NULL },
767   {  6, &hf_dap_ServiceControlOptions_copyShallDo, -1, -1, "copyShallDo", NULL },
768   {  7, &hf_dap_ServiceControlOptions_partialNameResolution, -1, -1, "partialNameResolution", NULL },
769   {  8, &hf_dap_ServiceControlOptions_manageDSAIT, -1, -1, "manageDSAIT", NULL },
770   {  9, &hf_dap_ServiceControlOptions_noSubtypeMatch, -1, -1, "noSubtypeMatch", NULL },
771   { 10, &hf_dap_ServiceControlOptions_noSubtypeSelection, -1, -1, "noSubtypeSelection", NULL },
772   { 11, &hf_dap_ServiceControlOptions_countFamily, -1, -1, "countFamily", NULL },
773   { 0, NULL, 0, 0, NULL, NULL }
774 };
775
776 int
777 dissect_dap_ServiceControlOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
778   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
779                                     ServiceControlOptions_bits, hf_index, ett_dap_ServiceControlOptions,
780                                     NULL);
781
782   return offset;
783 }
784
785
786 static const value_string dap_T_priority_vals[] = {
787   {   0, "low" },
788   {   1, "medium" },
789   {   2, "high" },
790   { 0, NULL }
791 };
792
793
794 static int
795 dissect_dap_T_priority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
796   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
797                                                 NULL);
798
799   return offset;
800 }
801
802
803
804 static int
805 dissect_dap_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
806   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
807                                                 NULL);
808
809   return offset;
810 }
811
812
813 static const value_string dap_T_scopeOfReferral_vals[] = {
814   {   0, "dmd" },
815   {   1, "country" },
816   { 0, NULL }
817 };
818
819
820 static int
821 dissect_dap_T_scopeOfReferral(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
822   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
823                                                 NULL);
824
825   return offset;
826 }
827
828
829 static const value_string dap_Name_vals[] = {
830   {   0, "rdnSequence" },
831   { 0, NULL }
832 };
833
834 static const ber_choice_t Name_choice[] = {
835   {   0, &hf_dap_rdnSequence     , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_RDNSequence },
836   { 0, NULL, 0, 0, 0, NULL }
837 };
838
839 static int
840 dissect_dap_Name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
841         const char *dn;
842
843           offset = dissect_ber_choice(actx, tree, tvb, offset,
844                                  Name_choice, hf_index, ett_dap_Name,
845                                  NULL);
846
847
848         if(check_col(actx->pinfo->cinfo, COL_INFO)) {
849                 dn = x509if_get_last_dn();
850                 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", (dn && *dn) ? dn : "(root)");
851         }
852
853
854   return offset;
855 }
856
857
858 static const ber_sequence_t T_manageDSAITPlaneRef_sequence[] = {
859   { &hf_dap_dsaName         , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
860   { &hf_dap_agreementID     , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_disp_AgreementID },
861   { NULL, 0, 0, 0, NULL }
862 };
863
864 static int
865 dissect_dap_T_manageDSAITPlaneRef(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
866   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
867                                    T_manageDSAITPlaneRef_sequence, hf_index, ett_dap_T_manageDSAITPlaneRef);
868
869   return offset;
870 }
871
872
873
874 static int
875 dissect_dap_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
876   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
877
878   return offset;
879 }
880
881
882 static const ber_sequence_t ServiceControls_set[] = {
883   { &hf_dap_options         , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControlOptions },
884   { &hf_dap_priority        , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_T_priority },
885   { &hf_dap_timeLimit       , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
886   { &hf_dap_sizeLimit       , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
887   { &hf_dap_scopeOfReferral , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_T_scopeOfReferral },
888   { &hf_dap_attributeSizeLimit, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
889   { &hf_dap_manageDSAITPlaneRef, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_dap_T_manageDSAITPlaneRef },
890   { &hf_dap_serviceType     , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_dap_OBJECT_IDENTIFIER },
891   { &hf_dap_userClass       , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
892   { NULL, 0, 0, 0, NULL }
893 };
894
895 static int
896 dissect_dap_ServiceControls(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
897   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
898                               ServiceControls_set, hf_index, ett_dap_ServiceControls);
899
900   return offset;
901 }
902
903
904
905 static int
906 dissect_dap_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
907   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
908
909   return offset;
910 }
911
912
913 static const ber_sequence_t SET_OF_AttributeType_set_of[1] = {
914   { &hf_dap_select_item     , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
915 };
916
917 static int
918 dissect_dap_SET_OF_AttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
919   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
920                                  SET_OF_AttributeType_set_of, hf_index, ett_dap_SET_OF_AttributeType);
921
922   return offset;
923 }
924
925
926 static const value_string dap_T_attributes_vals[] = {
927   {   0, "allUserAttributes" },
928   {   1, "select" },
929   { 0, NULL }
930 };
931
932 static const ber_choice_t T_attributes_choice[] = {
933   {   0, &hf_dap_allUserAttributes, BER_CLASS_CON, 0, 0, dissect_dap_NULL },
934   {   1, &hf_dap_select          , BER_CLASS_CON, 1, 0, dissect_dap_SET_OF_AttributeType },
935   { 0, NULL, 0, 0, 0, NULL }
936 };
937
938 static int
939 dissect_dap_T_attributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
940   offset = dissect_ber_choice(actx, tree, tvb, offset,
941                                  T_attributes_choice, hf_index, ett_dap_T_attributes,
942                                  NULL);
943
944   return offset;
945 }
946
947
948 static const value_string dap_T_infoTypes_vals[] = {
949   {   0, "attributeTypesOnly" },
950   {   1, "attributeTypesAndValues" },
951   { 0, NULL }
952 };
953
954
955 static int
956 dissect_dap_T_infoTypes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
957   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
958                                                 NULL);
959
960   return offset;
961 }
962
963
964 static const ber_sequence_t SET_SIZE_1_MAX_OF_AttributeType_set_of[1] = {
965   { &hf_dap_extraSelect_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
966 };
967
968 static int
969 dissect_dap_SET_SIZE_1_MAX_OF_AttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
970   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
971                                  SET_SIZE_1_MAX_OF_AttributeType_set_of, hf_index, ett_dap_SET_SIZE_1_MAX_OF_AttributeType);
972
973   return offset;
974 }
975
976
977 static const value_string dap_T_extraAttributes_vals[] = {
978   {   3, "allOperationalAttributes" },
979   {   4, "select" },
980   { 0, NULL }
981 };
982
983 static const ber_choice_t T_extraAttributes_choice[] = {
984   {   3, &hf_dap_allOperationalAttributes, BER_CLASS_CON, 3, 0, dissect_dap_NULL },
985   {   4, &hf_dap_extraSelect     , BER_CLASS_CON, 4, 0, dissect_dap_SET_SIZE_1_MAX_OF_AttributeType },
986   { 0, NULL, 0, 0, 0, NULL }
987 };
988
989 static int
990 dissect_dap_T_extraAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
991   offset = dissect_ber_choice(actx, tree, tvb, offset,
992                                  T_extraAttributes_choice, hf_index, ett_dap_T_extraAttributes,
993                                  NULL);
994
995   return offset;
996 }
997
998
999 static const ber_sequence_t SEQUENCE_OF_ContextAssertion_sequence_of[1] = {
1000   { &hf_dap_preference_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ContextAssertion },
1001 };
1002
1003 static int
1004 dissect_dap_SEQUENCE_OF_ContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1005   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1006                                       SEQUENCE_OF_ContextAssertion_sequence_of, hf_index, ett_dap_SEQUENCE_OF_ContextAssertion);
1007
1008   return offset;
1009 }
1010
1011
1012 static const ber_sequence_t SET_OF_ContextAssertion_set_of[1] = {
1013   { &hf_dap_all_item        , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ContextAssertion },
1014 };
1015
1016 static int
1017 dissect_dap_SET_OF_ContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1018   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1019                                  SET_OF_ContextAssertion_set_of, hf_index, ett_dap_SET_OF_ContextAssertion);
1020
1021   return offset;
1022 }
1023
1024
1025 static const value_string dap_T_contextAssertions_vals[] = {
1026   {   0, "preference" },
1027   {   1, "all" },
1028   { 0, NULL }
1029 };
1030
1031 static const ber_choice_t T_contextAssertions_choice[] = {
1032   {   0, &hf_dap_preference      , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_SEQUENCE_OF_ContextAssertion },
1033   {   1, &hf_dap_all             , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_SET_OF_ContextAssertion },
1034   { 0, NULL, 0, 0, 0, NULL }
1035 };
1036
1037 static int
1038 dissect_dap_T_contextAssertions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1039   offset = dissect_ber_choice(actx, tree, tvb, offset,
1040                                  T_contextAssertions_choice, hf_index, ett_dap_T_contextAssertions,
1041                                  NULL);
1042
1043   return offset;
1044 }
1045
1046
1047 static const ber_sequence_t TypeAndContextAssertion_sequence[] = {
1048   { &hf_dap_type            , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
1049   { &hf_dap_contextAssertions, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_T_contextAssertions },
1050   { NULL, 0, 0, 0, NULL }
1051 };
1052
1053 static int
1054 dissect_dap_TypeAndContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1055   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1056                                    TypeAndContextAssertion_sequence, hf_index, ett_dap_TypeAndContextAssertion);
1057
1058   return offset;
1059 }
1060
1061
1062 static const ber_sequence_t SET_SIZE_1_MAX_OF_TypeAndContextAssertion_set_of[1] = {
1063   { &hf_dap_selectedContexts_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_TypeAndContextAssertion },
1064 };
1065
1066 static int
1067 dissect_dap_SET_SIZE_1_MAX_OF_TypeAndContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1068   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1069                                  SET_SIZE_1_MAX_OF_TypeAndContextAssertion_set_of, hf_index, ett_dap_SET_SIZE_1_MAX_OF_TypeAndContextAssertion);
1070
1071   return offset;
1072 }
1073
1074
1075 const value_string dap_ContextSelection_vals[] = {
1076   {   0, "allContexts" },
1077   {   1, "selectedContexts" },
1078   { 0, NULL }
1079 };
1080
1081 static const ber_choice_t ContextSelection_choice[] = {
1082   {   0, &hf_dap_allContexts     , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_dap_NULL },
1083   {   1, &hf_dap_selectedContexts, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_SET_SIZE_1_MAX_OF_TypeAndContextAssertion },
1084   { 0, NULL, 0, 0, 0, NULL }
1085 };
1086
1087 int
1088 dissect_dap_ContextSelection(gboolean 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_choice(actx, tree, tvb, offset,
1090                                  ContextSelection_choice, hf_index, ett_dap_ContextSelection,
1091                                  NULL);
1092
1093   return offset;
1094 }
1095
1096
1097
1098 static int
1099 dissect_dap_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1100   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
1101
1102   return offset;
1103 }
1104
1105
1106 static const value_string dap_T_memberSelect_vals[] = {
1107   {   1, "contributingEntriesOnly" },
1108   {   2, "participatingEntriesOnly" },
1109   {   3, "compoundEntry" },
1110   { 0, NULL }
1111 };
1112
1113
1114 static int
1115 dissect_dap_T_memberSelect(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1116   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1117                                   NULL);
1118
1119   return offset;
1120 }
1121
1122
1123 static const ber_sequence_t T_familySelect_sequence_of[1] = {
1124   { &hf_dap_familySelect_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_dap_OBJECT_IDENTIFIER },
1125 };
1126
1127 static int
1128 dissect_dap_T_familySelect(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1129   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1130                                       T_familySelect_sequence_of, hf_index, ett_dap_T_familySelect);
1131
1132   return offset;
1133 }
1134
1135
1136 static const ber_sequence_t FamilyReturn_sequence[] = {
1137   { &hf_dap_memberSelect    , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_dap_T_memberSelect },
1138   { &hf_dap_familySelect    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_T_familySelect },
1139   { NULL, 0, 0, 0, NULL }
1140 };
1141
1142 int
1143 dissect_dap_FamilyReturn(gboolean 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_sequence(implicit_tag, actx, tree, tvb, offset,
1145                                    FamilyReturn_sequence, hf_index, ett_dap_FamilyReturn);
1146
1147   return offset;
1148 }
1149
1150
1151 static const ber_sequence_t EntryInformationSelection_set[] = {
1152   { &hf_dap_attributes      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_T_attributes },
1153   { &hf_dap_infoTypes       , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_T_infoTypes },
1154   { &hf_dap_extraAttributes , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_T_extraAttributes },
1155   { &hf_dap_contextSelection, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_ContextSelection },
1156   { &hf_dap_returnContexts  , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_BOOLEAN },
1157   { &hf_dap_familyReturn    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_FamilyReturn },
1158   { NULL, 0, 0, 0, NULL }
1159 };
1160
1161 static int
1162 dissect_dap_EntryInformationSelection(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1163   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1164                               EntryInformationSelection_set, hf_index, ett_dap_EntryInformationSelection);
1165
1166   return offset;
1167 }
1168
1169
1170 static const value_string dap_EntryInformationItem_vals[] = {
1171   {   0, "attributeType" },
1172   {   1, "attribute" },
1173   { 0, NULL }
1174 };
1175
1176 static const ber_choice_t EntryInformationItem_choice[] = {
1177   {   0, &hf_dap_attributeType   , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
1178   {   1, &hf_dap_attribute       , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
1179   { 0, NULL, 0, 0, 0, NULL }
1180 };
1181
1182 static int
1183 dissect_dap_EntryInformationItem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1184   offset = dissect_ber_choice(actx, tree, tvb, offset,
1185                                  EntryInformationItem_choice, hf_index, ett_dap_EntryInformationItem,
1186                                  NULL);
1187
1188   return offset;
1189 }
1190
1191
1192 static const ber_sequence_t T_entry_information_set_of[1] = {
1193   { &hf_dap_entry_information_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_EntryInformationItem },
1194 };
1195
1196 static int
1197 dissect_dap_T_entry_information(gboolean 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_set_of(implicit_tag, actx, tree, tvb, offset,
1199                                  T_entry_information_set_of, hf_index, ett_dap_T_entry_information);
1200
1201   return offset;
1202 }
1203
1204
1205 static const ber_sequence_t EntryInformation_sequence[] = {
1206   { &hf_dap_name            , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
1207   { &hf_dap_fromEntry       , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_BOOLEAN },
1208   { &hf_dap_entry_information, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_T_entry_information },
1209   { &hf_dap_incompleteEntry , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
1210   { &hf_dap_partialName     , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
1211   { &hf_dap_derivedEntry    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
1212   { NULL, 0, 0, 0, NULL }
1213 };
1214
1215 static int
1216 dissect_dap_EntryInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1217   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1218                                    EntryInformation_sequence, hf_index, ett_dap_EntryInformation);
1219
1220   return offset;
1221 }
1222
1223
1224 static const value_string dap_T_family_information_item_vals[] = {
1225   {   0, "attributeType" },
1226   {   1, "attribute" },
1227   { 0, NULL }
1228 };
1229
1230 static const ber_choice_t T_family_information_item_choice[] = {
1231   {   0, &hf_dap_attributeType   , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
1232   {   1, &hf_dap_attribute       , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
1233   { 0, NULL, 0, 0, 0, NULL }
1234 };
1235
1236 static int
1237 dissect_dap_T_family_information_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1238   offset = dissect_ber_choice(actx, tree, tvb, offset,
1239                                  T_family_information_item_choice, hf_index, ett_dap_T_family_information_item,
1240                                  NULL);
1241
1242   return offset;
1243 }
1244
1245
1246 static const ber_sequence_t FamilyInformation_sequence_of[1] = {
1247   { &hf_dap_family_information_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_T_family_information_item },
1248 };
1249
1250 static int
1251 dissect_dap_FamilyInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1252   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1253                                       FamilyInformation_sequence_of, hf_index, ett_dap_FamilyInformation);
1254
1255   return offset;
1256 }
1257
1258
1259 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_FamilyEntries_sequence_of[1] = {
1260   { &hf_dap_family_info_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_FamilyEntries },
1261 };
1262
1263 static int
1264 dissect_dap_SEQUENCE_SIZE_1_MAX_OF_FamilyEntries(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1265   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1266                                       SEQUENCE_SIZE_1_MAX_OF_FamilyEntries_sequence_of, hf_index, ett_dap_SEQUENCE_SIZE_1_MAX_OF_FamilyEntries);
1267
1268   return offset;
1269 }
1270
1271
1272 static const ber_sequence_t FamilyEntry_sequence[] = {
1273   { &hf_dap_rdn             , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_RelativeDistinguishedName },
1274   { &hf_dap_family_information, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_FamilyInformation },
1275   { &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 },
1276   { NULL, 0, 0, 0, NULL }
1277 };
1278
1279 static int
1280 dissect_dap_FamilyEntry(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1281   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1282                                    FamilyEntry_sequence, hf_index, ett_dap_FamilyEntry);
1283
1284   return offset;
1285 }
1286
1287
1288 static const ber_sequence_t SEQUENCE_OF_FamilyEntry_sequence_of[1] = {
1289   { &hf_dap_familyEntries_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_FamilyEntry },
1290 };
1291
1292 static int
1293 dissect_dap_SEQUENCE_OF_FamilyEntry(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1294   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1295                                       SEQUENCE_OF_FamilyEntry_sequence_of, hf_index, ett_dap_SEQUENCE_OF_FamilyEntry);
1296
1297   return offset;
1298 }
1299
1300
1301 static const ber_sequence_t FamilyEntries_sequence[] = {
1302   { &hf_dap_family_class    , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_dap_OBJECT_IDENTIFIER },
1303   { &hf_dap_familyEntries   , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_SEQUENCE_OF_FamilyEntry },
1304   { NULL, 0, 0, 0, NULL }
1305 };
1306
1307 static int
1308 dissect_dap_FamilyEntries(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1309   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1310                                    FamilyEntries_sequence, hf_index, ett_dap_FamilyEntries);
1311
1312   return offset;
1313 }
1314
1315
1316
1317 static int
1318 dissect_dap_T_initial(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1319         proto_item *it;
1320         it = proto_tree_add_item(tree, hf_index, tvb, offset, -1, FALSE);
1321         proto_item_append_text(it," XXX: Not yet implemented!");
1322
1323
1324   return offset;
1325 }
1326
1327
1328
1329 static int
1330 dissect_dap_T_any(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1331         /* XXX: not yet implemented */
1332
1333
1334   return offset;
1335 }
1336
1337
1338
1339 static int
1340 dissect_dap_T_final(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1341         /* XXX: not yet implemented */
1342
1343
1344   return offset;
1345 }
1346
1347
1348 static const value_string dap_T_strings_item_vals[] = {
1349   {   0, "initial" },
1350   {   1, "any" },
1351   {   2, "final" },
1352   {   3, "control" },
1353   { 0, NULL }
1354 };
1355
1356 static const ber_choice_t T_strings_item_choice[] = {
1357   {   0, &hf_dap_initial         , BER_CLASS_CON, 0, 0, dissect_dap_T_initial },
1358   {   1, &hf_dap_any             , BER_CLASS_CON, 1, 0, dissect_dap_T_any },
1359   {   2, &hf_dap_final           , BER_CLASS_CON, 2, 0, dissect_dap_T_final },
1360   {   3, &hf_dap_control         , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
1361   { 0, NULL, 0, 0, 0, NULL }
1362 };
1363
1364 static int
1365 dissect_dap_T_strings_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1366   offset = dissect_ber_choice(actx, tree, tvb, offset,
1367                                  T_strings_item_choice, hf_index, ett_dap_T_strings_item,
1368                                  NULL);
1369
1370   return offset;
1371 }
1372
1373
1374 static const ber_sequence_t T_strings_sequence_of[1] = {
1375   { &hf_dap_strings_item    , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_T_strings_item },
1376 };
1377
1378 static int
1379 dissect_dap_T_strings(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1380   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1381                                       T_strings_sequence_of, hf_index, ett_dap_T_strings);
1382
1383   return offset;
1384 }
1385
1386
1387 static const ber_sequence_t T_substrings_sequence[] = {
1388   { &hf_dap_sunstringType   , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_dap_OBJECT_IDENTIFIER },
1389   { &hf_dap_strings         , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_strings },
1390   { NULL, 0, 0, 0, NULL }
1391 };
1392
1393 static int
1394 dissect_dap_T_substrings(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1395   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1396                                    T_substrings_sequence, hf_index, ett_dap_T_substrings);
1397
1398   return offset;
1399 }
1400
1401
1402 static const ber_sequence_t T_matchingRule_set_of[1] = {
1403   { &hf_dap_matchingRule_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_dap_OBJECT_IDENTIFIER },
1404 };
1405
1406 static int
1407 dissect_dap_T_matchingRule(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1408   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1409                                  T_matchingRule_set_of, hf_index, ett_dap_T_matchingRule);
1410
1411   return offset;
1412 }
1413
1414
1415
1416 static int
1417 dissect_dap_T_matchValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1418         /* XXX: not yet implemented */
1419
1420
1421   return offset;
1422 }
1423
1424
1425 static const ber_sequence_t MatchingRuleAssertion_sequence[] = {
1426   { &hf_dap_matchingRule    , BER_CLASS_CON, 1, 0, dissect_dap_T_matchingRule },
1427   { &hf_dap_type            , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_AttributeType },
1428   { &hf_dap_matchValue      , BER_CLASS_CON, 3, 0, dissect_dap_T_matchValue },
1429   { &hf_dap_dnAttributes    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
1430   { NULL, 0, 0, 0, NULL }
1431 };
1432
1433 static int
1434 dissect_dap_MatchingRuleAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1435   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1436                                    MatchingRuleAssertion_sequence, hf_index, ett_dap_MatchingRuleAssertion);
1437
1438   return offset;
1439 }
1440
1441
1442 static const value_string dap_FilterItem_vals[] = {
1443   {   0, "equality" },
1444   {   1, "substrings" },
1445   {   2, "greaterOrEqual" },
1446   {   3, "lessOrEqual" },
1447   {   4, "present" },
1448   {   5, "approximateMatch" },
1449   {   6, "extensibleMatch" },
1450   {   7, "contextPresent" },
1451   { 0, NULL }
1452 };
1453
1454 static const ber_choice_t FilterItem_choice[] = {
1455   {   0, &hf_dap_equality        , BER_CLASS_CON, 0, 0, dissect_x509if_AttributeValueAssertion },
1456   {   1, &hf_dap_substrings      , BER_CLASS_CON, 1, 0, dissect_dap_T_substrings },
1457   {   2, &hf_dap_greaterOrEqual  , BER_CLASS_CON, 2, 0, dissect_x509if_AttributeValueAssertion },
1458   {   3, &hf_dap_lessOrEqual     , BER_CLASS_CON, 3, 0, dissect_x509if_AttributeValueAssertion },
1459   {   4, &hf_dap_present         , BER_CLASS_CON, 4, 0, dissect_x509if_AttributeType },
1460   {   5, &hf_dap_approximateMatch, BER_CLASS_CON, 5, 0, dissect_x509if_AttributeValueAssertion },
1461   {   6, &hf_dap_extensibleMatch , BER_CLASS_CON, 6, 0, dissect_dap_MatchingRuleAssertion },
1462   {   7, &hf_dap_contextPresent  , BER_CLASS_CON, 7, 0, dissect_x509if_AttributeTypeAssertion },
1463   { 0, NULL, 0, 0, 0, NULL }
1464 };
1465
1466 static int
1467 dissect_dap_FilterItem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1468   offset = dissect_ber_choice(actx, tree, tvb, offset,
1469                                  FilterItem_choice, hf_index, ett_dap_FilterItem,
1470                                  NULL);
1471
1472   return offset;
1473 }
1474
1475
1476 static const ber_sequence_t SetOfFilter_set_of[1] = {
1477   { &hf_dap_SetOfFilter_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_Filter },
1478 };
1479
1480 static int
1481 dissect_dap_SetOfFilter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1482   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1483                                  SetOfFilter_set_of, hf_index, ett_dap_SetOfFilter);
1484
1485   return offset;
1486 }
1487
1488
1489 const value_string dap_Filter_vals[] = {
1490   {   0, "item" },
1491   {   1, "and" },
1492   {   2, "or" },
1493   {   3, "not" },
1494   { 0, NULL }
1495 };
1496
1497 static const ber_choice_t Filter_choice[] = {
1498   {   0, &hf_dap_filter_item     , BER_CLASS_CON, 0, 0, dissect_dap_FilterItem },
1499   {   1, &hf_dap_and             , BER_CLASS_CON, 1, 0, dissect_dap_SetOfFilter },
1500   {   2, &hf_dap_or              , BER_CLASS_CON, 2, 0, dissect_dap_SetOfFilter },
1501   {   3, &hf_dap_not             , BER_CLASS_CON, 3, 0, dissect_dap_Filter },
1502   { 0, NULL, 0, 0, 0, NULL }
1503 };
1504
1505 int
1506 dissect_dap_Filter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1507   offset = dissect_ber_choice(actx, tree, tvb, offset,
1508                                  Filter_choice, hf_index, ett_dap_Filter,
1509                                  NULL);
1510
1511   return offset;
1512 }
1513
1514
1515 static const ber_sequence_t SortKey_sequence[] = {
1516   { &hf_dap_type            , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
1517   { &hf_dap_orderingRule    , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_OBJECT_IDENTIFIER },
1518   { NULL, 0, 0, 0, NULL }
1519 };
1520
1521 static int
1522 dissect_dap_SortKey(gboolean 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                                    SortKey_sequence, hf_index, ett_dap_SortKey);
1525
1526   return offset;
1527 }
1528
1529
1530 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_SortKey_sequence_of[1] = {
1531   { &hf_dap_sortKeys_item   , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_SortKey },
1532 };
1533
1534 static int
1535 dissect_dap_SEQUENCE_SIZE_1_MAX_OF_SortKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1536   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1537                                       SEQUENCE_SIZE_1_MAX_OF_SortKey_sequence_of, hf_index, ett_dap_SEQUENCE_SIZE_1_MAX_OF_SortKey);
1538
1539   return offset;
1540 }
1541
1542
1543 static const ber_sequence_t T_newRequest_sequence[] = {
1544   { &hf_dap_pageSize        , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_dap_INTEGER },
1545   { &hf_dap_sortKeys        , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_SortKey },
1546   { &hf_dap_reverse         , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
1547   { &hf_dap_unmerged        , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
1548   { NULL, 0, 0, 0, NULL }
1549 };
1550
1551 static int
1552 dissect_dap_T_newRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1553   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1554                                    T_newRequest_sequence, hf_index, ett_dap_T_newRequest);
1555
1556   return offset;
1557 }
1558
1559
1560
1561 static int
1562 dissect_dap_T_pagedResultsQueryReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1563         tvbuff_t *out_tvb;
1564         int     i;
1565         int     len;
1566
1567           offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1568                                        &out_tvb);
1569
1570
1571         if(out_tvb) {
1572                 len = tvb_length(out_tvb);
1573                 /* now see if we can add a string representation */
1574                 for(i=0; i<len; i++)
1575                         if(!g_ascii_isprint(tvb_get_guint8(out_tvb, i)))
1576                                 break;
1577         
1578                 if(i == len) {
1579                         if(actx->created_item) {
1580
1581                                 proto_item_append_text(actx->created_item," (");
1582                                 for(i=0; i<len; i++)
1583                                         proto_item_append_text(actx->created_item,"%c",tvb_get_guint8(out_tvb,i));
1584                                 proto_item_append_text(actx->created_item,")");
1585                         }
1586                 }
1587         }
1588         
1589
1590   return offset;
1591 }
1592
1593
1594 static const value_string dap_PagedResultsRequest_vals[] = {
1595   {   0, "newRequest" },
1596   {   1, "queryReference" },
1597   { 0, NULL }
1598 };
1599
1600 static const ber_choice_t PagedResultsRequest_choice[] = {
1601   {   0, &hf_dap_newRequest      , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_newRequest },
1602   {   1, &hf_dap_pagedResultsQueryReference, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_T_pagedResultsQueryReference },
1603   { 0, NULL, 0, 0, 0, NULL }
1604 };
1605
1606 static int
1607 dissect_dap_PagedResultsRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1608   offset = dissect_ber_choice(actx, tree, tvb, offset,
1609                                  PagedResultsRequest_choice, hf_index, ett_dap_PagedResultsRequest,
1610                                  NULL);
1611
1612   return offset;
1613 }
1614
1615
1616
1617 static int
1618 dissect_dap_UTCTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1619   offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index);
1620
1621   return offset;
1622 }
1623
1624
1625
1626 static int
1627 dissect_dap_GeneralizedTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1628   offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
1629
1630   return offset;
1631 }
1632
1633
1634 static const value_string dap_Time_vals[] = {
1635   {   0, "utcTime" },
1636   {   1, "generalizedTime" },
1637   { 0, NULL }
1638 };
1639
1640 static const ber_choice_t Time_choice[] = {
1641   {   0, &hf_dap_utcTime         , BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_dap_UTCTime },
1642   {   1, &hf_dap_generalizedTime , BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_dap_GeneralizedTime },
1643   { 0, NULL, 0, 0, 0, NULL }
1644 };
1645
1646 static int
1647 dissect_dap_Time(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1648   offset = dissect_ber_choice(actx, tree, tvb, offset,
1649                                  Time_choice, hf_index, ett_dap_Time,
1650                                  NULL);
1651
1652   return offset;
1653 }
1654
1655
1656
1657 static int
1658 dissect_dap_BIT_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1659   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1660                                     NULL, hf_index, -1,
1661                                     NULL);
1662
1663   return offset;
1664 }
1665
1666
1667 static const value_string dap_ProtectionRequest_vals[] = {
1668   {   0, "none" },
1669   {   1, "signed" },
1670   {   2, "encrypted" },
1671   {   3, "signed-encrypted" },
1672   { 0, NULL }
1673 };
1674
1675
1676 static int
1677 dissect_dap_ProtectionRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1678   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1679                                                 NULL);
1680
1681   return offset;
1682 }
1683
1684
1685 static const value_string dap_ErrorProtectionRequest_vals[] = {
1686   {   0, "none" },
1687   {   1, "signed" },
1688   {   2, "encrypted" },
1689   {   3, "signed-encrypted" },
1690   { 0, NULL }
1691 };
1692
1693
1694 static int
1695 dissect_dap_ErrorProtectionRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1696   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1697                                                 NULL);
1698
1699   return offset;
1700 }
1701
1702
1703 static const ber_sequence_t SecurityParameters_set[] = {
1704   { &hf_dap_certification_path, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509af_CertificationPath },
1705   { &hf_dap_distinguished_name, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
1706   { &hf_dap_time            , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_Time },
1707   { &hf_dap_random          , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
1708   { &hf_dap_target          , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_ProtectionRequest },
1709   { &hf_dap_response        , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
1710   { &hf_dap_operationCode   , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_ros_Code },
1711   { &hf_dap_attributeCertificationPath, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_x509af_AttributeCertificationPath },
1712   { &hf_dap_errorProtection , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_dap_ErrorProtectionRequest },
1713   { &hf_dap_errorCode       , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_ros_Code },
1714   { NULL, 0, 0, 0, NULL }
1715 };
1716
1717 int
1718 dissect_dap_SecurityParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1719   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1720                               SecurityParameters_set, hf_index, ett_dap_SecurityParameters);
1721
1722   return offset;
1723 }
1724
1725
1726 static const value_string dap_T_time1_vals[] = {
1727   {   0, "utc" },
1728   {   1, "gt" },
1729   { 0, NULL }
1730 };
1731
1732 static const ber_choice_t T_time1_choice[] = {
1733   {   0, &hf_dap_utc             , BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_dap_UTCTime },
1734   {   1, &hf_dap_gt              , BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_dap_GeneralizedTime },
1735   { 0, NULL, 0, 0, 0, NULL }
1736 };
1737
1738 static int
1739 dissect_dap_T_time1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1740   offset = dissect_ber_choice(actx, tree, tvb, offset,
1741                                  T_time1_choice, hf_index, ett_dap_T_time1,
1742                                  NULL);
1743
1744   return offset;
1745 }
1746
1747
1748 static const value_string dap_T_time2_vals[] = {
1749   {   0, "utc" },
1750   {   1, "gt" },
1751   { 0, NULL }
1752 };
1753
1754 static const ber_choice_t T_time2_choice[] = {
1755   {   0, &hf_dap_utc             , BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_dap_UTCTime },
1756   {   1, &hf_dap_gt              , BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_dap_GeneralizedTime },
1757   { 0, NULL, 0, 0, 0, NULL }
1758 };
1759
1760 static int
1761 dissect_dap_T_time2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1762   offset = dissect_ber_choice(actx, tree, tvb, offset,
1763                                  T_time2_choice, hf_index, ett_dap_T_time2,
1764                                  NULL);
1765
1766   return offset;
1767 }
1768
1769
1770 static const ber_sequence_t T_validity_set[] = {
1771   { &hf_dap_time1           , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dap_T_time1 },
1772   { &hf_dap_time2           , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_T_time2 },
1773   { &hf_dap_random1         , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
1774   { &hf_dap_random2         , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
1775   { NULL, 0, 0, 0, NULL }
1776 };
1777
1778 static int
1779 dissect_dap_T_validity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1780   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1781                               T_validity_set, hf_index, ett_dap_T_validity);
1782
1783   return offset;
1784 }
1785
1786
1787
1788 static int
1789 dissect_dap_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1790   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1791                                        NULL);
1792
1793   return offset;
1794 }
1795
1796
1797 static const ber_sequence_t T_protected_sequence[] = {
1798   { &hf_dap_protectedPassword, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_OCTET_STRING },
1799   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1800   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
1801   { NULL, 0, 0, 0, NULL }
1802 };
1803
1804 static int
1805 dissect_dap_T_protected(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1806   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1807                                    T_protected_sequence, hf_index, ett_dap_T_protected);
1808
1809   return offset;
1810 }
1811
1812
1813 static const value_string dap_T_password_vals[] = {
1814   {   0, "unprotected" },
1815   {   1, "protected" },
1816   { 0, NULL }
1817 };
1818
1819 static const ber_choice_t T_password_choice[] = {
1820   {   0, &hf_dap_unprotected     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_OCTET_STRING },
1821   {   1, &hf_dap_protected       , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_protected },
1822   { 0, NULL, 0, 0, 0, NULL }
1823 };
1824
1825 static int
1826 dissect_dap_T_password(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1827   offset = dissect_ber_choice(actx, tree, tvb, offset,
1828                                  T_password_choice, hf_index, ett_dap_T_password,
1829                                  NULL);
1830
1831   return offset;
1832 }
1833
1834
1835 static const ber_sequence_t SimpleCredentials_sequence[] = {
1836   { &hf_dap_distinguished_name, BER_CLASS_CON, 0, 0, dissect_x509if_DistinguishedName },
1837   { &hf_dap_validity        , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_T_validity },
1838   { &hf_dap_password        , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_T_password },
1839   { NULL, 0, 0, 0, NULL }
1840 };
1841
1842 static int
1843 dissect_dap_SimpleCredentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1844
1845           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1846                                    SimpleCredentials_sequence, hf_index, ett_dap_SimpleCredentials);
1847
1848
1849         if(check_col(actx->pinfo->cinfo, COL_INFO))     
1850                 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", x509if_get_last_dn());
1851
1852
1853         
1854         
1855
1856   return offset;
1857 }
1858
1859
1860 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier_sequence_of[1] = {
1861   { &hf_dap_bindIntAlgorithm_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1862 };
1863
1864 static int
1865 dissect_dap_SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1866   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1867                                       SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier_sequence_of, hf_index, ett_dap_SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier);
1868
1869   return offset;
1870 }
1871
1872
1873
1874 static int
1875 dissect_dap_BindKeyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1876   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1877                                     NULL, hf_index, -1,
1878                                     NULL);
1879
1880   return offset;
1881 }
1882
1883
1884 static const ber_sequence_t TokenData_sequence[] = {
1885   { &hf_dap_algorithm       , BER_CLASS_CON, 0, 0, dissect_x509af_AlgorithmIdentifier },
1886   { &hf_dap_distinguished_name, BER_CLASS_CON, 1, 0, dissect_x509if_DistinguishedName },
1887   { &hf_dap_utctime         , BER_CLASS_CON, 2, 0, dissect_dap_UTCTime },
1888   { &hf_dap_random          , BER_CLASS_CON, 3, 0, dissect_dap_BIT_STRING },
1889   { &hf_dap_response        , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
1890   { &hf_dap_bindIntAlgorithm, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier },
1891   { &hf_dap_bindIntKeyInfo  , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_dap_BindKeyInfo },
1892   { &hf_dap_bindConfAlgorithm, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier },
1893   { &hf_dap_bindConfKeyInfo , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_dap_BindKeyInfo },
1894   { NULL, 0, 0, 0, NULL }
1895 };
1896
1897 static int
1898 dissect_dap_TokenData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1899   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1900                                    TokenData_sequence, hf_index, ett_dap_TokenData);
1901
1902   return offset;
1903 }
1904
1905
1906 static const ber_sequence_t Token_sequence[] = {
1907   { &hf_dap_token_data      , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_TokenData },
1908   { &hf_dap_algorithm_identifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1909   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
1910   { NULL, 0, 0, 0, NULL }
1911 };
1912
1913 static int
1914 dissect_dap_Token(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1915   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1916                                    Token_sequence, hf_index, ett_dap_Token);
1917
1918   return offset;
1919 }
1920
1921
1922 static const ber_sequence_t StrongCredentials_set[] = {
1923   { &hf_dap_certification_path, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509af_CertificationPath },
1924   { &hf_dap_bind_token      , BER_CLASS_CON, 1, 0, dissect_dap_Token },
1925   { &hf_dap_distinguished_name, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
1926   { &hf_dap_attributeCertificationPath, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509af_AttributeCertificationPath },
1927   { NULL, 0, 0, 0, NULL }
1928 };
1929
1930 static int
1931 dissect_dap_StrongCredentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1932   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1933                               StrongCredentials_set, hf_index, ett_dap_StrongCredentials);
1934
1935   return offset;
1936 }
1937
1938
1939
1940 static int
1941 dissect_dap_EXTERNAL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1942   offset = dissect_ber_external_type(implicit_tag, tree, tvb, offset, actx, hf_index, NULL);
1943
1944   return offset;
1945 }
1946
1947
1948
1949 static int
1950 dissect_dap_T_req(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1951         /* XXX: not yet implemented */
1952
1953
1954   return offset;
1955 }
1956
1957
1958
1959 static int
1960 dissect_dap_T_rep(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1961         /* XXX: not yet implemented */
1962
1963
1964   return offset;
1965 }
1966
1967
1968 static const value_string dap_SpkmCredentials_vals[] = {
1969   {   0, "req" },
1970   {   1, "rep" },
1971   { 0, NULL }
1972 };
1973
1974 static const ber_choice_t SpkmCredentials_choice[] = {
1975   {   0, &hf_dap_req             , BER_CLASS_CON, 0, 0, dissect_dap_T_req },
1976   {   1, &hf_dap_rep             , BER_CLASS_CON, 1, 0, dissect_dap_T_rep },
1977   { 0, NULL, 0, 0, 0, NULL }
1978 };
1979
1980 static int
1981 dissect_dap_SpkmCredentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1982   offset = dissect_ber_choice(actx, tree, tvb, offset,
1983                                  SpkmCredentials_choice, hf_index, ett_dap_SpkmCredentials,
1984                                  NULL);
1985
1986   return offset;
1987 }
1988
1989
1990 static const value_string dap_Credentials_vals[] = {
1991   {   0, "simple" },
1992   {   1, "strong" },
1993   {   2, "externalProcedure" },
1994   {   3, "spkm" },
1995   { 0, NULL }
1996 };
1997
1998 static const ber_choice_t Credentials_choice[] = {
1999   {   0, &hf_dap_simple          , BER_CLASS_CON, 0, 0, dissect_dap_SimpleCredentials },
2000   {   1, &hf_dap_strong          , BER_CLASS_CON, 1, 0, dissect_dap_StrongCredentials },
2001   {   2, &hf_dap_externalProcedure, BER_CLASS_CON, 2, 0, dissect_dap_EXTERNAL },
2002   {   3, &hf_dap_spkm            , BER_CLASS_CON, 3, 0, dissect_dap_SpkmCredentials },
2003   { 0, NULL, 0, 0, 0, NULL }
2004 };
2005
2006 static int
2007 dissect_dap_Credentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2008   offset = dissect_ber_choice(actx, tree, tvb, offset,
2009                                  Credentials_choice, hf_index, ett_dap_Credentials,
2010                                  NULL);
2011
2012   return offset;
2013 }
2014
2015
2016 static const asn_namedbit Versions_bits[] = {
2017   {  0, &hf_dap_Versions_v1, -1, -1, "v1", NULL },
2018   {  1, &hf_dap_Versions_v2, -1, -1, "v2", NULL },
2019   { 0, NULL, 0, 0, NULL, NULL }
2020 };
2021
2022 static int
2023 dissect_dap_Versions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2024   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2025                                     Versions_bits, hf_index, ett_dap_Versions,
2026                                     NULL);
2027
2028   return offset;
2029 }
2030
2031
2032 static const ber_sequence_t DirectoryBindArgument_set[] = {
2033   { &hf_dap_credentials     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_Credentials },
2034   { &hf_dap_versions        , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_Versions },
2035   { NULL, 0, 0, 0, NULL }
2036 };
2037
2038 int
2039 dissect_dap_DirectoryBindArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2040
2041         guint32 len;
2042
2043         /* check and see if this is an empty set */
2044         dissect_ber_length(actx->pinfo, tree, tvb, offset+1, &len, NULL);
2045
2046         if(len == 0) {
2047                 /* its an empty set - i.e anonymous  (assuming version is DEFAULTed) */
2048                 proto_tree_add_text(tree, tvb, offset, -1,"Anonymous");
2049
2050                 if(check_col(actx->pinfo->cinfo, COL_INFO))
2051                         col_append_str(actx->pinfo->cinfo, COL_INFO, " anonymous");
2052
2053         }
2054         /* do the default thing */
2055
2056           offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2057                               DirectoryBindArgument_set, hf_index, ett_dap_DirectoryBindArgument);
2058         
2059
2060
2061   return offset;
2062 }
2063
2064
2065
2066 static int
2067 dissect_dap_DirectoryBindResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2068   offset = dissect_dap_DirectoryBindArgument(implicit_tag, tvb, offset, actx, tree, hf_index);
2069
2070   return offset;
2071 }
2072
2073
2074 static const value_string dap_ServiceProblem_vals[] = {
2075   {   1, "busy" },
2076   {   2, "unavailable" },
2077   {   3, "unwillingToPerform" },
2078   {   4, "chainingRequired" },
2079   {   5, "unableToProceed" },
2080   {   6, "invalidReference" },
2081   {   7, "timeLimitExceeded" },
2082   {   8, "administrativeLimitExceeded" },
2083   {   9, "loopDetected" },
2084   {  10, "unavailableCriticalExtension" },
2085   {  11, "outOfScope" },
2086   {  12, "ditError" },
2087   {  13, "invalidQueryReference" },
2088   {  14, "requestedServiceNotAvailable" },
2089   {  15, "relaxationNotSupported" },
2090   {  16, "unsupportedMatchingUse" },
2091   { 0, NULL }
2092 };
2093
2094
2095 static int
2096 dissect_dap_ServiceProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2097   guint32 problem;
2098
2099     offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2100                                                 &problem);
2101
2102
2103   if (check_col(actx->pinfo->cinfo, COL_INFO)) {
2104         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", val_to_str(problem, dap_ServiceProblem_vals, "ServiceProblem(%d)"));
2105   }
2106
2107
2108   return offset;
2109 }
2110
2111
2112 static const value_string dap_SecurityProblem_vals[] = {
2113   {   1, "inappropriateAuthentication" },
2114   {   2, "invalidCredentials" },
2115   {   3, "insufficientAccessRights" },
2116   {   4, "invalidSignature" },
2117   {   5, "protectionRequired" },
2118   {   6, "noInformation" },
2119   {   7, "blockedCredentials" },
2120   {   8, "invalidQOPMatch" },
2121   {   9, "spkmError" },
2122   { 0, NULL }
2123 };
2124
2125
2126 static int
2127 dissect_dap_SecurityProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2128   guint32 problem;
2129
2130     offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2131                                                 &problem);
2132
2133
2134   if (check_col(actx->pinfo->cinfo, COL_INFO)) {
2135         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", val_to_str(problem, dap_SecurityProblem_vals, "SecurityProblem(%d)"));
2136   }
2137
2138
2139   return offset;
2140 }
2141
2142
2143 static const value_string dap_T_error_vals[] = {
2144   {   1, "serviceError" },
2145   {   2, "securityError" },
2146   { 0, NULL }
2147 };
2148
2149 static const ber_choice_t T_error_choice[] = {
2150   {   1, &hf_dap_serviceProblem  , BER_CLASS_CON, 1, 0, dissect_dap_ServiceProblem },
2151   {   2, &hf_dap_securityProblem , BER_CLASS_CON, 2, 0, dissect_dap_SecurityProblem },
2152   { 0, NULL, 0, 0, 0, NULL }
2153 };
2154
2155 static int
2156 dissect_dap_T_error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2157   offset = dissect_ber_choice(actx, tree, tvb, offset,
2158                                  T_error_choice, hf_index, ett_dap_T_error,
2159                                  NULL);
2160
2161   return offset;
2162 }
2163
2164
2165 static const ber_sequence_t DirectoryBindErrorData_set[] = {
2166   { &hf_dap_versions        , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dap_Versions },
2167   { &hf_dap_error           , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_T_error },
2168   { NULL, 0, 0, 0, NULL }
2169 };
2170
2171 static int
2172 dissect_dap_DirectoryBindErrorData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2173   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2174                               DirectoryBindErrorData_set, hf_index, ett_dap_DirectoryBindErrorData);
2175
2176   return offset;
2177 }
2178
2179
2180 static const ber_sequence_t T_signedDirectoryBindError_sequence[] = {
2181   { &hf_dap_directoryBindError, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_DirectoryBindErrorData },
2182   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
2183   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
2184   { NULL, 0, 0, 0, NULL }
2185 };
2186
2187 static int
2188 dissect_dap_T_signedDirectoryBindError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2189   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2190                                    T_signedDirectoryBindError_sequence, hf_index, ett_dap_T_signedDirectoryBindError);
2191
2192   return offset;
2193 }
2194
2195
2196 const value_string dap_DirectoryBindError_vals[] = {
2197   {   0, "unsignedDirectoryBindError" },
2198   {   1, "signedDirectoryBindError" },
2199   { 0, NULL }
2200 };
2201
2202 static const ber_choice_t DirectoryBindError_choice[] = {
2203   {   0, &hf_dap_unsignedDirectoryBindError, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_DirectoryBindErrorData },
2204   {   1, &hf_dap_signedDirectoryBindError, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedDirectoryBindError },
2205   { 0, NULL, 0, 0, 0, NULL }
2206 };
2207
2208 int
2209 dissect_dap_DirectoryBindError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2210   offset = dissect_ber_choice(actx, tree, tvb, offset,
2211                                  DirectoryBindError_choice, hf_index, ett_dap_DirectoryBindError,
2212                                  NULL);
2213
2214   return offset;
2215 }
2216
2217
2218 static const ber_sequence_t ReadArgumentData_set[] = {
2219   { &hf_dap_object          , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
2220   { &hf_dap_selection       , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_EntryInformationSelection },
2221   { &hf_dap_modifyRightsRequest, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2222   { &hf_dap_serviceControls , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControls },
2223   { &hf_dap_securityParameters, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
2224   { &hf_dap_requestor       , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
2225   { &hf_dap_operationProgress, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dsp_OperationProgress },
2226   { &hf_dap_aliasedRDNs     , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
2227   { &hf_dap_criticalExtensions, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
2228   { &hf_dap_referenceType   , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_dsp_ReferenceType },
2229   { &hf_dap_entryOnly       , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2230   { &hf_dap_nameResolveOnMaster, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2231   { &hf_dap_operationContexts, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_ContextSelection },
2232   { &hf_dap_familyGrouping  , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
2233   { NULL, 0, 0, 0, NULL }
2234 };
2235
2236 static int
2237 dissect_dap_ReadArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2238   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2239                               ReadArgumentData_set, hf_index, ett_dap_ReadArgumentData);
2240
2241   return offset;
2242 }
2243
2244
2245 static const ber_sequence_t T_signedReadArgument_sequence[] = {
2246   { &hf_dap_readArgument    , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ReadArgumentData },
2247   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
2248   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
2249   { NULL, 0, 0, 0, NULL }
2250 };
2251
2252 static int
2253 dissect_dap_T_signedReadArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2254   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2255                                    T_signedReadArgument_sequence, hf_index, ett_dap_T_signedReadArgument);
2256
2257   return offset;
2258 }
2259
2260
2261 const value_string dap_ReadArgument_vals[] = {
2262   {   0, "unsignedReadArgument" },
2263   {   1, "signedReadArgument" },
2264   { 0, NULL }
2265 };
2266
2267 static const ber_choice_t ReadArgument_choice[] = {
2268   {   0, &hf_dap_unsignedReadArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ReadArgumentData },
2269   {   1, &hf_dap_signedReadArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedReadArgument },
2270   { 0, NULL, 0, 0, 0, NULL }
2271 };
2272
2273 int
2274 dissect_dap_ReadArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2275   offset = dissect_ber_choice(actx, tree, tvb, offset,
2276                                  ReadArgument_choice, hf_index, ett_dap_ReadArgument,
2277                                  NULL);
2278
2279   return offset;
2280 }
2281
2282
2283 static const value_string dap_T_item_vals[] = {
2284   {   0, "entry" },
2285   {   1, "attribute" },
2286   {   2, "value" },
2287   { 0, NULL }
2288 };
2289
2290 static const ber_choice_t T_item_choice[] = {
2291   {   0, &hf_dap_item_entry      , BER_CLASS_CON, 0, 0, dissect_dap_NULL },
2292   {   1, &hf_dap_attribute_type  , BER_CLASS_CON, 1, 0, dissect_x509if_AttributeType },
2293   {   2, &hf_dap_value_assertion , BER_CLASS_CON, 2, 0, dissect_x509if_AttributeValueAssertion },
2294   { 0, NULL, 0, 0, 0, NULL }
2295 };
2296
2297 static int
2298 dissect_dap_T_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2299   offset = dissect_ber_choice(actx, tree, tvb, offset,
2300                                  T_item_choice, hf_index, ett_dap_T_item,
2301                                  NULL);
2302
2303   return offset;
2304 }
2305
2306
2307 static const asn_namedbit T_permission_bits[] = {
2308   {  0, &hf_dap_T_permission_add, -1, -1, "add", NULL },
2309   {  1, &hf_dap_T_permission_remove, -1, -1, "remove", NULL },
2310   {  2, &hf_dap_T_permission_rename, -1, -1, "rename", NULL },
2311   {  3, &hf_dap_T_permission_move, -1, -1, "move", NULL },
2312   { 0, NULL, 0, 0, NULL, NULL }
2313 };
2314
2315 static int
2316 dissect_dap_T_permission(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2317   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2318                                     T_permission_bits, hf_index, ett_dap_T_permission,
2319                                     NULL);
2320
2321   return offset;
2322 }
2323
2324
2325 static const ber_sequence_t ModifyRights_item_sequence[] = {
2326   { &hf_dap_item            , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_T_item },
2327   { &hf_dap_permission      , BER_CLASS_CON, 3, 0, dissect_dap_T_permission },
2328   { NULL, 0, 0, 0, NULL }
2329 };
2330
2331 static int
2332 dissect_dap_ModifyRights_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2333   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2334                                    ModifyRights_item_sequence, hf_index, ett_dap_ModifyRights_item);
2335
2336   return offset;
2337 }
2338
2339
2340 static const ber_sequence_t ModifyRights_set_of[1] = {
2341   { &hf_dap_ModifyRights_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_ModifyRights_item },
2342 };
2343
2344 static int
2345 dissect_dap_ModifyRights(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2346   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2347                                  ModifyRights_set_of, hf_index, ett_dap_ModifyRights);
2348
2349   return offset;
2350 }
2351
2352
2353 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_Attribute_sequence_of[1] = {
2354   { &hf_dap_notification_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
2355 };
2356
2357 static int
2358 dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2359   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2360                                       SEQUENCE_SIZE_1_MAX_OF_Attribute_sequence_of, hf_index, ett_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute);
2361
2362   return offset;
2363 }
2364
2365
2366 static const ber_sequence_t ReadResultData_set[] = {
2367   { &hf_dap_entry           , BER_CLASS_CON, 0, 0, dissect_dap_EntryInformation },
2368   { &hf_dap_modifyRights    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_ModifyRights },
2369   { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
2370   { &hf_dap_performer       , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
2371   { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2372   { &hf_dap_notification    , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
2373   { NULL, 0, 0, 0, NULL }
2374 };
2375
2376 static int
2377 dissect_dap_ReadResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2378   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2379                               ReadResultData_set, hf_index, ett_dap_ReadResultData);
2380
2381   return offset;
2382 }
2383
2384
2385 static const ber_sequence_t T_signedReadResult_sequence[] = {
2386   { &hf_dap_readResult      , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ReadResultData },
2387   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
2388   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
2389   { NULL, 0, 0, 0, NULL }
2390 };
2391
2392 static int
2393 dissect_dap_T_signedReadResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2394   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2395                                    T_signedReadResult_sequence, hf_index, ett_dap_T_signedReadResult);
2396
2397   return offset;
2398 }
2399
2400
2401 const value_string dap_ReadResult_vals[] = {
2402   {   0, "unsignedReadResult" },
2403   {   1, "signedReadResult" },
2404   { 0, NULL }
2405 };
2406
2407 static const ber_choice_t ReadResult_choice[] = {
2408   {   0, &hf_dap_unsignedReadResult, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ReadResultData },
2409   {   1, &hf_dap_signedReadResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedReadResult },
2410   { 0, NULL, 0, 0, 0, NULL }
2411 };
2412
2413 int
2414 dissect_dap_ReadResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2415   offset = dissect_ber_choice(actx, tree, tvb, offset,
2416                                  ReadResult_choice, hf_index, ett_dap_ReadResult,
2417                                  NULL);
2418
2419   return offset;
2420 }
2421
2422
2423 static const ber_sequence_t CompareArgumentData_set[] = {
2424   { &hf_dap_object          , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
2425   { &hf_dap_purported       , BER_CLASS_CON, 1, 0, dissect_x509if_AttributeValueAssertion },
2426   { &hf_dap_serviceControls , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControls },
2427   { &hf_dap_securityParameters, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
2428   { &hf_dap_requestor       , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
2429   { &hf_dap_operationProgress, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dsp_OperationProgress },
2430   { &hf_dap_aliasedRDNs     , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
2431   { &hf_dap_criticalExtensions, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
2432   { &hf_dap_referenceType   , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_dsp_ReferenceType },
2433   { &hf_dap_entryOnly       , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2434   { &hf_dap_nameResolveOnMaster, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2435   { &hf_dap_operationContexts, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_ContextSelection },
2436   { &hf_dap_familyGrouping  , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
2437   { NULL, 0, 0, 0, NULL }
2438 };
2439
2440 static int
2441 dissect_dap_CompareArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2442   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2443                               CompareArgumentData_set, hf_index, ett_dap_CompareArgumentData);
2444
2445   return offset;
2446 }
2447
2448
2449 static const ber_sequence_t T_signedCompareArgument_sequence[] = {
2450   { &hf_dap_compareArgument , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_CompareArgumentData },
2451   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
2452   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
2453   { NULL, 0, 0, 0, NULL }
2454 };
2455
2456 static int
2457 dissect_dap_T_signedCompareArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2458   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2459                                    T_signedCompareArgument_sequence, hf_index, ett_dap_T_signedCompareArgument);
2460
2461   return offset;
2462 }
2463
2464
2465 const value_string dap_CompareArgument_vals[] = {
2466   {   0, "unsignedCompareArgument" },
2467   {   1, "signedCompareArgument" },
2468   { 0, NULL }
2469 };
2470
2471 static const ber_choice_t CompareArgument_choice[] = {
2472   {   0, &hf_dap_unsignedCompareArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_CompareArgumentData },
2473   {   1, &hf_dap_signedCompareArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedCompareArgument },
2474   { 0, NULL, 0, 0, 0, NULL }
2475 };
2476
2477 int
2478 dissect_dap_CompareArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2479   offset = dissect_ber_choice(actx, tree, tvb, offset,
2480                                  CompareArgument_choice, hf_index, ett_dap_CompareArgument,
2481                                  NULL);
2482
2483   return offset;
2484 }
2485
2486
2487 static const ber_sequence_t CompareResultData_set[] = {
2488   { &hf_dap_name            , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
2489   { &hf_dap_matched         , BER_CLASS_CON, 0, 0, dissect_dap_BOOLEAN },
2490   { &hf_dap_fromEntry       , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2491   { &hf_dap_matchedSubtype  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_AttributeType },
2492   { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
2493   { &hf_dap_performer       , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
2494   { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2495   { &hf_dap_notification    , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
2496   { NULL, 0, 0, 0, NULL }
2497 };
2498
2499 static int
2500 dissect_dap_CompareResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2501   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2502                               CompareResultData_set, hf_index, ett_dap_CompareResultData);
2503
2504   return offset;
2505 }
2506
2507
2508 static const ber_sequence_t T_signedCompareResult_sequence[] = {
2509   { &hf_dap_compareResult   , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_CompareResultData },
2510   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
2511   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
2512   { NULL, 0, 0, 0, NULL }
2513 };
2514
2515 static int
2516 dissect_dap_T_signedCompareResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2517   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2518                                    T_signedCompareResult_sequence, hf_index, ett_dap_T_signedCompareResult);
2519
2520   return offset;
2521 }
2522
2523
2524 const value_string dap_CompareResult_vals[] = {
2525   {   0, "unsignedCompareResult" },
2526   {   1, "signedCompareResult" },
2527   { 0, NULL }
2528 };
2529
2530 static const ber_choice_t CompareResult_choice[] = {
2531   {   0, &hf_dap_unsignedCompareResult, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_CompareResultData },
2532   {   1, &hf_dap_signedCompareResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedCompareResult },
2533   { 0, NULL, 0, 0, 0, NULL }
2534 };
2535
2536 int
2537 dissect_dap_CompareResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2538   offset = dissect_ber_choice(actx, tree, tvb, offset,
2539                                  CompareResult_choice, hf_index, ett_dap_CompareResult,
2540                                  NULL);
2541
2542   return offset;
2543 }
2544
2545
2546 static const ber_sequence_t AbandonArgumentData_sequence[] = {
2547   { &hf_dap_invokeID        , BER_CLASS_CON, 0, 0, dissect_ros_InvokeId },
2548   { NULL, 0, 0, 0, NULL }
2549 };
2550
2551 static int
2552 dissect_dap_AbandonArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2553   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2554                                    AbandonArgumentData_sequence, hf_index, ett_dap_AbandonArgumentData);
2555
2556   return offset;
2557 }
2558
2559
2560 static const ber_sequence_t T_signedAbandonArgument_sequence[] = {
2561   { &hf_dap_abandonArgument , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_AbandonArgumentData },
2562   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
2563   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
2564   { NULL, 0, 0, 0, NULL }
2565 };
2566
2567 static int
2568 dissect_dap_T_signedAbandonArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2569   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2570                                    T_signedAbandonArgument_sequence, hf_index, ett_dap_T_signedAbandonArgument);
2571
2572   return offset;
2573 }
2574
2575
2576 const value_string dap_AbandonArgument_vals[] = {
2577   {   0, "unsignedAbandonArgument" },
2578   {   1, "signedAbandonArgument" },
2579   { 0, NULL }
2580 };
2581
2582 static const ber_choice_t AbandonArgument_choice[] = {
2583   {   0, &hf_dap_unsignedAbandonArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_AbandonArgumentData },
2584   {   1, &hf_dap_signedAbandonArgument, BER_CLASS_CON, 0, 0, dissect_dap_T_signedAbandonArgument },
2585   { 0, NULL, 0, 0, 0, NULL }
2586 };
2587
2588 int
2589 dissect_dap_AbandonArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2590   offset = dissect_ber_choice(actx, tree, tvb, offset,
2591                                  AbandonArgument_choice, hf_index, ett_dap_AbandonArgument,
2592                                  NULL);
2593
2594   return offset;
2595 }
2596
2597
2598 static const ber_sequence_t AbandonResultData_sequence[] = {
2599   { &hf_dap_invokeID        , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ros_InvokeId },
2600   { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
2601   { &hf_dap_performer       , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
2602   { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2603   { &hf_dap_notification    , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
2604   { NULL, 0, 0, 0, NULL }
2605 };
2606
2607 static int
2608 dissect_dap_AbandonResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2609   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2610                                    AbandonResultData_sequence, hf_index, ett_dap_AbandonResultData);
2611
2612   return offset;
2613 }
2614
2615
2616 static const ber_sequence_t T_signedAbandonResult_sequence[] = {
2617   { &hf_dap_abandonResult   , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_AbandonResultData },
2618   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
2619   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
2620   { NULL, 0, 0, 0, NULL }
2621 };
2622
2623 static int
2624 dissect_dap_T_signedAbandonResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2625   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2626                                    T_signedAbandonResult_sequence, hf_index, ett_dap_T_signedAbandonResult);
2627
2628   return offset;
2629 }
2630
2631
2632 static const value_string dap_AbandonInformation_vals[] = {
2633   {   0, "unsignedAbandonResult" },
2634   {   1, "signedAbandonResult" },
2635   { 0, NULL }
2636 };
2637
2638 static const ber_choice_t AbandonInformation_choice[] = {
2639   {   0, &hf_dap_unsignedAbandonResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_AbandonResultData },
2640   {   1, &hf_dap_signedAbandonResult, BER_CLASS_CON, 0, 0, dissect_dap_T_signedAbandonResult },
2641   { 0, NULL, 0, 0, 0, NULL }
2642 };
2643
2644 static int
2645 dissect_dap_AbandonInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2646   offset = dissect_ber_choice(actx, tree, tvb, offset,
2647                                  AbandonInformation_choice, hf_index, ett_dap_AbandonInformation,
2648                                  NULL);
2649
2650   return offset;
2651 }
2652
2653
2654 const value_string dap_AbandonResult_vals[] = {
2655   {   0, "null" },
2656   {   1, "information" },
2657   { 0, NULL }
2658 };
2659
2660 static const ber_choice_t AbandonResult_choice[] = {
2661   {   0, &hf_dap_null            , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_dap_NULL },
2662   {   1, &hf_dap_abandon_information, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_dap_AbandonInformation },
2663   { 0, NULL, 0, 0, 0, NULL }
2664 };
2665
2666 int
2667 dissect_dap_AbandonResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2668   offset = dissect_ber_choice(actx, tree, tvb, offset,
2669                                  AbandonResult_choice, hf_index, ett_dap_AbandonResult,
2670                                  NULL);
2671
2672   return offset;
2673 }
2674
2675
2676 static const ber_sequence_t ListArgumentData_set[] = {
2677   { &hf_dap_object          , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
2678   { &hf_dap_pagedResults    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_PagedResultsRequest },
2679   { &hf_dap_listFamily      , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2680   { &hf_dap_serviceControls , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControls },
2681   { &hf_dap_securityParameters, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
2682   { &hf_dap_requestor       , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
2683   { &hf_dap_operationProgress, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dsp_OperationProgress },
2684   { &hf_dap_aliasedRDNs     , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
2685   { &hf_dap_criticalExtensions, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
2686   { &hf_dap_referenceType   , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_dsp_ReferenceType },
2687   { &hf_dap_entryOnly       , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2688   { &hf_dap_nameResolveOnMaster, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2689   { &hf_dap_operationContexts, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_ContextSelection },
2690   { &hf_dap_familyGrouping  , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
2691   { NULL, 0, 0, 0, NULL }
2692 };
2693
2694 static int
2695 dissect_dap_ListArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2696   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2697                               ListArgumentData_set, hf_index, ett_dap_ListArgumentData);
2698
2699   return offset;
2700 }
2701
2702
2703 static const ber_sequence_t T_signedListArgument_sequence[] = {
2704   { &hf_dap_listArgument    , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ListArgumentData },
2705   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
2706   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
2707   { NULL, 0, 0, 0, NULL }
2708 };
2709
2710 static int
2711 dissect_dap_T_signedListArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2712   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2713                                    T_signedListArgument_sequence, hf_index, ett_dap_T_signedListArgument);
2714
2715   return offset;
2716 }
2717
2718
2719 const value_string dap_ListArgument_vals[] = {
2720   {   0, "unsignedListArgument" },
2721   {   1, "signedListArgument" },
2722   { 0, NULL }
2723 };
2724
2725 static const ber_choice_t ListArgument_choice[] = {
2726   {   0, &hf_dap_unsignedListArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ListArgumentData },
2727   {   1, &hf_dap_signedListArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedListArgument },
2728   { 0, NULL, 0, 0, 0, NULL }
2729 };
2730
2731 int
2732 dissect_dap_ListArgument(gboolean 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_choice(actx, tree, tvb, offset,
2734                                  ListArgument_choice, hf_index, ett_dap_ListArgument,
2735                                  NULL);
2736
2737   return offset;
2738 }
2739
2740
2741 static const ber_sequence_t T_subordinates_item_sequence[] = {
2742   { &hf_dap_rdn             , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_RelativeDistinguishedName },
2743   { &hf_dap_aliasEntry      , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2744   { &hf_dap_fromEntry       , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2745   { NULL, 0, 0, 0, NULL }
2746 };
2747
2748 static int
2749 dissect_dap_T_subordinates_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2750   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2751                                    T_subordinates_item_sequence, hf_index, ett_dap_T_subordinates_item);
2752
2753   return offset;
2754 }
2755
2756
2757 static const ber_sequence_t T_subordinates_set_of[1] = {
2758   { &hf_dap_subordinates_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_subordinates_item },
2759 };
2760
2761 static int
2762 dissect_dap_T_subordinates(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2763   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2764                                  T_subordinates_set_of, hf_index, ett_dap_T_subordinates);
2765
2766   return offset;
2767 }
2768
2769
2770 static const value_string dap_LimitProblem_vals[] = {
2771   {   0, "timeLimitExceeded" },
2772   {   1, "sizeLimitExceeded" },
2773   {   2, "administrativeLimitExceeded" },
2774   { 0, NULL }
2775 };
2776
2777
2778 static int
2779 dissect_dap_LimitProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2780   guint32 problem;
2781
2782     offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2783                                                 &problem);
2784
2785
2786   if (check_col(actx->pinfo->cinfo, COL_INFO)) {
2787         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", val_to_str(problem, dap_LimitProblem_vals, "LimitProblem(%d)"));
2788   }
2789
2790
2791   return offset;
2792 }
2793
2794
2795 static const ber_sequence_t SET_SIZE_1_MAX_OF_ContinuationReference_set_of[1] = {
2796   { &hf_dap_unexplored_item , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ContinuationReference },
2797 };
2798
2799 static int
2800 dissect_dap_SET_SIZE_1_MAX_OF_ContinuationReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2801   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2802                                  SET_SIZE_1_MAX_OF_ContinuationReference_set_of, hf_index, ett_dap_SET_SIZE_1_MAX_OF_ContinuationReference);
2803
2804   return offset;
2805 }
2806
2807
2808 static const ber_sequence_t T_unknownErrors_set_of[1] = {
2809   { &hf_dap_unknownErrors_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_dap_OBJECT_IDENTIFIER },
2810 };
2811
2812 static int
2813 dissect_dap_T_unknownErrors(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2814   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2815                                  T_unknownErrors_set_of, hf_index, ett_dap_T_unknownErrors);
2816
2817   return offset;
2818 }
2819
2820
2821 static const value_string dap_T_entryCount_vals[] = {
2822   {   7, "bestEstimate" },
2823   {   8, "lowEstimate" },
2824   { 0, NULL }
2825 };
2826
2827 static const ber_choice_t T_entryCount_choice[] = {
2828   {   7, &hf_dap_bestEstimate    , BER_CLASS_CON, 7, 0, dissect_dap_INTEGER },
2829   {   8, &hf_dap_lowEstimate     , BER_CLASS_CON, 8, 0, dissect_dap_INTEGER },
2830   { 0, NULL, 0, 0, 0, NULL }
2831 };
2832
2833 static int
2834 dissect_dap_T_entryCount(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2835   offset = dissect_ber_choice(actx, tree, tvb, offset,
2836                                  T_entryCount_choice, hf_index, ett_dap_T_entryCount,
2837                                  NULL);
2838
2839   return offset;
2840 }
2841
2842
2843 static const ber_sequence_t PartialOutcomeQualifier_set[] = {
2844   { &hf_dap_limitProblem    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dap_LimitProblem },
2845   { &hf_dap_unexplored      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_SET_SIZE_1_MAX_OF_ContinuationReference },
2846   { &hf_dap_unavailableCriticalExtensions, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2847   { &hf_dap_unknownErrors   , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dap_T_unknownErrors },
2848   { &hf_dap_queryReference  , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_OCTET_STRING },
2849   { &hf_dap_overspecFilter  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_Filter },
2850   { &hf_dap_notification    , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
2851   { &hf_dap_entryCount      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_T_entryCount },
2852   { NULL, 0, 0, 0, NULL }
2853 };
2854
2855 static int
2856 dissect_dap_PartialOutcomeQualifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2857   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2858                               PartialOutcomeQualifier_set, hf_index, ett_dap_PartialOutcomeQualifier);
2859
2860   return offset;
2861 }
2862
2863
2864 static const ber_sequence_t T_listInfo_set[] = {
2865   { &hf_dap_name            , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
2866   { &hf_dap_subordinates    , BER_CLASS_CON, 1, 0, dissect_dap_T_subordinates },
2867   { &hf_dap_partialOutcomeQualifier, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_PartialOutcomeQualifier },
2868   { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
2869   { &hf_dap_performer       , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
2870   { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
2871   { &hf_dap_notification    , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
2872   { NULL, 0, 0, 0, NULL }
2873 };
2874
2875 static int
2876 dissect_dap_T_listInfo(gboolean 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_set(implicit_tag, actx, tree, tvb, offset,
2878                               T_listInfo_set, hf_index, ett_dap_T_listInfo);
2879
2880   return offset;
2881 }
2882
2883
2884 static const ber_sequence_t T_signedListResult_sequence[] = {
2885   { &hf_dap_listResult      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_ListResultData },
2886   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
2887   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
2888   { NULL, 0, 0, 0, NULL }
2889 };
2890
2891 static int
2892 dissect_dap_T_signedListResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2893   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2894                                    T_signedListResult_sequence, hf_index, ett_dap_T_signedListResult);
2895
2896   return offset;
2897 }
2898
2899
2900 const value_string dap_ListResult_vals[] = {
2901   {   0, "unsignedListResult" },
2902   {   1, "signedListResult" },
2903   { 0, NULL }
2904 };
2905
2906 static const ber_choice_t ListResult_choice[] = {
2907   {   0, &hf_dap_unsignedListResult, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_dap_ListResultData },
2908   {   1, &hf_dap_signedListResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedListResult },
2909   { 0, NULL, 0, 0, 0, NULL }
2910 };
2911
2912 int
2913 dissect_dap_ListResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2914   offset = dissect_ber_choice(actx, tree, tvb, offset,
2915                                  ListResult_choice, hf_index, ett_dap_ListResult,
2916                                  NULL);
2917
2918   return offset;
2919 }
2920
2921
2922 static const ber_sequence_t SET_OF_ListResult_set_of[1] = {
2923   { &hf_dap_uncorrelatedListInfo_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_ListResult },
2924 };
2925
2926 static int
2927 dissect_dap_SET_OF_ListResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2928   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2929                                  SET_OF_ListResult_set_of, hf_index, ett_dap_SET_OF_ListResult);
2930
2931   return offset;
2932 }
2933
2934
2935 static const value_string dap_ListResultData_vals[] = {
2936   {   0, "listInfo" },
2937   {   1, "uncorrelatedListInfo" },
2938   { 0, NULL }
2939 };
2940
2941 static const ber_choice_t ListResultData_choice[] = {
2942   {   0, &hf_dap_listInfo        , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_T_listInfo },
2943   {   1, &hf_dap_uncorrelatedListInfo, BER_CLASS_CON, 0, 0, dissect_dap_SET_OF_ListResult },
2944   { 0, NULL, 0, 0, 0, NULL }
2945 };
2946
2947 static int
2948 dissect_dap_ListResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2949   offset = dissect_ber_choice(actx, tree, tvb, offset,
2950                                  ListResultData_choice, hf_index, ett_dap_ListResultData,
2951                                  NULL);
2952
2953   return offset;
2954 }
2955
2956
2957 static const value_string dap_T_subset_vals[] = {
2958   {   0, "baseObject" },
2959   {   1, "oneLevel" },
2960   {   2, "wholeSubtree" },
2961   { 0, NULL }
2962 };
2963
2964
2965 static int
2966 dissect_dap_T_subset(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2967   guint32 subset;
2968
2969     offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2970                                                 &subset);
2971
2972
2973   if (check_col(actx->pinfo->cinfo, COL_INFO)) {
2974         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", val_to_str(subset, dap_T_subset_vals, "Subset(%d)"));
2975   }
2976
2977
2978
2979   return offset;
2980 }
2981
2982
2983 static const asn_namedbit HierarchySelections_bits[] = {
2984   {  0, &hf_dap_HierarchySelections_self, -1, -1, "self", NULL },
2985   {  1, &hf_dap_HierarchySelections_children, -1, -1, "children", NULL },
2986   {  2, &hf_dap_HierarchySelections_parent, -1, -1, "parent", NULL },
2987   {  3, &hf_dap_HierarchySelections_hierarchy, -1, -1, "hierarchy", NULL },
2988   {  4, &hf_dap_HierarchySelections_top, -1, -1, "top", NULL },
2989   {  5, &hf_dap_HierarchySelections_subtree, -1, -1, "subtree", NULL },
2990   {  6, &hf_dap_HierarchySelections_siblings, -1, -1, "siblings", NULL },
2991   {  7, &hf_dap_HierarchySelections_siblingChildren, -1, -1, "siblingChildren", NULL },
2992   {  8, &hf_dap_HierarchySelections_siblingSubtree, -1, -1, "siblingSubtree", NULL },
2993   {  9, &hf_dap_HierarchySelections_all, -1, -1, "all", NULL },
2994   { 0, NULL, 0, 0, NULL, NULL }
2995 };
2996
2997 int
2998 dissect_dap_HierarchySelections(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2999   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
3000                                     HierarchySelections_bits, hf_index, ett_dap_HierarchySelections,
3001                                     NULL);
3002
3003   return offset;
3004 }
3005
3006
3007 static const asn_namedbit SearchControlOptions_bits[] = {
3008   {  0, &hf_dap_SearchControlOptions_searchAliases, -1, -1, "searchAliases", NULL },
3009   {  1, &hf_dap_SearchControlOptions_matchedValuesOnly, -1, -1, "matchedValuesOnly", NULL },
3010   {  2, &hf_dap_SearchControlOptions_checkOverspecified, -1, -1, "checkOverspecified", NULL },
3011   {  3, &hf_dap_SearchControlOptions_performExactly, -1, -1, "performExactly", NULL },
3012   {  4, &hf_dap_SearchControlOptions_includeAllAreas, -1, -1, "includeAllAreas", NULL },
3013   {  5, &hf_dap_SearchControlOptions_noSystemRelaxation, -1, -1, "noSystemRelaxation", NULL },
3014   {  6, &hf_dap_SearchControlOptions_dnAttribute, -1, -1, "dnAttribute", NULL },
3015   {  7, &hf_dap_SearchControlOptions_matchOnResidualName, -1, -1, "matchOnResidualName", NULL },
3016   {  8, &hf_dap_SearchControlOptions_entryCount, -1, -1, "entryCount", NULL },
3017   {  9, &hf_dap_SearchControlOptions_useSubset, -1, -1, "useSubset", NULL },
3018   { 10, &hf_dap_SearchControlOptions_separateFamilyMembers, -1, -1, "separateFamilyMembers", NULL },
3019   { 11, &hf_dap_SearchControlOptions_searchFamily, -1, -1, "searchFamily", NULL },
3020   { 0, NULL, 0, 0, NULL, NULL }
3021 };
3022
3023 int
3024 dissect_dap_SearchControlOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3025   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
3026                                     SearchControlOptions_bits, hf_index, ett_dap_SearchControlOptions,
3027                                     NULL);
3028
3029   return offset;
3030 }
3031
3032
3033
3034 static int
3035 dissect_dap_DomainLocalID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3036   offset = dissect_x509sat_DirectoryString(implicit_tag, tvb, offset, actx, tree, hf_index);
3037
3038   return offset;
3039 }
3040
3041
3042 static const value_string dap_T_joinSubset_vals[] = {
3043   {   0, "baseObject" },
3044   {   1, "oneLevel" },
3045   {   2, "wholeSubtree" },
3046   { 0, NULL }
3047 };
3048
3049
3050 static int
3051 dissect_dap_T_joinSubset(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3052   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3053                                   NULL);
3054
3055   return offset;
3056 }
3057
3058
3059
3060 static int
3061 dissect_dap_JoinContextType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3062   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
3063
3064   return offset;
3065 }
3066
3067
3068 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_JoinContextType_sequence_of[1] = {
3069   { &hf_dap_joinContext_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_dap_JoinContextType },
3070 };
3071
3072 static int
3073 dissect_dap_SEQUENCE_SIZE_1_MAX_OF_JoinContextType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3074   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3075                                       SEQUENCE_SIZE_1_MAX_OF_JoinContextType_sequence_of, hf_index, ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinContextType);
3076
3077   return offset;
3078 }
3079
3080
3081 static const ber_sequence_t JoinAttPair_sequence[] = {
3082   { &hf_dap_baseAtt         , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
3083   { &hf_dap_joinAtt         , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
3084   { &hf_dap_joinContext     , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_JoinContextType },
3085   { NULL, 0, 0, 0, NULL }
3086 };
3087
3088 static int
3089 dissect_dap_JoinAttPair(gboolean 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(implicit_tag, actx, tree, tvb, offset,
3091                                    JoinAttPair_sequence, hf_index, ett_dap_JoinAttPair);
3092
3093   return offset;
3094 }
3095
3096
3097 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_JoinAttPair_sequence_of[1] = {
3098   { &hf_dap_joinAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_JoinAttPair },
3099 };
3100
3101 static int
3102 dissect_dap_SEQUENCE_SIZE_1_MAX_OF_JoinAttPair(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3103   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3104                                       SEQUENCE_SIZE_1_MAX_OF_JoinAttPair_sequence_of, hf_index, ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinAttPair);
3105
3106   return offset;
3107 }
3108
3109
3110 static const ber_sequence_t JoinArgument_sequence[] = {
3111   { &hf_dap_joinBaseObject  , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
3112   { &hf_dap_domainLocalID   , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_DomainLocalID },
3113   { &hf_dap_joinSubset      , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_T_joinSubset },
3114   { &hf_dap_joinFilter      , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_Filter },
3115   { &hf_dap_joinAttributes  , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_JoinAttPair },
3116   { &hf_dap_joinSelection   , BER_CLASS_CON, 5, 0, dissect_dap_EntryInformationSelection },
3117   { NULL, 0, 0, 0, NULL }
3118 };
3119
3120 static int
3121 dissect_dap_JoinArgument(gboolean 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(implicit_tag, actx, tree, tvb, offset,
3123                                    JoinArgument_sequence, hf_index, ett_dap_JoinArgument);
3124
3125   return offset;
3126 }
3127
3128
3129 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_JoinArgument_sequence_of[1] = {
3130   { &hf_dap_joinArguments_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_JoinArgument },
3131 };
3132
3133 static int
3134 dissect_dap_SEQUENCE_SIZE_1_MAX_OF_JoinArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3135   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3136                                       SEQUENCE_SIZE_1_MAX_OF_JoinArgument_sequence_of, hf_index, ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinArgument);
3137
3138   return offset;
3139 }
3140
3141
3142 static const value_string dap_T_joinType_vals[] = {
3143   {   0, "innerJoin" },
3144   {   1, "leftOuterJoin" },
3145   {   2, "fullOuterJoin" },
3146   { 0, NULL }
3147 };
3148
3149
3150 static int
3151 dissect_dap_T_joinType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3152   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3153                                   NULL);
3154
3155   return offset;
3156 }
3157
3158
3159 static const ber_sequence_t SearchArgumentData_set[] = {
3160   { &hf_dap_baseObject      , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
3161   { &hf_dap_subset          , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_T_subset },
3162   { &hf_dap_filter          , BER_CLASS_CON, 2, BER_FLAGS_NOTCHKTAG, dissect_dap_Filter },
3163   { &hf_dap_searchAliases   , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3164   { &hf_dap_selection       , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_EntryInformationSelection },
3165   { &hf_dap_pagedResults    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_PagedResultsRequest },
3166   { &hf_dap_matchedValuesOnly, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3167   { &hf_dap_extendedFilter  , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_Filter },
3168   { &hf_dap_checkOverspecified, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3169   { &hf_dap_relaxation      , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_x509if_RelaxationPolicy },
3170   { &hf_dap_extendedArea    , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
3171   { &hf_dap_hierarchySelections, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_dap_HierarchySelections },
3172   { &hf_dap_searchControlOptions, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_dap_SearchControlOptions },
3173   { &hf_dap_joinArguments   , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_JoinArgument },
3174   { &hf_dap_joinType        , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_dap_T_joinType },
3175   { &hf_dap_serviceControls , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControls },
3176   { &hf_dap_securityParameters, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3177   { &hf_dap_requestor       , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3178   { &hf_dap_operationProgress, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dsp_OperationProgress },
3179   { &hf_dap_aliasedRDNs     , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
3180   { &hf_dap_criticalExtensions, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
3181   { &hf_dap_referenceType   , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_dsp_ReferenceType },
3182   { &hf_dap_entryOnly       , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3183   { &hf_dap_nameResolveOnMaster, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3184   { &hf_dap_operationContexts, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_ContextSelection },
3185   { &hf_dap_familyGrouping  , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
3186   { NULL, 0, 0, 0, NULL }
3187 };
3188
3189 static int
3190 dissect_dap_SearchArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3191   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3192                               SearchArgumentData_set, hf_index, ett_dap_SearchArgumentData);
3193
3194   return offset;
3195 }
3196
3197
3198 static const ber_sequence_t T_signedSearchArgument_sequence[] = {
3199   { &hf_dap_searchArgument  , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_SearchArgumentData },
3200   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
3201   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
3202   { NULL, 0, 0, 0, NULL }
3203 };
3204
3205 static int
3206 dissect_dap_T_signedSearchArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3207   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3208                                    T_signedSearchArgument_sequence, hf_index, ett_dap_T_signedSearchArgument);
3209
3210   return offset;
3211 }
3212
3213
3214 const value_string dap_SearchArgument_vals[] = {
3215   {   0, "unsignedSearchArgument" },
3216   {   1, "signedSearchArgument" },
3217   { 0, NULL }
3218 };
3219
3220 static const ber_choice_t SearchArgument_choice[] = {
3221   {   0, &hf_dap_unsignedSearchArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_SearchArgumentData },
3222   {   1, &hf_dap_signedSearchArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedSearchArgument },
3223   { 0, NULL, 0, 0, 0, NULL }
3224 };
3225
3226 int
3227 dissect_dap_SearchArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3228   offset = dissect_ber_choice(actx, tree, tvb, offset,
3229                                  SearchArgument_choice, hf_index, ett_dap_SearchArgument,
3230                                  NULL);
3231
3232   return offset;
3233 }
3234
3235
3236 static const ber_sequence_t SET_OF_EntryInformation_set_of[1] = {
3237   { &hf_dap_entries_item    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_EntryInformation },
3238 };
3239
3240 static int
3241 dissect_dap_SET_OF_EntryInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3242   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
3243                                  SET_OF_EntryInformation_set_of, hf_index, ett_dap_SET_OF_EntryInformation);
3244
3245   return offset;
3246 }
3247
3248
3249 static const ber_sequence_t T_searchInfo_set[] = {
3250   { &hf_dap_name            , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
3251   { &hf_dap_entries         , BER_CLASS_CON, 0, 0, dissect_dap_SET_OF_EntryInformation },
3252   { &hf_dap_partialOutcomeQualifier, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_PartialOutcomeQualifier },
3253   { &hf_dap_altMatching     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3254   { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3255   { &hf_dap_performer       , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3256   { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3257   { &hf_dap_notification    , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
3258   { NULL, 0, 0, 0, NULL }
3259 };
3260
3261 static int
3262 dissect_dap_T_searchInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3263   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3264                               T_searchInfo_set, hf_index, ett_dap_T_searchInfo);
3265
3266   return offset;
3267 }
3268
3269
3270 static const ber_sequence_t T_signedSearchResult_sequence[] = {
3271   { &hf_dap_searchResult    , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_SearchResultData },
3272   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
3273   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
3274   { NULL, 0, 0, 0, NULL }
3275 };
3276
3277 static int
3278 dissect_dap_T_signedSearchResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3279   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3280                                    T_signedSearchResult_sequence, hf_index, ett_dap_T_signedSearchResult);
3281
3282   return offset;
3283 }
3284
3285
3286 const value_string dap_SearchResult_vals[] = {
3287   {   0, "unsignedSearchResult" },
3288   {   1, "signedSearchResult" },
3289   { 0, NULL }
3290 };
3291
3292 static const ber_choice_t SearchResult_choice[] = {
3293   {   0, &hf_dap_unsignedSearchResult, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_dap_SearchResultData },
3294   {   1, &hf_dap_signedSearchResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedSearchResult },
3295   { 0, NULL, 0, 0, 0, NULL }
3296 };
3297
3298 int
3299 dissect_dap_SearchResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3300   offset = dissect_ber_choice(actx, tree, tvb, offset,
3301                                  SearchResult_choice, hf_index, ett_dap_SearchResult,
3302                                  NULL);
3303
3304   return offset;
3305 }
3306
3307
3308 static const ber_sequence_t SET_OF_SearchResult_set_of[1] = {
3309   { &hf_dap_uncorrelatedSearchInfo_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_SearchResult },
3310 };
3311
3312 static int
3313 dissect_dap_SET_OF_SearchResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3314   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
3315                                  SET_OF_SearchResult_set_of, hf_index, ett_dap_SET_OF_SearchResult);
3316
3317   return offset;
3318 }
3319
3320
3321 static const value_string dap_SearchResultData_vals[] = {
3322   {   0, "searchInfo" },
3323   {   1, "uncorrelatedSearchInfo" },
3324   { 0, NULL }
3325 };
3326
3327 static const ber_choice_t SearchResultData_choice[] = {
3328   {   0, &hf_dap_searchInfo      , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_T_searchInfo },
3329   {   1, &hf_dap_uncorrelatedSearchInfo, BER_CLASS_CON, 0, 0, dissect_dap_SET_OF_SearchResult },
3330   { 0, NULL, 0, 0, 0, NULL }
3331 };
3332
3333 static int
3334 dissect_dap_SearchResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3335   offset = dissect_ber_choice(actx, tree, tvb, offset,
3336                                  SearchResultData_choice, hf_index, ett_dap_SearchResultData,
3337                                  NULL);
3338
3339   return offset;
3340 }
3341
3342
3343 static const ber_sequence_t SET_OF_Attribute_set_of[1] = {
3344   { &hf_dap_add_entry_item  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
3345 };
3346
3347 static int
3348 dissect_dap_SET_OF_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3349   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
3350                                  SET_OF_Attribute_set_of, hf_index, ett_dap_SET_OF_Attribute);
3351
3352   return offset;
3353 }
3354
3355
3356 static const ber_sequence_t AddEntryArgumentData_set[] = {
3357   { &hf_dap_object          , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
3358   { &hf_dap_add_entry       , BER_CLASS_CON, 1, 0, dissect_dap_SET_OF_Attribute },
3359   { &hf_dap_targetSystem    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dsp_AccessPoint },
3360   { &hf_dap_serviceControls , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControls },
3361   { &hf_dap_securityParameters, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3362   { &hf_dap_requestor       , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3363   { &hf_dap_operationProgress, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dsp_OperationProgress },
3364   { &hf_dap_aliasedRDNs     , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
3365   { &hf_dap_criticalExtensions, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
3366   { &hf_dap_referenceType   , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_dsp_ReferenceType },
3367   { &hf_dap_entryOnly       , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3368   { &hf_dap_nameResolveOnMaster, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3369   { &hf_dap_operationContexts, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_ContextSelection },
3370   { &hf_dap_familyGrouping  , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
3371   { NULL, 0, 0, 0, NULL }
3372 };
3373
3374 static int
3375 dissect_dap_AddEntryArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3376   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3377                               AddEntryArgumentData_set, hf_index, ett_dap_AddEntryArgumentData);
3378
3379   return offset;
3380 }
3381
3382
3383 static const ber_sequence_t T_signedAddEntryArgument_sequence[] = {
3384   { &hf_dap_addEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_AddEntryArgumentData },
3385   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
3386   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
3387   { NULL, 0, 0, 0, NULL }
3388 };
3389
3390 static int
3391 dissect_dap_T_signedAddEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3392   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3393                                    T_signedAddEntryArgument_sequence, hf_index, ett_dap_T_signedAddEntryArgument);
3394
3395   return offset;
3396 }
3397
3398
3399 const value_string dap_AddEntryArgument_vals[] = {
3400   {   0, "unsignedAddEntryArgument" },
3401   {   1, "signedAddEntryArgument" },
3402   { 0, NULL }
3403 };
3404
3405 static const ber_choice_t AddEntryArgument_choice[] = {
3406   {   0, &hf_dap_unsignedAddEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_AddEntryArgumentData },
3407   {   1, &hf_dap_signedAddEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedAddEntryArgument },
3408   { 0, NULL, 0, 0, 0, NULL }
3409 };
3410
3411 int
3412 dissect_dap_AddEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3413   offset = dissect_ber_choice(actx, tree, tvb, offset,
3414                                  AddEntryArgument_choice, hf_index, ett_dap_AddEntryArgument,
3415                                  NULL);
3416
3417   return offset;
3418 }
3419
3420
3421 static const ber_sequence_t AddEntryResultData_sequence[] = {
3422   { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3423   { &hf_dap_performer       , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3424   { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3425   { &hf_dap_notification    , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
3426   { NULL, 0, 0, 0, NULL }
3427 };
3428
3429 static int
3430 dissect_dap_AddEntryResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3431   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3432                                    AddEntryResultData_sequence, hf_index, ett_dap_AddEntryResultData);
3433
3434   return offset;
3435 }
3436
3437
3438 static const ber_sequence_t T_signedAddEntryResult_sequence[] = {
3439   { &hf_dap_addEntryResult  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_AddEntryResultData },
3440   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
3441   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
3442   { NULL, 0, 0, 0, NULL }
3443 };
3444
3445 static int
3446 dissect_dap_T_signedAddEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3447   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3448                                    T_signedAddEntryResult_sequence, hf_index, ett_dap_T_signedAddEntryResult);
3449
3450   return offset;
3451 }
3452
3453
3454 static const value_string dap_AddEntryInformation_vals[] = {
3455   {   0, "unsignedAddEntryResult" },
3456   {   1, "signedAddEntryResult" },
3457   { 0, NULL }
3458 };
3459
3460 static const ber_choice_t AddEntryInformation_choice[] = {
3461   {   0, &hf_dap_unsignedAddEntryResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_AddEntryResultData },
3462   {   1, &hf_dap_signedAddEntryResult, BER_CLASS_CON, 0, 0, dissect_dap_T_signedAddEntryResult },
3463   { 0, NULL, 0, 0, 0, NULL }
3464 };
3465
3466 static int
3467 dissect_dap_AddEntryInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3468   offset = dissect_ber_choice(actx, tree, tvb, offset,
3469                                  AddEntryInformation_choice, hf_index, ett_dap_AddEntryInformation,
3470                                  NULL);
3471
3472   return offset;
3473 }
3474
3475
3476 const value_string dap_AddEntryResult_vals[] = {
3477   {   0, "null" },
3478   {   1, "information" },
3479   { 0, NULL }
3480 };
3481
3482 static const ber_choice_t AddEntryResult_choice[] = {
3483   {   0, &hf_dap_null            , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_dap_NULL },
3484   {   1, &hf_dap_add_entry_information, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_dap_AddEntryInformation },
3485   { 0, NULL, 0, 0, 0, NULL }
3486 };
3487
3488 int
3489 dissect_dap_AddEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3490   offset = dissect_ber_choice(actx, tree, tvb, offset,
3491                                  AddEntryResult_choice, hf_index, ett_dap_AddEntryResult,
3492                                  NULL);
3493
3494   return offset;
3495 }
3496
3497
3498 static const ber_sequence_t RemoveEntryArgumentData_set[] = {
3499   { &hf_dap_object          , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
3500   { &hf_dap_serviceControls , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControls },
3501   { &hf_dap_securityParameters, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3502   { &hf_dap_requestor       , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3503   { &hf_dap_operationProgress, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dsp_OperationProgress },
3504   { &hf_dap_aliasedRDNs     , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
3505   { &hf_dap_criticalExtensions, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
3506   { &hf_dap_referenceType   , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_dsp_ReferenceType },
3507   { &hf_dap_entryOnly       , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3508   { &hf_dap_nameResolveOnMaster, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3509   { &hf_dap_operationContexts, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_ContextSelection },
3510   { &hf_dap_familyGrouping  , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
3511   { NULL, 0, 0, 0, NULL }
3512 };
3513
3514 static int
3515 dissect_dap_RemoveEntryArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3516   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3517                               RemoveEntryArgumentData_set, hf_index, ett_dap_RemoveEntryArgumentData);
3518
3519   return offset;
3520 }
3521
3522
3523 static const ber_sequence_t T_signedRemoveEntryArgument_sequence[] = {
3524   { &hf_dap_removeEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_RemoveEntryArgumentData },
3525   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
3526   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
3527   { NULL, 0, 0, 0, NULL }
3528 };
3529
3530 static int
3531 dissect_dap_T_signedRemoveEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3532   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3533                                    T_signedRemoveEntryArgument_sequence, hf_index, ett_dap_T_signedRemoveEntryArgument);
3534
3535   return offset;
3536 }
3537
3538
3539 const value_string dap_RemoveEntryArgument_vals[] = {
3540   {   0, "unsignedRemoveEntryArgument" },
3541   {   1, "signedRemoveEntryArgument" },
3542   { 0, NULL }
3543 };
3544
3545 static const ber_choice_t RemoveEntryArgument_choice[] = {
3546   {   0, &hf_dap_unsignedRemoveEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_RemoveEntryArgumentData },
3547   {   1, &hf_dap_signedRemoveEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedRemoveEntryArgument },
3548   { 0, NULL, 0, 0, 0, NULL }
3549 };
3550
3551 int
3552 dissect_dap_RemoveEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3553   offset = dissect_ber_choice(actx, tree, tvb, offset,
3554                                  RemoveEntryArgument_choice, hf_index, ett_dap_RemoveEntryArgument,
3555                                  NULL);
3556
3557   return offset;
3558 }
3559
3560
3561 static const ber_sequence_t RemoveEntryResultData_sequence[] = {
3562   { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3563   { &hf_dap_performer       , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3564   { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3565   { &hf_dap_notification    , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
3566   { NULL, 0, 0, 0, NULL }
3567 };
3568
3569 static int
3570 dissect_dap_RemoveEntryResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3571   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3572                                    RemoveEntryResultData_sequence, hf_index, ett_dap_RemoveEntryResultData);
3573
3574   return offset;
3575 }
3576
3577
3578 static const ber_sequence_t T_signedRemoveEntryResult_sequence[] = {
3579   { &hf_dap_removeEntryResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_RemoveEntryResultData },
3580   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
3581   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
3582   { NULL, 0, 0, 0, NULL }
3583 };
3584
3585 static int
3586 dissect_dap_T_signedRemoveEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3587   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3588                                    T_signedRemoveEntryResult_sequence, hf_index, ett_dap_T_signedRemoveEntryResult);
3589
3590   return offset;
3591 }
3592
3593
3594 static const value_string dap_RemoveEntryInformation_vals[] = {
3595   {   0, "unsignedRemoveEntryResult" },
3596   {   1, "signedRemoveEntryResult" },
3597   { 0, NULL }
3598 };
3599
3600 static const ber_choice_t RemoveEntryInformation_choice[] = {
3601   {   0, &hf_dap_unsignedRemoveEntryResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_RemoveEntryResultData },
3602   {   1, &hf_dap_signedRemoveEntryResult, BER_CLASS_CON, 0, 0, dissect_dap_T_signedRemoveEntryResult },
3603   { 0, NULL, 0, 0, 0, NULL }
3604 };
3605
3606 static int
3607 dissect_dap_RemoveEntryInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3608   offset = dissect_ber_choice(actx, tree, tvb, offset,
3609                                  RemoveEntryInformation_choice, hf_index, ett_dap_RemoveEntryInformation,
3610                                  NULL);
3611
3612   return offset;
3613 }
3614
3615
3616 const value_string dap_RemoveEntryResult_vals[] = {
3617   {   0, "null" },
3618   {   1, "information" },
3619   { 0, NULL }
3620 };
3621
3622 static const ber_choice_t RemoveEntryResult_choice[] = {
3623   {   0, &hf_dap_null            , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_dap_NULL },
3624   {   1, &hf_dap_remove_entry_information, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_dap_RemoveEntryInformation },
3625   { 0, NULL, 0, 0, 0, NULL }
3626 };
3627
3628 int
3629 dissect_dap_RemoveEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3630   offset = dissect_ber_choice(actx, tree, tvb, offset,
3631                                  RemoveEntryResult_choice, hf_index, ett_dap_RemoveEntryResult,
3632                                  NULL);
3633
3634   return offset;
3635 }
3636
3637
3638 const value_string dap_EntryModification_vals[] = {
3639   {   0, "addAttribute" },
3640   {   1, "removeAttribute" },
3641   {   2, "addValues" },
3642   {   3, "removeValues" },
3643   {   4, "alterValues" },
3644   {   5, "resetValue" },
3645   { 0, NULL }
3646 };
3647
3648 static const ber_choice_t EntryModification_choice[] = {
3649   {   0, &hf_dap_addAttribute    , BER_CLASS_CON, 0, 0, dissect_x509if_Attribute },
3650   {   1, &hf_dap_removeAttribute , BER_CLASS_CON, 1, 0, dissect_x509if_AttributeType },
3651   {   2, &hf_dap_addValues       , BER_CLASS_CON, 2, 0, dissect_x509if_Attribute },
3652   {   3, &hf_dap_removeValues    , BER_CLASS_CON, 3, 0, dissect_x509if_Attribute },
3653   {   4, &hf_dap_alterValues     , BER_CLASS_CON, 4, 0, dissect_crmf_AttributeTypeAndValue },
3654   {   5, &hf_dap_resetValue      , BER_CLASS_CON, 5, 0, dissect_x509if_AttributeType },
3655   { 0, NULL, 0, 0, 0, NULL }
3656 };
3657
3658 int
3659 dissect_dap_EntryModification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3660   offset = dissect_ber_choice(actx, tree, tvb, offset,
3661                                  EntryModification_choice, hf_index, ett_dap_EntryModification,
3662                                  NULL);
3663
3664   return offset;
3665 }
3666
3667
3668 static const ber_sequence_t SEQUENCE_OF_EntryModification_sequence_of[1] = {
3669   { &hf_dap_changes_item    , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_EntryModification },
3670 };
3671
3672 static int
3673 dissect_dap_SEQUENCE_OF_EntryModification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3674   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3675                                       SEQUENCE_OF_EntryModification_sequence_of, hf_index, ett_dap_SEQUENCE_OF_EntryModification);
3676
3677   return offset;
3678 }
3679
3680
3681 static const ber_sequence_t ModifyEntryArgumentData_set[] = {
3682   { &hf_dap_object          , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
3683   { &hf_dap_changes         , BER_CLASS_CON, 1, 0, dissect_dap_SEQUENCE_OF_EntryModification },
3684   { &hf_dap_selection       , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_EntryInformationSelection },
3685   { &hf_dap_serviceControls , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControls },
3686   { &hf_dap_securityParameters, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3687   { &hf_dap_requestor       , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3688   { &hf_dap_operationProgress, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dsp_OperationProgress },
3689   { &hf_dap_aliasedRDNs     , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
3690   { &hf_dap_criticalExtensions, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
3691   { &hf_dap_referenceType   , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_dsp_ReferenceType },
3692   { &hf_dap_entryOnly       , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3693   { &hf_dap_nameResolveOnMaster, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3694   { &hf_dap_operationContexts, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_ContextSelection },
3695   { &hf_dap_familyGrouping  , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
3696   { NULL, 0, 0, 0, NULL }
3697 };
3698
3699 static int
3700 dissect_dap_ModifyEntryArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3701   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3702                               ModifyEntryArgumentData_set, hf_index, ett_dap_ModifyEntryArgumentData);
3703
3704   return offset;
3705 }
3706
3707
3708 static const ber_sequence_t T_signedModifyEntryArgument_sequence[] = {
3709   { &hf_dap_modifyEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ModifyEntryArgumentData },
3710   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
3711   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
3712   { NULL, 0, 0, 0, NULL }
3713 };
3714
3715 static int
3716 dissect_dap_T_signedModifyEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3717   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3718                                    T_signedModifyEntryArgument_sequence, hf_index, ett_dap_T_signedModifyEntryArgument);
3719
3720   return offset;
3721 }
3722
3723
3724 const value_string dap_ModifyEntryArgument_vals[] = {
3725   {   0, "unsignedModifyEntryArgument" },
3726   {   1, "signedModifyEntryArgument" },
3727   { 0, NULL }
3728 };
3729
3730 static const ber_choice_t ModifyEntryArgument_choice[] = {
3731   {   0, &hf_dap_unsignedModifyEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ModifyEntryArgumentData },
3732   {   1, &hf_dap_signedModifyEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedModifyEntryArgument },
3733   { 0, NULL, 0, 0, 0, NULL }
3734 };
3735
3736 int
3737 dissect_dap_ModifyEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3738   offset = dissect_ber_choice(actx, tree, tvb, offset,
3739                                  ModifyEntryArgument_choice, hf_index, ett_dap_ModifyEntryArgument,
3740                                  NULL);
3741
3742   return offset;
3743 }
3744
3745
3746 static const ber_sequence_t ModifyEntryResultData_sequence[] = {
3747   { &hf_dap_entry           , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dap_EntryInformation },
3748   { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3749   { &hf_dap_performer       , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3750   { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3751   { &hf_dap_notification    , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
3752   { NULL, 0, 0, 0, NULL }
3753 };
3754
3755 static int
3756 dissect_dap_ModifyEntryResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3757   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3758                                    ModifyEntryResultData_sequence, hf_index, ett_dap_ModifyEntryResultData);
3759
3760   return offset;
3761 }
3762
3763
3764 static const ber_sequence_t T_signedModifyEntryResult_sequence[] = {
3765   { &hf_dap_modifyEntryResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_ModifyEntryResultData },
3766   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
3767   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
3768   { NULL, 0, 0, 0, NULL }
3769 };
3770
3771 static int
3772 dissect_dap_T_signedModifyEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3773   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3774                                    T_signedModifyEntryResult_sequence, hf_index, ett_dap_T_signedModifyEntryResult);
3775
3776   return offset;
3777 }
3778
3779
3780 static const value_string dap_ModifyEntryInformation_vals[] = {
3781   {   0, "unsignedModifyEntryResult" },
3782   {   1, "signedModifyEntryResult" },
3783   { 0, NULL }
3784 };
3785
3786 static const ber_choice_t ModifyEntryInformation_choice[] = {
3787   {   0, &hf_dap_unsignedModifyEntryResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_ModifyEntryResultData },
3788   {   1, &hf_dap_signedModifyEntryResult, BER_CLASS_CON, 0, 0, dissect_dap_T_signedModifyEntryResult },
3789   { 0, NULL, 0, 0, 0, NULL }
3790 };
3791
3792 static int
3793 dissect_dap_ModifyEntryInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3794   offset = dissect_ber_choice(actx, tree, tvb, offset,
3795                                  ModifyEntryInformation_choice, hf_index, ett_dap_ModifyEntryInformation,
3796                                  NULL);
3797
3798   return offset;
3799 }
3800
3801
3802 const value_string dap_ModifyEntryResult_vals[] = {
3803   {   0, "null" },
3804   {   1, "information" },
3805   { 0, NULL }
3806 };
3807
3808 static const ber_choice_t ModifyEntryResult_choice[] = {
3809   {   0, &hf_dap_null            , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_dap_NULL },
3810   {   1, &hf_dap_modify_entry_information, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_dap_ModifyEntryInformation },
3811   { 0, NULL, 0, 0, 0, NULL }
3812 };
3813
3814 int
3815 dissect_dap_ModifyEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3816   offset = dissect_ber_choice(actx, tree, tvb, offset,
3817                                  ModifyEntryResult_choice, hf_index, ett_dap_ModifyEntryResult,
3818                                  NULL);
3819
3820   return offset;
3821 }
3822
3823
3824 static const ber_sequence_t ModifyDNArgument_set[] = {
3825   { &hf_dap_distinguished_name, BER_CLASS_CON, 0, 0, dissect_x509if_DistinguishedName },
3826   { &hf_dap_newRDN          , BER_CLASS_CON, 1, 0, dissect_x509if_RelativeDistinguishedName },
3827   { &hf_dap_deleteOldRDN    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3828   { &hf_dap_newSuperior     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3829   { &hf_dap_serviceControls , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControls },
3830   { &hf_dap_securityParameters, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3831   { &hf_dap_requestor       , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3832   { &hf_dap_operationProgress, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dsp_OperationProgress },
3833   { &hf_dap_aliasedRDNs     , BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_dap_INTEGER },
3834   { &hf_dap_criticalExtensions, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
3835   { &hf_dap_referenceType   , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_dsp_ReferenceType },
3836   { &hf_dap_entryOnly       , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3837   { &hf_dap_nameResolveOnMaster, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3838   { &hf_dap_operationContexts, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_ContextSelection },
3839   { &hf_dap_familyGrouping  , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
3840   { NULL, 0, 0, 0, NULL }
3841 };
3842
3843 int
3844 dissect_dap_ModifyDNArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3845   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3846                               ModifyDNArgument_set, hf_index, ett_dap_ModifyDNArgument);
3847
3848   return offset;
3849 }
3850
3851
3852 static const ber_sequence_t ModifyDNResultData_sequence[] = {
3853   { &hf_dap_newRDN          , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_RelativeDistinguishedName },
3854   { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3855   { &hf_dap_performer       , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3856   { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3857   { &hf_dap_notification    , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
3858   { NULL, 0, 0, 0, NULL }
3859 };
3860
3861 static int
3862 dissect_dap_ModifyDNResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3863   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3864                                    ModifyDNResultData_sequence, hf_index, ett_dap_ModifyDNResultData);
3865
3866   return offset;
3867 }
3868
3869
3870 static const ber_sequence_t T_signedModifyDNResult_sequence[] = {
3871   { &hf_dap_modifyDNResult  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_ModifyDNResultData },
3872   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
3873   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
3874   { NULL, 0, 0, 0, NULL }
3875 };
3876
3877 static int
3878 dissect_dap_T_signedModifyDNResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3879   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3880                                    T_signedModifyDNResult_sequence, hf_index, ett_dap_T_signedModifyDNResult);
3881
3882   return offset;
3883 }
3884
3885
3886 static const value_string dap_ModifyDNInformation_vals[] = {
3887   {   0, "unsignedModifyDNResult" },
3888   {   1, "signedModifyDNResult" },
3889   { 0, NULL }
3890 };
3891
3892 static const ber_choice_t ModifyDNInformation_choice[] = {
3893   {   0, &hf_dap_unsignedModifyDNResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_ModifyDNResultData },
3894   {   1, &hf_dap_signedModifyDNResult, BER_CLASS_CON, 0, 0, dissect_dap_T_signedModifyDNResult },
3895   { 0, NULL, 0, 0, 0, NULL }
3896 };
3897
3898 static int
3899 dissect_dap_ModifyDNInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3900   offset = dissect_ber_choice(actx, tree, tvb, offset,
3901                                  ModifyDNInformation_choice, hf_index, ett_dap_ModifyDNInformation,
3902                                  NULL);
3903
3904   return offset;
3905 }
3906
3907
3908 const value_string dap_ModifyDNResult_vals[] = {
3909   {   0, "null" },
3910   {   1, "information" },
3911   { 0, NULL }
3912 };
3913
3914 static const ber_choice_t ModifyDNResult_choice[] = {
3915   {   0, &hf_dap_null            , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_dap_NULL },
3916   {   1, &hf_dap_modify_dn_information, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_dap_ModifyDNInformation },
3917   { 0, NULL, 0, 0, 0, NULL }
3918 };
3919
3920 int
3921 dissect_dap_ModifyDNResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3922   offset = dissect_ber_choice(actx, tree, tvb, offset,
3923                                  ModifyDNResult_choice, hf_index, ett_dap_ModifyDNResult,
3924                                  NULL);
3925
3926   return offset;
3927 }
3928
3929
3930 static const ber_sequence_t AbandonedData_set[] = {
3931   { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
3932   { &hf_dap_performer       , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
3933   { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
3934   { &hf_dap_notification    , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
3935   { NULL, 0, 0, 0, NULL }
3936 };
3937
3938 static int
3939 dissect_dap_AbandonedData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3940   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3941                               AbandonedData_set, hf_index, ett_dap_AbandonedData);
3942
3943   return offset;
3944 }
3945
3946
3947 static const ber_sequence_t T_signedAbandoned_sequence[] = {
3948   { &hf_dap_abandoned       , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_AbandonedData },
3949   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
3950   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
3951   { NULL, 0, 0, 0, NULL }
3952 };
3953
3954 static int
3955 dissect_dap_T_signedAbandoned(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3956   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3957                                    T_signedAbandoned_sequence, hf_index, ett_dap_T_signedAbandoned);
3958
3959   return offset;
3960 }
3961
3962
3963 const value_string dap_Abandoned_vals[] = {
3964   {   0, "unsignedAbandoned" },
3965   {   1, "signedAbandoned" },
3966   { 0, NULL }
3967 };
3968
3969 static const ber_choice_t Abandoned_choice[] = {
3970   {   0, &hf_dap_unsignedAbandoned, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_AbandonedData },
3971   {   1, &hf_dap_signedAbandoned , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedAbandoned },
3972   { 0, NULL, 0, 0, 0, NULL }
3973 };
3974
3975 int
3976 dissect_dap_Abandoned(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3977   offset = dissect_ber_choice(actx, tree, tvb, offset,
3978                                  Abandoned_choice, hf_index, ett_dap_Abandoned,
3979                                  NULL);
3980
3981   return offset;
3982 }
3983
3984
3985 static const value_string dap_AbandonProblem_vals[] = {
3986   {   1, "noSuchOperation" },
3987   {   2, "tooLate" },
3988   {   3, "cannotAbandon" },
3989   { 0, NULL }
3990 };
3991
3992
3993 static int
3994 dissect_dap_AbandonProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3995   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3996                                                 NULL);
3997
3998   return offset;
3999 }
4000
4001
4002 static const ber_sequence_t AbandonFailedErrorData_set[] = {
4003   { &hf_dap_abandon_failed_problem, BER_CLASS_CON, 0, 0, dissect_dap_AbandonProblem },
4004   { &hf_dap_operation       , BER_CLASS_CON, 1, 0, dissect_ros_InvokeId },
4005   { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
4006   { &hf_dap_performer       , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
4007   { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
4008   { &hf_dap_notification    , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
4009   { NULL, 0, 0, 0, NULL }
4010 };
4011
4012 static int
4013 dissect_dap_AbandonFailedErrorData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4014   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4015                               AbandonFailedErrorData_set, hf_index, ett_dap_AbandonFailedErrorData);
4016
4017   return offset;
4018 }
4019
4020
4021 static const ber_sequence_t T_signedAbandonFailedError_sequence[] = {
4022   { &hf_dap_abandonFailedError, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_AbandonFailedErrorData },
4023   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
4024   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
4025   { NULL, 0, 0, 0, NULL }
4026 };
4027
4028 static int
4029 dissect_dap_T_signedAbandonFailedError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4030   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4031                                    T_signedAbandonFailedError_sequence, hf_index, ett_dap_T_signedAbandonFailedError);
4032
4033   return offset;
4034 }
4035
4036
4037 const value_string dap_AbandonFailedError_vals[] = {
4038   {   0, "unsignedAbandonFailedError" },
4039   {   1, "signedAbandonFailedError" },
4040   { 0, NULL }
4041 };
4042
4043 static const ber_choice_t AbandonFailedError_choice[] = {
4044   {   0, &hf_dap_unsignedAbandonFailedError, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_AbandonFailedErrorData },
4045   {   1, &hf_dap_signedAbandonFailedError, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedAbandonFailedError },
4046   { 0, NULL, 0, 0, 0, NULL }
4047 };
4048
4049 int
4050 dissect_dap_AbandonFailedError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4051   offset = dissect_ber_choice(actx, tree, tvb, offset,
4052                                  AbandonFailedError_choice, hf_index, ett_dap_AbandonFailedError,
4053                                  NULL);
4054
4055   return offset;
4056 }
4057
4058
4059 static const value_string dap_AttributeProblem_vals[] = {
4060   {   1, "noSuchAttributeOrValue" },
4061   {   2, "invalidAttributeSyntax" },
4062   {   3, "undefinedAttributeType" },
4063   {   4, "inappropriateMatching" },
4064   {   5, "constraintViolation" },
4065   {   6, "attributeOrValueAlreadyExists" },
4066   {   7, "contextViolation" },
4067   { 0, NULL }
4068 };
4069
4070
4071 static int
4072 dissect_dap_AttributeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4073   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4074                                                 NULL);
4075
4076   return offset;
4077 }
4078
4079
4080 static const ber_sequence_t T_problems_item_sequence[] = {
4081   { &hf_dap_attribute_error_problem, BER_CLASS_CON, 0, 0, dissect_dap_AttributeProblem },
4082   { &hf_dap_type            , BER_CLASS_CON, 1, 0, dissect_x509if_AttributeType },
4083   { &hf_dap_value           , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_AttributeValue },
4084   { NULL, 0, 0, 0, NULL }
4085 };
4086
4087 static int
4088 dissect_dap_T_problems_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4089   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4090                                    T_problems_item_sequence, hf_index, ett_dap_T_problems_item);
4091
4092   return offset;
4093 }
4094
4095
4096 static const ber_sequence_t T_problems_set_of[1] = {
4097   { &hf_dap_problems_item   , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_problems_item },
4098 };
4099
4100 static int
4101 dissect_dap_T_problems(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4102   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
4103                                  T_problems_set_of, hf_index, ett_dap_T_problems);
4104
4105   return offset;
4106 }
4107
4108
4109 static const ber_sequence_t AttributeErrorData_set[] = {
4110   { &hf_dap_object          , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
4111   { &hf_dap_problems        , BER_CLASS_CON, 1, 0, dissect_dap_T_problems },
4112   { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
4113   { &hf_dap_performer       , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
4114   { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
4115   { &hf_dap_notification    , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
4116   { NULL, 0, 0, 0, NULL }
4117 };
4118
4119 static int
4120 dissect_dap_AttributeErrorData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4121   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4122                               AttributeErrorData_set, hf_index, ett_dap_AttributeErrorData);
4123
4124   return offset;
4125 }
4126
4127
4128 static const ber_sequence_t T_signedAttributeError_sequence[] = {
4129   { &hf_dap_attributeError  , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_AttributeErrorData },
4130   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
4131   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
4132   { NULL, 0, 0, 0, NULL }
4133 };
4134
4135 static int
4136 dissect_dap_T_signedAttributeError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4137   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4138                                    T_signedAttributeError_sequence, hf_index, ett_dap_T_signedAttributeError);
4139
4140   return offset;
4141 }
4142
4143
4144 const value_string dap_AttributeError_vals[] = {
4145   {   0, "unsignedAttributeError" },
4146   {   1, "signedAttributeError" },
4147   { 0, NULL }
4148 };
4149
4150 static const ber_choice_t AttributeError_choice[] = {
4151   {   0, &hf_dap_unsignedAttributeError, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_AttributeErrorData },
4152   {   1, &hf_dap_signedAttributeError, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedAttributeError },
4153   { 0, NULL, 0, 0, 0, NULL }
4154 };
4155
4156 int
4157 dissect_dap_AttributeError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4158   offset = dissect_ber_choice(actx, tree, tvb, offset,
4159                                  AttributeError_choice, hf_index, ett_dap_AttributeError,
4160                                  NULL);
4161
4162   return offset;
4163 }
4164
4165
4166 static const value_string dap_NameProblem_vals[] = {
4167   {   1, "noSuchObject" },
4168   {   2, "aliasProblem" },
4169   {   3, "invalidAttributeSyntax" },
4170   {   4, "aliasDereferencingProblem" },
4171   {   5, "contextProblem" },
4172   { 0, NULL }
4173 };
4174
4175
4176 static int
4177 dissect_dap_NameProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4178   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4179                                                 NULL);
4180
4181   return offset;
4182 }
4183
4184
4185 static const ber_sequence_t NameErrorData_set[] = {
4186   { &hf_dap_name_error_problem, BER_CLASS_CON, 0, 0, dissect_dap_NameProblem },
4187   { &hf_dap_matched_name    , BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_dap_Name },
4188   { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
4189   { &hf_dap_performer       , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
4190   { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
4191   { &hf_dap_notification    , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
4192   { NULL, 0, 0, 0, NULL }
4193 };
4194
4195 static int
4196 dissect_dap_NameErrorData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4197   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4198                               NameErrorData_set, hf_index, ett_dap_NameErrorData);
4199
4200   return offset;
4201 }
4202
4203
4204 static const ber_sequence_t T_signedNameError_sequence[] = {
4205   { &hf_dap_nameError       , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_NameErrorData },
4206   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
4207   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
4208   { NULL, 0, 0, 0, NULL }
4209 };
4210
4211 static int
4212 dissect_dap_T_signedNameError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4213   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4214                                    T_signedNameError_sequence, hf_index, ett_dap_T_signedNameError);
4215
4216   return offset;
4217 }
4218
4219
4220 const value_string dap_NameError_vals[] = {
4221   {   0, "unsignedNameError" },
4222   {   1, "signedNameError" },
4223   { 0, NULL }
4224 };
4225
4226 static const ber_choice_t NameError_choice[] = {
4227   {   0, &hf_dap_unsignedNameError, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_NameErrorData },
4228   {   1, &hf_dap_signedNameError , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedNameError },
4229   { 0, NULL, 0, 0, 0, NULL }
4230 };
4231
4232 int
4233 dissect_dap_NameError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4234   offset = dissect_ber_choice(actx, tree, tvb, offset,
4235                                  NameError_choice, hf_index, ett_dap_NameError,
4236                                  NULL);
4237
4238   return offset;
4239 }
4240
4241
4242 static const ber_sequence_t ReferralData_set[] = {
4243   { &hf_dap_candidate       , BER_CLASS_CON, 0, 0, dissect_dsp_ContinuationReference },
4244   { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
4245   { &hf_dap_performer       , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
4246   { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
4247   { &hf_dap_notification    , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
4248   { NULL, 0, 0, 0, NULL }
4249 };
4250
4251 static int
4252 dissect_dap_ReferralData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4253   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4254                               ReferralData_set, hf_index, ett_dap_ReferralData);
4255
4256   return offset;
4257 }
4258
4259
4260 static const ber_sequence_t T_signedReferral_sequence[] = {
4261   { &hf_dap_referral        , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ReferralData },
4262   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
4263   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
4264   { NULL, 0, 0, 0, NULL }
4265 };
4266
4267 static int
4268 dissect_dap_T_signedReferral(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4269   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4270                                    T_signedReferral_sequence, hf_index, ett_dap_T_signedReferral);
4271
4272   return offset;
4273 }
4274
4275
4276 const value_string dap_Referral_vals[] = {
4277   {   0, "unsignedReferral" },
4278   {   1, "signedReferral" },
4279   { 0, NULL }
4280 };
4281
4282 static const ber_choice_t Referral_choice[] = {
4283   {   0, &hf_dap_unsignedReferral, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ReferralData },
4284   {   1, &hf_dap_signedReferral  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedReferral },
4285   { 0, NULL, 0, 0, 0, NULL }
4286 };
4287
4288 int
4289 dissect_dap_Referral(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4290   offset = dissect_ber_choice(actx, tree, tvb, offset,
4291                                  Referral_choice, hf_index, ett_dap_Referral,
4292                                  NULL);
4293
4294   return offset;
4295 }
4296
4297
4298
4299 static int
4300 dissect_dap_T_spkmInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4301         /* XXX: not yet implemented */
4302
4303
4304   return offset;
4305 }
4306
4307
4308 static const ber_sequence_t SecurityErrorData_set[] = {
4309   { &hf_dap_security_error_problem, BER_CLASS_CON, 0, 0, dissect_dap_SecurityProblem },
4310   { &hf_dap_spkmInfo        , BER_CLASS_CON, 1, 0, dissect_dap_T_spkmInfo },
4311   { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
4312   { &hf_dap_performer       , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
4313   { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
4314   { &hf_dap_notification    , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
4315   { NULL, 0, 0, 0, NULL }
4316 };
4317
4318 static int
4319 dissect_dap_SecurityErrorData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4320   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4321                               SecurityErrorData_set, hf_index, ett_dap_SecurityErrorData);
4322
4323   return offset;
4324 }
4325
4326
4327 static const ber_sequence_t T_signedSecurityError_sequence[] = {
4328   { &hf_dap_securityErrorData, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_SecurityErrorData },
4329   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
4330   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
4331   { NULL, 0, 0, 0, NULL }
4332 };
4333
4334 static int
4335 dissect_dap_T_signedSecurityError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4336   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4337                                    T_signedSecurityError_sequence, hf_index, ett_dap_T_signedSecurityError);
4338
4339   return offset;
4340 }
4341
4342
4343 const value_string dap_SecurityError_vals[] = {
4344   {   0, "unsignedSecurityError" },
4345   {   1, "signedSecurityError" },
4346   { 0, NULL }
4347 };
4348
4349 static const ber_choice_t SecurityError_choice[] = {
4350   {   0, &hf_dap_unsignedSecurityError, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_SecurityErrorData },
4351   {   1, &hf_dap_signedSecurityError, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedSecurityError },
4352   { 0, NULL, 0, 0, 0, NULL }
4353 };
4354
4355 int
4356 dissect_dap_SecurityError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4357   offset = dissect_ber_choice(actx, tree, tvb, offset,
4358                                  SecurityError_choice, hf_index, ett_dap_SecurityError,
4359                                  NULL);
4360
4361   return offset;
4362 }
4363
4364
4365 static const ber_sequence_t ServiceErrorData_set[] = {
4366   { &hf_dap_service_error_problem, BER_CLASS_CON, 0, 0, dissect_dap_ServiceProblem },
4367   { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
4368   { &hf_dap_performer       , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
4369   { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
4370   { &hf_dap_notification    , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
4371   { NULL, 0, 0, 0, NULL }
4372 };
4373
4374 static int
4375 dissect_dap_ServiceErrorData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4376   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4377                               ServiceErrorData_set, hf_index, ett_dap_ServiceErrorData);
4378
4379   return offset;
4380 }
4381
4382
4383 static const ber_sequence_t T_signedServiceError_sequence[] = {
4384   { &hf_dap_serviceError    , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ServiceErrorData },
4385   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
4386   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
4387   { NULL, 0, 0, 0, NULL }
4388 };
4389
4390 static int
4391 dissect_dap_T_signedServiceError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4392   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4393                                    T_signedServiceError_sequence, hf_index, ett_dap_T_signedServiceError);
4394
4395   return offset;
4396 }
4397
4398
4399 const value_string dap_ServiceError_vals[] = {
4400   {   0, "unsignedServiceError" },
4401   {   1, "signedServiceError" },
4402   { 0, NULL }
4403 };
4404
4405 static const ber_choice_t ServiceError_choice[] = {
4406   {   0, &hf_dap_unsignedServiceError, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_ServiceErrorData },
4407   {   1, &hf_dap_signedServiceError, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedServiceError },
4408   { 0, NULL, 0, 0, 0, NULL }
4409 };
4410
4411 int
4412 dissect_dap_ServiceError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4413   offset = dissect_ber_choice(actx, tree, tvb, offset,
4414                                  ServiceError_choice, hf_index, ett_dap_ServiceError,
4415                                  NULL);
4416
4417   return offset;
4418 }
4419
4420
4421 static const value_string dap_UpdateProblem_vals[] = {
4422   {   1, "namingViolation" },
4423   {   2, "objectClassViolation" },
4424   {   3, "notAllowedOnNonLeaf" },
4425   {   4, "notAllowedOnRDN" },
4426   {   5, "entryAlreadyExists" },
4427   {   6, "affectsMultipleDSAs" },
4428   {   7, "objectClassModificationProhibited" },
4429   {   8, "noSuchSuperior" },
4430   {   9, "notAncestor" },
4431   {  10, "parentNotAncestor" },
4432   {  11, "hierarchyRuleViolation" },
4433   {  12, "familyRuleViolation" },
4434   { 0, NULL }
4435 };
4436
4437
4438 static int
4439 dissect_dap_UpdateProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4440   guint32 problem;
4441
4442     offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4443                                                 &problem);
4444
4445
4446   if (check_col(actx->pinfo->cinfo, COL_INFO)) {
4447         col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", val_to_str(problem, dap_UpdateProblem_vals, "UpdateProblem(%d)"));
4448   }
4449
4450
4451   return offset;
4452 }
4453
4454
4455 static const value_string dap_T_attributeInfo_item_vals[] = {
4456   {   0, "attributeType" },
4457   {   1, "attribute" },
4458   { 0, NULL }
4459 };
4460
4461 static const ber_choice_t T_attributeInfo_item_choice[] = {
4462   {   0, &hf_dap_attributeType   , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
4463   {   1, &hf_dap_attribute       , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
4464   { 0, NULL, 0, 0, 0, NULL }
4465 };
4466
4467 static int
4468 dissect_dap_T_attributeInfo_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4469   offset = dissect_ber_choice(actx, tree, tvb, offset,
4470                                  T_attributeInfo_item_choice, hf_index, ett_dap_T_attributeInfo_item,
4471                                  NULL);
4472
4473   return offset;
4474 }
4475
4476
4477 static const ber_sequence_t T_attributeInfo_set_of[1] = {
4478   { &hf_dap_attributeInfo_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_T_attributeInfo_item },
4479 };
4480
4481 static int
4482 dissect_dap_T_attributeInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4483   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
4484                                  T_attributeInfo_set_of, hf_index, ett_dap_T_attributeInfo);
4485
4486   return offset;
4487 }
4488
4489
4490 static const ber_sequence_t UpdateErrorData_set[] = {
4491   { &hf_dap_update_error_problem, BER_CLASS_CON, 0, 0, dissect_dap_UpdateProblem },
4492   { &hf_dap_attributeInfo   , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_T_attributeInfo },
4493   { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
4494   { &hf_dap_performer       , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
4495   { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
4496   { &hf_dap_notification    , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
4497   { NULL, 0, 0, 0, NULL }
4498 };
4499
4500 static int
4501 dissect_dap_UpdateErrorData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4502   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4503                               UpdateErrorData_set, hf_index, ett_dap_UpdateErrorData);
4504
4505   return offset;
4506 }
4507
4508
4509 static const ber_sequence_t T_signedUpdateError_sequence[] = {
4510   { &hf_dap_updateError     , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_UpdateErrorData },
4511   { &hf_dap_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
4512   { &hf_dap_encrypted       , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dap_BIT_STRING },
4513   { NULL, 0, 0, 0, NULL }
4514 };
4515
4516 static int
4517 dissect_dap_T_signedUpdateError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4518   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4519                                    T_signedUpdateError_sequence, hf_index, ett_dap_T_signedUpdateError);
4520
4521   return offset;
4522 }
4523
4524
4525 const value_string dap_UpdateError_vals[] = {
4526   {   0, "unsignedUpdateError" },
4527   {   1, "signedUpdateError" },
4528   { 0, NULL }
4529 };
4530
4531 static const ber_choice_t UpdateError_choice[] = {
4532   {   0, &hf_dap_unsignedUpdateError, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_UpdateErrorData },
4533   {   1, &hf_dap_signedUpdateError, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_T_signedUpdateError },
4534   { 0, NULL, 0, 0, 0, NULL }
4535 };
4536
4537 int
4538 dissect_dap_UpdateError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4539   offset = dissect_ber_choice(actx, tree, tvb, offset,
4540                                  UpdateError_choice, hf_index, ett_dap_UpdateError,
4541                                  NULL);
4542
4543   return offset;
4544 }
4545
4546 /*--- PDUs ---*/
4547
4548 static int dissect_DirectoryBindArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4549   int offset = 0;
4550   asn1_ctx_t asn1_ctx;
4551   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4552   offset = dissect_dap_DirectoryBindArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_DirectoryBindArgument_PDU);
4553   return offset;
4554 }
4555 static int dissect_DirectoryBindResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4556   int offset = 0;
4557   asn1_ctx_t asn1_ctx;
4558   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4559   offset = dissect_dap_DirectoryBindResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_DirectoryBindResult_PDU);
4560   return offset;
4561 }
4562 static int dissect_DirectoryBindError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4563   int offset = 0;
4564   asn1_ctx_t asn1_ctx;
4565   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4566   offset = dissect_dap_DirectoryBindError(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_DirectoryBindError_PDU);
4567   return offset;
4568 }
4569 static int dissect_ReadArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4570   int offset = 0;
4571   asn1_ctx_t asn1_ctx;
4572   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4573   offset = dissect_dap_ReadArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_ReadArgument_PDU);
4574   return offset;
4575 }
4576 static int dissect_ReadResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4577   int offset = 0;
4578   asn1_ctx_t asn1_ctx;
4579   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4580   offset = dissect_dap_ReadResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_ReadResult_PDU);
4581   return offset;
4582 }
4583 static int dissect_CompareArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4584   int offset = 0;
4585   asn1_ctx_t asn1_ctx;
4586   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4587   offset = dissect_dap_CompareArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_CompareArgument_PDU);
4588   return offset;
4589 }
4590 static int dissect_CompareResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4591   int offset = 0;
4592   asn1_ctx_t asn1_ctx;
4593   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4594   offset = dissect_dap_CompareResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_CompareResult_PDU);
4595   return offset;
4596 }
4597 static int dissect_AbandonArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4598   int offset = 0;
4599   asn1_ctx_t asn1_ctx;
4600   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4601   offset = dissect_dap_AbandonArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_AbandonArgument_PDU);
4602   return offset;
4603 }
4604 static int dissect_AbandonResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4605   int offset = 0;
4606   asn1_ctx_t asn1_ctx;
4607   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4608   offset = dissect_dap_AbandonResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_AbandonResult_PDU);
4609   return offset;
4610 }
4611 static int dissect_ListArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4612   int offset = 0;
4613   asn1_ctx_t asn1_ctx;
4614   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4615   offset = dissect_dap_ListArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_ListArgument_PDU);
4616   return offset;
4617 }
4618 static int dissect_ListResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4619   int offset = 0;
4620   asn1_ctx_t asn1_ctx;
4621   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4622   offset = dissect_dap_ListResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_ListResult_PDU);
4623   return offset;
4624 }
4625 static int dissect_SearchArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4626   int offset = 0;
4627   asn1_ctx_t asn1_ctx;
4628   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4629   offset = dissect_dap_SearchArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_SearchArgument_PDU);
4630   return offset;
4631 }
4632 static int dissect_SearchResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4633   int offset = 0;
4634   asn1_ctx_t asn1_ctx;
4635   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4636   offset = dissect_dap_SearchResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_SearchResult_PDU);
4637   return offset;
4638 }
4639 static int dissect_AddEntryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4640   int offset = 0;
4641   asn1_ctx_t asn1_ctx;
4642   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4643   offset = dissect_dap_AddEntryArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_AddEntryArgument_PDU);
4644   return offset;
4645 }
4646 static int dissect_AddEntryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4647   int offset = 0;
4648   asn1_ctx_t asn1_ctx;
4649   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4650   offset = dissect_dap_AddEntryResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_AddEntryResult_PDU);
4651   return offset;
4652 }
4653 static int dissect_RemoveEntryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4654   int offset = 0;
4655   asn1_ctx_t asn1_ctx;
4656   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4657   offset = dissect_dap_RemoveEntryArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_RemoveEntryArgument_PDU);
4658   return offset;
4659 }
4660 static int dissect_RemoveEntryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4661   int offset = 0;
4662   asn1_ctx_t asn1_ctx;
4663   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4664   offset = dissect_dap_RemoveEntryResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_RemoveEntryResult_PDU);
4665   return offset;
4666 }
4667 static int dissect_ModifyEntryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4668   int offset = 0;
4669   asn1_ctx_t asn1_ctx;
4670   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4671   offset = dissect_dap_ModifyEntryArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_ModifyEntryArgument_PDU);
4672   return offset;
4673 }
4674 static int dissect_ModifyEntryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4675   int offset = 0;
4676   asn1_ctx_t asn1_ctx;
4677   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4678   offset = dissect_dap_ModifyEntryResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_ModifyEntryResult_PDU);
4679   return offset;
4680 }
4681 static int dissect_ModifyDNArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4682   int offset = 0;
4683   asn1_ctx_t asn1_ctx;
4684   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4685   offset = dissect_dap_ModifyDNArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_ModifyDNArgument_PDU);
4686   return offset;
4687 }
4688 static int dissect_ModifyDNResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4689   int offset = 0;
4690   asn1_ctx_t asn1_ctx;
4691   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4692   offset = dissect_dap_ModifyDNResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_ModifyDNResult_PDU);
4693   return offset;
4694 }
4695 static int dissect_Abandoned_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4696   int offset = 0;
4697   asn1_ctx_t asn1_ctx;
4698   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4699   offset = dissect_dap_Abandoned(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_Abandoned_PDU);
4700   return offset;
4701 }
4702 static int dissect_AbandonFailedError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4703   int offset = 0;
4704   asn1_ctx_t asn1_ctx;
4705   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4706   offset = dissect_dap_AbandonFailedError(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_AbandonFailedError_PDU);
4707   return offset;
4708 }
4709 static int dissect_AttributeError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4710   int offset = 0;
4711   asn1_ctx_t asn1_ctx;
4712   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4713   offset = dissect_dap_AttributeError(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_AttributeError_PDU);
4714   return offset;
4715 }
4716 static int dissect_NameError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4717   int offset = 0;
4718   asn1_ctx_t asn1_ctx;
4719   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4720   offset = dissect_dap_NameError(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_NameError_PDU);
4721   return offset;
4722 }
4723 static int dissect_Referral_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4724   int offset = 0;
4725   asn1_ctx_t asn1_ctx;
4726   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4727   offset = dissect_dap_Referral(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_Referral_PDU);
4728   return offset;
4729 }
4730 static int dissect_SecurityError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4731   int offset = 0;
4732   asn1_ctx_t asn1_ctx;
4733   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4734   offset = dissect_dap_SecurityError(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_SecurityError_PDU);
4735   return offset;
4736 }
4737 static int dissect_ServiceError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4738   int offset = 0;
4739   asn1_ctx_t asn1_ctx;
4740   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4741   offset = dissect_dap_ServiceError(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_ServiceError_PDU);
4742   return offset;
4743 }
4744 static int dissect_UpdateError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4745   int offset = 0;
4746   asn1_ctx_t asn1_ctx;
4747   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4748   offset = dissect_dap_UpdateError(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_UpdateError_PDU);
4749   return offset;
4750 }
4751
4752
4753 /*--- End of included file: packet-dap-fn.c ---*/
4754 #line 79 "packet-dap-template.c"
4755
4756
4757 /*--- Included file: packet-dap-table11.c ---*/
4758 #line 1 "packet-dap-table11.c"
4759
4760 static const ros_opr_t dap_opr_tab[] = {
4761   /* directoryBind */ 
4762   { op_ros_bind              ,  dissect_DirectoryBindArgument_PDU,      dissect_DirectoryBindResult_PDU }, 
4763   /* read */ 
4764   { id_opcode_read           ,  dissect_ReadArgument_PDU,       dissect_ReadResult_PDU }, 
4765   /* compare */ 
4766   { id_opcode_compare        ,  dissect_CompareArgument_PDU,    dissect_CompareResult_PDU }, 
4767   /* abandon */ 
4768   { id_opcode_abandon        ,  dissect_AbandonArgument_PDU,    dissect_AbandonResult_PDU }, 
4769   /* list */ 
4770   { id_opcode_list           ,  dissect_ListArgument_PDU,       dissect_ListResult_PDU }, 
4771   /* search */ 
4772   { id_opcode_search         ,  dissect_SearchArgument_PDU,     dissect_SearchResult_PDU }, 
4773   /* addEntry */ 
4774   { id_opcode_addEntry       ,  dissect_AddEntryArgument_PDU,   dissect_AddEntryResult_PDU }, 
4775   /* removeEntry */ 
4776   { id_opcode_removeEntry    ,  dissect_RemoveEntryArgument_PDU,        dissect_RemoveEntryResult_PDU }, 
4777   /* modifyEntry */ 
4778   { id_opcode_modifyEntry    ,  dissect_ModifyEntryArgument_PDU,        dissect_ModifyEntryResult_PDU }, 
4779   /* modifyDN */ 
4780   { id_opcode_modifyDN       ,  dissect_ModifyDNArgument_PDU,   dissect_ModifyDNResult_PDU }, 
4781   { 0,                          (new_dissector_t)(-1),  (new_dissector_t)(-1) },
4782 };
4783
4784
4785 /*--- End of included file: packet-dap-table11.c ---*/
4786 #line 81 "packet-dap-template.c"
4787
4788 /*--- Included file: packet-dap-table21.c ---*/
4789 #line 1 "packet-dap-table21.c"
4790
4791 static const ros_err_t dap_err_tab[] = {
4792   /* directoryBindError*/ 
4793   { err_ros_bind,       dissect_DirectoryBindError_PDU },
4794   /* abandoned*/ 
4795   { id_errcode_abandoned,       dissect_Abandoned_PDU },
4796   /* abandonFailed*/ 
4797   { id_errcode_abandonFailed,   dissect_AbandonFailedError_PDU },
4798   /* attributeError*/ 
4799   { id_errcode_attributeError,  dissect_AttributeError_PDU },
4800   /* nameError*/ 
4801   { id_errcode_nameError,       dissect_NameError_PDU },
4802   /* referral*/ 
4803   { id_errcode_referral,        dissect_Referral_PDU },
4804   /* securityError*/ 
4805   { id_errcode_securityError,   dissect_SecurityError_PDU },
4806   /* serviceError*/ 
4807   { id_errcode_serviceError,    dissect_ServiceError_PDU },
4808   /* updateError*/ 
4809   { id_errcode_updateError,     dissect_UpdateError_PDU },
4810   { 0,  (new_dissector_t)(-1) },
4811 };
4812
4813
4814 /*--- End of included file: packet-dap-table21.c ---*/
4815 #line 82 "packet-dap-template.c"
4816
4817 static const ros_info_t dap_ros_info = {
4818   "DAP",
4819   &proto_dap,
4820   &ett_dap,
4821   dap_opr_code_string_vals,
4822   dap_opr_tab,
4823   dap_err_code_string_vals,
4824   dap_err_tab
4825 };
4826
4827
4828 /*--- proto_register_dap -------------------------------------------*/
4829 void proto_register_dap(void) {
4830
4831   /* List of fields */
4832   static hf_register_info hf[] =
4833   {
4834
4835 /*--- Included file: packet-dap-hfarr.c ---*/
4836 #line 1 "packet-dap-hfarr.c"
4837     { &hf_dap_DirectoryBindArgument_PDU,
4838       { "DirectoryBindArgument", "dap.DirectoryBindArgument",
4839         FT_NONE, BASE_NONE, NULL, 0,
4840         "dap.DirectoryBindArgument", HFILL }},
4841     { &hf_dap_DirectoryBindResult_PDU,
4842       { "DirectoryBindResult", "dap.DirectoryBindResult",
4843         FT_NONE, BASE_NONE, NULL, 0,
4844         "dap.DirectoryBindResult", HFILL }},
4845     { &hf_dap_DirectoryBindError_PDU,
4846       { "DirectoryBindError", "dap.DirectoryBindError",
4847         FT_UINT32, BASE_DEC, VALS(dap_DirectoryBindError_vals), 0,
4848         "dap.DirectoryBindError", HFILL }},
4849     { &hf_dap_ReadArgument_PDU,
4850       { "ReadArgument", "dap.ReadArgument",
4851         FT_UINT32, BASE_DEC, VALS(dap_ReadArgument_vals), 0,
4852         "dap.ReadArgument", HFILL }},
4853     { &hf_dap_ReadResult_PDU,
4854       { "ReadResult", "dap.ReadResult",
4855         FT_UINT32, BASE_DEC, VALS(dap_ReadResult_vals), 0,
4856         "dap.ReadResult", HFILL }},
4857     { &hf_dap_CompareArgument_PDU,
4858       { "CompareArgument", "dap.CompareArgument",
4859         FT_UINT32, BASE_DEC, VALS(dap_CompareArgument_vals), 0,
4860         "dap.CompareArgument", HFILL }},
4861     { &hf_dap_CompareResult_PDU,
4862       { "CompareResult", "dap.CompareResult",
4863         FT_UINT32, BASE_DEC, VALS(dap_CompareResult_vals), 0,
4864         "dap.CompareResult", HFILL }},
4865     { &hf_dap_AbandonArgument_PDU,
4866       { "AbandonArgument", "dap.AbandonArgument",
4867         FT_UINT32, BASE_DEC, VALS(dap_AbandonArgument_vals), 0,
4868         "dap.AbandonArgument", HFILL }},
4869     { &hf_dap_AbandonResult_PDU,
4870       { "AbandonResult", "dap.AbandonResult",
4871         FT_UINT32, BASE_DEC, VALS(dap_AbandonResult_vals), 0,
4872         "dap.AbandonResult", HFILL }},
4873     { &hf_dap_ListArgument_PDU,
4874       { "ListArgument", "dap.ListArgument",
4875         FT_UINT32, BASE_DEC, VALS(dap_ListArgument_vals), 0,
4876         "dap.ListArgument", HFILL }},
4877     { &hf_dap_ListResult_PDU,
4878       { "ListResult", "dap.ListResult",
4879         FT_UINT32, BASE_DEC, VALS(dap_ListResult_vals), 0,
4880         "dap.ListResult", HFILL }},
4881     { &hf_dap_SearchArgument_PDU,
4882       { "SearchArgument", "dap.SearchArgument",
4883         FT_UINT32, BASE_DEC, VALS(dap_SearchArgument_vals), 0,
4884         "dap.SearchArgument", HFILL }},
4885     { &hf_dap_SearchResult_PDU,
4886       { "SearchResult", "dap.SearchResult",
4887         FT_UINT32, BASE_DEC, VALS(dap_SearchResult_vals), 0,
4888         "dap.SearchResult", HFILL }},
4889     { &hf_dap_AddEntryArgument_PDU,
4890       { "AddEntryArgument", "dap.AddEntryArgument",
4891         FT_UINT32, BASE_DEC, VALS(dap_AddEntryArgument_vals), 0,
4892         "dap.AddEntryArgument", HFILL }},
4893     { &hf_dap_AddEntryResult_PDU,
4894       { "AddEntryResult", "dap.AddEntryResult",
4895         FT_UINT32, BASE_DEC, VALS(dap_AddEntryResult_vals), 0,
4896         "dap.AddEntryResult", HFILL }},
4897     { &hf_dap_RemoveEntryArgument_PDU,
4898       { "RemoveEntryArgument", "dap.RemoveEntryArgument",
4899         FT_UINT32, BASE_DEC, VALS(dap_RemoveEntryArgument_vals), 0,
4900         "dap.RemoveEntryArgument", HFILL }},
4901     { &hf_dap_RemoveEntryResult_PDU,
4902       { "RemoveEntryResult", "dap.RemoveEntryResult",
4903         FT_UINT32, BASE_DEC, VALS(dap_RemoveEntryResult_vals), 0,
4904         "dap.RemoveEntryResult", HFILL }},
4905     { &hf_dap_ModifyEntryArgument_PDU,
4906       { "ModifyEntryArgument", "dap.ModifyEntryArgument",
4907         FT_UINT32, BASE_DEC, VALS(dap_ModifyEntryArgument_vals), 0,
4908         "dap.ModifyEntryArgument", HFILL }},
4909     { &hf_dap_ModifyEntryResult_PDU,
4910       { "ModifyEntryResult", "dap.ModifyEntryResult",
4911         FT_UINT32, BASE_DEC, VALS(dap_ModifyEntryResult_vals), 0,
4912         "dap.ModifyEntryResult", HFILL }},
4913     { &hf_dap_ModifyDNArgument_PDU,
4914       { "ModifyDNArgument", "dap.ModifyDNArgument",
4915         FT_NONE, BASE_NONE, NULL, 0,
4916         "dap.ModifyDNArgument", HFILL }},
4917     { &hf_dap_ModifyDNResult_PDU,
4918       { "ModifyDNResult", "dap.ModifyDNResult",
4919         FT_UINT32, BASE_DEC, VALS(dap_ModifyDNResult_vals), 0,
4920         "dap.ModifyDNResult", HFILL }},
4921     { &hf_dap_Abandoned_PDU,
4922       { "Abandoned", "dap.Abandoned",
4923         FT_UINT32, BASE_DEC, VALS(dap_Abandoned_vals), 0,
4924         "dap.Abandoned", HFILL }},
4925     { &hf_dap_AbandonFailedError_PDU,
4926       { "AbandonFailedError", "dap.AbandonFailedError",
4927         FT_UINT32, BASE_DEC, VALS(dap_AbandonFailedError_vals), 0,
4928         "dap.AbandonFailedError", HFILL }},
4929     { &hf_dap_AttributeError_PDU,
4930       { "AttributeError", "dap.AttributeError",
4931         FT_UINT32, BASE_DEC, VALS(dap_AttributeError_vals), 0,
4932         "dap.AttributeError", HFILL }},
4933     { &hf_dap_NameError_PDU,
4934       { "NameError", "dap.NameError",
4935         FT_UINT32, BASE_DEC, VALS(dap_NameError_vals), 0,
4936         "dap.NameError", HFILL }},
4937     { &hf_dap_Referral_PDU,
4938       { "Referral", "dap.Referral",
4939         FT_UINT32, BASE_DEC, VALS(dap_Referral_vals), 0,
4940         "dap.Referral", HFILL }},
4941     { &hf_dap_SecurityError_PDU,
4942       { "SecurityError", "dap.SecurityError",
4943         FT_UINT32, BASE_DEC, VALS(dap_SecurityError_vals), 0,
4944         "dap.SecurityError", HFILL }},
4945     { &hf_dap_ServiceError_PDU,
4946       { "ServiceError", "dap.ServiceError",
4947         FT_UINT32, BASE_DEC, VALS(dap_ServiceError_vals), 0,
4948         "dap.ServiceError", HFILL }},
4949     { &hf_dap_UpdateError_PDU,
4950       { "UpdateError", "dap.UpdateError",
4951         FT_UINT32, BASE_DEC, VALS(dap_UpdateError_vals), 0,
4952         "dap.UpdateError", HFILL }},
4953     { &hf_dap_options,
4954       { "options", "dap.options",
4955         FT_BYTES, BASE_HEX, NULL, 0,
4956         "dap.ServiceControlOptions", HFILL }},
4957     { &hf_dap_priority,
4958       { "priority", "dap.priority",
4959         FT_INT32, BASE_DEC, VALS(dap_T_priority_vals), 0,
4960         "dap.T_priority", HFILL }},
4961     { &hf_dap_timeLimit,
4962       { "timeLimit", "dap.timeLimit",
4963         FT_INT32, BASE_DEC, NULL, 0,
4964         "dap.INTEGER", HFILL }},
4965     { &hf_dap_sizeLimit,
4966       { "sizeLimit", "dap.sizeLimit",
4967         FT_INT32, BASE_DEC, NULL, 0,
4968         "dap.INTEGER", HFILL }},
4969     { &hf_dap_scopeOfReferral,
4970       { "scopeOfReferral", "dap.scopeOfReferral",
4971         FT_INT32, BASE_DEC, VALS(dap_T_scopeOfReferral_vals), 0,
4972         "dap.T_scopeOfReferral", HFILL }},
4973     { &hf_dap_attributeSizeLimit,
4974       { "attributeSizeLimit", "dap.attributeSizeLimit",
4975         FT_INT32, BASE_DEC, NULL, 0,
4976         "dap.INTEGER", HFILL }},
4977     { &hf_dap_manageDSAITPlaneRef,
4978       { "manageDSAITPlaneRef", "dap.manageDSAITPlaneRef",
4979         FT_NONE, BASE_NONE, NULL, 0,
4980         "dap.T_manageDSAITPlaneRef", HFILL }},
4981     { &hf_dap_dsaName,
4982       { "dsaName", "dap.dsaName",
4983         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
4984         "dap.Name", HFILL }},
4985     { &hf_dap_agreementID,
4986       { "agreementID", "dap.agreementID",
4987         FT_NONE, BASE_NONE, NULL, 0,
4988         "disp.AgreementID", HFILL }},
4989     { &hf_dap_serviceType,
4990       { "serviceType", "dap.serviceType",
4991         FT_OID, BASE_NONE, NULL, 0,
4992         "dap.OBJECT_IDENTIFIER", HFILL }},
4993     { &hf_dap_userClass,
4994       { "userClass", "dap.userClass",
4995         FT_INT32, BASE_DEC, NULL, 0,
4996         "dap.INTEGER", HFILL }},
4997     { &hf_dap_attributes,
4998       { "attributes", "dap.attributes",
4999         FT_UINT32, BASE_DEC, VALS(dap_T_attributes_vals), 0,
5000         "dap.T_attributes", HFILL }},
5001     { &hf_dap_allUserAttributes,
5002       { "allUserAttributes", "dap.allUserAttributes",
5003         FT_NONE, BASE_NONE, NULL, 0,
5004         "dap.NULL", HFILL }},
5005     { &hf_dap_select,
5006       { "select", "dap.select",
5007         FT_UINT32, BASE_DEC, NULL, 0,
5008         "dap.SET_OF_AttributeType", HFILL }},
5009     { &hf_dap_select_item,
5010       { "select", "dap.select_item",
5011         FT_OID, BASE_NONE, NULL, 0,
5012         "x509if.AttributeType", HFILL }},
5013     { &hf_dap_infoTypes,
5014       { "infoTypes", "dap.infoTypes",
5015         FT_INT32, BASE_DEC, VALS(dap_T_infoTypes_vals), 0,
5016         "dap.T_infoTypes", HFILL }},
5017     { &hf_dap_extraAttributes,
5018       { "extraAttributes", "dap.extraAttributes",
5019         FT_UINT32, BASE_DEC, VALS(dap_T_extraAttributes_vals), 0,
5020         "dap.T_extraAttributes", HFILL }},
5021     { &hf_dap_allOperationalAttributes,
5022       { "allOperationalAttributes", "dap.allOperationalAttributes",
5023         FT_NONE, BASE_NONE, NULL, 0,
5024         "dap.NULL", HFILL }},
5025     { &hf_dap_extraSelect,
5026       { "select", "dap.select",
5027         FT_UINT32, BASE_DEC, NULL, 0,
5028         "dap.SET_SIZE_1_MAX_OF_AttributeType", HFILL }},
5029     { &hf_dap_extraSelect_item,
5030       { "select", "dap.select_item",
5031         FT_OID, BASE_NONE, NULL, 0,
5032         "x509if.AttributeType", HFILL }},
5033     { &hf_dap_contextSelection,
5034       { "contextSelection", "dap.contextSelection",
5035         FT_UINT32, BASE_DEC, VALS(dap_ContextSelection_vals), 0,
5036         "dap.ContextSelection", HFILL }},
5037     { &hf_dap_returnContexts,
5038       { "returnContexts", "dap.returnContexts",
5039         FT_BOOLEAN, 8, NULL, 0,
5040         "dap.BOOLEAN", HFILL }},
5041     { &hf_dap_familyReturn,
5042       { "familyReturn", "dap.familyReturn",
5043         FT_NONE, BASE_NONE, NULL, 0,
5044         "dap.FamilyReturn", HFILL }},
5045     { &hf_dap_allContexts,
5046       { "allContexts", "dap.allContexts",
5047         FT_NONE, BASE_NONE, NULL, 0,
5048         "dap.NULL", HFILL }},
5049     { &hf_dap_selectedContexts,
5050       { "selectedContexts", "dap.selectedContexts",
5051         FT_UINT32, BASE_DEC, NULL, 0,
5052         "dap.SET_SIZE_1_MAX_OF_TypeAndContextAssertion", HFILL }},
5053     { &hf_dap_selectedContexts_item,
5054       { "selectedContexts", "dap.selectedContexts_item",
5055         FT_NONE, BASE_NONE, NULL, 0,
5056         "dap.TypeAndContextAssertion", HFILL }},
5057     { &hf_dap_type,
5058       { "type", "dap.type",
5059         FT_OID, BASE_NONE, NULL, 0,
5060         "x509if.AttributeType", HFILL }},
5061     { &hf_dap_contextAssertions,
5062       { "contextAssertions", "dap.contextAssertions",
5063         FT_UINT32, BASE_DEC, VALS(dap_T_contextAssertions_vals), 0,
5064         "dap.T_contextAssertions", HFILL }},
5065     { &hf_dap_preference,
5066       { "preference", "dap.preference",
5067         FT_UINT32, BASE_DEC, NULL, 0,
5068         "dap.SEQUENCE_OF_ContextAssertion", HFILL }},
5069     { &hf_dap_preference_item,
5070       { "preference", "dap.preference_item",
5071         FT_NONE, BASE_NONE, NULL, 0,
5072         "x509if.ContextAssertion", HFILL }},
5073     { &hf_dap_all,
5074       { "all", "dap.all",
5075         FT_UINT32, BASE_DEC, NULL, 0,
5076         "dap.SET_OF_ContextAssertion", HFILL }},
5077     { &hf_dap_all_item,
5078       { "all", "dap.all_item",
5079         FT_NONE, BASE_NONE, NULL, 0,
5080         "x509if.ContextAssertion", HFILL }},
5081     { &hf_dap_memberSelect,
5082       { "memberSelect", "dap.memberSelect",
5083         FT_UINT32, BASE_DEC, VALS(dap_T_memberSelect_vals), 0,
5084         "dap.T_memberSelect", HFILL }},
5085     { &hf_dap_familySelect,
5086       { "familySelect", "dap.familySelect",
5087         FT_UINT32, BASE_DEC, NULL, 0,
5088         "dap.T_familySelect", HFILL }},
5089     { &hf_dap_familySelect_item,
5090       { "familySelect", "dap.familySelect_item",
5091         FT_OID, BASE_NONE, NULL, 0,
5092         "dap.OBJECT_IDENTIFIER", HFILL }},
5093     { &hf_dap_name,
5094       { "name", "dap.name",
5095         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
5096         "dap.Name", HFILL }},
5097     { &hf_dap_fromEntry,
5098       { "fromEntry", "dap.fromEntry",
5099         FT_BOOLEAN, 8, NULL, 0,
5100         "dap.BOOLEAN", HFILL }},
5101     { &hf_dap_entry_information,
5102       { "information", "dap.information",
5103         FT_UINT32, BASE_DEC, NULL, 0,
5104         "dap.T_entry_information", HFILL }},
5105     { &hf_dap_entry_information_item,
5106       { "information", "dap.information_item",
5107         FT_UINT32, BASE_DEC, VALS(dap_EntryInformationItem_vals), 0,
5108         "dap.EntryInformationItem", HFILL }},
5109     { &hf_dap_attributeType,
5110       { "attributeType", "dap.attributeType",
5111         FT_OID, BASE_NONE, NULL, 0,
5112         "x509if.AttributeType", HFILL }},
5113     { &hf_dap_attribute,
5114       { "attribute", "dap.attribute",
5115         FT_NONE, BASE_NONE, NULL, 0,
5116         "x509if.Attribute", HFILL }},
5117     { &hf_dap_incompleteEntry,
5118       { "incompleteEntry", "dap.incompleteEntry",
5119         FT_BOOLEAN, 8, NULL, 0,
5120         "dap.BOOLEAN", HFILL }},
5121     { &hf_dap_partialName,
5122       { "partialName", "dap.partialName",
5123         FT_BOOLEAN, 8, NULL, 0,
5124         "dap.BOOLEAN", HFILL }},
5125     { &hf_dap_derivedEntry,
5126       { "derivedEntry", "dap.derivedEntry",
5127         FT_BOOLEAN, 8, NULL, 0,
5128         "dap.BOOLEAN", HFILL }},
5129     { &hf_dap_family_class,
5130       { "family-class", "dap.family_class",
5131         FT_OID, BASE_NONE, NULL, 0,
5132         "dap.OBJECT_IDENTIFIER", HFILL }},
5133     { &hf_dap_familyEntries,
5134       { "familyEntries", "dap.familyEntries",
5135         FT_UINT32, BASE_DEC, NULL, 0,
5136         "dap.SEQUENCE_OF_FamilyEntry", HFILL }},
5137     { &hf_dap_familyEntries_item,
5138       { "familyEntries", "dap.familyEntries_item",
5139         FT_NONE, BASE_NONE, NULL, 0,
5140         "dap.FamilyEntry", HFILL }},
5141     { &hf_dap_rdn,
5142       { "rdn", "dap.rdn",
5143         FT_UINT32, BASE_DEC, NULL, 0,
5144         "x509if.RelativeDistinguishedName", HFILL }},
5145     { &hf_dap_family_information,
5146       { "information", "dap.information",
5147         FT_UINT32, BASE_DEC, NULL, 0,
5148         "dap.FamilyInformation", HFILL }},
5149     { &hf_dap_family_information_item,
5150       { "information", "dap.information_item",
5151         FT_UINT32, BASE_DEC, VALS(dap_T_family_information_item_vals), 0,
5152         "dap.T_family_information_item", HFILL }},
5153     { &hf_dap_family_info,
5154       { "family-info", "dap.family_info",
5155         FT_UINT32, BASE_DEC, NULL, 0,
5156         "dap.SEQUENCE_SIZE_1_MAX_OF_FamilyEntries", HFILL }},
5157     { &hf_dap_family_info_item,
5158       { "family-info", "dap.family_info_item",
5159         FT_NONE, BASE_NONE, NULL, 0,
5160         "dap.FamilyEntries", HFILL }},
5161     { &hf_dap_filter_item,
5162       { "item", "dap.item",
5163         FT_UINT32, BASE_DEC, VALS(dap_FilterItem_vals), 0,
5164         "dap.FilterItem", HFILL }},
5165     { &hf_dap_and,
5166       { "and", "dap.and",
5167         FT_UINT32, BASE_DEC, NULL, 0,
5168         "dap.SetOfFilter", HFILL }},
5169     { &hf_dap_or,
5170       { "or", "dap.or",
5171         FT_UINT32, BASE_DEC, NULL, 0,
5172         "dap.SetOfFilter", HFILL }},
5173     { &hf_dap_not,
5174       { "not", "dap.not",
5175         FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
5176         "dap.Filter", HFILL }},
5177     { &hf_dap_SetOfFilter_item,
5178       { "SetOfFilter", "dap.SetOfFilter_item",
5179         FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
5180         "dap.Filter", HFILL }},
5181     { &hf_dap_equality,
5182       { "equality", "dap.equality",
5183         FT_NONE, BASE_NONE, NULL, 0,
5184         "x509if.AttributeValueAssertion", HFILL }},
5185     { &hf_dap_substrings,
5186       { "substrings", "dap.substrings",
5187         FT_NONE, BASE_NONE, NULL, 0,
5188         "dap.T_substrings", HFILL }},
5189     { &hf_dap_sunstringType,
5190       { "type", "dap.type",
5191         FT_OID, BASE_NONE, NULL, 0,
5192         "dap.OBJECT_IDENTIFIER", HFILL }},
5193     { &hf_dap_strings,
5194       { "strings", "dap.strings",
5195         FT_UINT32, BASE_DEC, NULL, 0,
5196         "dap.T_strings", HFILL }},
5197     { &hf_dap_strings_item,
5198       { "strings", "dap.strings_item",
5199         FT_UINT32, BASE_DEC, VALS(dap_T_strings_item_vals), 0,
5200         "dap.T_strings_item", HFILL }},
5201     { &hf_dap_initial,
5202       { "initial", "dap.initial",
5203         FT_NONE, BASE_NONE, NULL, 0,
5204         "dap.T_initial", HFILL }},
5205     { &hf_dap_any,
5206       { "any", "dap.any",
5207         FT_NONE, BASE_NONE, NULL, 0,
5208         "dap.T_any", HFILL }},
5209     { &hf_dap_final,
5210       { "final", "dap.final",
5211         FT_NONE, BASE_NONE, NULL, 0,
5212         "dap.T_final", HFILL }},
5213     { &hf_dap_control,
5214       { "control", "dap.control",
5215         FT_NONE, BASE_NONE, NULL, 0,
5216         "x509if.Attribute", HFILL }},
5217     { &hf_dap_greaterOrEqual,
5218       { "greaterOrEqual", "dap.greaterOrEqual",
5219         FT_NONE, BASE_NONE, NULL, 0,
5220         "x509if.AttributeValueAssertion", HFILL }},
5221     { &hf_dap_lessOrEqual,
5222       { "lessOrEqual", "dap.lessOrEqual",
5223         FT_NONE, BASE_NONE, NULL, 0,
5224         "x509if.AttributeValueAssertion", HFILL }},
5225     { &hf_dap_present,
5226       { "present", "dap.present",
5227         FT_OID, BASE_NONE, NULL, 0,
5228         "x509if.AttributeType", HFILL }},
5229     { &hf_dap_approximateMatch,
5230       { "approximateMatch", "dap.approximateMatch",
5231         FT_NONE, BASE_NONE, NULL, 0,
5232         "x509if.AttributeValueAssertion", HFILL }},
5233     { &hf_dap_extensibleMatch,
5234       { "extensibleMatch", "dap.extensibleMatch",
5235         FT_NONE, BASE_NONE, NULL, 0,
5236         "dap.MatchingRuleAssertion", HFILL }},
5237     { &hf_dap_contextPresent,
5238       { "contextPresent", "dap.contextPresent",
5239         FT_NONE, BASE_NONE, NULL, 0,
5240         "x509if.AttributeTypeAssertion", HFILL }},
5241     { &hf_dap_matchingRule,
5242       { "matchingRule", "dap.matchingRule",
5243         FT_UINT32, BASE_DEC, NULL, 0,
5244         "dap.T_matchingRule", HFILL }},
5245     { &hf_dap_matchingRule_item,
5246       { "matchingRule", "dap.matchingRule_item",
5247         FT_OID, BASE_NONE, NULL, 0,
5248         "dap.OBJECT_IDENTIFIER", HFILL }},
5249     { &hf_dap_matchValue,
5250       { "matchValue", "dap.matchValue",
5251         FT_NONE, BASE_NONE, NULL, 0,
5252         "dap.T_matchValue", HFILL }},
5253     { &hf_dap_dnAttributes,
5254       { "dnAttributes", "dap.dnAttributes",
5255         FT_BOOLEAN, 8, NULL, 0,
5256         "dap.BOOLEAN", HFILL }},
5257     { &hf_dap_newRequest,
5258       { "newRequest", "dap.newRequest",
5259         FT_NONE, BASE_NONE, NULL, 0,
5260         "dap.T_newRequest", HFILL }},
5261     { &hf_dap_pageSize,
5262       { "pageSize", "dap.pageSize",
5263         FT_INT32, BASE_DEC, NULL, 0,
5264         "dap.INTEGER", HFILL }},
5265     { &hf_dap_sortKeys,
5266       { "sortKeys", "dap.sortKeys",
5267         FT_UINT32, BASE_DEC, NULL, 0,
5268         "dap.SEQUENCE_SIZE_1_MAX_OF_SortKey", HFILL }},
5269     { &hf_dap_sortKeys_item,
5270       { "sortKeys", "dap.sortKeys_item",
5271         FT_NONE, BASE_NONE, NULL, 0,
5272         "dap.SortKey", HFILL }},
5273     { &hf_dap_reverse,
5274       { "reverse", "dap.reverse",
5275         FT_BOOLEAN, 8, NULL, 0,
5276         "dap.BOOLEAN", HFILL }},
5277     { &hf_dap_unmerged,
5278       { "unmerged", "dap.unmerged",
5279         FT_BOOLEAN, 8, NULL, 0,
5280         "dap.BOOLEAN", HFILL }},
5281     { &hf_dap_pagedResultsQueryReference,
5282       { "queryReference", "dap.queryReference",
5283         FT_BYTES, BASE_HEX, NULL, 0,
5284         "dap.T_pagedResultsQueryReference", HFILL }},
5285     { &hf_dap_orderingRule,
5286       { "orderingRule", "dap.orderingRule",
5287         FT_OID, BASE_NONE, NULL, 0,
5288         "dap.OBJECT_IDENTIFIER", HFILL }},
5289     { &hf_dap_certification_path,
5290       { "certification-path", "dap.certification_path",
5291         FT_NONE, BASE_NONE, NULL, 0,
5292         "x509af.CertificationPath", HFILL }},
5293     { &hf_dap_distinguished_name,
5294       { "name", "dap.name",
5295         FT_UINT32, BASE_DEC, NULL, 0,
5296         "x509if.DistinguishedName", HFILL }},
5297     { &hf_dap_time,
5298       { "time", "dap.time",
5299         FT_UINT32, BASE_DEC, VALS(dap_Time_vals), 0,
5300         "dap.Time", HFILL }},
5301     { &hf_dap_random,
5302       { "random", "dap.random",
5303         FT_BYTES, BASE_HEX, NULL, 0,
5304         "dap.BIT_STRING", HFILL }},
5305     { &hf_dap_target,
5306       { "target", "dap.target",
5307         FT_INT32, BASE_DEC, VALS(dap_ProtectionRequest_vals), 0,
5308         "dap.ProtectionRequest", HFILL }},
5309     { &hf_dap_response,
5310       { "response", "dap.response",
5311         FT_BYTES, BASE_HEX, NULL, 0,
5312         "dap.BIT_STRING", HFILL }},
5313     { &hf_dap_operationCode,
5314       { "operationCode", "dap.operationCode",
5315         FT_UINT32, BASE_DEC, VALS(ros_Code_vals), 0,
5316         "ros.Code", HFILL }},
5317     { &hf_dap_attributeCertificationPath,
5318       { "attributeCertificationPath", "dap.attributeCertificationPath",
5319         FT_NONE, BASE_NONE, NULL, 0,
5320         "x509af.AttributeCertificationPath", HFILL }},
5321     { &hf_dap_errorProtection,
5322       { "errorProtection", "dap.errorProtection",
5323         FT_INT32, BASE_DEC, VALS(dap_ErrorProtectionRequest_vals), 0,
5324         "dap.ErrorProtectionRequest", HFILL }},
5325     { &hf_dap_errorCode,
5326       { "errorCode", "dap.errorCode",
5327         FT_UINT32, BASE_DEC, VALS(ros_Code_vals), 0,
5328         "ros.Code", HFILL }},
5329     { &hf_dap_utcTime,
5330       { "utcTime", "dap.utcTime",
5331         FT_STRING, BASE_NONE, NULL, 0,
5332         "dap.UTCTime", HFILL }},
5333     { &hf_dap_generalizedTime,
5334       { "generalizedTime", "dap.generalizedTime",
5335         FT_STRING, BASE_NONE, NULL, 0,
5336         "dap.GeneralizedTime", HFILL }},
5337     { &hf_dap_credentials,
5338       { "credentials", "dap.credentials",
5339         FT_UINT32, BASE_DEC, VALS(dap_Credentials_vals), 0,
5340         "dap.Credentials", HFILL }},
5341     { &hf_dap_versions,
5342       { "versions", "dap.versions",
5343         FT_BYTES, BASE_HEX, NULL, 0,
5344         "dap.Versions", HFILL }},
5345     { &hf_dap_simple,
5346       { "simple", "dap.simple",
5347         FT_NONE, BASE_NONE, NULL, 0,
5348         "dap.SimpleCredentials", HFILL }},
5349     { &hf_dap_strong,
5350       { "strong", "dap.strong",
5351         FT_NONE, BASE_NONE, NULL, 0,
5352         "dap.StrongCredentials", HFILL }},
5353     { &hf_dap_externalProcedure,
5354       { "externalProcedure", "dap.externalProcedure",
5355         FT_NONE, BASE_NONE, NULL, 0,
5356         "dap.EXTERNAL", HFILL }},
5357     { &hf_dap_spkm,
5358       { "spkm", "dap.spkm",
5359         FT_UINT32, BASE_DEC, VALS(dap_SpkmCredentials_vals), 0,
5360         "dap.SpkmCredentials", HFILL }},
5361     { &hf_dap_validity,
5362       { "validity", "dap.validity",
5363         FT_NONE, BASE_NONE, NULL, 0,
5364         "dap.T_validity", HFILL }},
5365     { &hf_dap_time1,
5366       { "time1", "dap.time1",
5367         FT_UINT32, BASE_DEC, VALS(dap_T_time1_vals), 0,
5368         "dap.T_time1", HFILL }},
5369     { &hf_dap_utc,
5370       { "utc", "dap.utc",
5371         FT_STRING, BASE_NONE, NULL, 0,
5372         "dap.UTCTime", HFILL }},
5373     { &hf_dap_gt,
5374       { "gt", "dap.gt",
5375         FT_STRING, BASE_NONE, NULL, 0,
5376         "dap.GeneralizedTime", HFILL }},
5377     { &hf_dap_time2,
5378       { "time2", "dap.time2",
5379         FT_UINT32, BASE_DEC, VALS(dap_T_time2_vals), 0,
5380         "dap.T_time2", HFILL }},
5381     { &hf_dap_random1,
5382       { "random1", "dap.random1",
5383         FT_BYTES, BASE_HEX, NULL, 0,
5384         "dap.BIT_STRING", HFILL }},
5385     { &hf_dap_random2,
5386       { "random2", "dap.random2",
5387         FT_BYTES, BASE_HEX, NULL, 0,
5388         "dap.BIT_STRING", HFILL }},
5389     { &hf_dap_password,
5390       { "password", "dap.password",
5391         FT_UINT32, BASE_DEC, VALS(dap_T_password_vals), 0,
5392         "dap.T_password", HFILL }},
5393     { &hf_dap_unprotected,
5394       { "unprotected", "dap.unprotected",
5395         FT_BYTES, BASE_HEX, NULL, 0,
5396         "dap.OCTET_STRING", HFILL }},
5397     { &hf_dap_protected,
5398       { "protected", "dap.protected",
5399         FT_NONE, BASE_NONE, NULL, 0,
5400         "dap.T_protected", HFILL }},
5401     { &hf_dap_protectedPassword,
5402       { "protectedPassword", "dap.protectedPassword",
5403         FT_BYTES, BASE_HEX, NULL, 0,
5404         "dap.OCTET_STRING", HFILL }},
5405     { &hf_dap_algorithmIdentifier,
5406       { "algorithmIdentifier", "dap.algorithmIdentifier",
5407         FT_NONE, BASE_NONE, NULL, 0,
5408         "x509af.AlgorithmIdentifier", HFILL }},
5409     { &hf_dap_encrypted,
5410       { "encrypted", "dap.encrypted",
5411         FT_BYTES, BASE_HEX, NULL, 0,
5412         "dap.BIT_STRING", HFILL }},
5413     { &hf_dap_bind_token,
5414       { "bind-token", "dap.bind_token",
5415         FT_NONE, BASE_NONE, NULL, 0,
5416         "dap.Token", HFILL }},
5417     { &hf_dap_req,
5418       { "req", "dap.req",
5419         FT_NONE, BASE_NONE, NULL, 0,
5420         "dap.T_req", HFILL }},
5421     { &hf_dap_rep,
5422       { "rep", "dap.rep",
5423         FT_NONE, BASE_NONE, NULL, 0,
5424         "dap.T_rep", HFILL }},
5425     { &hf_dap_algorithm,
5426       { "algorithm", "dap.algorithm",
5427         FT_NONE, BASE_NONE, NULL, 0,
5428         "x509af.AlgorithmIdentifier", HFILL }},
5429     { &hf_dap_utctime,
5430       { "time", "dap.time",
5431         FT_STRING, BASE_NONE, NULL, 0,
5432         "dap.UTCTime", HFILL }},
5433     { &hf_dap_bindIntAlgorithm,
5434       { "bindIntAlgorithm", "dap.bindIntAlgorithm",
5435         FT_UINT32, BASE_DEC, NULL, 0,
5436         "dap.SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier", HFILL }},
5437     { &hf_dap_bindIntAlgorithm_item,
5438       { "bindIntAlgorithm", "dap.bindIntAlgorithm_item",
5439         FT_NONE, BASE_NONE, NULL, 0,
5440         "x509af.AlgorithmIdentifier", HFILL }},
5441     { &hf_dap_bindIntKeyInfo,
5442       { "bindIntKeyInfo", "dap.bindIntKeyInfo",
5443         FT_BYTES, BASE_HEX, NULL, 0,
5444         "dap.BindKeyInfo", HFILL }},
5445     { &hf_dap_bindConfAlgorithm,
5446       { "bindConfAlgorithm", "dap.bindConfAlgorithm",
5447         FT_UINT32, BASE_DEC, NULL, 0,
5448         "dap.SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier", HFILL }},
5449     { &hf_dap_bindConfAlgorithm_item,
5450       { "bindConfAlgorithm", "dap.bindConfAlgorithm_item",
5451         FT_NONE, BASE_NONE, NULL, 0,
5452         "x509af.AlgorithmIdentifier", HFILL }},
5453     { &hf_dap_bindConfKeyInfo,
5454       { "bindConfKeyInfo", "dap.bindConfKeyInfo",
5455         FT_BYTES, BASE_HEX, NULL, 0,
5456         "dap.BindKeyInfo", HFILL }},
5457     { &hf_dap_token_data,
5458       { "token-data", "dap.token_data",
5459         FT_NONE, BASE_NONE, NULL, 0,
5460         "dap.TokenData", HFILL }},
5461     { &hf_dap_algorithm_identifier,
5462       { "algorithm-identifier", "dap.algorithm_identifier",
5463         FT_NONE, BASE_NONE, NULL, 0,
5464         "x509af.AlgorithmIdentifier", HFILL }},
5465     { &hf_dap_unsignedDirectoryBindError,
5466       { "unsignedDirectoryBindError", "dap.unsignedDirectoryBindError",
5467         FT_NONE, BASE_NONE, NULL, 0,
5468         "dap.DirectoryBindErrorData", HFILL }},
5469     { &hf_dap_signedDirectoryBindError,
5470       { "signedDirectoryBindError", "dap.signedDirectoryBindError",
5471         FT_NONE, BASE_NONE, NULL, 0,
5472         "dap.T_signedDirectoryBindError", HFILL }},
5473     { &hf_dap_directoryBindError,
5474       { "directoryBindError", "dap.directoryBindError",
5475         FT_NONE, BASE_NONE, NULL, 0,
5476         "dap.DirectoryBindErrorData", HFILL }},
5477     { &hf_dap_error,
5478       { "error", "dap.error",
5479         FT_UINT32, BASE_DEC, VALS(dap_T_error_vals), 0,
5480         "dap.T_error", HFILL }},
5481     { &hf_dap_serviceProblem,
5482       { "serviceError", "dap.serviceError",
5483         FT_INT32, BASE_DEC, VALS(dap_ServiceProblem_vals), 0,
5484         "dap.ServiceProblem", HFILL }},
5485     { &hf_dap_securityProblem,
5486       { "securityError", "dap.securityError",
5487         FT_INT32, BASE_DEC, VALS(dap_SecurityProblem_vals), 0,
5488         "dap.SecurityProblem", HFILL }},
5489     { &hf_dap_object,
5490       { "object", "dap.object",
5491         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
5492         "dap.Name", HFILL }},
5493     { &hf_dap_selection,
5494       { "selection", "dap.selection",
5495         FT_NONE, BASE_NONE, NULL, 0,
5496         "dap.EntryInformationSelection", HFILL }},
5497     { &hf_dap_modifyRightsRequest,
5498       { "modifyRightsRequest", "dap.modifyRightsRequest",
5499         FT_BOOLEAN, 8, NULL, 0,
5500         "dap.BOOLEAN", HFILL }},
5501     { &hf_dap_serviceControls,
5502       { "serviceControls", "dap.serviceControls",
5503         FT_NONE, BASE_NONE, NULL, 0,
5504         "dap.ServiceControls", HFILL }},
5505     { &hf_dap_securityParameters,
5506       { "securityParameters", "dap.securityParameters",
5507         FT_NONE, BASE_NONE, NULL, 0,
5508         "dap.SecurityParameters", HFILL }},
5509     { &hf_dap_requestor,
5510       { "requestor", "dap.requestor",
5511         FT_UINT32, BASE_DEC, NULL, 0,
5512         "x509if.DistinguishedName", HFILL }},
5513     { &hf_dap_operationProgress,
5514       { "operationProgress", "dap.operationProgress",
5515         FT_NONE, BASE_NONE, NULL, 0,
5516         "dsp.OperationProgress", HFILL }},
5517     { &hf_dap_aliasedRDNs,
5518       { "aliasedRDNs", "dap.aliasedRDNs",
5519         FT_INT32, BASE_DEC, NULL, 0,
5520         "dap.INTEGER", HFILL }},
5521     { &hf_dap_criticalExtensions,
5522       { "criticalExtensions", "dap.criticalExtensions",
5523         FT_BYTES, BASE_HEX, NULL, 0,
5524         "dap.BIT_STRING", HFILL }},
5525     { &hf_dap_referenceType,
5526       { "referenceType", "dap.referenceType",
5527         FT_UINT32, BASE_DEC, VALS(dsp_ReferenceType_vals), 0,
5528         "dsp.ReferenceType", HFILL }},
5529     { &hf_dap_entryOnly,
5530       { "entryOnly", "dap.entryOnly",
5531         FT_BOOLEAN, 8, NULL, 0,
5532         "dap.BOOLEAN", HFILL }},
5533     { &hf_dap_nameResolveOnMaster,
5534       { "nameResolveOnMaster", "dap.nameResolveOnMaster",
5535         FT_BOOLEAN, 8, NULL, 0,
5536         "dap.BOOLEAN", HFILL }},
5537     { &hf_dap_operationContexts,
5538       { "operationContexts", "dap.operationContexts",
5539         FT_UINT32, BASE_DEC, VALS(dap_ContextSelection_vals), 0,
5540         "dap.ContextSelection", HFILL }},
5541     { &hf_dap_familyGrouping,
5542       { "familyGrouping", "dap.familyGrouping",
5543         FT_UINT32, BASE_DEC, VALS(dap_FamilyGrouping_vals), 0,
5544         "dap.FamilyGrouping", HFILL }},
5545     { &hf_dap_rdnSequence,
5546       { "rdnSequence", "dap.rdnSequence",
5547         FT_UINT32, BASE_DEC, NULL, 0,
5548         "x509if.RDNSequence", HFILL }},
5549     { &hf_dap_unsignedReadArgument,
5550       { "unsignedReadArgument", "dap.unsignedReadArgument",
5551         FT_NONE, BASE_NONE, NULL, 0,
5552         "dap.ReadArgumentData", HFILL }},
5553     { &hf_dap_signedReadArgument,
5554       { "signedReadArgument", "dap.signedReadArgument",
5555         FT_NONE, BASE_NONE, NULL, 0,
5556         "dap.T_signedReadArgument", HFILL }},
5557     { &hf_dap_readArgument,
5558       { "readArgument", "dap.readArgument",
5559         FT_NONE, BASE_NONE, NULL, 0,
5560         "dap.ReadArgumentData", HFILL }},
5561     { &hf_dap_entry,
5562       { "entry", "dap.entry",
5563         FT_NONE, BASE_NONE, NULL, 0,
5564         "dap.EntryInformation", HFILL }},
5565     { &hf_dap_modifyRights,
5566       { "modifyRights", "dap.modifyRights",
5567         FT_UINT32, BASE_DEC, NULL, 0,
5568         "dap.ModifyRights", HFILL }},
5569     { &hf_dap_performer,
5570       { "performer", "dap.performer",
5571         FT_UINT32, BASE_DEC, NULL, 0,
5572         "x509if.DistinguishedName", HFILL }},
5573     { &hf_dap_aliasDereferenced,
5574       { "aliasDereferenced", "dap.aliasDereferenced",
5575         FT_BOOLEAN, 8, NULL, 0,
5576         "dap.BOOLEAN", HFILL }},
5577     { &hf_dap_notification,
5578       { "notification", "dap.notification",
5579         FT_UINT32, BASE_DEC, NULL, 0,
5580         "dap.SEQUENCE_SIZE_1_MAX_OF_Attribute", HFILL }},
5581     { &hf_dap_notification_item,
5582       { "notification", "dap.notification_item",
5583         FT_NONE, BASE_NONE, NULL, 0,
5584         "x509if.Attribute", HFILL }},
5585     { &hf_dap_unsignedReadResult,
5586       { "unsignedReadResult", "dap.unsignedReadResult",
5587         FT_NONE, BASE_NONE, NULL, 0,
5588         "dap.ReadResultData", HFILL }},
5589     { &hf_dap_signedReadResult,
5590       { "signedReadResult", "dap.signedReadResult",
5591         FT_NONE, BASE_NONE, NULL, 0,
5592         "dap.T_signedReadResult", HFILL }},
5593     { &hf_dap_readResult,
5594       { "readResult", "dap.readResult",
5595         FT_NONE, BASE_NONE, NULL, 0,
5596         "dap.ReadResultData", HFILL }},
5597     { &hf_dap_ModifyRights_item,
5598       { "ModifyRights", "dap.ModifyRights_item",
5599         FT_NONE, BASE_NONE, NULL, 0,
5600         "dap.ModifyRights_item", HFILL }},
5601     { &hf_dap_item,
5602       { "item", "dap.item",
5603         FT_UINT32, BASE_DEC, VALS(dap_T_item_vals), 0,
5604         "dap.T_item", HFILL }},
5605     { &hf_dap_item_entry,
5606       { "entry", "dap.entry",
5607         FT_NONE, BASE_NONE, NULL, 0,
5608         "dap.NULL", HFILL }},
5609     { &hf_dap_attribute_type,
5610       { "attribute", "dap.attribute",
5611         FT_OID, BASE_NONE, NULL, 0,
5612         "x509if.AttributeType", HFILL }},
5613     { &hf_dap_value_assertion,
5614       { "value", "dap.value",
5615         FT_NONE, BASE_NONE, NULL, 0,
5616         "x509if.AttributeValueAssertion", HFILL }},
5617     { &hf_dap_permission,
5618       { "permission", "dap.permission",
5619         FT_BYTES, BASE_HEX, NULL, 0,
5620         "dap.T_permission", HFILL }},
5621     { &hf_dap_purported,
5622       { "purported", "dap.purported",
5623         FT_NONE, BASE_NONE, NULL, 0,
5624         "x509if.AttributeValueAssertion", HFILL }},
5625     { &hf_dap_unsignedCompareArgument,
5626       { "unsignedCompareArgument", "dap.unsignedCompareArgument",
5627         FT_NONE, BASE_NONE, NULL, 0,
5628         "dap.CompareArgumentData", HFILL }},
5629     { &hf_dap_signedCompareArgument,
5630       { "signedCompareArgument", "dap.signedCompareArgument",
5631         FT_NONE, BASE_NONE, NULL, 0,
5632         "dap.T_signedCompareArgument", HFILL }},
5633     { &hf_dap_compareArgument,
5634       { "compareArgument", "dap.compareArgument",
5635         FT_NONE, BASE_NONE, NULL, 0,
5636         "dap.CompareArgumentData", HFILL }},
5637     { &hf_dap_matched,
5638       { "matched", "dap.matched",
5639         FT_BOOLEAN, 8, NULL, 0,
5640         "dap.BOOLEAN", HFILL }},
5641     { &hf_dap_matchedSubtype,
5642       { "matchedSubtype", "dap.matchedSubtype",
5643         FT_OID, BASE_NONE, NULL, 0,
5644         "x509if.AttributeType", HFILL }},
5645     { &hf_dap_unsignedCompareResult,
5646       { "unsignedCompareResult", "dap.unsignedCompareResult",
5647         FT_NONE, BASE_NONE, NULL, 0,
5648         "dap.CompareResultData", HFILL }},
5649     { &hf_dap_signedCompareResult,
5650       { "signedCompareResult", "dap.signedCompareResult",
5651         FT_NONE, BASE_NONE, NULL, 0,
5652         "dap.T_signedCompareResult", HFILL }},
5653     { &hf_dap_compareResult,
5654       { "compareResult", "dap.compareResult",
5655         FT_NONE, BASE_NONE, NULL, 0,
5656         "dap.CompareResultData", HFILL }},
5657     { &hf_dap_invokeID,
5658       { "invokeID", "dap.invokeID",
5659         FT_UINT32, BASE_DEC, VALS(ros_InvokeId_vals), 0,
5660         "ros.InvokeId", HFILL }},
5661     { &hf_dap_unsignedAbandonArgument,
5662       { "unsignedAbandonArgument", "dap.unsignedAbandonArgument",
5663         FT_NONE, BASE_NONE, NULL, 0,
5664         "dap.AbandonArgumentData", HFILL }},
5665     { &hf_dap_signedAbandonArgument,
5666       { "signedAbandonArgument", "dap.signedAbandonArgument",
5667         FT_NONE, BASE_NONE, NULL, 0,
5668         "dap.T_signedAbandonArgument", HFILL }},
5669     { &hf_dap_abandonArgument,
5670       { "abandonArgument", "dap.abandonArgument",
5671         FT_NONE, BASE_NONE, NULL, 0,
5672         "dap.AbandonArgumentData", HFILL }},
5673     { &hf_dap_null,
5674       { "null", "dap.null",
5675         FT_NONE, BASE_NONE, NULL, 0,
5676         "dap.NULL", HFILL }},
5677     { &hf_dap_abandon_information,
5678       { "information", "dap.information",
5679         FT_UINT32, BASE_DEC, VALS(dap_AbandonInformation_vals), 0,
5680         "dap.AbandonInformation", HFILL }},
5681     { &hf_dap_unsignedAbandonResult,
5682       { "unsignedAbandonResult", "dap.unsignedAbandonResult",
5683         FT_NONE, BASE_NONE, NULL, 0,
5684         "dap.AbandonResultData", HFILL }},
5685     { &hf_dap_signedAbandonResult,
5686       { "signedAbandonResult", "dap.signedAbandonResult",
5687         FT_NONE, BASE_NONE, NULL, 0,
5688         "dap.T_signedAbandonResult", HFILL }},
5689     { &hf_dap_abandonResult,
5690       { "abandonResult", "dap.abandonResult",
5691         FT_NONE, BASE_NONE, NULL, 0,
5692         "dap.AbandonResultData", HFILL }},
5693     { &hf_dap_pagedResults,
5694       { "pagedResults", "dap.pagedResults",
5695         FT_UINT32, BASE_DEC, VALS(dap_PagedResultsRequest_vals), 0,
5696         "dap.PagedResultsRequest", HFILL }},
5697     { &hf_dap_listFamily,
5698       { "listFamily", "dap.listFamily",
5699         FT_BOOLEAN, 8, NULL, 0,
5700         "dap.BOOLEAN", HFILL }},
5701     { &hf_dap_unsignedListArgument,
5702       { "unsignedListArgument", "dap.unsignedListArgument",
5703         FT_NONE, BASE_NONE, NULL, 0,
5704         "dap.ListArgumentData", HFILL }},
5705     { &hf_dap_signedListArgument,
5706       { "signedListArgument", "dap.signedListArgument",
5707         FT_NONE, BASE_NONE, NULL, 0,
5708         "dap.T_signedListArgument", HFILL }},
5709     { &hf_dap_listArgument,
5710       { "listArgument", "dap.listArgument",
5711         FT_NONE, BASE_NONE, NULL, 0,
5712         "dap.ListArgumentData", HFILL }},
5713     { &hf_dap_listInfo,
5714       { "listInfo", "dap.listInfo",
5715         FT_NONE, BASE_NONE, NULL, 0,
5716         "dap.T_listInfo", HFILL }},
5717     { &hf_dap_subordinates,
5718       { "subordinates", "dap.subordinates",
5719         FT_UINT32, BASE_DEC, NULL, 0,
5720         "dap.T_subordinates", HFILL }},
5721     { &hf_dap_subordinates_item,
5722       { "subordinates", "dap.subordinates_item",
5723         FT_NONE, BASE_NONE, NULL, 0,
5724         "dap.T_subordinates_item", HFILL }},
5725     { &hf_dap_aliasEntry,
5726       { "aliasEntry", "dap.aliasEntry",
5727         FT_BOOLEAN, 8, NULL, 0,
5728         "dap.BOOLEAN", HFILL }},
5729     { &hf_dap_partialOutcomeQualifier,
5730       { "partialOutcomeQualifier", "dap.partialOutcomeQualifier",
5731         FT_NONE, BASE_NONE, NULL, 0,
5732         "dap.PartialOutcomeQualifier", HFILL }},
5733     { &hf_dap_uncorrelatedListInfo,
5734       { "uncorrelatedListInfo", "dap.uncorrelatedListInfo",
5735         FT_UINT32, BASE_DEC, NULL, 0,
5736         "dap.SET_OF_ListResult", HFILL }},
5737     { &hf_dap_uncorrelatedListInfo_item,
5738       { "uncorrelatedListInfo", "dap.uncorrelatedListInfo_item",
5739         FT_UINT32, BASE_DEC, VALS(dap_ListResult_vals), 0,
5740         "dap.ListResult", HFILL }},
5741     { &hf_dap_unsignedListResult,
5742       { "unsignedListResult", "dap.unsignedListResult",
5743         FT_UINT32, BASE_DEC, VALS(dap_ListResultData_vals), 0,
5744         "dap.ListResultData", HFILL }},
5745     { &hf_dap_signedListResult,
5746       { "signedListResult", "dap.signedListResult",
5747         FT_NONE, BASE_NONE, NULL, 0,
5748         "dap.T_signedListResult", HFILL }},
5749     { &hf_dap_listResult,
5750       { "listResult", "dap.listResult",
5751         FT_UINT32, BASE_DEC, VALS(dap_ListResultData_vals), 0,
5752         "dap.ListResultData", HFILL }},
5753     { &hf_dap_limitProblem,
5754       { "limitProblem", "dap.limitProblem",
5755         FT_INT32, BASE_DEC, VALS(dap_LimitProblem_vals), 0,
5756         "dap.LimitProblem", HFILL }},
5757     { &hf_dap_unexplored,
5758       { "unexplored", "dap.unexplored",
5759         FT_UINT32, BASE_DEC, NULL, 0,
5760         "dap.SET_SIZE_1_MAX_OF_ContinuationReference", HFILL }},
5761     { &hf_dap_unexplored_item,
5762       { "unexplored", "dap.unexplored_item",
5763         FT_NONE, BASE_NONE, NULL, 0,
5764         "dsp.ContinuationReference", HFILL }},
5765     { &hf_dap_unavailableCriticalExtensions,
5766       { "unavailableCriticalExtensions", "dap.unavailableCriticalExtensions",
5767         FT_BOOLEAN, 8, NULL, 0,
5768         "dap.BOOLEAN", HFILL }},
5769     { &hf_dap_unknownErrors,
5770       { "unknownErrors", "dap.unknownErrors",
5771         FT_UINT32, BASE_DEC, NULL, 0,
5772         "dap.T_unknownErrors", HFILL }},
5773     { &hf_dap_unknownErrors_item,
5774       { "unknownErrors", "dap.unknownErrors_item",
5775         FT_OID, BASE_NONE, NULL, 0,
5776         "dap.OBJECT_IDENTIFIER", HFILL }},
5777     { &hf_dap_queryReference,
5778       { "queryReference", "dap.queryReference",
5779         FT_BYTES, BASE_HEX, NULL, 0,
5780         "dap.OCTET_STRING", HFILL }},
5781     { &hf_dap_overspecFilter,
5782       { "overspecFilter", "dap.overspecFilter",
5783         FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
5784         "dap.Filter", HFILL }},
5785     { &hf_dap_entryCount,
5786       { "entryCount", "dap.entryCount",
5787         FT_UINT32, BASE_DEC, VALS(dap_T_entryCount_vals), 0,
5788         "dap.T_entryCount", HFILL }},
5789     { &hf_dap_bestEstimate,
5790       { "bestEstimate", "dap.bestEstimate",
5791         FT_INT32, BASE_DEC, NULL, 0,
5792         "dap.INTEGER", HFILL }},
5793     { &hf_dap_lowEstimate,
5794       { "lowEstimate", "dap.lowEstimate",
5795         FT_INT32, BASE_DEC, NULL, 0,
5796         "dap.INTEGER", HFILL }},
5797     { &hf_dap_baseObject,
5798       { "baseObject", "dap.baseObject",
5799         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
5800         "dap.Name", HFILL }},
5801     { &hf_dap_subset,
5802       { "subset", "dap.subset",
5803         FT_INT32, BASE_DEC, VALS(dap_T_subset_vals), 0,
5804         "dap.T_subset", HFILL }},
5805     { &hf_dap_filter,
5806       { "filter", "dap.filter",
5807         FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
5808         "dap.Filter", HFILL }},
5809     { &hf_dap_searchAliases,
5810       { "searchAliases", "dap.searchAliases",
5811         FT_BOOLEAN, 8, NULL, 0,
5812         "dap.BOOLEAN", HFILL }},
5813     { &hf_dap_matchedValuesOnly,
5814       { "matchedValuesOnly", "dap.matchedValuesOnly",
5815         FT_BOOLEAN, 8, NULL, 0,
5816         "dap.BOOLEAN", HFILL }},
5817     { &hf_dap_extendedFilter,
5818       { "extendedFilter", "dap.extendedFilter",
5819         FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
5820         "dap.Filter", HFILL }},
5821     { &hf_dap_checkOverspecified,
5822       { "checkOverspecified", "dap.checkOverspecified",
5823         FT_BOOLEAN, 8, NULL, 0,
5824         "dap.BOOLEAN", HFILL }},
5825     { &hf_dap_relaxation,
5826       { "relaxation", "dap.relaxation",
5827         FT_NONE, BASE_NONE, NULL, 0,
5828         "x509if.RelaxationPolicy", HFILL }},
5829     { &hf_dap_extendedArea,
5830       { "extendedArea", "dap.extendedArea",
5831         FT_INT32, BASE_DEC, NULL, 0,
5832         "dap.INTEGER", HFILL }},
5833     { &hf_dap_hierarchySelections,
5834       { "hierarchySelections", "dap.hierarchySelections",
5835         FT_BYTES, BASE_HEX, NULL, 0,
5836         "dap.HierarchySelections", HFILL }},
5837     { &hf_dap_searchControlOptions,
5838       { "searchControlOptions", "dap.searchControlOptions",
5839         FT_BYTES, BASE_HEX, NULL, 0,
5840         "dap.SearchControlOptions", HFILL }},
5841     { &hf_dap_joinArguments,
5842       { "joinArguments", "dap.joinArguments",
5843         FT_UINT32, BASE_DEC, NULL, 0,
5844         "dap.SEQUENCE_SIZE_1_MAX_OF_JoinArgument", HFILL }},
5845     { &hf_dap_joinArguments_item,
5846       { "joinArguments", "dap.joinArguments_item",
5847         FT_NONE, BASE_NONE, NULL, 0,
5848         "dap.JoinArgument", HFILL }},
5849     { &hf_dap_joinType,
5850       { "joinType", "dap.joinType",
5851         FT_UINT32, BASE_DEC, VALS(dap_T_joinType_vals), 0,
5852         "dap.T_joinType", HFILL }},
5853     { &hf_dap_unsignedSearchArgument,
5854       { "unsignedSearchArgument", "dap.unsignedSearchArgument",
5855         FT_NONE, BASE_NONE, NULL, 0,
5856         "dap.SearchArgumentData", HFILL }},
5857     { &hf_dap_signedSearchArgument,
5858       { "signedSearchArgument", "dap.signedSearchArgument",
5859         FT_NONE, BASE_NONE, NULL, 0,
5860         "dap.T_signedSearchArgument", HFILL }},
5861     { &hf_dap_searchArgument,
5862       { "searchArgument", "dap.searchArgument",
5863         FT_NONE, BASE_NONE, NULL, 0,
5864         "dap.SearchArgumentData", HFILL }},
5865     { &hf_dap_joinBaseObject,
5866       { "joinBaseObject", "dap.joinBaseObject",
5867         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
5868         "dap.Name", HFILL }},
5869     { &hf_dap_domainLocalID,
5870       { "domainLocalID", "dap.domainLocalID",
5871         FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
5872         "dap.DomainLocalID", HFILL }},
5873     { &hf_dap_joinSubset,
5874       { "joinSubset", "dap.joinSubset",
5875         FT_UINT32, BASE_DEC, VALS(dap_T_joinSubset_vals), 0,
5876         "dap.T_joinSubset", HFILL }},
5877     { &hf_dap_joinFilter,
5878       { "joinFilter", "dap.joinFilter",
5879         FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
5880         "dap.Filter", HFILL }},
5881     { &hf_dap_joinAttributes,
5882       { "joinAttributes", "dap.joinAttributes",
5883         FT_UINT32, BASE_DEC, NULL, 0,
5884         "dap.SEQUENCE_SIZE_1_MAX_OF_JoinAttPair", HFILL }},
5885     { &hf_dap_joinAttributes_item,
5886       { "joinAttributes", "dap.joinAttributes_item",
5887         FT_NONE, BASE_NONE, NULL, 0,
5888         "dap.JoinAttPair", HFILL }},
5889     { &hf_dap_joinSelection,
5890       { "joinSelection", "dap.joinSelection",
5891         FT_NONE, BASE_NONE, NULL, 0,
5892         "dap.EntryInformationSelection", HFILL }},
5893     { &hf_dap_baseAtt,
5894       { "baseAtt", "dap.baseAtt",
5895         FT_OID, BASE_NONE, NULL, 0,
5896         "x509if.AttributeType", HFILL }},
5897     { &hf_dap_joinAtt,
5898       { "joinAtt", "dap.joinAtt",
5899         FT_OID, BASE_NONE, NULL, 0,
5900         "x509if.AttributeType", HFILL }},
5901     { &hf_dap_joinContext,
5902       { "joinContext", "dap.joinContext",
5903         FT_UINT32, BASE_DEC, NULL, 0,
5904         "dap.SEQUENCE_SIZE_1_MAX_OF_JoinContextType", HFILL }},
5905     { &hf_dap_joinContext_item,
5906       { "joinContext", "dap.joinContext_item",
5907         FT_OID, BASE_NONE, NULL, 0,
5908         "dap.JoinContextType", HFILL }},
5909     { &hf_dap_searchInfo,
5910       { "searchInfo", "dap.searchInfo",
5911         FT_NONE, BASE_NONE, NULL, 0,
5912         "dap.T_searchInfo", HFILL }},
5913     { &hf_dap_entries,
5914       { "entries", "dap.entries",
5915         FT_UINT32, BASE_DEC, NULL, 0,
5916         "dap.SET_OF_EntryInformation", HFILL }},
5917     { &hf_dap_entries_item,
5918       { "entries", "dap.entries_item",
5919         FT_NONE, BASE_NONE, NULL, 0,
5920         "dap.EntryInformation", HFILL }},
5921     { &hf_dap_altMatching,
5922       { "altMatching", "dap.altMatching",
5923         FT_BOOLEAN, 8, NULL, 0,
5924         "dap.BOOLEAN", HFILL }},
5925     { &hf_dap_uncorrelatedSearchInfo,
5926       { "uncorrelatedSearchInfo", "dap.uncorrelatedSearchInfo",
5927         FT_UINT32, BASE_DEC, NULL, 0,
5928         "dap.SET_OF_SearchResult", HFILL }},
5929     { &hf_dap_uncorrelatedSearchInfo_item,
5930       { "uncorrelatedSearchInfo", "dap.uncorrelatedSearchInfo_item",
5931         FT_UINT32, BASE_DEC, VALS(dap_SearchResult_vals), 0,
5932         "dap.SearchResult", HFILL }},
5933     { &hf_dap_unsignedSearchResult,
5934       { "unsignedSearchResult", "dap.unsignedSearchResult",
5935         FT_UINT32, BASE_DEC, VALS(dap_SearchResultData_vals), 0,
5936         "dap.SearchResultData", HFILL }},
5937     { &hf_dap_signedSearchResult,
5938       { "signedSearchResult", "dap.signedSearchResult",
5939         FT_NONE, BASE_NONE, NULL, 0,
5940         "dap.T_signedSearchResult", HFILL }},
5941     { &hf_dap_searchResult,
5942       { "searchResult", "dap.searchResult",
5943         FT_UINT32, BASE_DEC, VALS(dap_SearchResultData_vals), 0,
5944         "dap.SearchResultData", HFILL }},
5945     { &hf_dap_add_entry,
5946       { "entry", "dap.entry",
5947         FT_UINT32, BASE_DEC, NULL, 0,
5948         "dap.SET_OF_Attribute", HFILL }},
5949     { &hf_dap_add_entry_item,
5950       { "entry", "dap.entry_item",
5951         FT_NONE, BASE_NONE, NULL, 0,
5952         "x509if.Attribute", HFILL }},
5953     { &hf_dap_targetSystem,
5954       { "targetSystem", "dap.targetSystem",
5955         FT_NONE, BASE_NONE, NULL, 0,
5956         "dsp.AccessPoint", HFILL }},
5957     { &hf_dap_unsignedAddEntryArgument,
5958       { "unsignedAddEntryArgument", "dap.unsignedAddEntryArgument",
5959         FT_NONE, BASE_NONE, NULL, 0,
5960         "dap.AddEntryArgumentData", HFILL }},
5961     { &hf_dap_signedAddEntryArgument,
5962       { "signedAddEntryArgument", "dap.signedAddEntryArgument",
5963         FT_NONE, BASE_NONE, NULL, 0,
5964         "dap.T_signedAddEntryArgument", HFILL }},
5965     { &hf_dap_addEntryArgument,
5966       { "addEntryArgument", "dap.addEntryArgument",
5967         FT_NONE, BASE_NONE, NULL, 0,
5968         "dap.AddEntryArgumentData", HFILL }},
5969     { &hf_dap_add_entry_information,
5970       { "information", "dap.information",
5971         FT_UINT32, BASE_DEC, VALS(dap_AddEntryInformation_vals), 0,
5972         "dap.AddEntryInformation", HFILL }},
5973     { &hf_dap_unsignedAddEntryResult,
5974       { "unsignedAddEntryResult", "dap.unsignedAddEntryResult",
5975         FT_NONE, BASE_NONE, NULL, 0,
5976         "dap.AddEntryResultData", HFILL }},
5977     { &hf_dap_signedAddEntryResult,
5978       { "signedAddEntryResult", "dap.signedAddEntryResult",
5979         FT_NONE, BASE_NONE, NULL, 0,
5980         "dap.T_signedAddEntryResult", HFILL }},
5981     { &hf_dap_addEntryResult,
5982       { "addEntryResult", "dap.addEntryResult",
5983         FT_NONE, BASE_NONE, NULL, 0,
5984         "dap.AddEntryResultData", HFILL }},
5985     { &hf_dap_unsignedRemoveEntryArgument,
5986       { "unsignedRemoveEntryArgument", "dap.unsignedRemoveEntryArgument",
5987         FT_NONE, BASE_NONE, NULL, 0,
5988         "dap.RemoveEntryArgumentData", HFILL }},
5989     { &hf_dap_signedRemoveEntryArgument,
5990       { "signedRemoveEntryArgument", "dap.signedRemoveEntryArgument",
5991         FT_NONE, BASE_NONE, NULL, 0,
5992         "dap.T_signedRemoveEntryArgument", HFILL }},
5993     { &hf_dap_removeEntryArgument,
5994       { "removeEntryArgument", "dap.removeEntryArgument",
5995         FT_NONE, BASE_NONE, NULL, 0,
5996         "dap.RemoveEntryArgumentData", HFILL }},
5997     { &hf_dap_remove_entry_information,
5998       { "information", "dap.information",
5999         FT_UINT32, BASE_DEC, VALS(dap_RemoveEntryInformation_vals), 0,
6000         "dap.RemoveEntryInformation", HFILL }},
6001     { &hf_dap_unsignedRemoveEntryResult,
6002       { "unsignedRemoveEntryResult", "dap.unsignedRemoveEntryResult",
6003         FT_NONE, BASE_NONE, NULL, 0,
6004         "dap.RemoveEntryResultData", HFILL }},
6005     { &hf_dap_signedRemoveEntryResult,
6006       { "signedRemoveEntryResult", "dap.signedRemoveEntryResult",
6007         FT_NONE, BASE_NONE, NULL, 0,
6008         "dap.T_signedRemoveEntryResult", HFILL }},
6009     { &hf_dap_removeEntryResult,
6010       { "removeEntryResult", "dap.removeEntryResult",
6011         FT_NONE, BASE_NONE, NULL, 0,
6012         "dap.RemoveEntryResultData", HFILL }},
6013     { &hf_dap_changes,
6014       { "changes", "dap.changes",
6015         FT_UINT32, BASE_DEC, NULL, 0,
6016         "dap.SEQUENCE_OF_EntryModification", HFILL }},
6017     { &hf_dap_changes_item,
6018       { "changes", "dap.changes_item",
6019         FT_UINT32, BASE_DEC, VALS(dap_EntryModification_vals), 0,
6020         "dap.EntryModification", HFILL }},
6021     { &hf_dap_unsignedModifyEntryArgument,
6022       { "unsignedModifyEntryArgument", "dap.unsignedModifyEntryArgument",
6023         FT_NONE, BASE_NONE, NULL, 0,
6024         "dap.ModifyEntryArgumentData", HFILL }},
6025     { &hf_dap_signedModifyEntryArgument,
6026       { "signedModifyEntryArgument", "dap.signedModifyEntryArgument",
6027         FT_NONE, BASE_NONE, NULL, 0,
6028         "dap.T_signedModifyEntryArgument", HFILL }},
6029     { &hf_dap_modifyEntryArgument,
6030       { "modifyEntryArgument", "dap.modifyEntryArgument",
6031         FT_NONE, BASE_NONE, NULL, 0,
6032         "dap.ModifyEntryArgumentData", HFILL }},
6033     { &hf_dap_modify_entry_information,
6034       { "information", "dap.information",
6035         FT_UINT32, BASE_DEC, VALS(dap_ModifyEntryInformation_vals), 0,
6036         "dap.ModifyEntryInformation", HFILL }},
6037     { &hf_dap_unsignedModifyEntryResult,
6038       { "unsignedModifyEntryResult", "dap.unsignedModifyEntryResult",
6039         FT_NONE, BASE_NONE, NULL, 0,
6040         "dap.ModifyEntryResultData", HFILL }},
6041     { &hf_dap_signedModifyEntryResult,
6042       { "signedModifyEntryResult", "dap.signedModifyEntryResult",
6043         FT_NONE, BASE_NONE, NULL, 0,
6044         "dap.T_signedModifyEntryResult", HFILL }},
6045     { &hf_dap_modifyEntryResult,
6046       { "modifyEntryResult", "dap.modifyEntryResult",
6047         FT_NONE, BASE_NONE, NULL, 0,
6048         "dap.ModifyEntryResultData", HFILL }},
6049     { &hf_dap_addAttribute,
6050       { "addAttribute", "dap.addAttribute",
6051         FT_NONE, BASE_NONE, NULL, 0,
6052         "x509if.Attribute", HFILL }},
6053     { &hf_dap_removeAttribute,
6054       { "removeAttribute", "dap.removeAttribute",
6055         FT_OID, BASE_NONE, NULL, 0,
6056         "x509if.AttributeType", HFILL }},
6057     { &hf_dap_addValues,
6058       { "addValues", "dap.addValues",
6059         FT_NONE, BASE_NONE, NULL, 0,
6060         "x509if.Attribute", HFILL }},
6061     { &hf_dap_removeValues,
6062       { "removeValues", "dap.removeValues",
6063         FT_NONE, BASE_NONE, NULL, 0,
6064         "x509if.Attribute", HFILL }},
6065     { &hf_dap_alterValues,
6066       { "alterValues", "dap.alterValues",
6067         FT_NONE, BASE_NONE, NULL, 0,
6068         "crmf.AttributeTypeAndValue", HFILL }},
6069     { &hf_dap_resetValue,
6070       { "resetValue", "dap.resetValue",
6071         FT_OID, BASE_NONE, NULL, 0,
6072         "x509if.AttributeType", HFILL }},
6073     { &hf_dap_newRDN,
6074       { "newRDN", "dap.newRDN",
6075         FT_UINT32, BASE_DEC, NULL, 0,
6076         "x509if.RelativeDistinguishedName", HFILL }},
6077     { &hf_dap_deleteOldRDN,
6078       { "deleteOldRDN", "dap.deleteOldRDN",
6079         FT_BOOLEAN, 8, NULL, 0,
6080         "dap.BOOLEAN", HFILL }},
6081     { &hf_dap_newSuperior,
6082       { "newSuperior", "dap.newSuperior",
6083         FT_UINT32, BASE_DEC, NULL, 0,
6084         "x509if.DistinguishedName", HFILL }},
6085     { &hf_dap_modify_dn_information,
6086       { "information", "dap.information",
6087         FT_UINT32, BASE_DEC, VALS(dap_ModifyDNInformation_vals), 0,
6088         "dap.ModifyDNInformation", HFILL }},
6089     { &hf_dap_unsignedModifyDNResult,
6090       { "unsignedModifyDNResult", "dap.unsignedModifyDNResult",
6091         FT_NONE, BASE_NONE, NULL, 0,
6092         "dap.ModifyDNResultData", HFILL }},
6093     { &hf_dap_signedModifyDNResult,
6094       { "signedModifyDNResult", "dap.signedModifyDNResult",
6095         FT_NONE, BASE_NONE, NULL, 0,
6096         "dap.T_signedModifyDNResult", HFILL }},
6097     { &hf_dap_modifyDNResult,
6098       { "modifyDNResult", "dap.modifyDNResult",
6099         FT_NONE, BASE_NONE, NULL, 0,
6100         "dap.ModifyDNResultData", HFILL }},
6101     { &hf_dap_unsignedAbandoned,
6102       { "unsignedAbandoned", "dap.unsignedAbandoned",
6103         FT_NONE, BASE_NONE, NULL, 0,
6104         "dap.AbandonedData", HFILL }},
6105     { &hf_dap_signedAbandoned,
6106       { "signedAbandoned", "dap.signedAbandoned",
6107         FT_NONE, BASE_NONE, NULL, 0,
6108         "dap.T_signedAbandoned", HFILL }},
6109     { &hf_dap_abandoned,
6110       { "abandoned", "dap.abandoned",
6111         FT_NONE, BASE_NONE, NULL, 0,
6112         "dap.AbandonedData", HFILL }},
6113     { &hf_dap_abandon_failed_problem,
6114       { "problem", "dap.problem",
6115         FT_INT32, BASE_DEC, VALS(dap_AbandonProblem_vals), 0,
6116         "dap.AbandonProblem", HFILL }},
6117     { &hf_dap_operation,
6118       { "operation", "dap.operation",
6119         FT_UINT32, BASE_DEC, VALS(ros_InvokeId_vals), 0,
6120         "ros.InvokeId", HFILL }},
6121     { &hf_dap_unsignedAbandonFailedError,
6122       { "unsignedAbandonFailedError", "dap.unsignedAbandonFailedError",
6123         FT_NONE, BASE_NONE, NULL, 0,
6124         "dap.AbandonFailedErrorData", HFILL }},
6125     { &hf_dap_signedAbandonFailedError,
6126       { "signedAbandonFailedError", "dap.signedAbandonFailedError",
6127         FT_NONE, BASE_NONE, NULL, 0,
6128         "dap.T_signedAbandonFailedError", HFILL }},
6129     { &hf_dap_abandonFailedError,
6130       { "abandonFailedError", "dap.abandonFailedError",
6131         FT_NONE, BASE_NONE, NULL, 0,
6132         "dap.AbandonFailedErrorData", HFILL }},
6133     { &hf_dap_problems,
6134       { "problems", "dap.problems",
6135         FT_UINT32, BASE_DEC, NULL, 0,
6136         "dap.T_problems", HFILL }},
6137     { &hf_dap_problems_item,
6138       { "problems", "dap.problems_item",
6139         FT_NONE, BASE_NONE, NULL, 0,
6140         "dap.T_problems_item", HFILL }},
6141     { &hf_dap_attribute_error_problem,
6142       { "problem", "dap.problem",
6143         FT_INT32, BASE_DEC, VALS(dap_AttributeProblem_vals), 0,
6144         "dap.AttributeProblem", HFILL }},
6145     { &hf_dap_value,
6146       { "value", "dap.value",
6147         FT_NONE, BASE_NONE, NULL, 0,
6148         "x509if.AttributeValue", HFILL }},
6149     { &hf_dap_unsignedAttributeError,
6150       { "unsignedAttributeError", "dap.unsignedAttributeError",
6151         FT_NONE, BASE_NONE, NULL, 0,
6152         "dap.AttributeErrorData", HFILL }},
6153     { &hf_dap_signedAttributeError,
6154       { "signedAttributeError", "dap.signedAttributeError",
6155         FT_NONE, BASE_NONE, NULL, 0,
6156         "dap.T_signedAttributeError", HFILL }},
6157     { &hf_dap_attributeError,
6158       { "attributeError", "dap.attributeError",
6159         FT_NONE, BASE_NONE, NULL, 0,
6160         "dap.AttributeErrorData", HFILL }},
6161     { &hf_dap_name_error_problem,
6162       { "problem", "dap.problem",
6163         FT_INT32, BASE_DEC, VALS(dap_NameProblem_vals), 0,
6164         "dap.NameProblem", HFILL }},
6165     { &hf_dap_matched_name,
6166       { "matched", "dap.matched",
6167         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
6168         "dap.Name", HFILL }},
6169     { &hf_dap_unsignedNameError,
6170       { "unsignedNameError", "dap.unsignedNameError",
6171         FT_NONE, BASE_NONE, NULL, 0,
6172         "dap.NameErrorData", HFILL }},
6173     { &hf_dap_signedNameError,
6174       { "signedNameError", "dap.signedNameError",
6175         FT_NONE, BASE_NONE, NULL, 0,
6176         "dap.T_signedNameError", HFILL }},
6177     { &hf_dap_nameError,
6178       { "nameError", "dap.nameError",
6179         FT_NONE, BASE_NONE, NULL, 0,
6180         "dap.NameErrorData", HFILL }},
6181     { &hf_dap_candidate,
6182       { "candidate", "dap.candidate",
6183         FT_NONE, BASE_NONE, NULL, 0,
6184         "dsp.ContinuationReference", HFILL }},
6185     { &hf_dap_unsignedReferral,
6186       { "unsignedReferral", "dap.unsignedReferral",
6187         FT_NONE, BASE_NONE, NULL, 0,
6188         "dap.ReferralData", HFILL }},
6189     { &hf_dap_signedReferral,
6190       { "signedReferral", "dap.signedReferral",
6191         FT_NONE, BASE_NONE, NULL, 0,
6192         "dap.T_signedReferral", HFILL }},
6193     { &hf_dap_referral,
6194       { "referral", "dap.referral",
6195         FT_NONE, BASE_NONE, NULL, 0,
6196         "dap.ReferralData", HFILL }},
6197     { &hf_dap_security_error_problem,
6198       { "problem", "dap.problem",
6199         FT_INT32, BASE_DEC, VALS(dap_SecurityProblem_vals), 0,
6200         "dap.SecurityProblem", HFILL }},
6201     { &hf_dap_spkmInfo,
6202       { "spkmInfo", "dap.spkmInfo",
6203         FT_NONE, BASE_NONE, NULL, 0,
6204         "dap.T_spkmInfo", HFILL }},
6205     { &hf_dap_unsignedSecurityError,
6206       { "unsignedSecurityError", "dap.unsignedSecurityError",
6207         FT_NONE, BASE_NONE, NULL, 0,
6208         "dap.SecurityErrorData", HFILL }},
6209     { &hf_dap_signedSecurityError,
6210       { "signedSecurityError", "dap.signedSecurityError",
6211         FT_NONE, BASE_NONE, NULL, 0,
6212         "dap.T_signedSecurityError", HFILL }},
6213     { &hf_dap_securityErrorData,
6214       { "securityError", "dap.securityError",
6215         FT_NONE, BASE_NONE, NULL, 0,
6216         "dap.SecurityErrorData", HFILL }},
6217     { &hf_dap_service_error_problem,
6218       { "problem", "dap.problem",
6219         FT_INT32, BASE_DEC, VALS(dap_ServiceProblem_vals), 0,
6220         "dap.ServiceProblem", HFILL }},
6221     { &hf_dap_unsignedServiceError,
6222       { "unsignedServiceError", "dap.unsignedServiceError",
6223         FT_NONE, BASE_NONE, NULL, 0,
6224         "dap.ServiceErrorData", HFILL }},
6225     { &hf_dap_signedServiceError,
6226       { "signedServiceError", "dap.signedServiceError",
6227         FT_NONE, BASE_NONE, NULL, 0,
6228         "dap.T_signedServiceError", HFILL }},
6229     { &hf_dap_serviceError,
6230       { "serviceError", "dap.serviceError",
6231         FT_NONE, BASE_NONE, NULL, 0,
6232         "dap.ServiceErrorData", HFILL }},
6233     { &hf_dap_update_error_problem,
6234       { "problem", "dap.problem",
6235         FT_INT32, BASE_DEC, VALS(dap_UpdateProblem_vals), 0,
6236         "dap.UpdateProblem", HFILL }},
6237     { &hf_dap_attributeInfo,
6238       { "attributeInfo", "dap.attributeInfo",
6239         FT_UINT32, BASE_DEC, NULL, 0,
6240         "dap.T_attributeInfo", HFILL }},
6241     { &hf_dap_attributeInfo_item,
6242       { "attributeInfo", "dap.attributeInfo_item",
6243         FT_UINT32, BASE_DEC, VALS(dap_T_attributeInfo_item_vals), 0,
6244         "dap.T_attributeInfo_item", HFILL }},
6245     { &hf_dap_unsignedUpdateError,
6246       { "unsignedUpdateError", "dap.unsignedUpdateError",
6247         FT_NONE, BASE_NONE, NULL, 0,
6248         "dap.UpdateErrorData", HFILL }},
6249     { &hf_dap_signedUpdateError,
6250       { "signedUpdateError", "dap.signedUpdateError",
6251         FT_NONE, BASE_NONE, NULL, 0,
6252         "dap.T_signedUpdateError", HFILL }},
6253     { &hf_dap_updateError,
6254       { "updateError", "dap.updateError",
6255         FT_NONE, BASE_NONE, NULL, 0,
6256         "dap.UpdateErrorData", HFILL }},
6257     { &hf_dap_ServiceControlOptions_preferChaining,
6258       { "preferChaining", "dap.preferChaining",
6259         FT_BOOLEAN, 8, NULL, 0x80,
6260         "", HFILL }},
6261     { &hf_dap_ServiceControlOptions_chainingProhibited,
6262       { "chainingProhibited", "dap.chainingProhibited",
6263         FT_BOOLEAN, 8, NULL, 0x40,
6264         "", HFILL }},
6265     { &hf_dap_ServiceControlOptions_localScope,
6266       { "localScope", "dap.localScope",
6267         FT_BOOLEAN, 8, NULL, 0x20,
6268         "", HFILL }},
6269     { &hf_dap_ServiceControlOptions_dontUseCopy,
6270       { "dontUseCopy", "dap.dontUseCopy",
6271         FT_BOOLEAN, 8, NULL, 0x10,
6272         "", HFILL }},
6273     { &hf_dap_ServiceControlOptions_dontDereferenceAliases,
6274       { "dontDereferenceAliases", "dap.dontDereferenceAliases",
6275         FT_BOOLEAN, 8, NULL, 0x08,
6276         "", HFILL }},
6277     { &hf_dap_ServiceControlOptions_subentries,
6278       { "subentries", "dap.subentries",
6279         FT_BOOLEAN, 8, NULL, 0x04,
6280         "", HFILL }},
6281     { &hf_dap_ServiceControlOptions_copyShallDo,
6282       { "copyShallDo", "dap.copyShallDo",
6283         FT_BOOLEAN, 8, NULL, 0x02,
6284         "", HFILL }},
6285     { &hf_dap_ServiceControlOptions_partialNameResolution,
6286       { "partialNameResolution", "dap.partialNameResolution",
6287         FT_BOOLEAN, 8, NULL, 0x01,
6288         "", HFILL }},
6289     { &hf_dap_ServiceControlOptions_manageDSAIT,
6290       { "manageDSAIT", "dap.manageDSAIT",
6291         FT_BOOLEAN, 8, NULL, 0x80,
6292         "", HFILL }},
6293     { &hf_dap_ServiceControlOptions_noSubtypeMatch,
6294       { "noSubtypeMatch", "dap.noSubtypeMatch",
6295         FT_BOOLEAN, 8, NULL, 0x40,
6296         "", HFILL }},
6297     { &hf_dap_ServiceControlOptions_noSubtypeSelection,
6298       { "noSubtypeSelection", "dap.noSubtypeSelection",
6299         FT_BOOLEAN, 8, NULL, 0x20,
6300         "", HFILL }},
6301     { &hf_dap_ServiceControlOptions_countFamily,
6302       { "countFamily", "dap.countFamily",
6303         FT_BOOLEAN, 8, NULL, 0x10,
6304         "", HFILL }},
6305     { &hf_dap_Versions_v1,
6306       { "v1", "dap.v1",
6307         FT_BOOLEAN, 8, NULL, 0x80,
6308         "", HFILL }},
6309     { &hf_dap_Versions_v2,
6310       { "v2", "dap.v2",
6311         FT_BOOLEAN, 8, NULL, 0x40,
6312         "", HFILL }},
6313     { &hf_dap_T_permission_add,
6314       { "add", "dap.add",
6315         FT_BOOLEAN, 8, NULL, 0x80,
6316         "", HFILL }},
6317     { &hf_dap_T_permission_remove,
6318       { "remove", "dap.remove",
6319         FT_BOOLEAN, 8, NULL, 0x40,
6320         "", HFILL }},
6321     { &hf_dap_T_permission_rename,
6322       { "rename", "dap.rename",
6323         FT_BOOLEAN, 8, NULL, 0x20,
6324         "", HFILL }},
6325     { &hf_dap_T_permission_move,
6326       { "move", "dap.move",
6327         FT_BOOLEAN, 8, NULL, 0x10,
6328         "", HFILL }},
6329     { &hf_dap_HierarchySelections_self,
6330       { "self", "dap.self",
6331         FT_BOOLEAN, 8, NULL, 0x80,
6332         "", HFILL }},
6333     { &hf_dap_HierarchySelections_children,
6334       { "children", "dap.children",
6335         FT_BOOLEAN, 8, NULL, 0x40,
6336         "", HFILL }},
6337     { &hf_dap_HierarchySelections_parent,
6338       { "parent", "dap.parent",
6339         FT_BOOLEAN, 8, NULL, 0x20,
6340         "", HFILL }},
6341     { &hf_dap_HierarchySelections_hierarchy,
6342       { "hierarchy", "dap.hierarchy",
6343         FT_BOOLEAN, 8, NULL, 0x10,
6344         "", HFILL }},
6345     { &hf_dap_HierarchySelections_top,
6346       { "top", "dap.top",
6347         FT_BOOLEAN, 8, NULL, 0x08,
6348         "", HFILL }},
6349     { &hf_dap_HierarchySelections_subtree,
6350       { "subtree", "dap.subtree",
6351         FT_BOOLEAN, 8, NULL, 0x04,
6352         "", HFILL }},
6353     { &hf_dap_HierarchySelections_siblings,
6354       { "siblings", "dap.siblings",
6355         FT_BOOLEAN, 8, NULL, 0x02,
6356         "", HFILL }},
6357     { &hf_dap_HierarchySelections_siblingChildren,
6358       { "siblingChildren", "dap.siblingChildren",
6359         FT_BOOLEAN, 8, NULL, 0x01,
6360         "", HFILL }},
6361     { &hf_dap_HierarchySelections_siblingSubtree,
6362       { "siblingSubtree", "dap.siblingSubtree",
6363         FT_BOOLEAN, 8, NULL, 0x80,
6364         "", HFILL }},
6365     { &hf_dap_HierarchySelections_all,
6366       { "all", "dap.all",
6367         FT_BOOLEAN, 8, NULL, 0x40,
6368         "", HFILL }},
6369     { &hf_dap_SearchControlOptions_searchAliases,
6370       { "searchAliases", "dap.searchAliases",
6371         FT_BOOLEAN, 8, NULL, 0x80,
6372         "", HFILL }},
6373     { &hf_dap_SearchControlOptions_matchedValuesOnly,
6374       { "matchedValuesOnly", "dap.matchedValuesOnly",
6375         FT_BOOLEAN, 8, NULL, 0x40,
6376         "", HFILL }},
6377     { &hf_dap_SearchControlOptions_checkOverspecified,
6378       { "checkOverspecified", "dap.checkOverspecified",
6379         FT_BOOLEAN, 8, NULL, 0x20,
6380         "", HFILL }},
6381     { &hf_dap_SearchControlOptions_performExactly,
6382       { "performExactly", "dap.performExactly",
6383         FT_BOOLEAN, 8, NULL, 0x10,
6384         "", HFILL }},
6385     { &hf_dap_SearchControlOptions_includeAllAreas,
6386       { "includeAllAreas", "dap.includeAllAreas",
6387         FT_BOOLEAN, 8, NULL, 0x08,
6388         "", HFILL }},
6389     { &hf_dap_SearchControlOptions_noSystemRelaxation,
6390       { "noSystemRelaxation", "dap.noSystemRelaxation",
6391         FT_BOOLEAN, 8, NULL, 0x04,
6392         "", HFILL }},
6393     { &hf_dap_SearchControlOptions_dnAttribute,
6394       { "dnAttribute", "dap.dnAttribute",
6395         FT_BOOLEAN, 8, NULL, 0x02,
6396         "", HFILL }},
6397     { &hf_dap_SearchControlOptions_matchOnResidualName,
6398       { "matchOnResidualName", "dap.matchOnResidualName",
6399         FT_BOOLEAN, 8, NULL, 0x01,
6400         "", HFILL }},
6401     { &hf_dap_SearchControlOptions_entryCount,
6402       { "entryCount", "dap.entryCount",
6403         FT_BOOLEAN, 8, NULL, 0x80,
6404         "", HFILL }},
6405     { &hf_dap_SearchControlOptions_useSubset,
6406       { "useSubset", "dap.useSubset",
6407         FT_BOOLEAN, 8, NULL, 0x40,
6408         "", HFILL }},
6409     { &hf_dap_SearchControlOptions_separateFamilyMembers,
6410       { "separateFamilyMembers", "dap.separateFamilyMembers",
6411         FT_BOOLEAN, 8, NULL, 0x20,
6412         "", HFILL }},
6413     { &hf_dap_SearchControlOptions_searchFamily,
6414       { "searchFamily", "dap.searchFamily",
6415         FT_BOOLEAN, 8, NULL, 0x10,
6416         "", HFILL }},
6417
6418 /*--- End of included file: packet-dap-hfarr.c ---*/
6419 #line 101 "packet-dap-template.c"
6420   };
6421
6422   /* List of subtrees */
6423   static gint *ett[] = {
6424     &ett_dap,
6425
6426 /*--- Included file: packet-dap-ettarr.c ---*/
6427 #line 1 "packet-dap-ettarr.c"
6428     &ett_dap_ServiceControls,
6429     &ett_dap_T_manageDSAITPlaneRef,
6430     &ett_dap_ServiceControlOptions,
6431     &ett_dap_EntryInformationSelection,
6432     &ett_dap_T_attributes,
6433     &ett_dap_SET_OF_AttributeType,
6434     &ett_dap_T_extraAttributes,
6435     &ett_dap_SET_SIZE_1_MAX_OF_AttributeType,
6436     &ett_dap_ContextSelection,
6437     &ett_dap_SET_SIZE_1_MAX_OF_TypeAndContextAssertion,
6438     &ett_dap_TypeAndContextAssertion,
6439     &ett_dap_T_contextAssertions,
6440     &ett_dap_SEQUENCE_OF_ContextAssertion,
6441     &ett_dap_SET_OF_ContextAssertion,
6442     &ett_dap_FamilyReturn,
6443     &ett_dap_T_familySelect,
6444     &ett_dap_EntryInformation,
6445     &ett_dap_T_entry_information,
6446     &ett_dap_EntryInformationItem,
6447     &ett_dap_FamilyEntries,
6448     &ett_dap_SEQUENCE_OF_FamilyEntry,
6449     &ett_dap_FamilyEntry,
6450     &ett_dap_FamilyInformation,
6451     &ett_dap_T_family_information_item,
6452     &ett_dap_SEQUENCE_SIZE_1_MAX_OF_FamilyEntries,
6453     &ett_dap_Filter,
6454     &ett_dap_SetOfFilter,
6455     &ett_dap_FilterItem,
6456     &ett_dap_T_substrings,
6457     &ett_dap_T_strings,
6458     &ett_dap_T_strings_item,
6459     &ett_dap_MatchingRuleAssertion,
6460     &ett_dap_T_matchingRule,
6461     &ett_dap_PagedResultsRequest,
6462     &ett_dap_T_newRequest,
6463     &ett_dap_SEQUENCE_SIZE_1_MAX_OF_SortKey,
6464     &ett_dap_SortKey,
6465     &ett_dap_SecurityParameters,
6466     &ett_dap_Time,
6467     &ett_dap_DirectoryBindArgument,
6468     &ett_dap_Credentials,
6469     &ett_dap_SimpleCredentials,
6470     &ett_dap_T_validity,
6471     &ett_dap_T_time1,
6472     &ett_dap_T_time2,
6473     &ett_dap_T_password,
6474     &ett_dap_T_protected,
6475     &ett_dap_StrongCredentials,
6476     &ett_dap_SpkmCredentials,
6477     &ett_dap_TokenData,
6478     &ett_dap_SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier,
6479     &ett_dap_Token,
6480     &ett_dap_Versions,
6481     &ett_dap_DirectoryBindError,
6482     &ett_dap_T_signedDirectoryBindError,
6483     &ett_dap_DirectoryBindErrorData,
6484     &ett_dap_T_error,
6485     &ett_dap_ReadArgumentData,
6486     &ett_dap_Name,
6487     &ett_dap_ReadArgument,
6488     &ett_dap_T_signedReadArgument,
6489     &ett_dap_ReadResultData,
6490     &ett_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute,
6491     &ett_dap_ReadResult,
6492     &ett_dap_T_signedReadResult,
6493     &ett_dap_ModifyRights,
6494     &ett_dap_ModifyRights_item,
6495     &ett_dap_T_item,
6496     &ett_dap_T_permission,
6497     &ett_dap_CompareArgumentData,
6498     &ett_dap_CompareArgument,
6499     &ett_dap_T_signedCompareArgument,
6500     &ett_dap_CompareResultData,
6501     &ett_dap_CompareResult,
6502     &ett_dap_T_signedCompareResult,
6503     &ett_dap_AbandonArgumentData,
6504     &ett_dap_AbandonArgument,
6505     &ett_dap_T_signedAbandonArgument,
6506     &ett_dap_AbandonResultData,
6507     &ett_dap_AbandonResult,
6508     &ett_dap_AbandonInformation,
6509     &ett_dap_T_signedAbandonResult,
6510     &ett_dap_ListArgumentData,
6511     &ett_dap_ListArgument,
6512     &ett_dap_T_signedListArgument,
6513     &ett_dap_ListResultData,
6514     &ett_dap_T_listInfo,
6515     &ett_dap_T_subordinates,
6516     &ett_dap_T_subordinates_item,
6517     &ett_dap_SET_OF_ListResult,
6518     &ett_dap_ListResult,
6519     &ett_dap_T_signedListResult,
6520     &ett_dap_PartialOutcomeQualifier,
6521     &ett_dap_SET_SIZE_1_MAX_OF_ContinuationReference,
6522     &ett_dap_T_unknownErrors,
6523     &ett_dap_T_entryCount,
6524     &ett_dap_SearchArgumentData,
6525     &ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinArgument,
6526     &ett_dap_SearchArgument,
6527     &ett_dap_T_signedSearchArgument,
6528     &ett_dap_HierarchySelections,
6529     &ett_dap_SearchControlOptions,
6530     &ett_dap_JoinArgument,
6531     &ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinAttPair,
6532     &ett_dap_JoinAttPair,
6533     &ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinContextType,
6534     &ett_dap_SearchResultData,
6535     &ett_dap_T_searchInfo,
6536     &ett_dap_SET_OF_EntryInformation,
6537     &ett_dap_SET_OF_SearchResult,
6538     &ett_dap_SearchResult,
6539     &ett_dap_T_signedSearchResult,
6540     &ett_dap_AddEntryArgumentData,
6541     &ett_dap_SET_OF_Attribute,
6542     &ett_dap_AddEntryArgument,
6543     &ett_dap_T_signedAddEntryArgument,
6544     &ett_dap_AddEntryResultData,
6545     &ett_dap_AddEntryResult,
6546     &ett_dap_AddEntryInformation,
6547     &ett_dap_T_signedAddEntryResult,
6548     &ett_dap_RemoveEntryArgumentData,
6549     &ett_dap_RemoveEntryArgument,
6550     &ett_dap_T_signedRemoveEntryArgument,
6551     &ett_dap_RemoveEntryResultData,
6552     &ett_dap_RemoveEntryResult,
6553     &ett_dap_RemoveEntryInformation,
6554     &ett_dap_T_signedRemoveEntryResult,
6555     &ett_dap_ModifyEntryArgumentData,
6556     &ett_dap_SEQUENCE_OF_EntryModification,
6557     &ett_dap_ModifyEntryArgument,
6558     &ett_dap_T_signedModifyEntryArgument,
6559     &ett_dap_ModifyEntryResultData,
6560     &ett_dap_ModifyEntryResult,
6561     &ett_dap_ModifyEntryInformation,
6562     &ett_dap_T_signedModifyEntryResult,
6563     &ett_dap_EntryModification,
6564     &ett_dap_ModifyDNArgument,
6565     &ett_dap_ModifyDNResultData,
6566     &ett_dap_ModifyDNResult,
6567     &ett_dap_ModifyDNInformation,
6568     &ett_dap_T_signedModifyDNResult,
6569     &ett_dap_AbandonedData,
6570     &ett_dap_Abandoned,
6571     &ett_dap_T_signedAbandoned,
6572     &ett_dap_AbandonFailedErrorData,
6573     &ett_dap_AbandonFailedError,
6574     &ett_dap_T_signedAbandonFailedError,
6575     &ett_dap_AttributeErrorData,
6576     &ett_dap_T_problems,
6577     &ett_dap_T_problems_item,
6578     &ett_dap_AttributeError,
6579     &ett_dap_T_signedAttributeError,
6580     &ett_dap_NameErrorData,
6581     &ett_dap_NameError,
6582     &ett_dap_T_signedNameError,
6583     &ett_dap_ReferralData,
6584     &ett_dap_Referral,
6585     &ett_dap_T_signedReferral,
6586     &ett_dap_SecurityErrorData,
6587     &ett_dap_SecurityError,
6588     &ett_dap_T_signedSecurityError,
6589     &ett_dap_ServiceErrorData,
6590     &ett_dap_ServiceError,
6591     &ett_dap_T_signedServiceError,
6592     &ett_dap_UpdateErrorData,
6593     &ett_dap_T_attributeInfo,
6594     &ett_dap_T_attributeInfo_item,
6595     &ett_dap_UpdateError,
6596     &ett_dap_T_signedUpdateError,
6597
6598 /*--- End of included file: packet-dap-ettarr.c ---*/
6599 #line 107 "packet-dap-template.c"
6600   };
6601   module_t *dap_module;
6602
6603   /* Register protocol */
6604   proto_dap = proto_register_protocol(PNAME, PSNAME, PFNAME);
6605
6606   /* Register fields and subtrees */
6607   proto_register_field_array(proto_dap, hf, array_length(hf));
6608   proto_register_subtree_array(ett, array_length(ett));
6609
6610   /* Register our configuration options for DAP, particularly our port */
6611
6612   dap_module = prefs_register_protocol_subtree("OSI/X.500", proto_dap, prefs_register_dap);
6613
6614   prefs_register_uint_preference(dap_module, "tcp.port", "DAP TCP Port",
6615                                  "Set the port for DAP operations (if other"
6616                                  " than the default of 102)",
6617                                  10, &global_dap_tcp_port);
6618
6619 }
6620
6621
6622 /*--- proto_reg_handoff_dap --- */
6623 void proto_reg_handoff_dap(void) {
6624
6625   /* #include "packet-dap-dis-tab.c" */
6626
6627   /* APPLICATION CONTEXT */
6628
6629   oid_add_from_string("id-ac-directory-access","2.5.3.1");
6630
6631   /* ABSTRACT SYNTAXES */
6632     
6633   /* Register DAP with ROS (with no use of RTSE) */
6634   register_ros_protocol_info("2.5.9.1", &dap_ros_info, 0, "id-as-directory-access", FALSE); 
6635
6636   /* remember the tpkt handler for change in preferences */
6637   tpkt_handle = find_dissector("tpkt");
6638
6639   /* AttributeValueAssertions */
6640   x509if_register_fmt(hf_dap_equality, "=");
6641   x509if_register_fmt(hf_dap_greaterOrEqual, ">=");
6642   x509if_register_fmt(hf_dap_lessOrEqual, "<=");
6643   x509if_register_fmt(hf_dap_approximateMatch, "=~");
6644   /* AttributeTypes */
6645   x509if_register_fmt(hf_dap_present, "= *");
6646
6647 }
6648
6649
6650 void prefs_register_dap(void) {
6651   static guint tcp_port = 0;
6652
6653   /* de-register the old port */
6654   /* port 102 is registered by TPKT - don't undo this! */
6655   if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
6656     dissector_delete("tcp.port", tcp_port, tpkt_handle);
6657
6658   /* Set our port number for future use */
6659   tcp_port = global_dap_tcp_port;
6660
6661   if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
6662     dissector_add("tcp.port", global_dap_tcp_port, tpkt_handle);
6663
6664 }