HACK: pinfo->private_data points to smb_info again
[wireshark-wip.git] / epan / dissectors / packet-dsp.c
blob6f80571473188b6c69b92d95fc5e63b39755ded3
1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
3 /* packet-dsp.c */
4 /* ../../tools/asn2wrs.py -b -p dsp -c ./dsp.cnf -s ./packet-dsp-template -D . -O ../../epan/dissectors dsp.asn */
6 /* Input file: packet-dsp-template.c */
8 #line 1 "../../asn1/dsp/packet-dsp-template.c"
9 /* packet-dsp.c
10 * Routines for X.518 (X.500 Distributed Operations) packet dissection
11 * Graeme Lunt 2005
13 * $Id$
15 * Wireshark - Network traffic analyzer
16 * By Gerald Combs <gerald@wireshark.org>
17 * Copyright 1998 Gerald Combs
19 * This program is free software; you can redistribute it and/or
20 * modify it under the terms of the GNU General Public License
21 * as published by the Free Software Foundation; either version 2
22 * of the License, or (at your option) any later version.
24 * This program is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 * GNU General Public License for more details.
29 * You should have received a copy of the GNU General Public License
30 * along with this program; if not, write to the Free Software
31 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
34 #include "config.h"
36 #include <glib.h>
37 #include <epan/packet.h>
38 #include <epan/prefs.h>
39 #include <epan/oids.h>
40 #include <epan/asn1.h>
42 #include "packet-ber.h"
43 #include "packet-acse.h"
44 #include "packet-ros.h"
46 #include "packet-x509if.h"
47 #include "packet-x509af.h"
48 #include "packet-x509sat.h"
50 #include "packet-dap.h"
51 #include "packet-dsp.h"
54 #define PNAME "X.519 Directory System Protocol"
55 #define PSNAME "DSP"
56 #define PFNAME "dsp"
58 static guint global_dsp_tcp_port = 102;
59 static dissector_handle_t tpkt_handle;
60 static void prefs_register_dsp(void); /* forward declaration for use in preferences registration */
63 /* Initialize the protocol and registered fields */
64 static int proto_dsp = -1;
67 /*--- Included file: packet-dsp-hf.c ---*/
68 #line 1 "../../asn1/dsp/packet-dsp-hf.c"
69 static int hf_dsp_AccessPoint_PDU = -1; /* AccessPoint */
70 static int hf_dsp_MasterAndShadowAccessPoints_PDU = -1; /* MasterAndShadowAccessPoints */
71 static int hf_dsp_DitBridgeKnowledge_PDU = -1; /* DitBridgeKnowledge */
72 static int hf_dsp_chainedArgument = -1; /* ChainingArguments */
73 static int hf_dsp_readArgument = -1; /* ReadArgument */
74 static int hf_dsp_unsignedChainedReadArgument = -1; /* ChainedReadArgumentData */
75 static int hf_dsp_signedChainedReadArgument = -1; /* T_signedChainedReadArgument */
76 static int hf_dsp_chainedReadArgument = -1; /* ChainedReadArgumentData */
77 static int hf_dsp_algorithmIdentifier = -1; /* AlgorithmIdentifier */
78 static int hf_dsp_encrypted = -1; /* BIT_STRING */
79 static int hf_dsp_chainedResults = -1; /* ChainingResults */
80 static int hf_dsp_readResult = -1; /* ReadResult */
81 static int hf_dsp_unsignedChainedReadResult = -1; /* ChainedReadResultData */
82 static int hf_dsp_signedChainedReadResult = -1; /* T_signedChainedReadResult */
83 static int hf_dsp_chainedReadResult = -1; /* ChainedReadResultData */
84 static int hf_dsp_compareArgument = -1; /* CompareArgument */
85 static int hf_dsp_unsignedChainedCompareArgument = -1; /* ChainedCompareArgumentData */
86 static int hf_dsp_signedChainedCompareArgument = -1; /* T_signedChainedCompareArgument */
87 static int hf_dsp_chainedCompareArgument = -1; /* ChainedCompareArgumentData */
88 static int hf_dsp_compareResult = -1; /* CompareResult */
89 static int hf_dsp_unsignedChainedCompareResult = -1; /* ChainedCompareResultData */
90 static int hf_dsp_signedChainedCompareResult = -1; /* T_signedChainedCompareResult */
91 static int hf_dsp_chainedCompareResult = -1; /* ChainedCompareResultData */
92 static int hf_dsp_listArgument = -1; /* ListArgument */
93 static int hf_dsp_unsignedChainedListArgument = -1; /* ChainedListArgumentData */
94 static int hf_dsp_signedChainedListArgument = -1; /* T_signedChainedListArgument */
95 static int hf_dsp_chainedListArgument = -1; /* ChainedListArgumentData */
96 static int hf_dsp_listResult = -1; /* ListResult */
97 static int hf_dsp_unsignedChainedListResult = -1; /* ChainedListResultData */
98 static int hf_dsp_signedChainedListResult = -1; /* T_signedChainedListResult */
99 static int hf_dsp_chainedListResult = -1; /* ChainedListResultData */
100 static int hf_dsp_searchArgument = -1; /* SearchArgument */
101 static int hf_dsp_unsignedChainedSearchArgument = -1; /* ChainedSearchArgumentData */
102 static int hf_dsp_signedChainedSearchArgument = -1; /* T_signedChainedSearchArgument */
103 static int hf_dsp_chainedSearchArgument = -1; /* ChainedSearchArgumentData */
104 static int hf_dsp_searchResult = -1; /* SearchResult */
105 static int hf_dsp_unsignedChainedSearchResult = -1; /* ChainedSearchResultData */
106 static int hf_dsp_signedChainedSearchResult = -1; /* T_signedChainedSearchResult */
107 static int hf_dsp_chainedSearchResult = -1; /* ChainedSearchResultData */
108 static int hf_dsp_addEntryArgument = -1; /* AddEntryArgument */
109 static int hf_dsp_unsignedChainedAddEntryArgument = -1; /* ChainedAddEntryArgumentData */
110 static int hf_dsp_signedChainedAddEntryArgument = -1; /* T_signedChainedAddEntryArgument */
111 static int hf_dsp_chainedAddEntryArgument = -1; /* ChainedAddEntryArgumentData */
112 static int hf_dsp_addEntryResult = -1; /* AddEntryResult */
113 static int hf_dsp_unsignedChainedAddEntryResult = -1; /* ChainedAddEntryResultData */
114 static int hf_dsp_signedChainedAddEntryResult = -1; /* T_signedChainedAddEntryResult */
115 static int hf_dsp_chainedAddEntryResult = -1; /* ChainedAddEntryResultData */
116 static int hf_dsp_removeEntryArgument = -1; /* RemoveEntryArgument */
117 static int hf_dsp_unsignedChainedRemoveEntryArgument = -1; /* ChainedRemoveEntryArgumentData */
118 static int hf_dsp_signedChainedRemoveEntryArgument = -1; /* T_signedChainedRemoveEntryArgument */
119 static int hf_dsp_chainedRemoveEntryArgument = -1; /* ChainedRemoveEntryArgumentData */
120 static int hf_dsp_removeEntryResult = -1; /* RemoveEntryResult */
121 static int hf_dsp_unsignedChainedRemoveEntryResult = -1; /* ChainedRemoveEntryResultData */
122 static int hf_dsp_signedChainedRemoveEntryResult = -1; /* T_signedChainedRemoveEntryResult */
123 static int hf_dsp_chainedRemoveEntryResult = -1; /* ChainedRemoveEntryResultData */
124 static int hf_dsp_modifyEntryArgument = -1; /* ModifyEntryArgument */
125 static int hf_dsp_unsignedChainedModifyEntryArgument = -1; /* ChainedModifyEntryArgumentData */
126 static int hf_dsp_signedChainedModifyEntryArgument = -1; /* T_signedChainedModifyEntryArgument */
127 static int hf_dsp_chainedModifyEntryArgument = -1; /* ChainedModifyEntryArgumentData */
128 static int hf_dsp_modifyEntryResult = -1; /* ModifyEntryResult */
129 static int hf_dsp_unsignedChainedModifyEntryResult = -1; /* ChainedModifyEntryResultData */
130 static int hf_dsp_signedChainedModifyEntryResult = -1; /* T_signedChainedModifyEntryResult */
131 static int hf_dsp_chainedModifyEntryResult = -1; /* ChainedModifyEntryResultData */
132 static int hf_dsp_modifyDNArgument = -1; /* ModifyDNArgument */
133 static int hf_dsp_unsignedChainedModifyDNArgument = -1; /* ChainedModifyDNArgumentData */
134 static int hf_dsp_signedChainedModifyDNArgument = -1; /* T_signedChainedModifyDNArgument */
135 static int hf_dsp_chainedModifyDNArgument = -1; /* ChainedModifyDNArgumentData */
136 static int hf_dsp_modifyDNResult = -1; /* ModifyDNResult */
137 static int hf_dsp_unsignedChainedModifyDNResult = -1; /* ChainedModifyDNResultData */
138 static int hf_dsp_signedChainedModifyDNResult = -1; /* T_signedChainedModifyDNResult */
139 static int hf_dsp_chainedModifyDNResult = -1; /* ChainedModifyDNResultData */
140 static int hf_dsp_reference = -1; /* ContinuationReference */
141 static int hf_dsp_contextPrefix = -1; /* DistinguishedName */
142 static int hf_dsp_securityParameters = -1; /* SecurityParameters */
143 static int hf_dsp_performer = -1; /* DistinguishedName */
144 static int hf_dsp_aliasDereferenced = -1; /* BOOLEAN */
145 static int hf_dsp_notification = -1; /* SEQUENCE_OF_Attribute */
146 static int hf_dsp_notification_item = -1; /* Attribute */
147 static int hf_dsp_unsignedDSAReferral = -1; /* DSAReferralData */
148 static int hf_dsp_signedDSAReferral = -1; /* T_signedDSAReferral */
149 static int hf_dsp_dsaReferral = -1; /* DSAReferralData */
150 static int hf_dsp_originator = -1; /* DistinguishedName */
151 static int hf_dsp_targetObjectDN = -1; /* DistinguishedName */
152 static int hf_dsp_operationProgress = -1; /* OperationProgress */
153 static int hf_dsp_traceInformation = -1; /* TraceInformation */
154 static int hf_dsp_aliasedRDNs = -1; /* INTEGER */
155 static int hf_dsp_returnCrossRefs = -1; /* BOOLEAN */
156 static int hf_dsp_referenceType = -1; /* ReferenceType */
157 static int hf_dsp_info = -1; /* DomainInfo */
158 static int hf_dsp_timeLimit = -1; /* Time */
159 static int hf_dsp_entryOnly = -1; /* BOOLEAN */
160 static int hf_dsp_uniqueIdentifier = -1; /* UniqueIdentifier */
161 static int hf_dsp_authenticationLevel = -1; /* AuthenticationLevel */
162 static int hf_dsp_exclusions = -1; /* Exclusions */
163 static int hf_dsp_excludeShadows = -1; /* BOOLEAN */
164 static int hf_dsp_nameResolveOnMaster = -1; /* BOOLEAN */
165 static int hf_dsp_operationIdentifier = -1; /* INTEGER */
166 static int hf_dsp_searchRuleId = -1; /* SearchRuleId */
167 static int hf_dsp_chainedRelaxation = -1; /* MRMapping */
168 static int hf_dsp_relatedEntry = -1; /* INTEGER */
169 static int hf_dsp_dspPaging = -1; /* BOOLEAN */
170 static int hf_dsp_nonDapPdu = -1; /* T_nonDapPdu */
171 static int hf_dsp_streamedResults = -1; /* INTEGER */
172 static int hf_dsp_excludeWriteableCopies = -1; /* BOOLEAN */
173 static int hf_dsp_utcTime = -1; /* UTCTime */
174 static int hf_dsp_generalizedTime = -1; /* GeneralizedTime */
175 static int hf_dsp_crossReferences = -1; /* SEQUENCE_OF_CrossReference */
176 static int hf_dsp_crossReferences_item = -1; /* CrossReference */
177 static int hf_dsp_alreadySearched = -1; /* Exclusions */
178 static int hf_dsp_accessPoint = -1; /* AccessPointInformation */
179 static int hf_dsp_nameResolutionPhase = -1; /* T_nameResolutionPhase */
180 static int hf_dsp_nextRDNToBeResolved = -1; /* INTEGER */
181 static int hf_dsp_TraceInformation_item = -1; /* TraceItem */
182 static int hf_dsp_dsa = -1; /* Name */
183 static int hf_dsp_targetObject = -1; /* Name */
184 static int hf_dsp_ae_title = -1; /* Name */
185 static int hf_dsp_address = -1; /* PresentationAddress */
186 static int hf_dsp_protocolInformation = -1; /* SET_OF_ProtocolInformation */
187 static int hf_dsp_protocolInformation_item = -1; /* ProtocolInformation */
188 static int hf_dsp_labeledURI = -1; /* LabeledURI */
189 static int hf_dsp_access_point_category = -1; /* APCategory */
190 static int hf_dsp_chainingRequired = -1; /* BOOLEAN */
191 static int hf_dsp_MasterAndShadowAccessPoints_item = -1; /* MasterOrShadowAccessPoint */
192 static int hf_dsp_category = -1; /* T_category */
193 static int hf_dsp_additionalPoints = -1; /* MasterAndShadowAccessPoints */
194 static int hf_dsp_domainLocalID = -1; /* DirectoryString */
195 static int hf_dsp_accessPoints = -1; /* MasterAndShadowAccessPoints */
196 static int hf_dsp_Exclusions_item = -1; /* RDNSequence */
197 static int hf_dsp_rdnsResolved = -1; /* INTEGER */
198 static int hf_dsp_accessPoints_01 = -1; /* SET_OF_AccessPointInformation */
199 static int hf_dsp_accessPoints_item = -1; /* AccessPointInformation */
200 static int hf_dsp_returnToDUA = -1; /* BOOLEAN */
201 static int hf_dsp_basicLevels = -1; /* T_basicLevels */
202 static int hf_dsp_level = -1; /* T_level */
203 static int hf_dsp_localQualifier = -1; /* INTEGER */
204 static int hf_dsp_signed = -1; /* BOOLEAN */
205 static int hf_dsp_other = -1; /* EXTERNAL */
207 /*--- End of included file: packet-dsp-hf.c ---*/
208 #line 59 "../../asn1/dsp/packet-dsp-template.c"
210 /* Initialize the subtree pointers */
211 static gint ett_dsp = -1;
213 /*--- Included file: packet-dsp-ett.c ---*/
214 #line 1 "../../asn1/dsp/packet-dsp-ett.c"
215 static gint ett_dsp_ChainedReadArgumentData = -1;
216 static gint ett_dsp_ChainedReadArgument = -1;
217 static gint ett_dsp_T_signedChainedReadArgument = -1;
218 static gint ett_dsp_ChainedReadResultData = -1;
219 static gint ett_dsp_ChainedReadResult = -1;
220 static gint ett_dsp_T_signedChainedReadResult = -1;
221 static gint ett_dsp_ChainedCompareArgumentData = -1;
222 static gint ett_dsp_ChainedCompareArgument = -1;
223 static gint ett_dsp_T_signedChainedCompareArgument = -1;
224 static gint ett_dsp_ChainedCompareResultData = -1;
225 static gint ett_dsp_ChainedCompareResult = -1;
226 static gint ett_dsp_T_signedChainedCompareResult = -1;
227 static gint ett_dsp_ChainedListArgumentData = -1;
228 static gint ett_dsp_ChainedListArgument = -1;
229 static gint ett_dsp_T_signedChainedListArgument = -1;
230 static gint ett_dsp_ChainedListResultData = -1;
231 static gint ett_dsp_ChainedListResult = -1;
232 static gint ett_dsp_T_signedChainedListResult = -1;
233 static gint ett_dsp_ChainedSearchArgumentData = -1;
234 static gint ett_dsp_ChainedSearchArgument = -1;
235 static gint ett_dsp_T_signedChainedSearchArgument = -1;
236 static gint ett_dsp_ChainedSearchResultData = -1;
237 static gint ett_dsp_ChainedSearchResult = -1;
238 static gint ett_dsp_T_signedChainedSearchResult = -1;
239 static gint ett_dsp_ChainedAddEntryArgumentData = -1;
240 static gint ett_dsp_ChainedAddEntryArgument = -1;
241 static gint ett_dsp_T_signedChainedAddEntryArgument = -1;
242 static gint ett_dsp_ChainedAddEntryResultData = -1;
243 static gint ett_dsp_ChainedAddEntryResult = -1;
244 static gint ett_dsp_T_signedChainedAddEntryResult = -1;
245 static gint ett_dsp_ChainedRemoveEntryArgumentData = -1;
246 static gint ett_dsp_ChainedRemoveEntryArgument = -1;
247 static gint ett_dsp_T_signedChainedRemoveEntryArgument = -1;
248 static gint ett_dsp_ChainedRemoveEntryResultData = -1;
249 static gint ett_dsp_ChainedRemoveEntryResult = -1;
250 static gint ett_dsp_T_signedChainedRemoveEntryResult = -1;
251 static gint ett_dsp_ChainedModifyEntryArgumentData = -1;
252 static gint ett_dsp_ChainedModifyEntryArgument = -1;
253 static gint ett_dsp_T_signedChainedModifyEntryArgument = -1;
254 static gint ett_dsp_ChainedModifyEntryResultData = -1;
255 static gint ett_dsp_ChainedModifyEntryResult = -1;
256 static gint ett_dsp_T_signedChainedModifyEntryResult = -1;
257 static gint ett_dsp_ChainedModifyDNArgumentData = -1;
258 static gint ett_dsp_ChainedModifyDNArgument = -1;
259 static gint ett_dsp_T_signedChainedModifyDNArgument = -1;
260 static gint ett_dsp_ChainedModifyDNResultData = -1;
261 static gint ett_dsp_ChainedModifyDNResult = -1;
262 static gint ett_dsp_T_signedChainedModifyDNResult = -1;
263 static gint ett_dsp_DSAReferralData = -1;
264 static gint ett_dsp_SEQUENCE_OF_Attribute = -1;
265 static gint ett_dsp_DSAReferral = -1;
266 static gint ett_dsp_T_signedDSAReferral = -1;
267 static gint ett_dsp_ChainingArguments = -1;
268 static gint ett_dsp_Time = -1;
269 static gint ett_dsp_ChainingResults = -1;
270 static gint ett_dsp_SEQUENCE_OF_CrossReference = -1;
271 static gint ett_dsp_CrossReference = -1;
272 static gint ett_dsp_OperationProgress = -1;
273 static gint ett_dsp_TraceInformation = -1;
274 static gint ett_dsp_TraceItem = -1;
275 static gint ett_dsp_AccessPoint = -1;
276 static gint ett_dsp_SET_OF_ProtocolInformation = -1;
277 static gint ett_dsp_MasterOrShadowAccessPoint = -1;
278 static gint ett_dsp_MasterAndShadowAccessPoints = -1;
279 static gint ett_dsp_AccessPointInformation = -1;
280 static gint ett_dsp_DitBridgeKnowledge = -1;
281 static gint ett_dsp_Exclusions = -1;
282 static gint ett_dsp_ContinuationReference = -1;
283 static gint ett_dsp_SET_OF_AccessPointInformation = -1;
284 static gint ett_dsp_AuthenticationLevel = -1;
285 static gint ett_dsp_T_basicLevels = -1;
287 /*--- End of included file: packet-dsp-ett.c ---*/
288 #line 63 "../../asn1/dsp/packet-dsp-template.c"
291 /*--- Included file: packet-dsp-fn.c ---*/
292 #line 1 "../../asn1/dsp/packet-dsp-fn.c"
295 static int
296 dissect_dsp_DSASystemBindArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
297 offset = dissect_dap_DirectoryBindArgument(implicit_tag, tvb, offset, actx, tree, hf_index);
299 return offset;
304 static int
305 dissect_dsp_DSASystemBindResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
306 offset = dissect_dap_DirectoryBindArgument(implicit_tag, tvb, offset, actx, tree, hf_index);
308 return offset;
313 static int
314 dissect_dsp_DSASystemBindError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
315 offset = dissect_dap_DirectoryBindError(implicit_tag, tvb, offset, actx, tree, hf_index);
317 return offset;
321 static const value_string dsp_T_nameResolutionPhase_vals[] = {
322 { 1, "notStarted" },
323 { 2, "proceeding" },
324 { 3, "completed" },
325 { 0, NULL }
329 static int
330 dissect_dsp_T_nameResolutionPhase(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
331 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
332 NULL);
334 return offset;
339 static int
340 dissect_dsp_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_) {
341 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
342 NULL);
344 return offset;
348 static const ber_sequence_t OperationProgress_set[] = {
349 { &hf_dsp_nameResolutionPhase, BER_CLASS_CON, 0, 0, dissect_dsp_T_nameResolutionPhase },
350 { &hf_dsp_nextRDNToBeResolved, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dsp_INTEGER },
351 { NULL, 0, 0, 0, NULL }
355 dissect_dsp_OperationProgress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
356 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
357 OperationProgress_set, hf_index, ett_dsp_OperationProgress);
359 return offset;
363 static const ber_sequence_t TraceItem_set[] = {
364 { &hf_dsp_dsa , BER_CLASS_CON, 0, 0, dissect_x509if_Name },
365 { &hf_dsp_targetObject , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_Name },
366 { &hf_dsp_operationProgress, BER_CLASS_CON, 2, 0, dissect_dsp_OperationProgress },
367 { NULL, 0, 0, 0, NULL }
370 static int
371 dissect_dsp_TraceItem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
372 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
373 TraceItem_set, hf_index, ett_dsp_TraceItem);
375 return offset;
379 static const ber_sequence_t TraceInformation_sequence_of[1] = {
380 { &hf_dsp_TraceInformation_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_TraceItem },
383 static int
384 dissect_dsp_TraceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
385 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
386 TraceInformation_sequence_of, hf_index, ett_dsp_TraceInformation);
388 return offset;
393 static int
394 dissect_dsp_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_) {
395 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
397 return offset;
401 const value_string dsp_ReferenceType_vals[] = {
402 { 1, "superior" },
403 { 2, "subordinate" },
404 { 3, "cross" },
405 { 4, "nonSpecificSubordinate" },
406 { 5, "supplier" },
407 { 6, "master" },
408 { 7, "immediateSuperior" },
409 { 8, "self" },
410 { 9, "ditBridge" },
411 { 0, NULL }
416 dissect_dsp_ReferenceType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
417 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
418 NULL);
420 return offset;
425 static int
426 dissect_dsp_DomainInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
427 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
429 return offset;
434 static int
435 dissect_dsp_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_) {
436 offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index);
438 return offset;
443 static int
444 dissect_dsp_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_) {
445 offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
447 return offset;
451 static const value_string dsp_Time_vals[] = {
452 { 0, "utcTime" },
453 { 1, "generalizedTime" },
454 { 0, NULL }
457 static const ber_choice_t Time_choice[] = {
458 { 0, &hf_dsp_utcTime , BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_dsp_UTCTime },
459 { 1, &hf_dsp_generalizedTime , BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_dsp_GeneralizedTime },
460 { 0, NULL, 0, 0, 0, NULL }
463 static int
464 dissect_dsp_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_) {
465 offset = dissect_ber_choice(actx, tree, tvb, offset,
466 Time_choice, hf_index, ett_dsp_Time,
467 NULL);
469 return offset;
473 static const value_string dsp_T_level_vals[] = {
474 { 0, "none" },
475 { 1, "simple" },
476 { 2, "strong" },
477 { 0, NULL }
481 static int
482 dissect_dsp_T_level(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
483 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
484 NULL);
486 return offset;
490 static const ber_sequence_t T_basicLevels_sequence[] = {
491 { &hf_dsp_level , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_dsp_T_level },
492 { &hf_dsp_localQualifier , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dsp_INTEGER },
493 { &hf_dsp_signed , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dsp_BOOLEAN },
494 { NULL, 0, 0, 0, NULL }
497 static int
498 dissect_dsp_T_basicLevels(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
499 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
500 T_basicLevels_sequence, hf_index, ett_dsp_T_basicLevels);
502 return offset;
507 static int
508 dissect_dsp_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_) {
509 offset = dissect_ber_external_type(implicit_tag, tree, tvb, offset, actx, hf_index, NULL);
511 return offset;
515 static const value_string dsp_AuthenticationLevel_vals[] = {
516 { 0, "basicLevels" },
517 { 1, "other" },
518 { 0, NULL }
521 static const ber_choice_t AuthenticationLevel_choice[] = {
522 { 0, &hf_dsp_basicLevels , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dsp_T_basicLevels },
523 { 1, &hf_dsp_other , BER_CLASS_UNI, BER_UNI_TAG_EXTERNAL, BER_FLAGS_NOOWNTAG, dissect_dsp_EXTERNAL },
524 { 0, NULL, 0, 0, 0, NULL }
527 static int
528 dissect_dsp_AuthenticationLevel(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
529 offset = dissect_ber_choice(actx, tree, tvb, offset,
530 AuthenticationLevel_choice, hf_index, ett_dsp_AuthenticationLevel,
531 NULL);
533 return offset;
537 static const ber_sequence_t Exclusions_set_of[1] = {
538 { &hf_dsp_Exclusions_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_RDNSequence },
542 dissect_dsp_Exclusions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
543 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
544 Exclusions_set_of, hf_index, ett_dsp_Exclusions);
546 return offset;
550 static const value_string dsp_T_nonDapPdu_vals[] = {
551 { 0, "ldap" },
552 { 0, NULL }
556 static int
557 dissect_dsp_T_nonDapPdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
558 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
559 NULL);
561 return offset;
565 static const ber_sequence_t ChainingArguments_set[] = {
566 { &hf_dsp_originator , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
567 { &hf_dsp_targetObjectDN , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
568 { &hf_dsp_operationProgress, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dsp_OperationProgress },
569 { &hf_dsp_traceInformation, BER_CLASS_CON, 3, 0, dissect_dsp_TraceInformation },
570 { &hf_dsp_aliasDereferenced, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dsp_BOOLEAN },
571 { &hf_dsp_aliasedRDNs , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_dsp_INTEGER },
572 { &hf_dsp_returnCrossRefs , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_dsp_BOOLEAN },
573 { &hf_dsp_referenceType , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_dsp_ReferenceType },
574 { &hf_dsp_info , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_dsp_DomainInfo },
575 { &hf_dsp_timeLimit , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dsp_Time },
576 { &hf_dsp_securityParameters, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
577 { &hf_dsp_entryOnly , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_dsp_BOOLEAN },
578 { &hf_dsp_uniqueIdentifier, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_x509sat_UniqueIdentifier },
579 { &hf_dsp_authenticationLevel, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dsp_AuthenticationLevel },
580 { &hf_dsp_exclusions , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_dsp_Exclusions },
581 { &hf_dsp_excludeShadows , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL, dissect_dsp_BOOLEAN },
582 { &hf_dsp_nameResolveOnMaster, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL, dissect_dsp_BOOLEAN },
583 { &hf_dsp_operationIdentifier, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL, dissect_dsp_INTEGER },
584 { &hf_dsp_searchRuleId , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL, dissect_x509if_SearchRuleId },
585 { &hf_dsp_chainedRelaxation, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_x509if_MRMapping },
586 { &hf_dsp_relatedEntry , BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL, dissect_dsp_INTEGER },
587 { &hf_dsp_dspPaging , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_dsp_BOOLEAN },
588 { &hf_dsp_nonDapPdu , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL, dissect_dsp_T_nonDapPdu },
589 { &hf_dsp_streamedResults , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_dsp_INTEGER },
590 { &hf_dsp_excludeWriteableCopies, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_dsp_BOOLEAN },
591 { NULL, 0, 0, 0, NULL }
594 static int
595 dissect_dsp_ChainingArguments(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
596 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
597 ChainingArguments_set, hf_index, ett_dsp_ChainingArguments);
599 return offset;
603 static const ber_sequence_t ChainedReadArgumentData_set[] = {
604 { &hf_dsp_chainedArgument , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainingArguments },
605 { &hf_dsp_readArgument , BER_CLASS_CON, 0, 0, dissect_dap_ReadArgument },
606 { NULL, 0, 0, 0, NULL }
609 static int
610 dissect_dsp_ChainedReadArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
611 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
612 ChainedReadArgumentData_set, hf_index, ett_dsp_ChainedReadArgumentData);
614 return offset;
619 static int
620 dissect_dsp_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_) {
621 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
622 NULL, hf_index, -1,
623 NULL);
625 return offset;
629 static const ber_sequence_t T_signedChainedReadArgument_sequence[] = {
630 { &hf_dsp_chainedReadArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedReadArgumentData },
631 { &hf_dsp_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
632 { &hf_dsp_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dsp_BIT_STRING },
633 { NULL, 0, 0, 0, NULL }
636 static int
637 dissect_dsp_T_signedChainedReadArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
638 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
639 T_signedChainedReadArgument_sequence, hf_index, ett_dsp_T_signedChainedReadArgument);
641 return offset;
645 static const value_string dsp_ChainedReadArgument_vals[] = {
646 { 0, "unsignedChainedReadArgument" },
647 { 1, "signedChainedReadArgument" },
648 { 0, NULL }
651 static const ber_choice_t ChainedReadArgument_choice[] = {
652 { 0, &hf_dsp_unsignedChainedReadArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedReadArgumentData },
653 { 1, &hf_dsp_signedChainedReadArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dsp_T_signedChainedReadArgument },
654 { 0, NULL, 0, 0, 0, NULL }
657 static int
658 dissect_dsp_ChainedReadArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
659 offset = dissect_ber_choice(actx, tree, tvb, offset,
660 ChainedReadArgument_choice, hf_index, ett_dsp_ChainedReadArgument,
661 NULL);
663 return offset;
667 static const ber_sequence_t SET_OF_ProtocolInformation_set_of[1] = {
668 { &hf_dsp_protocolInformation_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509sat_ProtocolInformation },
671 static int
672 dissect_dsp_SET_OF_ProtocolInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
673 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
674 SET_OF_ProtocolInformation_set_of, hf_index, ett_dsp_SET_OF_ProtocolInformation);
676 return offset;
680 static const value_string dsp_T_category_vals[] = {
681 { 0, "master" },
682 { 1, "shadow" },
683 { 0, NULL }
687 static int
688 dissect_dsp_T_category(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
689 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
690 NULL);
692 return offset;
696 static const value_string dsp_APCategory_vals[] = {
697 { 0, "master" },
698 { 1, "shadow" },
699 { 0, NULL }
703 static int
704 dissect_dsp_APCategory(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
705 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
706 NULL);
708 return offset;
712 static const ber_sequence_t MasterOrShadowAccessPoint_set[] = {
713 { &hf_dsp_ae_title , BER_CLASS_CON, 0, 0, dissect_x509if_Name },
714 { &hf_dsp_address , BER_CLASS_CON, 1, 0, dissect_x509sat_PresentationAddress },
715 { &hf_dsp_protocolInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dsp_SET_OF_ProtocolInformation },
716 { &hf_dsp_access_point_category, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dsp_APCategory },
717 { &hf_dsp_chainingRequired, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_dsp_BOOLEAN },
718 { NULL, 0, 0, 0, NULL }
721 static int
722 dissect_dsp_MasterOrShadowAccessPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
723 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
724 MasterOrShadowAccessPoint_set, hf_index, ett_dsp_MasterOrShadowAccessPoint);
726 return offset;
730 static const ber_sequence_t MasterAndShadowAccessPoints_set_of[1] = {
731 { &hf_dsp_MasterAndShadowAccessPoints_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_MasterOrShadowAccessPoint },
735 dissect_dsp_MasterAndShadowAccessPoints(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
736 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
737 MasterAndShadowAccessPoints_set_of, hf_index, ett_dsp_MasterAndShadowAccessPoints);
739 return offset;
743 static const ber_sequence_t AccessPointInformation_set[] = {
744 { &hf_dsp_ae_title , BER_CLASS_CON, 0, 0, dissect_x509if_Name },
745 { &hf_dsp_address , BER_CLASS_CON, 1, 0, dissect_x509sat_PresentationAddress },
746 { &hf_dsp_protocolInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dsp_SET_OF_ProtocolInformation },
747 { &hf_dsp_category , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dsp_T_category },
748 { &hf_dsp_chainingRequired, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_dsp_BOOLEAN },
749 { &hf_dsp_additionalPoints, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dsp_MasterAndShadowAccessPoints },
750 { NULL, 0, 0, 0, NULL }
754 dissect_dsp_AccessPointInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
755 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
756 AccessPointInformation_set, hf_index, ett_dsp_AccessPointInformation);
758 return offset;
762 static const ber_sequence_t CrossReference_set[] = {
763 { &hf_dsp_contextPrefix , BER_CLASS_CON, 0, 0, dissect_x509if_DistinguishedName },
764 { &hf_dsp_accessPoint , BER_CLASS_CON, 1, 0, dissect_dsp_AccessPointInformation },
765 { NULL, 0, 0, 0, NULL }
768 static int
769 dissect_dsp_CrossReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
770 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
771 CrossReference_set, hf_index, ett_dsp_CrossReference);
773 return offset;
777 static const ber_sequence_t SEQUENCE_OF_CrossReference_sequence_of[1] = {
778 { &hf_dsp_crossReferences_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_CrossReference },
781 static int
782 dissect_dsp_SEQUENCE_OF_CrossReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
783 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
784 SEQUENCE_OF_CrossReference_sequence_of, hf_index, ett_dsp_SEQUENCE_OF_CrossReference);
786 return offset;
790 static const ber_sequence_t ChainingResults_set[] = {
791 { &hf_dsp_info , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dsp_DomainInfo },
792 { &hf_dsp_crossReferences , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dsp_SEQUENCE_OF_CrossReference },
793 { &hf_dsp_securityParameters, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
794 { &hf_dsp_alreadySearched , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dsp_Exclusions },
795 { NULL, 0, 0, 0, NULL }
798 static int
799 dissect_dsp_ChainingResults(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
800 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
801 ChainingResults_set, hf_index, ett_dsp_ChainingResults);
803 return offset;
807 static const ber_sequence_t ChainedReadResultData_set[] = {
808 { &hf_dsp_chainedResults , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainingResults },
809 { &hf_dsp_readResult , BER_CLASS_CON, 0, 0, dissect_dap_ReadResult },
810 { NULL, 0, 0, 0, NULL }
813 static int
814 dissect_dsp_ChainedReadResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
815 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
816 ChainedReadResultData_set, hf_index, ett_dsp_ChainedReadResultData);
818 return offset;
822 static const ber_sequence_t T_signedChainedReadResult_sequence[] = {
823 { &hf_dsp_chainedReadResult, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedReadResultData },
824 { &hf_dsp_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
825 { &hf_dsp_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dsp_BIT_STRING },
826 { NULL, 0, 0, 0, NULL }
829 static int
830 dissect_dsp_T_signedChainedReadResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
831 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
832 T_signedChainedReadResult_sequence, hf_index, ett_dsp_T_signedChainedReadResult);
834 return offset;
838 static const value_string dsp_ChainedReadResult_vals[] = {
839 { 0, "unsignedChainedReadResult" },
840 { 1, "signedChainedReadResult" },
841 { 0, NULL }
844 static const ber_choice_t ChainedReadResult_choice[] = {
845 { 0, &hf_dsp_unsignedChainedReadResult, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedReadResultData },
846 { 1, &hf_dsp_signedChainedReadResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dsp_T_signedChainedReadResult },
847 { 0, NULL, 0, 0, 0, NULL }
850 static int
851 dissect_dsp_ChainedReadResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
852 offset = dissect_ber_choice(actx, tree, tvb, offset,
853 ChainedReadResult_choice, hf_index, ett_dsp_ChainedReadResult,
854 NULL);
856 return offset;
860 static const ber_sequence_t ChainedCompareArgumentData_set[] = {
861 { &hf_dsp_chainedArgument , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainingArguments },
862 { &hf_dsp_compareArgument , BER_CLASS_CON, 0, 0, dissect_dap_CompareArgument },
863 { NULL, 0, 0, 0, NULL }
866 static int
867 dissect_dsp_ChainedCompareArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
868 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
869 ChainedCompareArgumentData_set, hf_index, ett_dsp_ChainedCompareArgumentData);
871 return offset;
875 static const ber_sequence_t T_signedChainedCompareArgument_sequence[] = {
876 { &hf_dsp_chainedCompareArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedCompareArgumentData },
877 { &hf_dsp_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
878 { &hf_dsp_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dsp_BIT_STRING },
879 { NULL, 0, 0, 0, NULL }
882 static int
883 dissect_dsp_T_signedChainedCompareArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
884 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
885 T_signedChainedCompareArgument_sequence, hf_index, ett_dsp_T_signedChainedCompareArgument);
887 return offset;
891 static const value_string dsp_ChainedCompareArgument_vals[] = {
892 { 0, "unsignedChainedCompareArgument" },
893 { 1, "signedChainedCompareArgument" },
894 { 0, NULL }
897 static const ber_choice_t ChainedCompareArgument_choice[] = {
898 { 0, &hf_dsp_unsignedChainedCompareArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedCompareArgumentData },
899 { 1, &hf_dsp_signedChainedCompareArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dsp_T_signedChainedCompareArgument },
900 { 0, NULL, 0, 0, 0, NULL }
903 static int
904 dissect_dsp_ChainedCompareArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
905 offset = dissect_ber_choice(actx, tree, tvb, offset,
906 ChainedCompareArgument_choice, hf_index, ett_dsp_ChainedCompareArgument,
907 NULL);
909 return offset;
913 static const ber_sequence_t ChainedCompareResultData_set[] = {
914 { &hf_dsp_chainedResults , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainingResults },
915 { &hf_dsp_compareResult , BER_CLASS_CON, 0, 0, dissect_dap_CompareResult },
916 { NULL, 0, 0, 0, NULL }
919 static int
920 dissect_dsp_ChainedCompareResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
921 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
922 ChainedCompareResultData_set, hf_index, ett_dsp_ChainedCompareResultData);
924 return offset;
928 static const ber_sequence_t T_signedChainedCompareResult_sequence[] = {
929 { &hf_dsp_chainedCompareResult, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedCompareResultData },
930 { &hf_dsp_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
931 { &hf_dsp_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dsp_BIT_STRING },
932 { NULL, 0, 0, 0, NULL }
935 static int
936 dissect_dsp_T_signedChainedCompareResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
937 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
938 T_signedChainedCompareResult_sequence, hf_index, ett_dsp_T_signedChainedCompareResult);
940 return offset;
944 static const value_string dsp_ChainedCompareResult_vals[] = {
945 { 0, "unsignedChainedCompareResult" },
946 { 1, "signedChainedCompareResult" },
947 { 0, NULL }
950 static const ber_choice_t ChainedCompareResult_choice[] = {
951 { 0, &hf_dsp_unsignedChainedCompareResult, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedCompareResultData },
952 { 1, &hf_dsp_signedChainedCompareResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dsp_T_signedChainedCompareResult },
953 { 0, NULL, 0, 0, 0, NULL }
956 static int
957 dissect_dsp_ChainedCompareResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
958 offset = dissect_ber_choice(actx, tree, tvb, offset,
959 ChainedCompareResult_choice, hf_index, ett_dsp_ChainedCompareResult,
960 NULL);
962 return offset;
967 static int
968 dissect_dsp_ChainedAbandonArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
969 offset = dissect_dap_AbandonArgument(implicit_tag, tvb, offset, actx, tree, hf_index);
971 return offset;
976 static int
977 dissect_dsp_ChainedAbandonResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
978 offset = dissect_dap_AbandonResult(implicit_tag, tvb, offset, actx, tree, hf_index);
980 return offset;
984 static const ber_sequence_t ChainedListArgumentData_set[] = {
985 { &hf_dsp_chainedArgument , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainingArguments },
986 { &hf_dsp_listArgument , BER_CLASS_CON, 0, 0, dissect_dap_ListArgument },
987 { NULL, 0, 0, 0, NULL }
990 static int
991 dissect_dsp_ChainedListArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
992 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
993 ChainedListArgumentData_set, hf_index, ett_dsp_ChainedListArgumentData);
995 return offset;
999 static const ber_sequence_t T_signedChainedListArgument_sequence[] = {
1000 { &hf_dsp_chainedListArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedListArgumentData },
1001 { &hf_dsp_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1002 { &hf_dsp_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dsp_BIT_STRING },
1003 { NULL, 0, 0, 0, NULL }
1006 static int
1007 dissect_dsp_T_signedChainedListArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1008 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1009 T_signedChainedListArgument_sequence, hf_index, ett_dsp_T_signedChainedListArgument);
1011 return offset;
1015 static const value_string dsp_ChainedListArgument_vals[] = {
1016 { 0, "unsignedChainedListArgument" },
1017 { 1, "signedChainedListArgument" },
1018 { 0, NULL }
1021 static const ber_choice_t ChainedListArgument_choice[] = {
1022 { 0, &hf_dsp_unsignedChainedListArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedListArgumentData },
1023 { 1, &hf_dsp_signedChainedListArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dsp_T_signedChainedListArgument },
1024 { 0, NULL, 0, 0, 0, NULL }
1027 static int
1028 dissect_dsp_ChainedListArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1029 offset = dissect_ber_choice(actx, tree, tvb, offset,
1030 ChainedListArgument_choice, hf_index, ett_dsp_ChainedListArgument,
1031 NULL);
1033 return offset;
1037 static const ber_sequence_t ChainedListResultData_set[] = {
1038 { &hf_dsp_chainedResults , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainingResults },
1039 { &hf_dsp_listResult , BER_CLASS_CON, 0, 0, dissect_dap_ListResult },
1040 { NULL, 0, 0, 0, NULL }
1043 static int
1044 dissect_dsp_ChainedListResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1045 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1046 ChainedListResultData_set, hf_index, ett_dsp_ChainedListResultData);
1048 return offset;
1052 static const ber_sequence_t T_signedChainedListResult_sequence[] = {
1053 { &hf_dsp_chainedListResult, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedListResultData },
1054 { &hf_dsp_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1055 { &hf_dsp_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dsp_BIT_STRING },
1056 { NULL, 0, 0, 0, NULL }
1059 static int
1060 dissect_dsp_T_signedChainedListResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1061 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1062 T_signedChainedListResult_sequence, hf_index, ett_dsp_T_signedChainedListResult);
1064 return offset;
1068 static const value_string dsp_ChainedListResult_vals[] = {
1069 { 0, "unsignedChainedListResult" },
1070 { 1, "signedChainedListResult" },
1071 { 0, NULL }
1074 static const ber_choice_t ChainedListResult_choice[] = {
1075 { 0, &hf_dsp_unsignedChainedListResult, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedListResultData },
1076 { 1, &hf_dsp_signedChainedListResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dsp_T_signedChainedListResult },
1077 { 0, NULL, 0, 0, 0, NULL }
1080 static int
1081 dissect_dsp_ChainedListResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1082 offset = dissect_ber_choice(actx, tree, tvb, offset,
1083 ChainedListResult_choice, hf_index, ett_dsp_ChainedListResult,
1084 NULL);
1086 return offset;
1090 static const ber_sequence_t ChainedSearchArgumentData_set[] = {
1091 { &hf_dsp_chainedArgument , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainingArguments },
1092 { &hf_dsp_searchArgument , BER_CLASS_CON, 0, 0, dissect_dap_SearchArgument },
1093 { NULL, 0, 0, 0, NULL }
1096 static int
1097 dissect_dsp_ChainedSearchArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1098 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1099 ChainedSearchArgumentData_set, hf_index, ett_dsp_ChainedSearchArgumentData);
1101 return offset;
1105 static const ber_sequence_t T_signedChainedSearchArgument_sequence[] = {
1106 { &hf_dsp_chainedSearchArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedSearchArgumentData },
1107 { &hf_dsp_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1108 { &hf_dsp_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dsp_BIT_STRING },
1109 { NULL, 0, 0, 0, NULL }
1112 static int
1113 dissect_dsp_T_signedChainedSearchArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1114 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1115 T_signedChainedSearchArgument_sequence, hf_index, ett_dsp_T_signedChainedSearchArgument);
1117 return offset;
1121 static const value_string dsp_ChainedSearchArgument_vals[] = {
1122 { 0, "unsignedChainedSearchArgument" },
1123 { 1, "signedChainedSearchArgument" },
1124 { 0, NULL }
1127 static const ber_choice_t ChainedSearchArgument_choice[] = {
1128 { 0, &hf_dsp_unsignedChainedSearchArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedSearchArgumentData },
1129 { 1, &hf_dsp_signedChainedSearchArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dsp_T_signedChainedSearchArgument },
1130 { 0, NULL, 0, 0, 0, NULL }
1133 static int
1134 dissect_dsp_ChainedSearchArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1135 offset = dissect_ber_choice(actx, tree, tvb, offset,
1136 ChainedSearchArgument_choice, hf_index, ett_dsp_ChainedSearchArgument,
1137 NULL);
1139 return offset;
1143 static const ber_sequence_t ChainedSearchResultData_set[] = {
1144 { &hf_dsp_chainedResults , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainingResults },
1145 { &hf_dsp_searchResult , BER_CLASS_CON, 0, 0, dissect_dap_SearchResult },
1146 { NULL, 0, 0, 0, NULL }
1149 static int
1150 dissect_dsp_ChainedSearchResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1151 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1152 ChainedSearchResultData_set, hf_index, ett_dsp_ChainedSearchResultData);
1154 return offset;
1158 static const ber_sequence_t T_signedChainedSearchResult_sequence[] = {
1159 { &hf_dsp_chainedSearchResult, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedSearchResultData },
1160 { &hf_dsp_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1161 { &hf_dsp_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dsp_BIT_STRING },
1162 { NULL, 0, 0, 0, NULL }
1165 static int
1166 dissect_dsp_T_signedChainedSearchResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1167 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1168 T_signedChainedSearchResult_sequence, hf_index, ett_dsp_T_signedChainedSearchResult);
1170 return offset;
1174 static const value_string dsp_ChainedSearchResult_vals[] = {
1175 { 0, "unsignedChainedSearchResult" },
1176 { 1, "signedChainedSearchResult" },
1177 { 0, NULL }
1180 static const ber_choice_t ChainedSearchResult_choice[] = {
1181 { 0, &hf_dsp_unsignedChainedSearchResult, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedSearchResultData },
1182 { 1, &hf_dsp_signedChainedSearchResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dsp_T_signedChainedSearchResult },
1183 { 0, NULL, 0, 0, 0, NULL }
1186 static int
1187 dissect_dsp_ChainedSearchResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1188 offset = dissect_ber_choice(actx, tree, tvb, offset,
1189 ChainedSearchResult_choice, hf_index, ett_dsp_ChainedSearchResult,
1190 NULL);
1192 return offset;
1196 static const ber_sequence_t ChainedAddEntryArgumentData_set[] = {
1197 { &hf_dsp_chainedArgument , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainingArguments },
1198 { &hf_dsp_addEntryArgument, BER_CLASS_CON, 0, 0, dissect_dap_AddEntryArgument },
1199 { NULL, 0, 0, 0, NULL }
1202 static int
1203 dissect_dsp_ChainedAddEntryArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1204 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1205 ChainedAddEntryArgumentData_set, hf_index, ett_dsp_ChainedAddEntryArgumentData);
1207 return offset;
1211 static const ber_sequence_t T_signedChainedAddEntryArgument_sequence[] = {
1212 { &hf_dsp_chainedAddEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedAddEntryArgumentData },
1213 { &hf_dsp_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1214 { &hf_dsp_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dsp_BIT_STRING },
1215 { NULL, 0, 0, 0, NULL }
1218 static int
1219 dissect_dsp_T_signedChainedAddEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1220 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1221 T_signedChainedAddEntryArgument_sequence, hf_index, ett_dsp_T_signedChainedAddEntryArgument);
1223 return offset;
1227 static const value_string dsp_ChainedAddEntryArgument_vals[] = {
1228 { 0, "unsignedChainedAddEntryArgument" },
1229 { 1, "signedChainedAddEntryArgument" },
1230 { 0, NULL }
1233 static const ber_choice_t ChainedAddEntryArgument_choice[] = {
1234 { 0, &hf_dsp_unsignedChainedAddEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedAddEntryArgumentData },
1235 { 1, &hf_dsp_signedChainedAddEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dsp_T_signedChainedAddEntryArgument },
1236 { 0, NULL, 0, 0, 0, NULL }
1239 static int
1240 dissect_dsp_ChainedAddEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1241 offset = dissect_ber_choice(actx, tree, tvb, offset,
1242 ChainedAddEntryArgument_choice, hf_index, ett_dsp_ChainedAddEntryArgument,
1243 NULL);
1245 return offset;
1249 static const ber_sequence_t ChainedAddEntryResultData_set[] = {
1250 { &hf_dsp_chainedResults , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainingResults },
1251 { &hf_dsp_addEntryResult , BER_CLASS_CON, 0, 0, dissect_dap_AddEntryResult },
1252 { NULL, 0, 0, 0, NULL }
1255 static int
1256 dissect_dsp_ChainedAddEntryResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1257 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1258 ChainedAddEntryResultData_set, hf_index, ett_dsp_ChainedAddEntryResultData);
1260 return offset;
1264 static const ber_sequence_t T_signedChainedAddEntryResult_sequence[] = {
1265 { &hf_dsp_chainedAddEntryResult, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedAddEntryResultData },
1266 { &hf_dsp_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1267 { &hf_dsp_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dsp_BIT_STRING },
1268 { NULL, 0, 0, 0, NULL }
1271 static int
1272 dissect_dsp_T_signedChainedAddEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1273 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1274 T_signedChainedAddEntryResult_sequence, hf_index, ett_dsp_T_signedChainedAddEntryResult);
1276 return offset;
1280 static const value_string dsp_ChainedAddEntryResult_vals[] = {
1281 { 0, "unsignedChainedAddEntryResult" },
1282 { 1, "signedChainedAddEntryResult" },
1283 { 0, NULL }
1286 static const ber_choice_t ChainedAddEntryResult_choice[] = {
1287 { 0, &hf_dsp_unsignedChainedAddEntryResult, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedAddEntryResultData },
1288 { 1, &hf_dsp_signedChainedAddEntryResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dsp_T_signedChainedAddEntryResult },
1289 { 0, NULL, 0, 0, 0, NULL }
1292 static int
1293 dissect_dsp_ChainedAddEntryResult(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_choice(actx, tree, tvb, offset,
1295 ChainedAddEntryResult_choice, hf_index, ett_dsp_ChainedAddEntryResult,
1296 NULL);
1298 return offset;
1302 static const ber_sequence_t ChainedRemoveEntryArgumentData_set[] = {
1303 { &hf_dsp_chainedArgument , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainingArguments },
1304 { &hf_dsp_removeEntryArgument, BER_CLASS_CON, 0, 0, dissect_dap_RemoveEntryArgument },
1305 { NULL, 0, 0, 0, NULL }
1308 static int
1309 dissect_dsp_ChainedRemoveEntryArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1310 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1311 ChainedRemoveEntryArgumentData_set, hf_index, ett_dsp_ChainedRemoveEntryArgumentData);
1313 return offset;
1317 static const ber_sequence_t T_signedChainedRemoveEntryArgument_sequence[] = {
1318 { &hf_dsp_chainedRemoveEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedRemoveEntryArgumentData },
1319 { &hf_dsp_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1320 { &hf_dsp_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dsp_BIT_STRING },
1321 { NULL, 0, 0, 0, NULL }
1324 static int
1325 dissect_dsp_T_signedChainedRemoveEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1326 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1327 T_signedChainedRemoveEntryArgument_sequence, hf_index, ett_dsp_T_signedChainedRemoveEntryArgument);
1329 return offset;
1333 static const value_string dsp_ChainedRemoveEntryArgument_vals[] = {
1334 { 0, "unsignedChainedRemoveEntryArgument" },
1335 { 1, "signedChainedRemoveEntryArgument" },
1336 { 0, NULL }
1339 static const ber_choice_t ChainedRemoveEntryArgument_choice[] = {
1340 { 0, &hf_dsp_unsignedChainedRemoveEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedRemoveEntryArgumentData },
1341 { 1, &hf_dsp_signedChainedRemoveEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dsp_T_signedChainedRemoveEntryArgument },
1342 { 0, NULL, 0, 0, 0, NULL }
1345 static int
1346 dissect_dsp_ChainedRemoveEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1347 offset = dissect_ber_choice(actx, tree, tvb, offset,
1348 ChainedRemoveEntryArgument_choice, hf_index, ett_dsp_ChainedRemoveEntryArgument,
1349 NULL);
1351 return offset;
1355 static const ber_sequence_t ChainedRemoveEntryResultData_set[] = {
1356 { &hf_dsp_chainedResults , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainingResults },
1357 { &hf_dsp_removeEntryResult, BER_CLASS_CON, 0, 0, dissect_dap_RemoveEntryResult },
1358 { NULL, 0, 0, 0, NULL }
1361 static int
1362 dissect_dsp_ChainedRemoveEntryResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1363 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1364 ChainedRemoveEntryResultData_set, hf_index, ett_dsp_ChainedRemoveEntryResultData);
1366 return offset;
1370 static const ber_sequence_t T_signedChainedRemoveEntryResult_sequence[] = {
1371 { &hf_dsp_chainedRemoveEntryResult, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedRemoveEntryResultData },
1372 { &hf_dsp_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1373 { &hf_dsp_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dsp_BIT_STRING },
1374 { NULL, 0, 0, 0, NULL }
1377 static int
1378 dissect_dsp_T_signedChainedRemoveEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1379 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1380 T_signedChainedRemoveEntryResult_sequence, hf_index, ett_dsp_T_signedChainedRemoveEntryResult);
1382 return offset;
1386 static const value_string dsp_ChainedRemoveEntryResult_vals[] = {
1387 { 0, "unsignedChainedRemoveEntryResult" },
1388 { 1, "signedChainedRemoveEntryResult" },
1389 { 0, NULL }
1392 static const ber_choice_t ChainedRemoveEntryResult_choice[] = {
1393 { 0, &hf_dsp_unsignedChainedRemoveEntryResult, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedRemoveEntryResultData },
1394 { 1, &hf_dsp_signedChainedRemoveEntryResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dsp_T_signedChainedRemoveEntryResult },
1395 { 0, NULL, 0, 0, 0, NULL }
1398 static int
1399 dissect_dsp_ChainedRemoveEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1400 offset = dissect_ber_choice(actx, tree, tvb, offset,
1401 ChainedRemoveEntryResult_choice, hf_index, ett_dsp_ChainedRemoveEntryResult,
1402 NULL);
1404 return offset;
1408 static const ber_sequence_t ChainedModifyEntryArgumentData_set[] = {
1409 { &hf_dsp_chainedArgument , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainingArguments },
1410 { &hf_dsp_modifyEntryArgument, BER_CLASS_CON, 0, 0, dissect_dap_ModifyEntryArgument },
1411 { NULL, 0, 0, 0, NULL }
1414 static int
1415 dissect_dsp_ChainedModifyEntryArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1416 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1417 ChainedModifyEntryArgumentData_set, hf_index, ett_dsp_ChainedModifyEntryArgumentData);
1419 return offset;
1423 static const ber_sequence_t T_signedChainedModifyEntryArgument_sequence[] = {
1424 { &hf_dsp_chainedModifyEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedModifyEntryArgumentData },
1425 { &hf_dsp_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1426 { &hf_dsp_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dsp_BIT_STRING },
1427 { NULL, 0, 0, 0, NULL }
1430 static int
1431 dissect_dsp_T_signedChainedModifyEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1432 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1433 T_signedChainedModifyEntryArgument_sequence, hf_index, ett_dsp_T_signedChainedModifyEntryArgument);
1435 return offset;
1439 static const value_string dsp_ChainedModifyEntryArgument_vals[] = {
1440 { 0, "unsignedChainedModifyEntryArgument" },
1441 { 1, "signedChainedModifyEntryArgument" },
1442 { 0, NULL }
1445 static const ber_choice_t ChainedModifyEntryArgument_choice[] = {
1446 { 0, &hf_dsp_unsignedChainedModifyEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedModifyEntryArgumentData },
1447 { 1, &hf_dsp_signedChainedModifyEntryArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dsp_T_signedChainedModifyEntryArgument },
1448 { 0, NULL, 0, 0, 0, NULL }
1451 static int
1452 dissect_dsp_ChainedModifyEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1453 offset = dissect_ber_choice(actx, tree, tvb, offset,
1454 ChainedModifyEntryArgument_choice, hf_index, ett_dsp_ChainedModifyEntryArgument,
1455 NULL);
1457 return offset;
1461 static const ber_sequence_t ChainedModifyEntryResultData_set[] = {
1462 { &hf_dsp_chainedResults , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainingResults },
1463 { &hf_dsp_modifyEntryResult, BER_CLASS_CON, 0, 0, dissect_dap_ModifyEntryResult },
1464 { NULL, 0, 0, 0, NULL }
1467 static int
1468 dissect_dsp_ChainedModifyEntryResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1469 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1470 ChainedModifyEntryResultData_set, hf_index, ett_dsp_ChainedModifyEntryResultData);
1472 return offset;
1476 static const ber_sequence_t T_signedChainedModifyEntryResult_sequence[] = {
1477 { &hf_dsp_chainedModifyEntryResult, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedModifyEntryResultData },
1478 { &hf_dsp_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1479 { &hf_dsp_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dsp_BIT_STRING },
1480 { NULL, 0, 0, 0, NULL }
1483 static int
1484 dissect_dsp_T_signedChainedModifyEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1485 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1486 T_signedChainedModifyEntryResult_sequence, hf_index, ett_dsp_T_signedChainedModifyEntryResult);
1488 return offset;
1492 static const value_string dsp_ChainedModifyEntryResult_vals[] = {
1493 { 0, "unsignedChainedModifyEntryResult" },
1494 { 1, "signedChainedModifyEntryResult" },
1495 { 0, NULL }
1498 static const ber_choice_t ChainedModifyEntryResult_choice[] = {
1499 { 0, &hf_dsp_unsignedChainedModifyEntryResult, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedModifyEntryResultData },
1500 { 1, &hf_dsp_signedChainedModifyEntryResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dsp_T_signedChainedModifyEntryResult },
1501 { 0, NULL, 0, 0, 0, NULL }
1504 static int
1505 dissect_dsp_ChainedModifyEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1506 offset = dissect_ber_choice(actx, tree, tvb, offset,
1507 ChainedModifyEntryResult_choice, hf_index, ett_dsp_ChainedModifyEntryResult,
1508 NULL);
1510 return offset;
1514 static const ber_sequence_t ChainedModifyDNArgumentData_set[] = {
1515 { &hf_dsp_chainedArgument , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainingArguments },
1516 { &hf_dsp_modifyDNArgument, BER_CLASS_CON, 0, 0, dissect_dap_ModifyDNArgument },
1517 { NULL, 0, 0, 0, NULL }
1520 static int
1521 dissect_dsp_ChainedModifyDNArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1522 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1523 ChainedModifyDNArgumentData_set, hf_index, ett_dsp_ChainedModifyDNArgumentData);
1525 return offset;
1529 static const ber_sequence_t T_signedChainedModifyDNArgument_sequence[] = {
1530 { &hf_dsp_chainedModifyDNArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedModifyDNArgumentData },
1531 { &hf_dsp_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1532 { &hf_dsp_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dsp_BIT_STRING },
1533 { NULL, 0, 0, 0, NULL }
1536 static int
1537 dissect_dsp_T_signedChainedModifyDNArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1538 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1539 T_signedChainedModifyDNArgument_sequence, hf_index, ett_dsp_T_signedChainedModifyDNArgument);
1541 return offset;
1545 static const value_string dsp_ChainedModifyDNArgument_vals[] = {
1546 { 0, "unsignedChainedModifyDNArgument" },
1547 { 1, "signedChainedModifyDNArgument" },
1548 { 0, NULL }
1551 static const ber_choice_t ChainedModifyDNArgument_choice[] = {
1552 { 0, &hf_dsp_unsignedChainedModifyDNArgument, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedModifyDNArgumentData },
1553 { 1, &hf_dsp_signedChainedModifyDNArgument, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dsp_T_signedChainedModifyDNArgument },
1554 { 0, NULL, 0, 0, 0, NULL }
1557 static int
1558 dissect_dsp_ChainedModifyDNArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1559 offset = dissect_ber_choice(actx, tree, tvb, offset,
1560 ChainedModifyDNArgument_choice, hf_index, ett_dsp_ChainedModifyDNArgument,
1561 NULL);
1563 return offset;
1567 static const ber_sequence_t ChainedModifyDNResultData_set[] = {
1568 { &hf_dsp_chainedResults , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainingResults },
1569 { &hf_dsp_modifyDNResult , BER_CLASS_CON, 0, 0, dissect_dap_ModifyDNResult },
1570 { NULL, 0, 0, 0, NULL }
1573 static int
1574 dissect_dsp_ChainedModifyDNResultData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1575 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1576 ChainedModifyDNResultData_set, hf_index, ett_dsp_ChainedModifyDNResultData);
1578 return offset;
1582 static const ber_sequence_t T_signedChainedModifyDNResult_sequence[] = {
1583 { &hf_dsp_chainedModifyDNResult, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedModifyDNResultData },
1584 { &hf_dsp_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1585 { &hf_dsp_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dsp_BIT_STRING },
1586 { NULL, 0, 0, 0, NULL }
1589 static int
1590 dissect_dsp_T_signedChainedModifyDNResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1591 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1592 T_signedChainedModifyDNResult_sequence, hf_index, ett_dsp_T_signedChainedModifyDNResult);
1594 return offset;
1598 static const value_string dsp_ChainedModifyDNResult_vals[] = {
1599 { 0, "unsignedChainedModifyDNResult" },
1600 { 1, "signedChainedModifyDNResult" },
1601 { 0, NULL }
1604 static const ber_choice_t ChainedModifyDNResult_choice[] = {
1605 { 0, &hf_dsp_unsignedChainedModifyDNResult, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ChainedModifyDNResultData },
1606 { 1, &hf_dsp_signedChainedModifyDNResult, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dsp_T_signedChainedModifyDNResult },
1607 { 0, NULL, 0, 0, 0, NULL }
1610 static int
1611 dissect_dsp_ChainedModifyDNResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1612 offset = dissect_ber_choice(actx, tree, tvb, offset,
1613 ChainedModifyDNResult_choice, hf_index, ett_dsp_ChainedModifyDNResult,
1614 NULL);
1616 return offset;
1620 static const ber_sequence_t SET_OF_AccessPointInformation_set_of[1] = {
1621 { &hf_dsp_accessPoints_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_AccessPointInformation },
1624 static int
1625 dissect_dsp_SET_OF_AccessPointInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1626 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1627 SET_OF_AccessPointInformation_set_of, hf_index, ett_dsp_SET_OF_AccessPointInformation);
1629 return offset;
1633 static const ber_sequence_t ContinuationReference_set[] = {
1634 { &hf_dsp_targetObject , BER_CLASS_CON, 0, 0, dissect_x509if_Name },
1635 { &hf_dsp_aliasedRDNs , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dsp_INTEGER },
1636 { &hf_dsp_operationProgress, BER_CLASS_CON, 2, 0, dissect_dsp_OperationProgress },
1637 { &hf_dsp_rdnsResolved , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dsp_INTEGER },
1638 { &hf_dsp_referenceType , BER_CLASS_CON, 4, 0, dissect_dsp_ReferenceType },
1639 { &hf_dsp_accessPoints_01 , BER_CLASS_CON, 5, 0, dissect_dsp_SET_OF_AccessPointInformation },
1640 { &hf_dsp_entryOnly , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_dsp_BOOLEAN },
1641 { &hf_dsp_exclusions , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_dsp_Exclusions },
1642 { &hf_dsp_returnToDUA , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_dsp_BOOLEAN },
1643 { &hf_dsp_nameResolveOnMaster, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_dsp_BOOLEAN },
1644 { NULL, 0, 0, 0, NULL }
1648 dissect_dsp_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_) {
1649 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1650 ContinuationReference_set, hf_index, ett_dsp_ContinuationReference);
1652 return offset;
1656 static const ber_sequence_t SEQUENCE_OF_Attribute_sequence_of[1] = {
1657 { &hf_dsp_notification_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
1660 static int
1661 dissect_dsp_SEQUENCE_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_) {
1662 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1663 SEQUENCE_OF_Attribute_sequence_of, hf_index, ett_dsp_SEQUENCE_OF_Attribute);
1665 return offset;
1669 static const ber_sequence_t DSAReferralData_set[] = {
1670 { &hf_dsp_reference , BER_CLASS_CON, 0, 0, dissect_dsp_ContinuationReference },
1671 { &hf_dsp_contextPrefix , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
1672 { &hf_dsp_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
1673 { &hf_dsp_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
1674 { &hf_dsp_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dsp_BOOLEAN },
1675 { &hf_dsp_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dsp_SEQUENCE_OF_Attribute },
1676 { NULL, 0, 0, 0, NULL }
1679 static int
1680 dissect_dsp_DSAReferralData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1681 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1682 DSAReferralData_set, hf_index, ett_dsp_DSAReferralData);
1684 return offset;
1688 static const ber_sequence_t T_signedDSAReferral_sequence[] = {
1689 { &hf_dsp_dsaReferral , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_DSAReferralData },
1690 { &hf_dsp_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
1691 { &hf_dsp_encrypted , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_dsp_BIT_STRING },
1692 { NULL, 0, 0, 0, NULL }
1695 static int
1696 dissect_dsp_T_signedDSAReferral(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1697 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1698 T_signedDSAReferral_sequence, hf_index, ett_dsp_T_signedDSAReferral);
1700 return offset;
1704 static const value_string dsp_DSAReferral_vals[] = {
1705 { 0, "unsignedDSAReferral" },
1706 { 1, "signedDSAReferral" },
1707 { 0, NULL }
1710 static const ber_choice_t DSAReferral_choice[] = {
1711 { 0, &hf_dsp_unsignedDSAReferral, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_DSAReferralData },
1712 { 1, &hf_dsp_signedDSAReferral, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dsp_T_signedDSAReferral },
1713 { 0, NULL, 0, 0, 0, NULL }
1716 static int
1717 dissect_dsp_DSAReferral(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1718 offset = dissect_ber_choice(actx, tree, tvb, offset,
1719 DSAReferral_choice, hf_index, ett_dsp_DSAReferral,
1720 NULL);
1722 return offset;
1727 static int
1728 dissect_dsp_LabeledURI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1729 offset = dissect_x509sat_DirectoryString(implicit_tag, tvb, offset, actx, tree, hf_index);
1731 return offset;
1735 static const ber_sequence_t AccessPoint_set[] = {
1736 { &hf_dsp_ae_title , BER_CLASS_CON, 0, 0, dissect_x509if_Name },
1737 { &hf_dsp_address , BER_CLASS_CON, 1, 0, dissect_x509sat_PresentationAddress },
1738 { &hf_dsp_protocolInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dsp_SET_OF_ProtocolInformation },
1739 { &hf_dsp_labeledURI , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_dsp_LabeledURI },
1740 { NULL, 0, 0, 0, NULL }
1744 dissect_dsp_AccessPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1745 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1746 AccessPoint_set, hf_index, ett_dsp_AccessPoint);
1748 return offset;
1752 static const ber_sequence_t DitBridgeKnowledge_sequence[] = {
1753 { &hf_dsp_domainLocalID , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509sat_DirectoryString },
1754 { &hf_dsp_accessPoints , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_MasterAndShadowAccessPoints },
1755 { NULL, 0, 0, 0, NULL }
1758 static int
1759 dissect_dsp_DitBridgeKnowledge(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1760 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1761 DitBridgeKnowledge_sequence, hf_index, ett_dsp_DitBridgeKnowledge);
1763 return offset;
1766 /*--- PDUs ---*/
1768 static void dissect_AccessPoint_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1769 asn1_ctx_t asn1_ctx;
1770 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1771 dissect_dsp_AccessPoint(FALSE, tvb, 0, &asn1_ctx, tree, hf_dsp_AccessPoint_PDU);
1773 static void dissect_MasterAndShadowAccessPoints_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1774 asn1_ctx_t asn1_ctx;
1775 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1776 dissect_dsp_MasterAndShadowAccessPoints(FALSE, tvb, 0, &asn1_ctx, tree, hf_dsp_MasterAndShadowAccessPoints_PDU);
1778 static void dissect_DitBridgeKnowledge_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1779 asn1_ctx_t asn1_ctx;
1780 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1781 dissect_dsp_DitBridgeKnowledge(FALSE, tvb, 0, &asn1_ctx, tree, hf_dsp_DitBridgeKnowledge_PDU);
1785 /*--- End of included file: packet-dsp-fn.c ---*/
1786 #line 65 "../../asn1/dsp/packet-dsp-template.c"
1789 * Dissect X518 PDUs inside a ROS PDUs
1791 static int
1792 dissect_dsp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
1794 int offset = 0;
1795 int old_offset;
1796 proto_item *item;
1797 proto_tree *tree;
1798 struct SESSION_DATA_STRUCTURE* session;
1799 int (*dsp_dissector)(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) = NULL;
1800 const char *dsp_op_name;
1801 asn1_ctx_t asn1_ctx;
1803 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1805 /* do we have operation information from the ROS dissector? */
1806 if( data == NULL ){
1807 if(parent_tree){
1808 proto_tree_add_text(parent_tree, tvb, offset, -1,
1809 "Internal error: can't get operation information from ROS dissector.");
1811 return 0;
1814 session = ( (struct SESSION_DATA_STRUCTURE*)data);
1816 item = proto_tree_add_item(parent_tree, proto_dsp, tvb, 0, -1, ENC_NA);
1817 tree = proto_item_add_subtree(item, ett_dsp);
1819 col_set_str(pinfo->cinfo, COL_PROTOCOL, "DAP");
1820 col_clear(pinfo->cinfo, COL_INFO);
1822 asn1_ctx.private_data = session;
1824 switch(session->ros_op & ROS_OP_MASK) {
1825 case (ROS_OP_BIND | ROS_OP_ARGUMENT): /* BindInvoke */
1826 dsp_dissector = dissect_dsp_DSASystemBindArgument;
1827 dsp_op_name = "System-Bind-Argument";
1828 break;
1829 case (ROS_OP_BIND | ROS_OP_RESULT): /* BindResult */
1830 dsp_dissector = dissect_dsp_DSASystemBindResult;
1831 dsp_op_name = "System-Bind-Result";
1832 break;
1833 case (ROS_OP_BIND | ROS_OP_ERROR): /* BindError */
1834 dsp_dissector = dissect_dsp_DSASystemBindError;
1835 dsp_op_name = "System-Bind-Error";
1836 break;
1837 case (ROS_OP_INVOKE | ROS_OP_ARGUMENT): /* Invoke Argument */
1838 switch(session->ros_op & ROS_OP_OPCODE_MASK) {
1839 case 1: /* read */
1840 dsp_dissector = dissect_dsp_ChainedReadArgument;
1841 dsp_op_name = "Chained-Read-Argument";
1842 break;
1843 case 2: /* compare */
1844 dsp_dissector = dissect_dsp_ChainedCompareArgument;
1845 dsp_op_name = "Chained-Compare-Argument";
1846 break;
1847 case 3: /* abandon */
1848 dsp_dissector = dissect_dsp_ChainedAbandonArgument;
1849 dsp_op_name = "Chained-Abandon-Argument";
1850 break;
1851 case 4: /* list */
1852 dsp_dissector = dissect_dsp_ChainedListArgument;
1853 dsp_op_name = "Chained-List-Argument";
1854 break;
1855 case 5: /* search */
1856 dsp_dissector = dissect_dsp_ChainedSearchArgument;
1857 dsp_op_name = "Chained-Search-Argument";
1858 break;
1859 case 6: /* addEntry */
1860 dsp_dissector = dissect_dsp_ChainedAddEntryArgument;
1861 dsp_op_name = "Chained-Add-Entry-Argument";
1862 break;
1863 case 7: /* removeEntry */
1864 dsp_dissector = dissect_dsp_ChainedRemoveEntryArgument;
1865 dsp_op_name = "Chained-Remove-Entry-Argument";
1866 break;
1867 case 8: /* modifyEntry */
1868 dsp_dissector = dissect_dsp_ChainedModifyEntryArgument;
1869 dsp_op_name = "ChainedModify-Entry-Argument";
1870 break;
1871 case 9: /* modifyDN */
1872 dsp_dissector = dissect_dsp_ChainedModifyDNArgument;
1873 dsp_op_name = "ChainedModify-DN-Argument";
1874 break;
1875 default:
1876 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DSP opcode (%d)",
1877 session->ros_op & ROS_OP_OPCODE_MASK);
1878 break;
1880 break;
1881 case (ROS_OP_INVOKE | ROS_OP_RESULT): /* Return Result */
1882 switch(session->ros_op & ROS_OP_OPCODE_MASK) {
1883 case 1: /* read */
1884 dsp_dissector = dissect_dsp_ChainedReadResult;
1885 dsp_op_name = "Chained-Read-Result";
1886 break;
1887 case 2: /* compare */
1888 dsp_dissector = dissect_dsp_ChainedCompareResult;
1889 dsp_op_name = "Chained-Compare-Result";
1890 break;
1891 case 3: /* abandon */
1892 dsp_dissector = dissect_dsp_ChainedAbandonResult;
1893 dsp_op_name = "Chained-Abandon-Result";
1894 break;
1895 case 4: /* list */
1896 dsp_dissector = dissect_dsp_ChainedListResult;
1897 dsp_op_name = "Chained-List-Result";
1898 break;
1899 case 5: /* search */
1900 dsp_dissector = dissect_dsp_ChainedSearchResult;
1901 dsp_op_name = "Chained-Search-Result";
1902 break;
1903 case 6: /* addEntry */
1904 dsp_dissector = dissect_dsp_ChainedAddEntryResult;
1905 dsp_op_name = "Chained-Add-Entry-Result";
1906 break;
1907 case 7: /* removeEntry */
1908 dsp_dissector = dissect_dsp_ChainedRemoveEntryResult;
1909 dsp_op_name = "Chained-Remove-Entry-Result";
1910 break;
1911 case 8: /* modifyEntry */
1912 dsp_dissector = dissect_dsp_ChainedModifyEntryResult;
1913 dsp_op_name = "Chained-Modify-Entry-Result";
1914 break;
1915 case 9: /* modifyDN */
1916 dsp_dissector = dissect_dsp_ChainedModifyDNResult;
1917 dsp_op_name = "ChainedModify-DN-Result";
1918 break;
1919 default:
1920 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DSP opcode");
1921 break;
1923 break;
1924 case (ROS_OP_INVOKE | ROS_OP_ERROR): /* Return Error */
1925 switch(session->ros_op & ROS_OP_OPCODE_MASK) {
1926 case 1: /* attributeError */
1927 dsp_dissector = dissect_dap_AttributeError;
1928 dsp_op_name = "Attribute-Error";
1929 break;
1930 case 2: /* nameError */
1931 dsp_dissector = dissect_dap_NameError;
1932 dsp_op_name = "Name-Error";
1933 break;
1934 case 3: /* serviceError */
1935 dsp_dissector = dissect_dap_ServiceError;
1936 dsp_op_name = "Service-Error";
1937 break;
1938 case 4: /* referral */
1939 dsp_dissector = dissect_dap_Referral;
1940 dsp_op_name = "Referral";
1941 break;
1942 case 5: /* abandoned */
1943 dsp_dissector = dissect_dap_Abandoned;
1944 dsp_op_name = "Abandoned";
1945 break;
1946 case 6: /* securityError */
1947 dsp_dissector = dissect_dap_SecurityError;
1948 dsp_op_name = "Security-Error";
1949 break;
1950 case 7: /* abandonFailed */
1951 dsp_dissector = dissect_dap_AbandonFailedError;
1952 dsp_op_name = "Abandon-Failed-Error";
1953 break;
1954 case 8: /* updateError */
1955 dsp_dissector = dissect_dap_UpdateError;
1956 dsp_op_name = "Update-Error";
1957 break;
1958 case 9: /* DSAReferral */
1959 dsp_dissector = dissect_dsp_DSAReferral;
1960 dsp_op_name = "DSA-Referral";
1961 break;
1962 default:
1963 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DSP errcode");
1964 break;
1966 break;
1967 default:
1968 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DSP PDU");
1969 return tvb_length(tvb);
1972 if(dsp_dissector) {
1973 col_set_str(pinfo->cinfo, COL_INFO, dsp_op_name);
1975 while (tvb_reported_length_remaining(tvb, offset) > 0){
1976 old_offset=offset;
1977 offset=(*dsp_dissector)(FALSE, tvb, offset, &asn1_ctx, tree, -1);
1978 if(offset == old_offset){
1979 proto_tree_add_text(tree, tvb, offset, -1,"Internal error, zero-byte DSP PDU");
1980 break;
1985 return tvb_length(tvb);
1989 /*--- proto_register_dsp -------------------------------------------*/
1990 void proto_register_dsp(void) {
1992 /* List of fields */
1993 static hf_register_info hf[] =
1996 /*--- Included file: packet-dsp-hfarr.c ---*/
1997 #line 1 "../../asn1/dsp/packet-dsp-hfarr.c"
1998 { &hf_dsp_AccessPoint_PDU,
1999 { "AccessPoint", "dsp.AccessPoint_element",
2000 FT_NONE, BASE_NONE, NULL, 0,
2001 NULL, HFILL }},
2002 { &hf_dsp_MasterAndShadowAccessPoints_PDU,
2003 { "MasterAndShadowAccessPoints", "dsp.MasterAndShadowAccessPoints",
2004 FT_UINT32, BASE_DEC, NULL, 0,
2005 NULL, HFILL }},
2006 { &hf_dsp_DitBridgeKnowledge_PDU,
2007 { "DitBridgeKnowledge", "dsp.DitBridgeKnowledge_element",
2008 FT_NONE, BASE_NONE, NULL, 0,
2009 NULL, HFILL }},
2010 { &hf_dsp_chainedArgument,
2011 { "chainedArgument", "dsp.chainedArgument_element",
2012 FT_NONE, BASE_NONE, NULL, 0,
2013 "ChainingArguments", HFILL }},
2014 { &hf_dsp_readArgument,
2015 { "readArgument", "dsp.readArgument",
2016 FT_UINT32, BASE_DEC, VALS(dap_ReadArgument_vals), 0,
2017 NULL, HFILL }},
2018 { &hf_dsp_unsignedChainedReadArgument,
2019 { "unsignedChainedReadArgument", "dsp.unsignedChainedReadArgument_element",
2020 FT_NONE, BASE_NONE, NULL, 0,
2021 "ChainedReadArgumentData", HFILL }},
2022 { &hf_dsp_signedChainedReadArgument,
2023 { "signedChainedReadArgument", "dsp.signedChainedReadArgument_element",
2024 FT_NONE, BASE_NONE, NULL, 0,
2025 NULL, HFILL }},
2026 { &hf_dsp_chainedReadArgument,
2027 { "chainedReadArgument", "dsp.chainedReadArgument_element",
2028 FT_NONE, BASE_NONE, NULL, 0,
2029 "ChainedReadArgumentData", HFILL }},
2030 { &hf_dsp_algorithmIdentifier,
2031 { "algorithmIdentifier", "dsp.algorithmIdentifier_element",
2032 FT_NONE, BASE_NONE, NULL, 0,
2033 NULL, HFILL }},
2034 { &hf_dsp_encrypted,
2035 { "encrypted", "dsp.encrypted",
2036 FT_BYTES, BASE_NONE, NULL, 0,
2037 "BIT_STRING", HFILL }},
2038 { &hf_dsp_chainedResults,
2039 { "chainedResults", "dsp.chainedResults_element",
2040 FT_NONE, BASE_NONE, NULL, 0,
2041 "ChainingResults", HFILL }},
2042 { &hf_dsp_readResult,
2043 { "readResult", "dsp.readResult",
2044 FT_UINT32, BASE_DEC, VALS(dap_ReadResult_vals), 0,
2045 NULL, HFILL }},
2046 { &hf_dsp_unsignedChainedReadResult,
2047 { "unsignedChainedReadResult", "dsp.unsignedChainedReadResult_element",
2048 FT_NONE, BASE_NONE, NULL, 0,
2049 "ChainedReadResultData", HFILL }},
2050 { &hf_dsp_signedChainedReadResult,
2051 { "signedChainedReadResult", "dsp.signedChainedReadResult_element",
2052 FT_NONE, BASE_NONE, NULL, 0,
2053 NULL, HFILL }},
2054 { &hf_dsp_chainedReadResult,
2055 { "chainedReadResult", "dsp.chainedReadResult_element",
2056 FT_NONE, BASE_NONE, NULL, 0,
2057 "ChainedReadResultData", HFILL }},
2058 { &hf_dsp_compareArgument,
2059 { "compareArgument", "dsp.compareArgument",
2060 FT_UINT32, BASE_DEC, VALS(dap_CompareArgument_vals), 0,
2061 NULL, HFILL }},
2062 { &hf_dsp_unsignedChainedCompareArgument,
2063 { "unsignedChainedCompareArgument", "dsp.unsignedChainedCompareArgument_element",
2064 FT_NONE, BASE_NONE, NULL, 0,
2065 "ChainedCompareArgumentData", HFILL }},
2066 { &hf_dsp_signedChainedCompareArgument,
2067 { "signedChainedCompareArgument", "dsp.signedChainedCompareArgument_element",
2068 FT_NONE, BASE_NONE, NULL, 0,
2069 NULL, HFILL }},
2070 { &hf_dsp_chainedCompareArgument,
2071 { "chainedCompareArgument", "dsp.chainedCompareArgument_element",
2072 FT_NONE, BASE_NONE, NULL, 0,
2073 "ChainedCompareArgumentData", HFILL }},
2074 { &hf_dsp_compareResult,
2075 { "compareResult", "dsp.compareResult",
2076 FT_UINT32, BASE_DEC, VALS(dap_CompareResult_vals), 0,
2077 NULL, HFILL }},
2078 { &hf_dsp_unsignedChainedCompareResult,
2079 { "unsignedChainedCompareResult", "dsp.unsignedChainedCompareResult_element",
2080 FT_NONE, BASE_NONE, NULL, 0,
2081 "ChainedCompareResultData", HFILL }},
2082 { &hf_dsp_signedChainedCompareResult,
2083 { "signedChainedCompareResult", "dsp.signedChainedCompareResult_element",
2084 FT_NONE, BASE_NONE, NULL, 0,
2085 NULL, HFILL }},
2086 { &hf_dsp_chainedCompareResult,
2087 { "chainedCompareResult", "dsp.chainedCompareResult_element",
2088 FT_NONE, BASE_NONE, NULL, 0,
2089 "ChainedCompareResultData", HFILL }},
2090 { &hf_dsp_listArgument,
2091 { "listArgument", "dsp.listArgument",
2092 FT_UINT32, BASE_DEC, VALS(dap_ListArgument_vals), 0,
2093 NULL, HFILL }},
2094 { &hf_dsp_unsignedChainedListArgument,
2095 { "unsignedChainedListArgument", "dsp.unsignedChainedListArgument_element",
2096 FT_NONE, BASE_NONE, NULL, 0,
2097 "ChainedListArgumentData", HFILL }},
2098 { &hf_dsp_signedChainedListArgument,
2099 { "signedChainedListArgument", "dsp.signedChainedListArgument_element",
2100 FT_NONE, BASE_NONE, NULL, 0,
2101 NULL, HFILL }},
2102 { &hf_dsp_chainedListArgument,
2103 { "chainedListArgument", "dsp.chainedListArgument_element",
2104 FT_NONE, BASE_NONE, NULL, 0,
2105 "ChainedListArgumentData", HFILL }},
2106 { &hf_dsp_listResult,
2107 { "listResult", "dsp.listResult",
2108 FT_UINT32, BASE_DEC, VALS(dap_ListResult_vals), 0,
2109 NULL, HFILL }},
2110 { &hf_dsp_unsignedChainedListResult,
2111 { "unsignedChainedListResult", "dsp.unsignedChainedListResult_element",
2112 FT_NONE, BASE_NONE, NULL, 0,
2113 "ChainedListResultData", HFILL }},
2114 { &hf_dsp_signedChainedListResult,
2115 { "signedChainedListResult", "dsp.signedChainedListResult_element",
2116 FT_NONE, BASE_NONE, NULL, 0,
2117 NULL, HFILL }},
2118 { &hf_dsp_chainedListResult,
2119 { "chainedListResult", "dsp.chainedListResult_element",
2120 FT_NONE, BASE_NONE, NULL, 0,
2121 "ChainedListResultData", HFILL }},
2122 { &hf_dsp_searchArgument,
2123 { "searchArgument", "dsp.searchArgument",
2124 FT_UINT32, BASE_DEC, VALS(dap_SearchArgument_vals), 0,
2125 NULL, HFILL }},
2126 { &hf_dsp_unsignedChainedSearchArgument,
2127 { "unsignedChainedSearchArgument", "dsp.unsignedChainedSearchArgument_element",
2128 FT_NONE, BASE_NONE, NULL, 0,
2129 "ChainedSearchArgumentData", HFILL }},
2130 { &hf_dsp_signedChainedSearchArgument,
2131 { "signedChainedSearchArgument", "dsp.signedChainedSearchArgument_element",
2132 FT_NONE, BASE_NONE, NULL, 0,
2133 NULL, HFILL }},
2134 { &hf_dsp_chainedSearchArgument,
2135 { "chainedSearchArgument", "dsp.chainedSearchArgument_element",
2136 FT_NONE, BASE_NONE, NULL, 0,
2137 "ChainedSearchArgumentData", HFILL }},
2138 { &hf_dsp_searchResult,
2139 { "searchResult", "dsp.searchResult",
2140 FT_UINT32, BASE_DEC, VALS(dap_SearchResult_vals), 0,
2141 NULL, HFILL }},
2142 { &hf_dsp_unsignedChainedSearchResult,
2143 { "unsignedChainedSearchResult", "dsp.unsignedChainedSearchResult_element",
2144 FT_NONE, BASE_NONE, NULL, 0,
2145 "ChainedSearchResultData", HFILL }},
2146 { &hf_dsp_signedChainedSearchResult,
2147 { "signedChainedSearchResult", "dsp.signedChainedSearchResult_element",
2148 FT_NONE, BASE_NONE, NULL, 0,
2149 NULL, HFILL }},
2150 { &hf_dsp_chainedSearchResult,
2151 { "chainedSearchResult", "dsp.chainedSearchResult_element",
2152 FT_NONE, BASE_NONE, NULL, 0,
2153 "ChainedSearchResultData", HFILL }},
2154 { &hf_dsp_addEntryArgument,
2155 { "addEntryArgument", "dsp.addEntryArgument",
2156 FT_UINT32, BASE_DEC, VALS(dap_AddEntryArgument_vals), 0,
2157 NULL, HFILL }},
2158 { &hf_dsp_unsignedChainedAddEntryArgument,
2159 { "unsignedChainedAddEntryArgument", "dsp.unsignedChainedAddEntryArgument_element",
2160 FT_NONE, BASE_NONE, NULL, 0,
2161 "ChainedAddEntryArgumentData", HFILL }},
2162 { &hf_dsp_signedChainedAddEntryArgument,
2163 { "signedChainedAddEntryArgument", "dsp.signedChainedAddEntryArgument_element",
2164 FT_NONE, BASE_NONE, NULL, 0,
2165 NULL, HFILL }},
2166 { &hf_dsp_chainedAddEntryArgument,
2167 { "chainedAddEntryArgument", "dsp.chainedAddEntryArgument_element",
2168 FT_NONE, BASE_NONE, NULL, 0,
2169 "ChainedAddEntryArgumentData", HFILL }},
2170 { &hf_dsp_addEntryResult,
2171 { "addEntryResult", "dsp.addEntryResult",
2172 FT_UINT32, BASE_DEC, VALS(dap_AddEntryResult_vals), 0,
2173 NULL, HFILL }},
2174 { &hf_dsp_unsignedChainedAddEntryResult,
2175 { "unsignedChainedAddEntryResult", "dsp.unsignedChainedAddEntryResult_element",
2176 FT_NONE, BASE_NONE, NULL, 0,
2177 "ChainedAddEntryResultData", HFILL }},
2178 { &hf_dsp_signedChainedAddEntryResult,
2179 { "signedChainedAddEntryResult", "dsp.signedChainedAddEntryResult_element",
2180 FT_NONE, BASE_NONE, NULL, 0,
2181 NULL, HFILL }},
2182 { &hf_dsp_chainedAddEntryResult,
2183 { "chainedAddEntryResult", "dsp.chainedAddEntryResult_element",
2184 FT_NONE, BASE_NONE, NULL, 0,
2185 "ChainedAddEntryResultData", HFILL }},
2186 { &hf_dsp_removeEntryArgument,
2187 { "removeEntryArgument", "dsp.removeEntryArgument",
2188 FT_UINT32, BASE_DEC, VALS(dap_RemoveEntryArgument_vals), 0,
2189 NULL, HFILL }},
2190 { &hf_dsp_unsignedChainedRemoveEntryArgument,
2191 { "unsignedChainedRemoveEntryArgument", "dsp.unsignedChainedRemoveEntryArgument_element",
2192 FT_NONE, BASE_NONE, NULL, 0,
2193 "ChainedRemoveEntryArgumentData", HFILL }},
2194 { &hf_dsp_signedChainedRemoveEntryArgument,
2195 { "signedChainedRemoveEntryArgument", "dsp.signedChainedRemoveEntryArgument_element",
2196 FT_NONE, BASE_NONE, NULL, 0,
2197 NULL, HFILL }},
2198 { &hf_dsp_chainedRemoveEntryArgument,
2199 { "chainedRemoveEntryArgument", "dsp.chainedRemoveEntryArgument_element",
2200 FT_NONE, BASE_NONE, NULL, 0,
2201 "ChainedRemoveEntryArgumentData", HFILL }},
2202 { &hf_dsp_removeEntryResult,
2203 { "removeEntryResult", "dsp.removeEntryResult",
2204 FT_UINT32, BASE_DEC, VALS(dap_RemoveEntryResult_vals), 0,
2205 NULL, HFILL }},
2206 { &hf_dsp_unsignedChainedRemoveEntryResult,
2207 { "unsignedChainedRemoveEntryResult", "dsp.unsignedChainedRemoveEntryResult_element",
2208 FT_NONE, BASE_NONE, NULL, 0,
2209 "ChainedRemoveEntryResultData", HFILL }},
2210 { &hf_dsp_signedChainedRemoveEntryResult,
2211 { "signedChainedRemoveEntryResult", "dsp.signedChainedRemoveEntryResult_element",
2212 FT_NONE, BASE_NONE, NULL, 0,
2213 NULL, HFILL }},
2214 { &hf_dsp_chainedRemoveEntryResult,
2215 { "chainedRemoveEntryResult", "dsp.chainedRemoveEntryResult_element",
2216 FT_NONE, BASE_NONE, NULL, 0,
2217 "ChainedRemoveEntryResultData", HFILL }},
2218 { &hf_dsp_modifyEntryArgument,
2219 { "modifyEntryArgument", "dsp.modifyEntryArgument",
2220 FT_UINT32, BASE_DEC, VALS(dap_ModifyEntryArgument_vals), 0,
2221 NULL, HFILL }},
2222 { &hf_dsp_unsignedChainedModifyEntryArgument,
2223 { "unsignedChainedModifyEntryArgument", "dsp.unsignedChainedModifyEntryArgument_element",
2224 FT_NONE, BASE_NONE, NULL, 0,
2225 "ChainedModifyEntryArgumentData", HFILL }},
2226 { &hf_dsp_signedChainedModifyEntryArgument,
2227 { "signedChainedModifyEntryArgument", "dsp.signedChainedModifyEntryArgument_element",
2228 FT_NONE, BASE_NONE, NULL, 0,
2229 NULL, HFILL }},
2230 { &hf_dsp_chainedModifyEntryArgument,
2231 { "chainedModifyEntryArgument", "dsp.chainedModifyEntryArgument_element",
2232 FT_NONE, BASE_NONE, NULL, 0,
2233 "ChainedModifyEntryArgumentData", HFILL }},
2234 { &hf_dsp_modifyEntryResult,
2235 { "modifyEntryResult", "dsp.modifyEntryResult",
2236 FT_UINT32, BASE_DEC, VALS(dap_ModifyEntryResult_vals), 0,
2237 NULL, HFILL }},
2238 { &hf_dsp_unsignedChainedModifyEntryResult,
2239 { "unsignedChainedModifyEntryResult", "dsp.unsignedChainedModifyEntryResult_element",
2240 FT_NONE, BASE_NONE, NULL, 0,
2241 "ChainedModifyEntryResultData", HFILL }},
2242 { &hf_dsp_signedChainedModifyEntryResult,
2243 { "signedChainedModifyEntryResult", "dsp.signedChainedModifyEntryResult_element",
2244 FT_NONE, BASE_NONE, NULL, 0,
2245 NULL, HFILL }},
2246 { &hf_dsp_chainedModifyEntryResult,
2247 { "chainedModifyEntryResult", "dsp.chainedModifyEntryResult_element",
2248 FT_NONE, BASE_NONE, NULL, 0,
2249 "ChainedModifyEntryResultData", HFILL }},
2250 { &hf_dsp_modifyDNArgument,
2251 { "modifyDNArgument", "dsp.modifyDNArgument_element",
2252 FT_NONE, BASE_NONE, NULL, 0,
2253 NULL, HFILL }},
2254 { &hf_dsp_unsignedChainedModifyDNArgument,
2255 { "unsignedChainedModifyDNArgument", "dsp.unsignedChainedModifyDNArgument_element",
2256 FT_NONE, BASE_NONE, NULL, 0,
2257 "ChainedModifyDNArgumentData", HFILL }},
2258 { &hf_dsp_signedChainedModifyDNArgument,
2259 { "signedChainedModifyDNArgument", "dsp.signedChainedModifyDNArgument_element",
2260 FT_NONE, BASE_NONE, NULL, 0,
2261 NULL, HFILL }},
2262 { &hf_dsp_chainedModifyDNArgument,
2263 { "chainedModifyDNArgument", "dsp.chainedModifyDNArgument_element",
2264 FT_NONE, BASE_NONE, NULL, 0,
2265 "ChainedModifyDNArgumentData", HFILL }},
2266 { &hf_dsp_modifyDNResult,
2267 { "modifyDNResult", "dsp.modifyDNResult",
2268 FT_UINT32, BASE_DEC, VALS(dap_ModifyDNResult_vals), 0,
2269 NULL, HFILL }},
2270 { &hf_dsp_unsignedChainedModifyDNResult,
2271 { "unsignedChainedModifyDNResult", "dsp.unsignedChainedModifyDNResult_element",
2272 FT_NONE, BASE_NONE, NULL, 0,
2273 "ChainedModifyDNResultData", HFILL }},
2274 { &hf_dsp_signedChainedModifyDNResult,
2275 { "signedChainedModifyDNResult", "dsp.signedChainedModifyDNResult_element",
2276 FT_NONE, BASE_NONE, NULL, 0,
2277 NULL, HFILL }},
2278 { &hf_dsp_chainedModifyDNResult,
2279 { "chainedModifyDNResult", "dsp.chainedModifyDNResult_element",
2280 FT_NONE, BASE_NONE, NULL, 0,
2281 "ChainedModifyDNResultData", HFILL }},
2282 { &hf_dsp_reference,
2283 { "reference", "dsp.reference_element",
2284 FT_NONE, BASE_NONE, NULL, 0,
2285 "ContinuationReference", HFILL }},
2286 { &hf_dsp_contextPrefix,
2287 { "contextPrefix", "dsp.contextPrefix",
2288 FT_UINT32, BASE_DEC, NULL, 0,
2289 "DistinguishedName", HFILL }},
2290 { &hf_dsp_securityParameters,
2291 { "securityParameters", "dsp.securityParameters_element",
2292 FT_NONE, BASE_NONE, NULL, 0,
2293 NULL, HFILL }},
2294 { &hf_dsp_performer,
2295 { "performer", "dsp.performer",
2296 FT_UINT32, BASE_DEC, NULL, 0,
2297 "DistinguishedName", HFILL }},
2298 { &hf_dsp_aliasDereferenced,
2299 { "aliasDereferenced", "dsp.aliasDereferenced",
2300 FT_BOOLEAN, BASE_NONE, NULL, 0,
2301 "BOOLEAN", HFILL }},
2302 { &hf_dsp_notification,
2303 { "notification", "dsp.notification",
2304 FT_UINT32, BASE_DEC, NULL, 0,
2305 "SEQUENCE_OF_Attribute", HFILL }},
2306 { &hf_dsp_notification_item,
2307 { "Attribute", "dsp.Attribute_element",
2308 FT_NONE, BASE_NONE, NULL, 0,
2309 NULL, HFILL }},
2310 { &hf_dsp_unsignedDSAReferral,
2311 { "unsignedDSAReferral", "dsp.unsignedDSAReferral_element",
2312 FT_NONE, BASE_NONE, NULL, 0,
2313 "DSAReferralData", HFILL }},
2314 { &hf_dsp_signedDSAReferral,
2315 { "signedDSAReferral", "dsp.signedDSAReferral_element",
2316 FT_NONE, BASE_NONE, NULL, 0,
2317 NULL, HFILL }},
2318 { &hf_dsp_dsaReferral,
2319 { "dsaReferral", "dsp.dsaReferral_element",
2320 FT_NONE, BASE_NONE, NULL, 0,
2321 "DSAReferralData", HFILL }},
2322 { &hf_dsp_originator,
2323 { "originator", "dsp.originator",
2324 FT_UINT32, BASE_DEC, NULL, 0,
2325 "DistinguishedName", HFILL }},
2326 { &hf_dsp_targetObjectDN,
2327 { "targetObject", "dsp.targetObject",
2328 FT_UINT32, BASE_DEC, NULL, 0,
2329 "DistinguishedName", HFILL }},
2330 { &hf_dsp_operationProgress,
2331 { "operationProgress", "dsp.operationProgress_element",
2332 FT_NONE, BASE_NONE, NULL, 0,
2333 NULL, HFILL }},
2334 { &hf_dsp_traceInformation,
2335 { "traceInformation", "dsp.traceInformation",
2336 FT_UINT32, BASE_DEC, NULL, 0,
2337 NULL, HFILL }},
2338 { &hf_dsp_aliasedRDNs,
2339 { "aliasedRDNs", "dsp.aliasedRDNs",
2340 FT_INT32, BASE_DEC, NULL, 0,
2341 "INTEGER", HFILL }},
2342 { &hf_dsp_returnCrossRefs,
2343 { "returnCrossRefs", "dsp.returnCrossRefs",
2344 FT_BOOLEAN, BASE_NONE, NULL, 0,
2345 "BOOLEAN", HFILL }},
2346 { &hf_dsp_referenceType,
2347 { "referenceType", "dsp.referenceType",
2348 FT_UINT32, BASE_DEC, VALS(dsp_ReferenceType_vals), 0,
2349 NULL, HFILL }},
2350 { &hf_dsp_info,
2351 { "info", "dsp.info",
2352 FT_OID, BASE_NONE, NULL, 0,
2353 "DomainInfo", HFILL }},
2354 { &hf_dsp_timeLimit,
2355 { "timeLimit", "dsp.timeLimit",
2356 FT_UINT32, BASE_DEC, VALS(dsp_Time_vals), 0,
2357 "Time", HFILL }},
2358 { &hf_dsp_entryOnly,
2359 { "entryOnly", "dsp.entryOnly",
2360 FT_BOOLEAN, BASE_NONE, NULL, 0,
2361 "BOOLEAN", HFILL }},
2362 { &hf_dsp_uniqueIdentifier,
2363 { "uniqueIdentifier", "dsp.uniqueIdentifier",
2364 FT_BYTES, BASE_NONE, NULL, 0,
2365 NULL, HFILL }},
2366 { &hf_dsp_authenticationLevel,
2367 { "authenticationLevel", "dsp.authenticationLevel",
2368 FT_UINT32, BASE_DEC, VALS(dsp_AuthenticationLevel_vals), 0,
2369 NULL, HFILL }},
2370 { &hf_dsp_exclusions,
2371 { "exclusions", "dsp.exclusions",
2372 FT_UINT32, BASE_DEC, NULL, 0,
2373 NULL, HFILL }},
2374 { &hf_dsp_excludeShadows,
2375 { "excludeShadows", "dsp.excludeShadows",
2376 FT_BOOLEAN, BASE_NONE, NULL, 0,
2377 "BOOLEAN", HFILL }},
2378 { &hf_dsp_nameResolveOnMaster,
2379 { "nameResolveOnMaster", "dsp.nameResolveOnMaster",
2380 FT_BOOLEAN, BASE_NONE, NULL, 0,
2381 "BOOLEAN", HFILL }},
2382 { &hf_dsp_operationIdentifier,
2383 { "operationIdentifier", "dsp.operationIdentifier",
2384 FT_INT32, BASE_DEC, NULL, 0,
2385 "INTEGER", HFILL }},
2386 { &hf_dsp_searchRuleId,
2387 { "searchRuleId", "dsp.searchRuleId_element",
2388 FT_NONE, BASE_NONE, NULL, 0,
2389 NULL, HFILL }},
2390 { &hf_dsp_chainedRelaxation,
2391 { "chainedRelaxation", "dsp.chainedRelaxation_element",
2392 FT_NONE, BASE_NONE, NULL, 0,
2393 "MRMapping", HFILL }},
2394 { &hf_dsp_relatedEntry,
2395 { "relatedEntry", "dsp.relatedEntry",
2396 FT_INT32, BASE_DEC, NULL, 0,
2397 "INTEGER", HFILL }},
2398 { &hf_dsp_dspPaging,
2399 { "dspPaging", "dsp.dspPaging",
2400 FT_BOOLEAN, BASE_NONE, NULL, 0,
2401 "BOOLEAN", HFILL }},
2402 { &hf_dsp_nonDapPdu,
2403 { "nonDapPdu", "dsp.nonDapPdu",
2404 FT_UINT32, BASE_DEC, VALS(dsp_T_nonDapPdu_vals), 0,
2405 NULL, HFILL }},
2406 { &hf_dsp_streamedResults,
2407 { "streamedResults", "dsp.streamedResults",
2408 FT_INT32, BASE_DEC, NULL, 0,
2409 "INTEGER", HFILL }},
2410 { &hf_dsp_excludeWriteableCopies,
2411 { "excludeWriteableCopies", "dsp.excludeWriteableCopies",
2412 FT_BOOLEAN, BASE_NONE, NULL, 0,
2413 "BOOLEAN", HFILL }},
2414 { &hf_dsp_utcTime,
2415 { "utcTime", "dsp.utcTime",
2416 FT_STRING, BASE_NONE, NULL, 0,
2417 NULL, HFILL }},
2418 { &hf_dsp_generalizedTime,
2419 { "generalizedTime", "dsp.generalizedTime",
2420 FT_STRING, BASE_NONE, NULL, 0,
2421 NULL, HFILL }},
2422 { &hf_dsp_crossReferences,
2423 { "crossReferences", "dsp.crossReferences",
2424 FT_UINT32, BASE_DEC, NULL, 0,
2425 "SEQUENCE_OF_CrossReference", HFILL }},
2426 { &hf_dsp_crossReferences_item,
2427 { "CrossReference", "dsp.CrossReference_element",
2428 FT_NONE, BASE_NONE, NULL, 0,
2429 NULL, HFILL }},
2430 { &hf_dsp_alreadySearched,
2431 { "alreadySearched", "dsp.alreadySearched",
2432 FT_UINT32, BASE_DEC, NULL, 0,
2433 "Exclusions", HFILL }},
2434 { &hf_dsp_accessPoint,
2435 { "accessPoint", "dsp.accessPoint_element",
2436 FT_NONE, BASE_NONE, NULL, 0,
2437 "AccessPointInformation", HFILL }},
2438 { &hf_dsp_nameResolutionPhase,
2439 { "nameResolutionPhase", "dsp.nameResolutionPhase",
2440 FT_UINT32, BASE_DEC, VALS(dsp_T_nameResolutionPhase_vals), 0,
2441 NULL, HFILL }},
2442 { &hf_dsp_nextRDNToBeResolved,
2443 { "nextRDNToBeResolved", "dsp.nextRDNToBeResolved",
2444 FT_INT32, BASE_DEC, NULL, 0,
2445 "INTEGER", HFILL }},
2446 { &hf_dsp_TraceInformation_item,
2447 { "TraceItem", "dsp.TraceItem_element",
2448 FT_NONE, BASE_NONE, NULL, 0,
2449 NULL, HFILL }},
2450 { &hf_dsp_dsa,
2451 { "dsa", "dsp.dsa",
2452 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2453 "Name", HFILL }},
2454 { &hf_dsp_targetObject,
2455 { "targetObject", "dsp.targetObject",
2456 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2457 "Name", HFILL }},
2458 { &hf_dsp_ae_title,
2459 { "ae-title", "dsp.ae_title",
2460 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2461 "Name", HFILL }},
2462 { &hf_dsp_address,
2463 { "address", "dsp.address_element",
2464 FT_NONE, BASE_NONE, NULL, 0,
2465 "PresentationAddress", HFILL }},
2466 { &hf_dsp_protocolInformation,
2467 { "protocolInformation", "dsp.protocolInformation",
2468 FT_UINT32, BASE_DEC, NULL, 0,
2469 "SET_OF_ProtocolInformation", HFILL }},
2470 { &hf_dsp_protocolInformation_item,
2471 { "ProtocolInformation", "dsp.ProtocolInformation_element",
2472 FT_NONE, BASE_NONE, NULL, 0,
2473 NULL, HFILL }},
2474 { &hf_dsp_labeledURI,
2475 { "labeledURI", "dsp.labeledURI",
2476 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2477 NULL, HFILL }},
2478 { &hf_dsp_access_point_category,
2479 { "category", "dsp.category",
2480 FT_UINT32, BASE_DEC, VALS(dsp_APCategory_vals), 0,
2481 "APCategory", HFILL }},
2482 { &hf_dsp_chainingRequired,
2483 { "chainingRequired", "dsp.chainingRequired",
2484 FT_BOOLEAN, BASE_NONE, NULL, 0,
2485 "BOOLEAN", HFILL }},
2486 { &hf_dsp_MasterAndShadowAccessPoints_item,
2487 { "MasterOrShadowAccessPoint", "dsp.MasterOrShadowAccessPoint_element",
2488 FT_NONE, BASE_NONE, NULL, 0,
2489 NULL, HFILL }},
2490 { &hf_dsp_category,
2491 { "category", "dsp.category",
2492 FT_UINT32, BASE_DEC, VALS(dsp_T_category_vals), 0,
2493 NULL, HFILL }},
2494 { &hf_dsp_additionalPoints,
2495 { "additionalPoints", "dsp.additionalPoints",
2496 FT_UINT32, BASE_DEC, NULL, 0,
2497 "MasterAndShadowAccessPoints", HFILL }},
2498 { &hf_dsp_domainLocalID,
2499 { "domainLocalID", "dsp.domainLocalID",
2500 FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
2501 "DirectoryString", HFILL }},
2502 { &hf_dsp_accessPoints,
2503 { "accessPoints", "dsp.accessPoints",
2504 FT_UINT32, BASE_DEC, NULL, 0,
2505 "MasterAndShadowAccessPoints", HFILL }},
2506 { &hf_dsp_Exclusions_item,
2507 { "RDNSequence", "dsp.RDNSequence",
2508 FT_UINT32, BASE_DEC, NULL, 0,
2509 NULL, HFILL }},
2510 { &hf_dsp_rdnsResolved,
2511 { "rdnsResolved", "dsp.rdnsResolved",
2512 FT_INT32, BASE_DEC, NULL, 0,
2513 "INTEGER", HFILL }},
2514 { &hf_dsp_accessPoints_01,
2515 { "accessPoints", "dsp.accessPoints",
2516 FT_UINT32, BASE_DEC, NULL, 0,
2517 "SET_OF_AccessPointInformation", HFILL }},
2518 { &hf_dsp_accessPoints_item,
2519 { "AccessPointInformation", "dsp.AccessPointInformation_element",
2520 FT_NONE, BASE_NONE, NULL, 0,
2521 NULL, HFILL }},
2522 { &hf_dsp_returnToDUA,
2523 { "returnToDUA", "dsp.returnToDUA",
2524 FT_BOOLEAN, BASE_NONE, NULL, 0,
2525 "BOOLEAN", HFILL }},
2526 { &hf_dsp_basicLevels,
2527 { "basicLevels", "dsp.basicLevels_element",
2528 FT_NONE, BASE_NONE, NULL, 0,
2529 NULL, HFILL }},
2530 { &hf_dsp_level,
2531 { "level", "dsp.level",
2532 FT_UINT32, BASE_DEC, VALS(dsp_T_level_vals), 0,
2533 NULL, HFILL }},
2534 { &hf_dsp_localQualifier,
2535 { "localQualifier", "dsp.localQualifier",
2536 FT_INT32, BASE_DEC, NULL, 0,
2537 "INTEGER", HFILL }},
2538 { &hf_dsp_signed,
2539 { "signed", "dsp.signed",
2540 FT_BOOLEAN, BASE_NONE, NULL, 0,
2541 "BOOLEAN", HFILL }},
2542 { &hf_dsp_other,
2543 { "other", "dsp.other_element",
2544 FT_NONE, BASE_NONE, NULL, 0,
2545 "EXTERNAL", HFILL }},
2547 /*--- End of included file: packet-dsp-hfarr.c ---*/
2548 #line 274 "../../asn1/dsp/packet-dsp-template.c"
2551 /* List of subtrees */
2552 static gint *ett[] = {
2553 &ett_dsp,
2555 /*--- Included file: packet-dsp-ettarr.c ---*/
2556 #line 1 "../../asn1/dsp/packet-dsp-ettarr.c"
2557 &ett_dsp_ChainedReadArgumentData,
2558 &ett_dsp_ChainedReadArgument,
2559 &ett_dsp_T_signedChainedReadArgument,
2560 &ett_dsp_ChainedReadResultData,
2561 &ett_dsp_ChainedReadResult,
2562 &ett_dsp_T_signedChainedReadResult,
2563 &ett_dsp_ChainedCompareArgumentData,
2564 &ett_dsp_ChainedCompareArgument,
2565 &ett_dsp_T_signedChainedCompareArgument,
2566 &ett_dsp_ChainedCompareResultData,
2567 &ett_dsp_ChainedCompareResult,
2568 &ett_dsp_T_signedChainedCompareResult,
2569 &ett_dsp_ChainedListArgumentData,
2570 &ett_dsp_ChainedListArgument,
2571 &ett_dsp_T_signedChainedListArgument,
2572 &ett_dsp_ChainedListResultData,
2573 &ett_dsp_ChainedListResult,
2574 &ett_dsp_T_signedChainedListResult,
2575 &ett_dsp_ChainedSearchArgumentData,
2576 &ett_dsp_ChainedSearchArgument,
2577 &ett_dsp_T_signedChainedSearchArgument,
2578 &ett_dsp_ChainedSearchResultData,
2579 &ett_dsp_ChainedSearchResult,
2580 &ett_dsp_T_signedChainedSearchResult,
2581 &ett_dsp_ChainedAddEntryArgumentData,
2582 &ett_dsp_ChainedAddEntryArgument,
2583 &ett_dsp_T_signedChainedAddEntryArgument,
2584 &ett_dsp_ChainedAddEntryResultData,
2585 &ett_dsp_ChainedAddEntryResult,
2586 &ett_dsp_T_signedChainedAddEntryResult,
2587 &ett_dsp_ChainedRemoveEntryArgumentData,
2588 &ett_dsp_ChainedRemoveEntryArgument,
2589 &ett_dsp_T_signedChainedRemoveEntryArgument,
2590 &ett_dsp_ChainedRemoveEntryResultData,
2591 &ett_dsp_ChainedRemoveEntryResult,
2592 &ett_dsp_T_signedChainedRemoveEntryResult,
2593 &ett_dsp_ChainedModifyEntryArgumentData,
2594 &ett_dsp_ChainedModifyEntryArgument,
2595 &ett_dsp_T_signedChainedModifyEntryArgument,
2596 &ett_dsp_ChainedModifyEntryResultData,
2597 &ett_dsp_ChainedModifyEntryResult,
2598 &ett_dsp_T_signedChainedModifyEntryResult,
2599 &ett_dsp_ChainedModifyDNArgumentData,
2600 &ett_dsp_ChainedModifyDNArgument,
2601 &ett_dsp_T_signedChainedModifyDNArgument,
2602 &ett_dsp_ChainedModifyDNResultData,
2603 &ett_dsp_ChainedModifyDNResult,
2604 &ett_dsp_T_signedChainedModifyDNResult,
2605 &ett_dsp_DSAReferralData,
2606 &ett_dsp_SEQUENCE_OF_Attribute,
2607 &ett_dsp_DSAReferral,
2608 &ett_dsp_T_signedDSAReferral,
2609 &ett_dsp_ChainingArguments,
2610 &ett_dsp_Time,
2611 &ett_dsp_ChainingResults,
2612 &ett_dsp_SEQUENCE_OF_CrossReference,
2613 &ett_dsp_CrossReference,
2614 &ett_dsp_OperationProgress,
2615 &ett_dsp_TraceInformation,
2616 &ett_dsp_TraceItem,
2617 &ett_dsp_AccessPoint,
2618 &ett_dsp_SET_OF_ProtocolInformation,
2619 &ett_dsp_MasterOrShadowAccessPoint,
2620 &ett_dsp_MasterAndShadowAccessPoints,
2621 &ett_dsp_AccessPointInformation,
2622 &ett_dsp_DitBridgeKnowledge,
2623 &ett_dsp_Exclusions,
2624 &ett_dsp_ContinuationReference,
2625 &ett_dsp_SET_OF_AccessPointInformation,
2626 &ett_dsp_AuthenticationLevel,
2627 &ett_dsp_T_basicLevels,
2629 /*--- End of included file: packet-dsp-ettarr.c ---*/
2630 #line 280 "../../asn1/dsp/packet-dsp-template.c"
2632 module_t *dsp_module;
2634 /* Register protocol */
2635 proto_dsp = proto_register_protocol(PNAME, PSNAME, PFNAME);
2637 new_register_dissector("dsp", dissect_dsp, proto_dsp);
2639 /* Register fields and subtrees */
2640 proto_register_field_array(proto_dsp, hf, array_length(hf));
2641 proto_register_subtree_array(ett, array_length(ett));
2643 /* Register our configuration options for DSP, particularly our port */
2645 dsp_module = prefs_register_protocol_subtree("OSI/X.500", proto_dsp, prefs_register_dsp);
2647 prefs_register_uint_preference(dsp_module, "tcp.port", "DSP TCP Port",
2648 "Set the port for DSP operations (if other"
2649 " than the default of 102)",
2650 10, &global_dsp_tcp_port);
2656 /*--- proto_reg_handoff_dsp --- */
2657 void proto_reg_handoff_dsp(void) {
2658 dissector_handle_t dsp_handle;
2661 /*--- Included file: packet-dsp-dis-tab.c ---*/
2662 #line 1 "../../asn1/dsp/packet-dsp-dis-tab.c"
2663 register_ber_oid_dissector("2.5.12.1", dissect_AccessPoint_PDU, proto_dsp, "id-doa-myAccessPoint");
2664 register_ber_oid_dissector("2.5.12.2", dissect_AccessPoint_PDU, proto_dsp, "id-doa-superiorKnowledge");
2665 register_ber_oid_dissector("2.5.12.3", dissect_MasterAndShadowAccessPoints_PDU, proto_dsp, "id-doa-specificKnowledge");
2666 register_ber_oid_dissector("2.5.12.4", dissect_MasterAndShadowAccessPoints_PDU, proto_dsp, "id-doa-nonSpecificKnowledge");
2667 register_ber_oid_dissector("2.5.12.8", dissect_DitBridgeKnowledge_PDU, proto_dsp, "id-doa-ditBridgeKnowledge");
2670 /*--- End of included file: packet-dsp-dis-tab.c ---*/
2671 #line 310 "../../asn1/dsp/packet-dsp-template.c"
2673 /* APPLICATION CONTEXT */
2675 oid_add_from_string("id-ac-directory-system","2.5.3.2");
2677 /* ABSTRACT SYNTAXES */
2679 /* remember the tpkt handler for change in preferences */
2680 tpkt_handle = find_dissector("tpkt");
2682 /* Register DSP with ROS (with no use of RTSE) */
2683 dsp_handle = find_dissector("dsp");
2684 register_ros_oid_dissector_handle("2.5.9.2", dsp_handle, 0, "id-as-directory-system", FALSE);
2688 static void
2689 prefs_register_dsp(void)
2691 static guint tcp_port = 0;
2693 /* de-register the old port */
2694 /* port 102 is registered by TPKT - don't undo this! */
2695 if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
2696 dissector_delete_uint("tcp.port", tcp_port, tpkt_handle);
2698 /* Set our port number for future use */
2699 tcp_port = global_dsp_tcp_port;
2701 if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
2702 dissector_add_uint("tcp.port", global_dsp_tcp_port, tpkt_handle);