1 /* Do not modify this file. */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler */
4 /* ../../tools/asn2wrs.py -b -e -p dsp -c dsp.cnf -s packet-dsp-template dsp.asn */
6 /* Input file: packet-dsp-template.c */
8 #line 1 "packet-dsp-template.c"
10 * Routines for X.518 (X.500 Distributed Operations) packet dissection
15 * Wireshark - Network traffic analyzer
16 * By Gerald Combs <gerald@wireshark.org>
17 * Copyright 1998 Gerald Combs
19 * This program is free software; you can redistribute it and/or
20 * modify it under the terms of the GNU General Public License
21 * as published by the Free Software Foundation; either version 2
22 * of the License, or (at your option) any later version.
24 * This program is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 * GNU General Public License for more details.
29 * You should have received a copy of the GNU General Public License
30 * along with this program; if not, write to the Free Software
31 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
39 #include <epan/packet.h>
40 #include <epan/prefs.h>
41 #include <epan/conversation.h>
46 #include "packet-ber.h"
47 #include "packet-acse.h"
48 #include "packet-ros.h"
50 #include "packet-x509if.h"
51 #include "packet-x509af.h"
52 #include "packet-x509sat.h"
54 #include "packet-dap.h"
55 #include "packet-dsp.h"
58 #define PNAME "X.519 Directory System Protocol"
62 static guint global_dsp_tcp_port = 102;
63 static guint tcp_port = 0;
64 static dissector_handle_t tpkt_handle = NULL;
65 void prefs_register_dsp(void); /* forwad declaration for use in preferences registration */
68 /* Initialize the protocol and registered fields */
71 static struct SESSION_DATA_STRUCTURE* session = NULL;
74 /*--- Included file: packet-dsp-hf.c ---*/
75 #line 1 "packet-dsp-hf.c"
76 static int hf_dsp_AccessPoint_PDU = -1; /* AccessPoint */
77 static int hf_dsp_MasterAndShadowAccessPoints_PDU = -1; /* MasterAndShadowAccessPoints */
78 static int hf_dsp_chainedArgument = -1; /* ChainingArguments */
79 static int hf_dsp_readArgument = -1; /* ReadArgument */
80 static int hf_dsp_unsignedChainedReadArgument = -1; /* ChainedReadArgumentData */
81 static int hf_dsp_signedChainedReadArgument = -1; /* T_signedChainedReadArgument */
82 static int hf_dsp_chainedReadArgument = -1; /* ChainedReadArgumentData */
83 static int hf_dsp_algorithmIdentifier = -1; /* AlgorithmIdentifier */
84 static int hf_dsp_encrypted = -1; /* BIT_STRING */
85 static int hf_dsp_chainedResults = -1; /* ChainingResults */
86 static int hf_dsp_readResult = -1; /* ReadResult */
87 static int hf_dsp_unsignedChainedReadResult = -1; /* ChainedReadResultData */
88 static int hf_dsp_signedChainedReadResult = -1; /* T_signedChainedReadResult */
89 static int hf_dsp_chainedReadResult = -1; /* ChainedReadResultData */
90 static int hf_dsp_compareArgument = -1; /* CompareArgument */
91 static int hf_dsp_unsignedChainedCompareArgument = -1; /* ChainedCompareArgumentData */
92 static int hf_dsp_signedChainedCompareArgument = -1; /* T_signedChainedCompareArgument */
93 static int hf_dsp_chainedCompareArgument = -1; /* ChainedCompareArgumentData */
94 static int hf_dsp_compareResult = -1; /* CompareResult */
95 static int hf_dsp_unsignedChainedCompareResult = -1; /* ChainedCompareResultData */
96 static int hf_dsp_signedChainedCompareResult = -1; /* T_signedChainedCompareResult */
97 static int hf_dsp_chainedCompareResult = -1; /* ChainedCompareResultData */
98 static int hf_dsp_listArgument = -1; /* ListArgument */
99 static int hf_dsp_unsignedChainedListArgument = -1; /* ChainedListArgumentData */
100 static int hf_dsp_signedChainedListArgument = -1; /* T_signedChainedListArgument */
101 static int hf_dsp_chainedListArgument = -1; /* ChainedListArgumentData */
102 static int hf_dsp_listResult = -1; /* ListResult */
103 static int hf_dsp_unsignedChainedListResult = -1; /* ChainedListResultData */
104 static int hf_dsp_signedChainedListResult = -1; /* T_signedChainedListResult */
105 static int hf_dsp_chainedListResult = -1; /* ChainedListResultData */
106 static int hf_dsp_searchArgument = -1; /* SearchArgument */
107 static int hf_dsp_unsignedChainedSearchArgument = -1; /* ChainedSearchArgumentData */
108 static int hf_dsp_signedChainedSearchArgument = -1; /* T_signedChainedSearchArgument */
109 static int hf_dsp_chainedSearchArgument = -1; /* ChainedSearchArgumentData */
110 static int hf_dsp_searchResult = -1; /* SearchResult */
111 static int hf_dsp_unsignedChainedSearchResult = -1; /* ChainedSearchResultData */
112 static int hf_dsp_signedChainedSearchResult = -1; /* T_signedChainedSearchResult */
113 static int hf_dsp_chainedSearchResult = -1; /* ChainedSearchResultData */
114 static int hf_dsp_addEntryArgument = -1; /* AddEntryArgument */
115 static int hf_dsp_unsignedChainedAddEntryArgument = -1; /* ChainedAddEntryArgumentData */
116 static int hf_dsp_signedChainedAddEntryArgument = -1; /* T_signedChainedAddEntryArgument */
117 static int hf_dsp_chainedAddEntryArgument = -1; /* ChainedAddEntryArgumentData */
118 static int hf_dsp_addEntryResult = -1; /* AddEntryResult */
119 static int hf_dsp_unsignedChainedAddEntryResult = -1; /* ChainedAddEntryResultData */
120 static int hf_dsp_signedChainedAddEntryResult = -1; /* T_signedChainedAddEntryResult */
121 static int hf_dsp_chainedAddEntryResult = -1; /* ChainedAddEntryResultData */
122 static int hf_dsp_removeEntryArgument = -1; /* RemoveEntryArgument */
123 static int hf_dsp_unsignedChainedRemoveEntryArgument = -1; /* ChainedRemoveEntryArgumentData */
124 static int hf_dsp_signedChainedRemoveEntryArgument = -1; /* T_signedChainedRemoveEntryArgument */
125 static int hf_dsp_chainedRemoveEntryArgument = -1; /* ChainedRemoveEntryArgumentData */
126 static int hf_dsp_removeEntryResult = -1; /* RemoveEntryResult */
127 static int hf_dsp_unsignedChainedRemoveEntryResult = -1; /* ChainedRemoveEntryResultData */
128 static int hf_dsp_signedChainedRemoveEntryResult = -1; /* T_signedChainedRemoveEntryResult */
129 static int hf_dsp_chainedRemoveEntryResult = -1; /* ChainedRemoveEntryResultData */
130 static int hf_dsp_modifyEntryArgument = -1; /* ModifyEntryArgument */
131 static int hf_dsp_unsignedChainedModifyEntryArgument = -1; /* ChainedModifyEntryArgumentData */
132 static int hf_dsp_signedChainedModifyEntryArgument = -1; /* T_signedChainedModifyEntryArgument */
133 static int hf_dsp_chainedModifyEntryArgument = -1; /* ChainedModifyEntryArgumentData */
134 static int hf_dsp_modifyEntryResult = -1; /* ModifyEntryResult */
135 static int hf_dsp_unsignedChainedModifyEntryResult = -1; /* ChainedModifyEntryResultData */
136 static int hf_dsp_signedChainedModifyEntryResult = -1; /* T_signedChainedModifyEntryResult */
137 static int hf_dsp_chainedModifyEntryResult = -1; /* ChainedModifyEntryResultData */
138 static int hf_dsp_modifyDNArgument = -1; /* ModifyDNArgument */
139 static int hf_dsp_unsignedChainedModifyDNArgument = -1; /* ChainedModifyDNArgumentData */
140 static int hf_dsp_signedChainedModifyDNArgument = -1; /* T_signedChainedModifyDNArgument */
141 static int hf_dsp_chainedModifyDNArgument = -1; /* ChainedModifyDNArgumentData */
142 static int hf_dsp_modifyDNResult = -1; /* ModifyDNResult */
143 static int hf_dsp_unsignedChainedModifyDNResult = -1; /* ChainedModifyDNResultData */
144 static int hf_dsp_signedChainedModifyDNResult = -1; /* T_signedChainedModifyDNResult */
145 static int hf_dsp_chainedModifyDNResult = -1; /* ChainedModifyDNResultData */
146 static int hf_dsp_reference = -1; /* ContinuationReference */
147 static int hf_dsp_contextPrefix = -1; /* DistinguishedName */
148 static int hf_dsp_securityParameters = -1; /* SecurityParameters */
149 static int hf_dsp_performer = -1; /* DistinguishedName */
150 static int hf_dsp_aliasDereferenced = -1; /* BOOLEAN */
151 static int hf_dsp_notification = -1; /* SEQUENCE_OF_Attribute */
152 static int hf_dsp_notification_item = -1; /* Attribute */
153 static int hf_dsp_unsignedDSAReferral = -1; /* DSAReferralData */
154 static int hf_dsp_signedDSAReferral = -1; /* T_signedDSAReferral */
155 static int hf_dsp_dsaReferral = -1; /* DSAReferralData */
156 static int hf_dsp_originator = -1; /* DistinguishedName */
157 static int hf_dsp_targetObjectDN = -1; /* DistinguishedName */
158 static int hf_dsp_operationProgress = -1; /* OperationProgress */
159 static int hf_dsp_traceInformation = -1; /* TraceInformation */
160 static int hf_dsp_aliasedRDNs = -1; /* INTEGER */
161 static int hf_dsp_returnCrossRefs = -1; /* BOOLEAN */
162 static int hf_dsp_referenceType = -1; /* ReferenceType */
163 static int hf_dsp_info = -1; /* DomainInfo */
164 static int hf_dsp_timeLimit = -1; /* Time */
165 static int hf_dsp_entryOnly = -1; /* BOOLEAN */
166 static int hf_dsp_uniqueIdentifier = -1; /* UniqueIdentifier */
167 static int hf_dsp_authenticationLevel = -1; /* AuthenticationLevel */
168 static int hf_dsp_exclusions = -1; /* Exclusions */
169 static int hf_dsp_excludeShadows = -1; /* BOOLEAN */
170 static int hf_dsp_nameResolveOnMaster = -1; /* BOOLEAN */
171 static int hf_dsp_operationIdentifier = -1; /* INTEGER */
172 static int hf_dsp_searchRuleId = -1; /* SearchRuleId */
173 static int hf_dsp_chainedRelaxation = -1; /* MRMapping */
174 static int hf_dsp_relatedEntry = -1; /* INTEGER */
175 static int hf_dsp_utcTime = -1; /* UTCTime */
176 static int hf_dsp_generalizedTime = -1; /* GeneralizedTime */
177 static int hf_dsp_crossReferences = -1; /* SEQUENCE_OF_CrossReference */
178 static int hf_dsp_crossReferences_item = -1; /* CrossReference */
179 static int hf_dsp_alreadySearched = -1; /* Exclusions */
180 static int hf_dsp_accessPoint = -1; /* AccessPointInformation */
181 static int hf_dsp_nameResolutionPhase = -1; /* T_nameResolutionPhase */
182 static int hf_dsp_nextRDNToBeResolved = -1; /* INTEGER */
183 static int hf_dsp_TraceInformation_item = -1; /* TraceItem */
184 static int hf_dsp_dsa = -1; /* Name */
185 static int hf_dsp_targetObject = -1; /* Name */
186 static int hf_dsp_ae_title = -1; /* Name */
187 static int hf_dsp_address = -1; /* PresentationAddress */
188 static int hf_dsp_protocolInformation = -1; /* SET_OF_ProtocolInformation */
189 static int hf_dsp_protocolInformation_item = -1; /* ProtocolInformation */
190 static int hf_dsp_access_point_category = -1; /* APCategory */
191 static int hf_dsp_chainingRequired = -1; /* BOOLEAN */
192 static int hf_dsp_MasterAndShadowAccessPoints_item = -1; /* MasterOrShadowAccessPoint */
193 static int hf_dsp_category = -1; /* T_category */
194 static int hf_dsp_additionalPoints = -1; /* MasterAndShadowAccessPoints */
195 static int hf_dsp_Exclusions_item = -1; /* RDNSequence */
196 static int hf_dsp_rdnsResolved = -1; /* INTEGER */
197 static int hf_dsp_accessPoints = -1; /* SET_OF_AccessPointInformation */
198 static int hf_dsp_accessPoints_item = -1; /* AccessPointInformation */
199 static int hf_dsp_returnToDUA = -1; /* BOOLEAN */
200 static int hf_dsp_basicLevels = -1; /* T_basicLevels */
201 static int hf_dsp_level = -1; /* T_level */
202 static int hf_dsp_localQualifier = -1; /* INTEGER */
203 static int hf_dsp_signed = -1; /* BOOLEAN */
204 static int hf_dsp_other = -1; /* EXTERNAL */
206 /*--- End of included file: packet-dsp-hf.c ---*/
207 #line 66 "packet-dsp-template.c"
209 /* Initialize the subtree pointers */
210 static gint ett_dsp = -1;
212 /*--- Included file: packet-dsp-ett.c ---*/
213 #line 1 "packet-dsp-ett.c"
214 static gint ett_dsp_ChainedReadArgumentData = -1;
215 static gint ett_dsp_ChainedReadArgument = -1;
216 static gint ett_dsp_T_signedChainedReadArgument = -1;
217 static gint ett_dsp_ChainedReadResultData = -1;
218 static gint ett_dsp_ChainedReadResult = -1;
219 static gint ett_dsp_T_signedChainedReadResult = -1;
220 static gint ett_dsp_ChainedCompareArgumentData = -1;
221 static gint ett_dsp_ChainedCompareArgument = -1;
222 static gint ett_dsp_T_signedChainedCompareArgument = -1;
223 static gint ett_dsp_ChainedCompareResultData = -1;
224 static gint ett_dsp_ChainedCompareResult = -1;
225 static gint ett_dsp_T_signedChainedCompareResult = -1;
226 static gint ett_dsp_ChainedListArgumentData = -1;
227 static gint ett_dsp_ChainedListArgument = -1;
228 static gint ett_dsp_T_signedChainedListArgument = -1;
229 static gint ett_dsp_ChainedListResultData = -1;
230 static gint ett_dsp_ChainedListResult = -1;
231 static gint ett_dsp_T_signedChainedListResult = -1;
232 static gint ett_dsp_ChainedSearchArgumentData = -1;
233 static gint ett_dsp_ChainedSearchArgument = -1;
234 static gint ett_dsp_T_signedChainedSearchArgument = -1;
235 static gint ett_dsp_ChainedSearchResultData = -1;
236 static gint ett_dsp_ChainedSearchResult = -1;
237 static gint ett_dsp_T_signedChainedSearchResult = -1;
238 static gint ett_dsp_ChainedAddEntryArgumentData = -1;
239 static gint ett_dsp_ChainedAddEntryArgument = -1;
240 static gint ett_dsp_T_signedChainedAddEntryArgument = -1;
241 static gint ett_dsp_ChainedAddEntryResultData = -1;
242 static gint ett_dsp_ChainedAddEntryResult = -1;
243 static gint ett_dsp_T_signedChainedAddEntryResult = -1;
244 static gint ett_dsp_ChainedRemoveEntryArgumentData = -1;
245 static gint ett_dsp_ChainedRemoveEntryArgument = -1;
246 static gint ett_dsp_T_signedChainedRemoveEntryArgument = -1;
247 static gint ett_dsp_ChainedRemoveEntryResultData = -1;
248 static gint ett_dsp_ChainedRemoveEntryResult = -1;
249 static gint ett_dsp_T_signedChainedRemoveEntryResult = -1;
250 static gint ett_dsp_ChainedModifyEntryArgumentData = -1;
251 static gint ett_dsp_ChainedModifyEntryArgument = -1;
252 static gint ett_dsp_T_signedChainedModifyEntryArgument = -1;
253 static gint ett_dsp_ChainedModifyEntryResultData = -1;
254 static gint ett_dsp_ChainedModifyEntryResult = -1;
255 static gint ett_dsp_T_signedChainedModifyEntryResult = -1;
256 static gint ett_dsp_ChainedModifyDNArgumentData = -1;
257 static gint ett_dsp_ChainedModifyDNArgument = -1;
258 static gint ett_dsp_T_signedChainedModifyDNArgument = -1;
259 static gint ett_dsp_ChainedModifyDNResultData = -1;
260 static gint ett_dsp_ChainedModifyDNResult = -1;
261 static gint ett_dsp_T_signedChainedModifyDNResult = -1;
262 static gint ett_dsp_DSAReferralData = -1;
263 static gint ett_dsp_SEQUENCE_OF_Attribute = -1;
264 static gint ett_dsp_DSAReferral = -1;
265 static gint ett_dsp_T_signedDSAReferral = -1;
266 static gint ett_dsp_ChainingArguments = -1;
267 static gint ett_dsp_Time = -1;
268 static gint ett_dsp_ChainingResults = -1;
269 static gint ett_dsp_SEQUENCE_OF_CrossReference = -1;
270 static gint ett_dsp_CrossReference = -1;
271 static gint ett_dsp_OperationProgress = -1;
272 static gint ett_dsp_TraceInformation = -1;
273 static gint ett_dsp_TraceItem = -1;
274 static gint ett_dsp_AccessPoint = -1;
275 static gint ett_dsp_SET_OF_ProtocolInformation = -1;
276 static gint ett_dsp_MasterOrShadowAccessPoint = -1;
277 static gint ett_dsp_MasterAndShadowAccessPoints = -1;
278 static gint ett_dsp_AccessPointInformation = -1;
279 static gint ett_dsp_Exclusions = -1;
280 static gint ett_dsp_ContinuationReference = -1;
281 static gint ett_dsp_SET_OF_AccessPointInformation = -1;
282 static gint ett_dsp_AuthenticationLevel = -1;
283 static gint ett_dsp_T_basicLevels = -1;
285 /*--- End of included file: packet-dsp-ett.c ---*/
286 #line 70 "packet-dsp-template.c"
289 /*--- Included file: packet-dsp-fn.c ---*/
290 #line 1 "packet-dsp-fn.c"
291 /*--- Fields for imported types ---*/
293 static int dissect_readArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
294 return dissect_dap_ReadArgument(FALSE, tvb, offset, pinfo, tree, hf_dsp_readArgument);
296 static int dissect_algorithmIdentifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
297 return dissect_x509af_AlgorithmIdentifier(FALSE, tvb, offset, pinfo, tree, hf_dsp_algorithmIdentifier);
299 static int dissect_readResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
300 return dissect_dap_ReadResult(FALSE, tvb, offset, pinfo, tree, hf_dsp_readResult);
302 static int dissect_compareArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
303 return dissect_dap_CompareArgument(FALSE, tvb, offset, pinfo, tree, hf_dsp_compareArgument);
305 static int dissect_compareResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
306 return dissect_dap_CompareResult(FALSE, tvb, offset, pinfo, tree, hf_dsp_compareResult);
308 static int dissect_listArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
309 return dissect_dap_ListArgument(FALSE, tvb, offset, pinfo, tree, hf_dsp_listArgument);
311 static int dissect_listResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
312 return dissect_dap_ListResult(FALSE, tvb, offset, pinfo, tree, hf_dsp_listResult);
314 static int dissect_searchArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
315 return dissect_dap_SearchArgument(FALSE, tvb, offset, pinfo, tree, hf_dsp_searchArgument);
317 static int dissect_searchResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
318 return dissect_dap_SearchResult(FALSE, tvb, offset, pinfo, tree, hf_dsp_searchResult);
320 static int dissect_addEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
321 return dissect_dap_AddEntryArgument(FALSE, tvb, offset, pinfo, tree, hf_dsp_addEntryArgument);
323 static int dissect_addEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
324 return dissect_dap_AddEntryResult(FALSE, tvb, offset, pinfo, tree, hf_dsp_addEntryResult);
326 static int dissect_removeEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
327 return dissect_dap_RemoveEntryArgument(FALSE, tvb, offset, pinfo, tree, hf_dsp_removeEntryArgument);
329 static int dissect_removeEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
330 return dissect_dap_RemoveEntryResult(FALSE, tvb, offset, pinfo, tree, hf_dsp_removeEntryResult);
332 static int dissect_modifyEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
333 return dissect_dap_ModifyEntryArgument(FALSE, tvb, offset, pinfo, tree, hf_dsp_modifyEntryArgument);
335 static int dissect_modifyEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
336 return dissect_dap_ModifyEntryResult(FALSE, tvb, offset, pinfo, tree, hf_dsp_modifyEntryResult);
338 static int dissect_modifyDNArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
339 return dissect_dap_ModifyDNArgument(FALSE, tvb, offset, pinfo, tree, hf_dsp_modifyDNArgument);
341 static int dissect_modifyDNResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
342 return dissect_dap_ModifyDNResult(FALSE, tvb, offset, pinfo, tree, hf_dsp_modifyDNResult);
344 static int dissect_contextPrefix(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
345 return dissect_x509if_DistinguishedName(FALSE, tvb, offset, pinfo, tree, hf_dsp_contextPrefix);
347 static int dissect_securityParameters(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
348 return dissect_dap_SecurityParameters(FALSE, tvb, offset, pinfo, tree, hf_dsp_securityParameters);
350 static int dissect_performer(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
351 return dissect_x509if_DistinguishedName(FALSE, tvb, offset, pinfo, tree, hf_dsp_performer);
353 static int dissect_notification_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
354 return dissect_x509if_Attribute(FALSE, tvb, offset, pinfo, tree, hf_dsp_notification_item);
356 static int dissect_originator(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
357 return dissect_x509if_DistinguishedName(FALSE, tvb, offset, pinfo, tree, hf_dsp_originator);
359 static int dissect_targetObjectDN(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
360 return dissect_x509if_DistinguishedName(FALSE, tvb, offset, pinfo, tree, hf_dsp_targetObjectDN);
362 static int dissect_uniqueIdentifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
363 return dissect_x509sat_UniqueIdentifier(FALSE, tvb, offset, pinfo, tree, hf_dsp_uniqueIdentifier);
365 static int dissect_searchRuleId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
366 return dissect_x509if_SearchRuleId(FALSE, tvb, offset, pinfo, tree, hf_dsp_searchRuleId);
368 static int dissect_chainedRelaxation(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
369 return dissect_x509if_MRMapping(FALSE, tvb, offset, pinfo, tree, hf_dsp_chainedRelaxation);
371 static int dissect_dsa(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
372 return dissect_x509if_Name(FALSE, tvb, offset, pinfo, tree, hf_dsp_dsa);
374 static int dissect_targetObject(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
375 return dissect_x509if_Name(FALSE, tvb, offset, pinfo, tree, hf_dsp_targetObject);
377 static int dissect_ae_title(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
378 return dissect_x509if_Name(FALSE, tvb, offset, pinfo, tree, hf_dsp_ae_title);
380 static int dissect_address(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
381 return dissect_x509sat_PresentationAddress(FALSE, tvb, offset, pinfo, tree, hf_dsp_address);
383 static int dissect_protocolInformation_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
384 return dissect_x509sat_ProtocolInformation(FALSE, tvb, offset, pinfo, tree, hf_dsp_protocolInformation_item);
386 static int dissect_Exclusions_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
387 return dissect_x509if_RDNSequence(FALSE, tvb, offset, pinfo, tree, hf_dsp_Exclusions_item);
389 static int dissect_other(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
390 return dissect_acse_EXTERNAL(FALSE, tvb, offset, pinfo, tree, hf_dsp_other);
396 dissect_dsp_DSASystemBindArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
397 offset = dissect_dap_DirectoryBindArgument(implicit_tag, tvb, offset, pinfo, tree, hf_index);
405 dissect_dsp_DSASystemBindResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
406 offset = dissect_dap_DirectoryBindArgument(implicit_tag, tvb, offset, pinfo, tree, hf_index);
414 dissect_dsp_DSASystemBindError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
415 offset = dissect_dap_DirectoryBindError(implicit_tag, tvb, offset, pinfo, tree, hf_index);
421 static const value_string dsp_T_nameResolutionPhase_vals[] = {
430 dissect_dsp_T_nameResolutionPhase(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
431 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
436 static int dissect_nameResolutionPhase(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
437 return dissect_dsp_T_nameResolutionPhase(FALSE, tvb, offset, pinfo, tree, hf_dsp_nameResolutionPhase);
443 dissect_dsp_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
444 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
449 static int dissect_aliasedRDNs(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
450 return dissect_dsp_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_dsp_aliasedRDNs);
452 static int dissect_operationIdentifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
453 return dissect_dsp_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_dsp_operationIdentifier);
455 static int dissect_relatedEntry(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
456 return dissect_dsp_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_dsp_relatedEntry);
458 static int dissect_nextRDNToBeResolved(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
459 return dissect_dsp_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_dsp_nextRDNToBeResolved);
461 static int dissect_rdnsResolved(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
462 return dissect_dsp_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_dsp_rdnsResolved);
464 static int dissect_localQualifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
465 return dissect_dsp_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_dsp_localQualifier);
469 static const ber_sequence_t OperationProgress_set[] = {
470 { BER_CLASS_CON, 0, 0, dissect_nameResolutionPhase },
471 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_nextRDNToBeResolved },
476 dissect_dsp_OperationProgress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
477 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
478 OperationProgress_set, hf_index, ett_dsp_OperationProgress);
482 static int dissect_operationProgress(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
483 return dissect_dsp_OperationProgress(FALSE, tvb, offset, pinfo, tree, hf_dsp_operationProgress);
487 static const ber_sequence_t TraceItem_set[] = {
488 { BER_CLASS_CON, 0, 0, dissect_dsa },
489 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_targetObject },
490 { BER_CLASS_CON, 2, 0, dissect_operationProgress },
495 dissect_dsp_TraceItem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
496 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
497 TraceItem_set, hf_index, ett_dsp_TraceItem);
501 static int dissect_TraceInformation_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
502 return dissect_dsp_TraceItem(FALSE, tvb, offset, pinfo, tree, hf_dsp_TraceInformation_item);
506 static const ber_sequence_t TraceInformation_sequence_of[1] = {
507 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_TraceInformation_item },
511 dissect_dsp_TraceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
512 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
513 TraceInformation_sequence_of, hf_index, ett_dsp_TraceInformation);
517 static int dissect_traceInformation(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
518 return dissect_dsp_TraceInformation(FALSE, tvb, offset, pinfo, tree, hf_dsp_traceInformation);
524 dissect_dsp_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
525 offset = dissect_ber_boolean(implicit_tag, pinfo, tree, tvb, offset, hf_index);
529 static int dissect_aliasDereferenced(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
530 return dissect_dsp_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dsp_aliasDereferenced);
532 static int dissect_returnCrossRefs(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
533 return dissect_dsp_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dsp_returnCrossRefs);
535 static int dissect_entryOnly(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
536 return dissect_dsp_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dsp_entryOnly);
538 static int dissect_excludeShadows(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
539 return dissect_dsp_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dsp_excludeShadows);
541 static int dissect_nameResolveOnMaster(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
542 return dissect_dsp_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dsp_nameResolveOnMaster);
544 static int dissect_chainingRequired(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
545 return dissect_dsp_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dsp_chainingRequired);
547 static int dissect_returnToDUA(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
548 return dissect_dsp_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dsp_returnToDUA);
550 static int dissect_signed(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
551 return dissect_dsp_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dsp_signed);
555 const value_string dsp_ReferenceType_vals[] = {
557 { 2, "subordinate" },
559 { 4, "nonSpecificSubordinate" },
562 { 7, "immediateSuperior" },
569 dissect_dsp_ReferenceType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
570 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
575 static int dissect_referenceType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
576 return dissect_dsp_ReferenceType(FALSE, tvb, offset, pinfo, tree, hf_dsp_referenceType);
582 dissect_dsp_DomainInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
583 offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
587 static int dissect_info(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
588 return dissect_dsp_DomainInfo(FALSE, tvb, offset, pinfo, tree, hf_dsp_info);
594 dissect_dsp_UTCTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
595 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTCTime,
596 pinfo, tree, tvb, offset, hf_index,
601 static int dissect_utcTime(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
602 return dissect_dsp_UTCTime(FALSE, tvb, offset, pinfo, tree, hf_dsp_utcTime);
608 dissect_dsp_GeneralizedTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
609 offset = dissect_ber_GeneralizedTime(implicit_tag, pinfo, tree, tvb, offset, hf_index);
613 static int dissect_generalizedTime(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
614 return dissect_dsp_GeneralizedTime(FALSE, tvb, offset, pinfo, tree, hf_dsp_generalizedTime);
618 static const value_string dsp_Time_vals[] = {
620 { 1, "generalizedTime" },
624 static const ber_choice_t Time_choice[] = {
625 { 0, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_utcTime },
626 { 1, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_generalizedTime },
631 dissect_dsp_Time(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
632 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
633 Time_choice, hf_index, ett_dsp_Time,
638 static int dissect_timeLimit(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
639 return dissect_dsp_Time(FALSE, tvb, offset, pinfo, tree, hf_dsp_timeLimit);
643 static const value_string dsp_T_level_vals[] = {
652 dissect_dsp_T_level(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
653 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
658 static int dissect_level(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
659 return dissect_dsp_T_level(FALSE, tvb, offset, pinfo, tree, hf_dsp_level);
663 static const ber_sequence_t T_basicLevels_sequence[] = {
664 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_level },
665 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_localQualifier },
666 { BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_signed },
671 dissect_dsp_T_basicLevels(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
672 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
673 T_basicLevels_sequence, hf_index, ett_dsp_T_basicLevels);
677 static int dissect_basicLevels(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
678 return dissect_dsp_T_basicLevels(FALSE, tvb, offset, pinfo, tree, hf_dsp_basicLevels);
682 static const value_string dsp_AuthenticationLevel_vals[] = {
683 { 0, "basicLevels" },
688 static const ber_choice_t AuthenticationLevel_choice[] = {
689 { 0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_basicLevels },
690 { 1, BER_CLASS_UNI, 8, BER_FLAGS_NOOWNTAG, dissect_other },
695 dissect_dsp_AuthenticationLevel(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
696 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
697 AuthenticationLevel_choice, hf_index, ett_dsp_AuthenticationLevel,
702 static int dissect_authenticationLevel(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
703 return dissect_dsp_AuthenticationLevel(FALSE, tvb, offset, pinfo, tree, hf_dsp_authenticationLevel);
707 static const ber_sequence_t Exclusions_set_of[1] = {
708 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Exclusions_item },
712 dissect_dsp_Exclusions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
713 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
714 Exclusions_set_of, hf_index, ett_dsp_Exclusions);
718 static int dissect_exclusions(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
719 return dissect_dsp_Exclusions(FALSE, tvb, offset, pinfo, tree, hf_dsp_exclusions);
721 static int dissect_alreadySearched(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
722 return dissect_dsp_Exclusions(FALSE, tvb, offset, pinfo, tree, hf_dsp_alreadySearched);
726 static const ber_sequence_t ChainingArguments_set[] = {
727 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_originator },
728 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_targetObjectDN },
729 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_operationProgress },
730 { BER_CLASS_CON, 3, 0, dissect_traceInformation },
731 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
732 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_aliasedRDNs },
733 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_returnCrossRefs },
734 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_referenceType },
735 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_info },
736 { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_timeLimit },
737 { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_securityParameters },
738 { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_entryOnly },
739 { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_uniqueIdentifier },
740 { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_authenticationLevel },
741 { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_exclusions },
742 { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL, dissect_excludeShadows },
743 { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL, dissect_nameResolveOnMaster },
744 { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL, dissect_operationIdentifier },
745 { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL, dissect_searchRuleId },
746 { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_chainedRelaxation },
747 { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL, dissect_relatedEntry },
752 dissect_dsp_ChainingArguments(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
753 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
754 ChainingArguments_set, hf_index, ett_dsp_ChainingArguments);
758 static int dissect_chainedArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
759 return dissect_dsp_ChainingArguments(FALSE, tvb, offset, pinfo, tree, hf_dsp_chainedArgument);
763 static const ber_sequence_t ChainedReadArgumentData_set[] = {
764 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedArgument },
765 { BER_CLASS_CON, 0, 0, dissect_readArgument },
770 dissect_dsp_ChainedReadArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
771 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
772 ChainedReadArgumentData_set, hf_index, ett_dsp_ChainedReadArgumentData);
776 static int dissect_unsignedChainedReadArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
777 return dissect_dsp_ChainedReadArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dsp_unsignedChainedReadArgument);
779 static int dissect_chainedReadArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
780 return dissect_dsp_ChainedReadArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dsp_chainedReadArgument);
786 dissect_dsp_BIT_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
787 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
793 static int dissect_encrypted(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
794 return dissect_dsp_BIT_STRING(FALSE, tvb, offset, pinfo, tree, hf_dsp_encrypted);
798 static const ber_sequence_t T_signedChainedReadArgument_sequence[] = {
799 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedReadArgument },
800 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
801 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
806 dissect_dsp_T_signedChainedReadArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
807 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
808 T_signedChainedReadArgument_sequence, hf_index, ett_dsp_T_signedChainedReadArgument);
812 static int dissect_signedChainedReadArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
813 return dissect_dsp_T_signedChainedReadArgument(FALSE, tvb, offset, pinfo, tree, hf_dsp_signedChainedReadArgument);
817 static const value_string dsp_ChainedReadArgument_vals[] = {
818 { 0, "unsignedChainedReadArgument" },
819 { 1, "signedChainedReadArgument" },
823 static const ber_choice_t ChainedReadArgument_choice[] = {
824 { 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedChainedReadArgument },
825 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedChainedReadArgument },
830 dissect_dsp_ChainedReadArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
831 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
832 ChainedReadArgument_choice, hf_index, ett_dsp_ChainedReadArgument,
839 static const ber_sequence_t SET_OF_ProtocolInformation_set_of[1] = {
840 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_protocolInformation_item },
844 dissect_dsp_SET_OF_ProtocolInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
845 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
846 SET_OF_ProtocolInformation_set_of, hf_index, ett_dsp_SET_OF_ProtocolInformation);
850 static int dissect_protocolInformation(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
851 return dissect_dsp_SET_OF_ProtocolInformation(FALSE, tvb, offset, pinfo, tree, hf_dsp_protocolInformation);
855 static const value_string dsp_T_category_vals[] = {
863 dissect_dsp_T_category(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
864 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
869 static int dissect_category(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
870 return dissect_dsp_T_category(FALSE, tvb, offset, pinfo, tree, hf_dsp_category);
874 static const value_string dsp_APCategory_vals[] = {
882 dissect_dsp_APCategory(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
883 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
888 static int dissect_access_point_category(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
889 return dissect_dsp_APCategory(FALSE, tvb, offset, pinfo, tree, hf_dsp_access_point_category);
893 static const ber_sequence_t MasterOrShadowAccessPoint_set[] = {
894 { BER_CLASS_CON, 0, 0, dissect_ae_title },
895 { BER_CLASS_CON, 1, 0, dissect_address },
896 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_protocolInformation },
897 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_access_point_category },
898 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_chainingRequired },
903 dissect_dsp_MasterOrShadowAccessPoint(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
904 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
905 MasterOrShadowAccessPoint_set, hf_index, ett_dsp_MasterOrShadowAccessPoint);
909 static int dissect_MasterAndShadowAccessPoints_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
910 return dissect_dsp_MasterOrShadowAccessPoint(FALSE, tvb, offset, pinfo, tree, hf_dsp_MasterAndShadowAccessPoints_item);
914 static const ber_sequence_t MasterAndShadowAccessPoints_set_of[1] = {
915 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_MasterAndShadowAccessPoints_item },
919 dissect_dsp_MasterAndShadowAccessPoints(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
920 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
921 MasterAndShadowAccessPoints_set_of, hf_index, ett_dsp_MasterAndShadowAccessPoints);
925 static int dissect_additionalPoints(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
926 return dissect_dsp_MasterAndShadowAccessPoints(FALSE, tvb, offset, pinfo, tree, hf_dsp_additionalPoints);
930 static const ber_sequence_t AccessPointInformation_set[] = {
931 { BER_CLASS_CON, 0, 0, dissect_ae_title },
932 { BER_CLASS_CON, 1, 0, dissect_address },
933 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_protocolInformation },
934 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_category },
935 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_chainingRequired },
936 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_additionalPoints },
941 dissect_dsp_AccessPointInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
942 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
943 AccessPointInformation_set, hf_index, ett_dsp_AccessPointInformation);
947 static int dissect_accessPoint(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
948 return dissect_dsp_AccessPointInformation(FALSE, tvb, offset, pinfo, tree, hf_dsp_accessPoint);
950 static int dissect_accessPoints_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
951 return dissect_dsp_AccessPointInformation(FALSE, tvb, offset, pinfo, tree, hf_dsp_accessPoints_item);
955 static const ber_sequence_t CrossReference_set[] = {
956 { BER_CLASS_CON, 0, 0, dissect_contextPrefix },
957 { BER_CLASS_CON, 1, 0, dissect_accessPoint },
962 dissect_dsp_CrossReference(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
963 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
964 CrossReference_set, hf_index, ett_dsp_CrossReference);
968 static int dissect_crossReferences_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
969 return dissect_dsp_CrossReference(FALSE, tvb, offset, pinfo, tree, hf_dsp_crossReferences_item);
973 static const ber_sequence_t SEQUENCE_OF_CrossReference_sequence_of[1] = {
974 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_crossReferences_item },
978 dissect_dsp_SEQUENCE_OF_CrossReference(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
979 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
980 SEQUENCE_OF_CrossReference_sequence_of, hf_index, ett_dsp_SEQUENCE_OF_CrossReference);
984 static int dissect_crossReferences(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
985 return dissect_dsp_SEQUENCE_OF_CrossReference(FALSE, tvb, offset, pinfo, tree, hf_dsp_crossReferences);
989 static const ber_sequence_t ChainingResults_set[] = {
990 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_info },
991 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_crossReferences },
992 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_securityParameters },
993 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_alreadySearched },
998 dissect_dsp_ChainingResults(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
999 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1000 ChainingResults_set, hf_index, ett_dsp_ChainingResults);
1004 static int dissect_chainedResults(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1005 return dissect_dsp_ChainingResults(FALSE, tvb, offset, pinfo, tree, hf_dsp_chainedResults);
1009 static const ber_sequence_t ChainedReadResultData_set[] = {
1010 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedResults },
1011 { BER_CLASS_CON, 0, 0, dissect_readResult },
1016 dissect_dsp_ChainedReadResultData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1017 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1018 ChainedReadResultData_set, hf_index, ett_dsp_ChainedReadResultData);
1022 static int dissect_unsignedChainedReadResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1023 return dissect_dsp_ChainedReadResultData(FALSE, tvb, offset, pinfo, tree, hf_dsp_unsignedChainedReadResult);
1025 static int dissect_chainedReadResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1026 return dissect_dsp_ChainedReadResultData(FALSE, tvb, offset, pinfo, tree, hf_dsp_chainedReadResult);
1030 static const ber_sequence_t T_signedChainedReadResult_sequence[] = {
1031 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedReadResult },
1032 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
1033 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
1038 dissect_dsp_T_signedChainedReadResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1039 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1040 T_signedChainedReadResult_sequence, hf_index, ett_dsp_T_signedChainedReadResult);
1044 static int dissect_signedChainedReadResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1045 return dissect_dsp_T_signedChainedReadResult(FALSE, tvb, offset, pinfo, tree, hf_dsp_signedChainedReadResult);
1049 static const value_string dsp_ChainedReadResult_vals[] = {
1050 { 0, "unsignedChainedReadResult" },
1051 { 1, "signedChainedReadResult" },
1055 static const ber_choice_t ChainedReadResult_choice[] = {
1056 { 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedChainedReadResult },
1057 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedChainedReadResult },
1058 { 0, 0, 0, 0, NULL }
1062 dissect_dsp_ChainedReadResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1063 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1064 ChainedReadResult_choice, hf_index, ett_dsp_ChainedReadResult,
1071 static const ber_sequence_t ChainedCompareArgumentData_set[] = {
1072 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedArgument },
1073 { BER_CLASS_CON, 0, 0, dissect_compareArgument },
1078 dissect_dsp_ChainedCompareArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1079 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1080 ChainedCompareArgumentData_set, hf_index, ett_dsp_ChainedCompareArgumentData);
1084 static int dissect_unsignedChainedCompareArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1085 return dissect_dsp_ChainedCompareArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dsp_unsignedChainedCompareArgument);
1087 static int dissect_chainedCompareArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1088 return dissect_dsp_ChainedCompareArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dsp_chainedCompareArgument);
1092 static const ber_sequence_t T_signedChainedCompareArgument_sequence[] = {
1093 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedCompareArgument },
1094 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
1095 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
1100 dissect_dsp_T_signedChainedCompareArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1101 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1102 T_signedChainedCompareArgument_sequence, hf_index, ett_dsp_T_signedChainedCompareArgument);
1106 static int dissect_signedChainedCompareArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1107 return dissect_dsp_T_signedChainedCompareArgument(FALSE, tvb, offset, pinfo, tree, hf_dsp_signedChainedCompareArgument);
1111 static const value_string dsp_ChainedCompareArgument_vals[] = {
1112 { 0, "unsignedChainedCompareArgument" },
1113 { 1, "signedChainedCompareArgument" },
1117 static const ber_choice_t ChainedCompareArgument_choice[] = {
1118 { 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedChainedCompareArgument },
1119 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedChainedCompareArgument },
1120 { 0, 0, 0, 0, NULL }
1124 dissect_dsp_ChainedCompareArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1125 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1126 ChainedCompareArgument_choice, hf_index, ett_dsp_ChainedCompareArgument,
1133 static const ber_sequence_t ChainedCompareResultData_set[] = {
1134 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedResults },
1135 { BER_CLASS_CON, 0, 0, dissect_compareResult },
1140 dissect_dsp_ChainedCompareResultData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1141 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1142 ChainedCompareResultData_set, hf_index, ett_dsp_ChainedCompareResultData);
1146 static int dissect_unsignedChainedCompareResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1147 return dissect_dsp_ChainedCompareResultData(FALSE, tvb, offset, pinfo, tree, hf_dsp_unsignedChainedCompareResult);
1149 static int dissect_chainedCompareResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1150 return dissect_dsp_ChainedCompareResultData(FALSE, tvb, offset, pinfo, tree, hf_dsp_chainedCompareResult);
1154 static const ber_sequence_t T_signedChainedCompareResult_sequence[] = {
1155 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedCompareResult },
1156 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
1157 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
1162 dissect_dsp_T_signedChainedCompareResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1163 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1164 T_signedChainedCompareResult_sequence, hf_index, ett_dsp_T_signedChainedCompareResult);
1168 static int dissect_signedChainedCompareResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1169 return dissect_dsp_T_signedChainedCompareResult(FALSE, tvb, offset, pinfo, tree, hf_dsp_signedChainedCompareResult);
1173 static const value_string dsp_ChainedCompareResult_vals[] = {
1174 { 0, "unsignedChainedCompareResult" },
1175 { 1, "signedChainedCompareResult" },
1179 static const ber_choice_t ChainedCompareResult_choice[] = {
1180 { 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedChainedCompareResult },
1181 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedChainedCompareResult },
1182 { 0, 0, 0, 0, NULL }
1186 dissect_dsp_ChainedCompareResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1187 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1188 ChainedCompareResult_choice, hf_index, ett_dsp_ChainedCompareResult,
1197 dissect_dsp_ChainedAbandonArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1198 offset = dissect_dap_AbandonArgument(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1206 dissect_dsp_ChainedAbandonResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1207 offset = dissect_dap_AbandonResult(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1213 static const ber_sequence_t ChainedListArgumentData_set[] = {
1214 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedArgument },
1215 { BER_CLASS_CON, 0, 0, dissect_listArgument },
1220 dissect_dsp_ChainedListArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1221 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1222 ChainedListArgumentData_set, hf_index, ett_dsp_ChainedListArgumentData);
1226 static int dissect_unsignedChainedListArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1227 return dissect_dsp_ChainedListArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dsp_unsignedChainedListArgument);
1229 static int dissect_chainedListArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1230 return dissect_dsp_ChainedListArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dsp_chainedListArgument);
1234 static const ber_sequence_t T_signedChainedListArgument_sequence[] = {
1235 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedListArgument },
1236 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
1237 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
1242 dissect_dsp_T_signedChainedListArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1243 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1244 T_signedChainedListArgument_sequence, hf_index, ett_dsp_T_signedChainedListArgument);
1248 static int dissect_signedChainedListArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1249 return dissect_dsp_T_signedChainedListArgument(FALSE, tvb, offset, pinfo, tree, hf_dsp_signedChainedListArgument);
1253 static const value_string dsp_ChainedListArgument_vals[] = {
1254 { 0, "unsignedChainedListArgument" },
1255 { 1, "signedChainedListArgument" },
1259 static const ber_choice_t ChainedListArgument_choice[] = {
1260 { 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedChainedListArgument },
1261 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedChainedListArgument },
1262 { 0, 0, 0, 0, NULL }
1266 dissect_dsp_ChainedListArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1267 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1268 ChainedListArgument_choice, hf_index, ett_dsp_ChainedListArgument,
1275 static const ber_sequence_t ChainedListResultData_set[] = {
1276 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedResults },
1277 { BER_CLASS_CON, 0, 0, dissect_listResult },
1282 dissect_dsp_ChainedListResultData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1283 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1284 ChainedListResultData_set, hf_index, ett_dsp_ChainedListResultData);
1288 static int dissect_unsignedChainedListResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1289 return dissect_dsp_ChainedListResultData(FALSE, tvb, offset, pinfo, tree, hf_dsp_unsignedChainedListResult);
1291 static int dissect_chainedListResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1292 return dissect_dsp_ChainedListResultData(FALSE, tvb, offset, pinfo, tree, hf_dsp_chainedListResult);
1296 static const ber_sequence_t T_signedChainedListResult_sequence[] = {
1297 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedListResult },
1298 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
1299 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
1304 dissect_dsp_T_signedChainedListResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1305 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1306 T_signedChainedListResult_sequence, hf_index, ett_dsp_T_signedChainedListResult);
1310 static int dissect_signedChainedListResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1311 return dissect_dsp_T_signedChainedListResult(FALSE, tvb, offset, pinfo, tree, hf_dsp_signedChainedListResult);
1315 static const value_string dsp_ChainedListResult_vals[] = {
1316 { 0, "unsignedChainedListResult" },
1317 { 1, "signedChainedListResult" },
1321 static const ber_choice_t ChainedListResult_choice[] = {
1322 { 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedChainedListResult },
1323 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedChainedListResult },
1324 { 0, 0, 0, 0, NULL }
1328 dissect_dsp_ChainedListResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1329 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1330 ChainedListResult_choice, hf_index, ett_dsp_ChainedListResult,
1337 static const ber_sequence_t ChainedSearchArgumentData_set[] = {
1338 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedArgument },
1339 { BER_CLASS_CON, 0, 0, dissect_searchArgument },
1344 dissect_dsp_ChainedSearchArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1345 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1346 ChainedSearchArgumentData_set, hf_index, ett_dsp_ChainedSearchArgumentData);
1350 static int dissect_unsignedChainedSearchArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1351 return dissect_dsp_ChainedSearchArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dsp_unsignedChainedSearchArgument);
1353 static int dissect_chainedSearchArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1354 return dissect_dsp_ChainedSearchArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dsp_chainedSearchArgument);
1358 static const ber_sequence_t T_signedChainedSearchArgument_sequence[] = {
1359 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedSearchArgument },
1360 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
1361 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
1366 dissect_dsp_T_signedChainedSearchArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1367 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1368 T_signedChainedSearchArgument_sequence, hf_index, ett_dsp_T_signedChainedSearchArgument);
1372 static int dissect_signedChainedSearchArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1373 return dissect_dsp_T_signedChainedSearchArgument(FALSE, tvb, offset, pinfo, tree, hf_dsp_signedChainedSearchArgument);
1377 static const value_string dsp_ChainedSearchArgument_vals[] = {
1378 { 0, "unsignedChainedSearchArgument" },
1379 { 1, "signedChainedSearchArgument" },
1383 static const ber_choice_t ChainedSearchArgument_choice[] = {
1384 { 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedChainedSearchArgument },
1385 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedChainedSearchArgument },
1386 { 0, 0, 0, 0, NULL }
1390 dissect_dsp_ChainedSearchArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1391 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1392 ChainedSearchArgument_choice, hf_index, ett_dsp_ChainedSearchArgument,
1399 static const ber_sequence_t ChainedSearchResultData_set[] = {
1400 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedResults },
1401 { BER_CLASS_CON, 0, 0, dissect_searchResult },
1406 dissect_dsp_ChainedSearchResultData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1407 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1408 ChainedSearchResultData_set, hf_index, ett_dsp_ChainedSearchResultData);
1412 static int dissect_unsignedChainedSearchResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1413 return dissect_dsp_ChainedSearchResultData(FALSE, tvb, offset, pinfo, tree, hf_dsp_unsignedChainedSearchResult);
1415 static int dissect_chainedSearchResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1416 return dissect_dsp_ChainedSearchResultData(FALSE, tvb, offset, pinfo, tree, hf_dsp_chainedSearchResult);
1420 static const ber_sequence_t T_signedChainedSearchResult_sequence[] = {
1421 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedSearchResult },
1422 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
1423 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
1428 dissect_dsp_T_signedChainedSearchResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1429 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1430 T_signedChainedSearchResult_sequence, hf_index, ett_dsp_T_signedChainedSearchResult);
1434 static int dissect_signedChainedSearchResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1435 return dissect_dsp_T_signedChainedSearchResult(FALSE, tvb, offset, pinfo, tree, hf_dsp_signedChainedSearchResult);
1439 static const value_string dsp_ChainedSearchResult_vals[] = {
1440 { 0, "unsignedChainedSearchResult" },
1441 { 1, "signedChainedSearchResult" },
1445 static const ber_choice_t ChainedSearchResult_choice[] = {
1446 { 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedChainedSearchResult },
1447 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedChainedSearchResult },
1448 { 0, 0, 0, 0, NULL }
1452 dissect_dsp_ChainedSearchResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1453 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1454 ChainedSearchResult_choice, hf_index, ett_dsp_ChainedSearchResult,
1461 static const ber_sequence_t ChainedAddEntryArgumentData_set[] = {
1462 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedArgument },
1463 { BER_CLASS_CON, 0, 0, dissect_addEntryArgument },
1468 dissect_dsp_ChainedAddEntryArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1469 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1470 ChainedAddEntryArgumentData_set, hf_index, ett_dsp_ChainedAddEntryArgumentData);
1474 static int dissect_unsignedChainedAddEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1475 return dissect_dsp_ChainedAddEntryArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dsp_unsignedChainedAddEntryArgument);
1477 static int dissect_chainedAddEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1478 return dissect_dsp_ChainedAddEntryArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dsp_chainedAddEntryArgument);
1482 static const ber_sequence_t T_signedChainedAddEntryArgument_sequence[] = {
1483 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedAddEntryArgument },
1484 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
1485 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
1490 dissect_dsp_T_signedChainedAddEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1491 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1492 T_signedChainedAddEntryArgument_sequence, hf_index, ett_dsp_T_signedChainedAddEntryArgument);
1496 static int dissect_signedChainedAddEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1497 return dissect_dsp_T_signedChainedAddEntryArgument(FALSE, tvb, offset, pinfo, tree, hf_dsp_signedChainedAddEntryArgument);
1501 static const value_string dsp_ChainedAddEntryArgument_vals[] = {
1502 { 0, "unsignedChainedAddEntryArgument" },
1503 { 1, "signedChainedAddEntryArgument" },
1507 static const ber_choice_t ChainedAddEntryArgument_choice[] = {
1508 { 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedChainedAddEntryArgument },
1509 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedChainedAddEntryArgument },
1510 { 0, 0, 0, 0, NULL }
1514 dissect_dsp_ChainedAddEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1515 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1516 ChainedAddEntryArgument_choice, hf_index, ett_dsp_ChainedAddEntryArgument,
1523 static const ber_sequence_t ChainedAddEntryResultData_set[] = {
1524 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedResults },
1525 { BER_CLASS_CON, 0, 0, dissect_addEntryResult },
1530 dissect_dsp_ChainedAddEntryResultData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1531 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1532 ChainedAddEntryResultData_set, hf_index, ett_dsp_ChainedAddEntryResultData);
1536 static int dissect_unsignedChainedAddEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1537 return dissect_dsp_ChainedAddEntryResultData(FALSE, tvb, offset, pinfo, tree, hf_dsp_unsignedChainedAddEntryResult);
1539 static int dissect_chainedAddEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1540 return dissect_dsp_ChainedAddEntryResultData(FALSE, tvb, offset, pinfo, tree, hf_dsp_chainedAddEntryResult);
1544 static const ber_sequence_t T_signedChainedAddEntryResult_sequence[] = {
1545 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedAddEntryResult },
1546 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
1547 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
1552 dissect_dsp_T_signedChainedAddEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1553 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1554 T_signedChainedAddEntryResult_sequence, hf_index, ett_dsp_T_signedChainedAddEntryResult);
1558 static int dissect_signedChainedAddEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1559 return dissect_dsp_T_signedChainedAddEntryResult(FALSE, tvb, offset, pinfo, tree, hf_dsp_signedChainedAddEntryResult);
1563 static const value_string dsp_ChainedAddEntryResult_vals[] = {
1564 { 0, "unsignedChainedAddEntryResult" },
1565 { 1, "signedChainedAddEntryResult" },
1569 static const ber_choice_t ChainedAddEntryResult_choice[] = {
1570 { 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedChainedAddEntryResult },
1571 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedChainedAddEntryResult },
1572 { 0, 0, 0, 0, NULL }
1576 dissect_dsp_ChainedAddEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1577 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1578 ChainedAddEntryResult_choice, hf_index, ett_dsp_ChainedAddEntryResult,
1585 static const ber_sequence_t ChainedRemoveEntryArgumentData_set[] = {
1586 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedArgument },
1587 { BER_CLASS_CON, 0, 0, dissect_removeEntryArgument },
1592 dissect_dsp_ChainedRemoveEntryArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1593 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1594 ChainedRemoveEntryArgumentData_set, hf_index, ett_dsp_ChainedRemoveEntryArgumentData);
1598 static int dissect_unsignedChainedRemoveEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1599 return dissect_dsp_ChainedRemoveEntryArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dsp_unsignedChainedRemoveEntryArgument);
1601 static int dissect_chainedRemoveEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1602 return dissect_dsp_ChainedRemoveEntryArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dsp_chainedRemoveEntryArgument);
1606 static const ber_sequence_t T_signedChainedRemoveEntryArgument_sequence[] = {
1607 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedRemoveEntryArgument },
1608 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
1609 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
1614 dissect_dsp_T_signedChainedRemoveEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1615 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1616 T_signedChainedRemoveEntryArgument_sequence, hf_index, ett_dsp_T_signedChainedRemoveEntryArgument);
1620 static int dissect_signedChainedRemoveEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1621 return dissect_dsp_T_signedChainedRemoveEntryArgument(FALSE, tvb, offset, pinfo, tree, hf_dsp_signedChainedRemoveEntryArgument);
1625 static const value_string dsp_ChainedRemoveEntryArgument_vals[] = {
1626 { 0, "unsignedChainedRemoveEntryArgument" },
1627 { 1, "signedChainedRemoveEntryArgument" },
1631 static const ber_choice_t ChainedRemoveEntryArgument_choice[] = {
1632 { 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedChainedRemoveEntryArgument },
1633 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedChainedRemoveEntryArgument },
1634 { 0, 0, 0, 0, NULL }
1638 dissect_dsp_ChainedRemoveEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1639 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1640 ChainedRemoveEntryArgument_choice, hf_index, ett_dsp_ChainedRemoveEntryArgument,
1647 static const ber_sequence_t ChainedRemoveEntryResultData_set[] = {
1648 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedResults },
1649 { BER_CLASS_CON, 0, 0, dissect_removeEntryResult },
1654 dissect_dsp_ChainedRemoveEntryResultData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1655 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1656 ChainedRemoveEntryResultData_set, hf_index, ett_dsp_ChainedRemoveEntryResultData);
1660 static int dissect_unsignedChainedRemoveEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1661 return dissect_dsp_ChainedRemoveEntryResultData(FALSE, tvb, offset, pinfo, tree, hf_dsp_unsignedChainedRemoveEntryResult);
1663 static int dissect_chainedRemoveEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1664 return dissect_dsp_ChainedRemoveEntryResultData(FALSE, tvb, offset, pinfo, tree, hf_dsp_chainedRemoveEntryResult);
1668 static const ber_sequence_t T_signedChainedRemoveEntryResult_sequence[] = {
1669 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedRemoveEntryResult },
1670 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
1671 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
1676 dissect_dsp_T_signedChainedRemoveEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1677 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1678 T_signedChainedRemoveEntryResult_sequence, hf_index, ett_dsp_T_signedChainedRemoveEntryResult);
1682 static int dissect_signedChainedRemoveEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1683 return dissect_dsp_T_signedChainedRemoveEntryResult(FALSE, tvb, offset, pinfo, tree, hf_dsp_signedChainedRemoveEntryResult);
1687 static const value_string dsp_ChainedRemoveEntryResult_vals[] = {
1688 { 0, "unsignedChainedRemoveEntryResult" },
1689 { 1, "signedChainedRemoveEntryResult" },
1693 static const ber_choice_t ChainedRemoveEntryResult_choice[] = {
1694 { 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedChainedRemoveEntryResult },
1695 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedChainedRemoveEntryResult },
1696 { 0, 0, 0, 0, NULL }
1700 dissect_dsp_ChainedRemoveEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1701 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1702 ChainedRemoveEntryResult_choice, hf_index, ett_dsp_ChainedRemoveEntryResult,
1709 static const ber_sequence_t ChainedModifyEntryArgumentData_set[] = {
1710 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedArgument },
1711 { BER_CLASS_CON, 0, 0, dissect_modifyEntryArgument },
1716 dissect_dsp_ChainedModifyEntryArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1717 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1718 ChainedModifyEntryArgumentData_set, hf_index, ett_dsp_ChainedModifyEntryArgumentData);
1722 static int dissect_unsignedChainedModifyEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1723 return dissect_dsp_ChainedModifyEntryArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dsp_unsignedChainedModifyEntryArgument);
1725 static int dissect_chainedModifyEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1726 return dissect_dsp_ChainedModifyEntryArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dsp_chainedModifyEntryArgument);
1730 static const ber_sequence_t T_signedChainedModifyEntryArgument_sequence[] = {
1731 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedModifyEntryArgument },
1732 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
1733 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
1738 dissect_dsp_T_signedChainedModifyEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1739 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1740 T_signedChainedModifyEntryArgument_sequence, hf_index, ett_dsp_T_signedChainedModifyEntryArgument);
1744 static int dissect_signedChainedModifyEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1745 return dissect_dsp_T_signedChainedModifyEntryArgument(FALSE, tvb, offset, pinfo, tree, hf_dsp_signedChainedModifyEntryArgument);
1749 static const value_string dsp_ChainedModifyEntryArgument_vals[] = {
1750 { 0, "unsignedChainedModifyEntryArgument" },
1751 { 1, "signedChainedModifyEntryArgument" },
1755 static const ber_choice_t ChainedModifyEntryArgument_choice[] = {
1756 { 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedChainedModifyEntryArgument },
1757 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedChainedModifyEntryArgument },
1758 { 0, 0, 0, 0, NULL }
1762 dissect_dsp_ChainedModifyEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1763 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1764 ChainedModifyEntryArgument_choice, hf_index, ett_dsp_ChainedModifyEntryArgument,
1771 static const ber_sequence_t ChainedModifyEntryResultData_set[] = {
1772 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedResults },
1773 { BER_CLASS_CON, 0, 0, dissect_modifyEntryResult },
1778 dissect_dsp_ChainedModifyEntryResultData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1779 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1780 ChainedModifyEntryResultData_set, hf_index, ett_dsp_ChainedModifyEntryResultData);
1784 static int dissect_unsignedChainedModifyEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1785 return dissect_dsp_ChainedModifyEntryResultData(FALSE, tvb, offset, pinfo, tree, hf_dsp_unsignedChainedModifyEntryResult);
1787 static int dissect_chainedModifyEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1788 return dissect_dsp_ChainedModifyEntryResultData(FALSE, tvb, offset, pinfo, tree, hf_dsp_chainedModifyEntryResult);
1792 static const ber_sequence_t T_signedChainedModifyEntryResult_sequence[] = {
1793 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedModifyEntryResult },
1794 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
1795 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
1800 dissect_dsp_T_signedChainedModifyEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1801 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1802 T_signedChainedModifyEntryResult_sequence, hf_index, ett_dsp_T_signedChainedModifyEntryResult);
1806 static int dissect_signedChainedModifyEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1807 return dissect_dsp_T_signedChainedModifyEntryResult(FALSE, tvb, offset, pinfo, tree, hf_dsp_signedChainedModifyEntryResult);
1811 static const value_string dsp_ChainedModifyEntryResult_vals[] = {
1812 { 0, "unsignedChainedModifyEntryResult" },
1813 { 1, "signedChainedModifyEntryResult" },
1817 static const ber_choice_t ChainedModifyEntryResult_choice[] = {
1818 { 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedChainedModifyEntryResult },
1819 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedChainedModifyEntryResult },
1820 { 0, 0, 0, 0, NULL }
1824 dissect_dsp_ChainedModifyEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1825 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1826 ChainedModifyEntryResult_choice, hf_index, ett_dsp_ChainedModifyEntryResult,
1833 static const ber_sequence_t ChainedModifyDNArgumentData_set[] = {
1834 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedArgument },
1835 { BER_CLASS_CON, 0, 0, dissect_modifyDNArgument },
1840 dissect_dsp_ChainedModifyDNArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1841 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1842 ChainedModifyDNArgumentData_set, hf_index, ett_dsp_ChainedModifyDNArgumentData);
1846 static int dissect_unsignedChainedModifyDNArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1847 return dissect_dsp_ChainedModifyDNArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dsp_unsignedChainedModifyDNArgument);
1849 static int dissect_chainedModifyDNArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1850 return dissect_dsp_ChainedModifyDNArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dsp_chainedModifyDNArgument);
1854 static const ber_sequence_t T_signedChainedModifyDNArgument_sequence[] = {
1855 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedModifyDNArgument },
1856 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
1857 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
1862 dissect_dsp_T_signedChainedModifyDNArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1863 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1864 T_signedChainedModifyDNArgument_sequence, hf_index, ett_dsp_T_signedChainedModifyDNArgument);
1868 static int dissect_signedChainedModifyDNArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1869 return dissect_dsp_T_signedChainedModifyDNArgument(FALSE, tvb, offset, pinfo, tree, hf_dsp_signedChainedModifyDNArgument);
1873 static const value_string dsp_ChainedModifyDNArgument_vals[] = {
1874 { 0, "unsignedChainedModifyDNArgument" },
1875 { 1, "signedChainedModifyDNArgument" },
1879 static const ber_choice_t ChainedModifyDNArgument_choice[] = {
1880 { 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedChainedModifyDNArgument },
1881 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedChainedModifyDNArgument },
1882 { 0, 0, 0, 0, NULL }
1886 dissect_dsp_ChainedModifyDNArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1887 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1888 ChainedModifyDNArgument_choice, hf_index, ett_dsp_ChainedModifyDNArgument,
1895 static const ber_sequence_t ChainedModifyDNResultData_set[] = {
1896 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedResults },
1897 { BER_CLASS_CON, 0, 0, dissect_modifyDNResult },
1902 dissect_dsp_ChainedModifyDNResultData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1903 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1904 ChainedModifyDNResultData_set, hf_index, ett_dsp_ChainedModifyDNResultData);
1908 static int dissect_unsignedChainedModifyDNResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1909 return dissect_dsp_ChainedModifyDNResultData(FALSE, tvb, offset, pinfo, tree, hf_dsp_unsignedChainedModifyDNResult);
1911 static int dissect_chainedModifyDNResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1912 return dissect_dsp_ChainedModifyDNResultData(FALSE, tvb, offset, pinfo, tree, hf_dsp_chainedModifyDNResult);
1916 static const ber_sequence_t T_signedChainedModifyDNResult_sequence[] = {
1917 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_chainedModifyDNResult },
1918 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
1919 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
1924 dissect_dsp_T_signedChainedModifyDNResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1925 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1926 T_signedChainedModifyDNResult_sequence, hf_index, ett_dsp_T_signedChainedModifyDNResult);
1930 static int dissect_signedChainedModifyDNResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1931 return dissect_dsp_T_signedChainedModifyDNResult(FALSE, tvb, offset, pinfo, tree, hf_dsp_signedChainedModifyDNResult);
1935 static const value_string dsp_ChainedModifyDNResult_vals[] = {
1936 { 0, "unsignedChainedModifyDNResult" },
1937 { 1, "signedChainedModifyDNResult" },
1941 static const ber_choice_t ChainedModifyDNResult_choice[] = {
1942 { 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedChainedModifyDNResult },
1943 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedChainedModifyDNResult },
1944 { 0, 0, 0, 0, NULL }
1948 dissect_dsp_ChainedModifyDNResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1949 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1950 ChainedModifyDNResult_choice, hf_index, ett_dsp_ChainedModifyDNResult,
1957 static const ber_sequence_t SET_OF_AccessPointInformation_set_of[1] = {
1958 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_accessPoints_item },
1962 dissect_dsp_SET_OF_AccessPointInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1963 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1964 SET_OF_AccessPointInformation_set_of, hf_index, ett_dsp_SET_OF_AccessPointInformation);
1968 static int dissect_accessPoints(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1969 return dissect_dsp_SET_OF_AccessPointInformation(FALSE, tvb, offset, pinfo, tree, hf_dsp_accessPoints);
1973 static const ber_sequence_t ContinuationReference_set[] = {
1974 { BER_CLASS_CON, 0, 0, dissect_targetObject },
1975 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_aliasedRDNs },
1976 { BER_CLASS_CON, 2, 0, dissect_operationProgress },
1977 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_rdnsResolved },
1978 { BER_CLASS_CON, 4, 0, dissect_referenceType },
1979 { BER_CLASS_CON, 5, 0, dissect_accessPoints },
1980 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_entryOnly },
1981 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_exclusions },
1982 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_returnToDUA },
1983 { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_nameResolveOnMaster },
1988 dissect_dsp_ContinuationReference(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1989 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1990 ContinuationReference_set, hf_index, ett_dsp_ContinuationReference);
1994 static int dissect_reference(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1995 return dissect_dsp_ContinuationReference(FALSE, tvb, offset, pinfo, tree, hf_dsp_reference);
1999 static const ber_sequence_t SEQUENCE_OF_Attribute_sequence_of[1] = {
2000 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_notification_item },
2004 dissect_dsp_SEQUENCE_OF_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2005 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2006 SEQUENCE_OF_Attribute_sequence_of, hf_index, ett_dsp_SEQUENCE_OF_Attribute);
2010 static int dissect_notification(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2011 return dissect_dsp_SEQUENCE_OF_Attribute(FALSE, tvb, offset, pinfo, tree, hf_dsp_notification);
2015 static const ber_sequence_t DSAReferralData_set[] = {
2016 { BER_CLASS_CON, 0, 0, dissect_reference },
2017 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_contextPrefix },
2018 { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
2019 { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
2020 { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
2021 { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
2026 dissect_dsp_DSAReferralData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2027 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2028 DSAReferralData_set, hf_index, ett_dsp_DSAReferralData);
2032 static int dissect_unsignedDSAReferral(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2033 return dissect_dsp_DSAReferralData(FALSE, tvb, offset, pinfo, tree, hf_dsp_unsignedDSAReferral);
2035 static int dissect_dsaReferral(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2036 return dissect_dsp_DSAReferralData(FALSE, tvb, offset, pinfo, tree, hf_dsp_dsaReferral);
2040 static const ber_sequence_t T_signedDSAReferral_sequence[] = {
2041 { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsaReferral },
2042 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
2043 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
2048 dissect_dsp_T_signedDSAReferral(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2049 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2050 T_signedDSAReferral_sequence, hf_index, ett_dsp_T_signedDSAReferral);
2054 static int dissect_signedDSAReferral(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2055 return dissect_dsp_T_signedDSAReferral(FALSE, tvb, offset, pinfo, tree, hf_dsp_signedDSAReferral);
2059 static const value_string dsp_DSAReferral_vals[] = {
2060 { 0, "unsignedDSAReferral" },
2061 { 1, "signedDSAReferral" },
2065 static const ber_choice_t DSAReferral_choice[] = {
2066 { 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedDSAReferral },
2067 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedDSAReferral },
2068 { 0, 0, 0, 0, NULL }
2072 dissect_dsp_DSAReferral(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2073 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2074 DSAReferral_choice, hf_index, ett_dsp_DSAReferral,
2081 static const ber_sequence_t AccessPoint_set[] = {
2082 { BER_CLASS_CON, 0, 0, dissect_ae_title },
2083 { BER_CLASS_CON, 1, 0, dissect_address },
2084 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_protocolInformation },
2089 dissect_dsp_AccessPoint(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2090 offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2091 AccessPoint_set, hf_index, ett_dsp_AccessPoint);
2098 static void dissect_AccessPoint_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2099 dissect_dsp_AccessPoint(FALSE, tvb, 0, pinfo, tree, hf_dsp_AccessPoint_PDU);
2101 static void dissect_MasterAndShadowAccessPoints_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
2102 dissect_dsp_MasterAndShadowAccessPoints(FALSE, tvb, 0, pinfo, tree, hf_dsp_MasterAndShadowAccessPoints_PDU);
2106 /*--- End of included file: packet-dsp-fn.c ---*/
2107 #line 72 "packet-dsp-template.c"
2110 * Dissect X518 PDUs inside a ROS PDUs
2113 dissect_dsp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
2117 proto_item *item=NULL;
2118 proto_tree *tree=NULL;
2119 int (*dsp_dissector)(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) = NULL;
2122 /* do we have operation information from the ROS dissector? */
2123 if( !pinfo->private_data ){
2125 proto_tree_add_text(parent_tree, tvb, offset, -1,
2126 "Internal error: can't get operation information from ROS dissector.");
2130 session = ( (struct SESSION_DATA_STRUCTURE*)(pinfo->private_data) );
2134 item = proto_tree_add_item(parent_tree, proto_dsp, tvb, 0, -1, FALSE);
2135 tree = proto_item_add_subtree(item, ett_dsp);
2137 if (check_col(pinfo->cinfo, COL_PROTOCOL))
2138 col_set_str(pinfo->cinfo, COL_PROTOCOL, "DAP");
2139 if (check_col(pinfo->cinfo, COL_INFO))
2140 col_clear(pinfo->cinfo, COL_INFO);
2142 switch(session->ros_op & ROS_OP_MASK) {
2143 case (ROS_OP_BIND | ROS_OP_ARGUMENT): /* BindInvoke */
2144 dsp_dissector = dissect_dsp_DSASystemBindArgument;
2145 dsp_op_name = "System-Bind-Argument";
2147 case (ROS_OP_BIND | ROS_OP_RESULT): /* BindResult */
2148 dsp_dissector = dissect_dsp_DSASystemBindResult;
2149 dsp_op_name = "System-Bind-Result";
2151 case (ROS_OP_BIND | ROS_OP_ERROR): /* BindError */
2152 dsp_dissector = dissect_dsp_DSASystemBindError;
2153 dsp_op_name = "System-Bind-Error";
2155 case (ROS_OP_INVOKE | ROS_OP_ARGUMENT): /* Invoke Argument */
2156 switch(session->ros_op & ROS_OP_OPCODE_MASK) {
2158 dsp_dissector = dissect_dsp_ChainedReadArgument;
2159 dsp_op_name = "Chained-Read-Argument";
2161 case 2: /* compare */
2162 dsp_dissector = dissect_dsp_ChainedCompareArgument;
2163 dsp_op_name = "Chained-Compare-Argument";
2165 case 3: /* abandon */
2166 dsp_dissector = dissect_dsp_ChainedAbandonArgument;
2167 dsp_op_name = "Chained-Abandon-Argument";
2170 dsp_dissector = dissect_dsp_ChainedListArgument;
2171 dsp_op_name = "Chained-List-Argument";
2173 case 5: /* search */
2174 dsp_dissector = dissect_dsp_ChainedSearchArgument;
2175 dsp_op_name = "Chained-Search-Argument";
2177 case 6: /* addEntry */
2178 dsp_dissector = dissect_dsp_ChainedAddEntryArgument;
2179 dsp_op_name = "Chained-Add-Entry-Argument";
2181 case 7: /* removeEntry */
2182 dsp_dissector = dissect_dsp_ChainedRemoveEntryArgument;
2183 dsp_op_name = "Chained-Remove-Entry-Argument";
2185 case 8: /* modifyEntry */
2186 dsp_dissector = dissect_dsp_ChainedModifyEntryArgument;
2187 dsp_op_name = "ChainedModify-Entry-Argument";
2189 case 9: /* modifyDN */
2190 dsp_dissector = dissect_dsp_ChainedModifyDNArgument;
2191 dsp_op_name = "ChainedModify-DN-Argument";
2194 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DSP opcode (%d)",
2195 session->ros_op & ROS_OP_OPCODE_MASK);
2199 case (ROS_OP_INVOKE | ROS_OP_RESULT): /* Return Result */
2200 switch(session->ros_op & ROS_OP_OPCODE_MASK) {
2202 dsp_dissector = dissect_dsp_ChainedReadResult;
2203 dsp_op_name = "Chained-Read-Result";
2205 case 2: /* compare */
2206 dsp_dissector = dissect_dsp_ChainedCompareResult;
2207 dsp_op_name = "Chained-Compare-Result";
2209 case 3: /* abandon */
2210 dsp_dissector = dissect_dsp_ChainedAbandonResult;
2211 dsp_op_name = "Chained-Abandon-Result";
2214 dsp_dissector = dissect_dsp_ChainedListResult;
2215 dsp_op_name = "Chained-List-Result";
2217 case 5: /* search */
2218 dsp_dissector = dissect_dsp_ChainedSearchResult;
2219 dsp_op_name = "Chained-Search-Result";
2221 case 6: /* addEntry */
2222 dsp_dissector = dissect_dsp_ChainedAddEntryResult;
2223 dsp_op_name = "Chained-Add-Entry-Result";
2225 case 7: /* removeEntry */
2226 dsp_dissector = dissect_dsp_ChainedRemoveEntryResult;
2227 dsp_op_name = "Chained-Remove-Entry-Result";
2229 case 8: /* modifyEntry */
2230 dsp_dissector = dissect_dsp_ChainedModifyEntryResult;
2231 dsp_op_name = "Chained-Modify-Entry-Result";
2233 case 9: /* modifyDN */
2234 dsp_dissector = dissect_dsp_ChainedModifyDNResult;
2235 dsp_op_name = "ChainedModify-DN-Result";
2238 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DSP opcode");
2242 case (ROS_OP_INVOKE | ROS_OP_ERROR): /* Return Error */
2243 switch(session->ros_op & ROS_OP_OPCODE_MASK) {
2244 case 1: /* attributeError */
2245 dsp_dissector = dissect_dap_AttributeError;
2246 dsp_op_name = "Attribute-Error";
2248 case 2: /* nameError */
2249 dsp_dissector = dissect_dap_NameError;
2250 dsp_op_name = "Name-Error";
2252 case 3: /* serviceError */
2253 dsp_dissector = dissect_dap_ServiceError;
2254 dsp_op_name = "Service-Error";
2256 case 4: /* referral */
2257 dsp_dissector = dissect_dap_Referral;
2258 dsp_op_name = "Referral";
2260 case 5: /* abandoned */
2261 dsp_dissector = dissect_dap_Abandoned;
2262 dsp_op_name = "Abandoned";
2264 case 6: /* securityError */
2265 dsp_dissector = dissect_dap_SecurityError;
2266 dsp_op_name = "Security-Error";
2268 case 7: /* abandonFailed */
2269 dsp_dissector = dissect_dap_AbandonFailedError;
2270 dsp_op_name = "Abandon-Failed-Error";
2272 case 8: /* updateError */
2273 dsp_dissector = dissect_dap_UpdateError;
2274 dsp_op_name = "Update-Error";
2276 case 9: /* DSAReferral */
2277 dsp_dissector = dissect_dsp_DSAReferral;
2278 dsp_op_name = "DSA-Referral";
2281 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DSP errcode");
2286 proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DSP PDU");
2291 if (check_col(pinfo->cinfo, COL_INFO))
2292 col_add_str(pinfo->cinfo, COL_INFO, dsp_op_name);
2294 while (tvb_reported_length_remaining(tvb, offset) > 0){
2296 offset=(*dsp_dissector)(FALSE, tvb, offset, pinfo , tree, -1);
2297 if(offset == old_offset){
2298 proto_tree_add_text(tree, tvb, offset, -1,"Internal error, zero-byte DSP PDU");
2299 offset = tvb_length(tvb);
2307 /*--- proto_register_dsp -------------------------------------------*/
2308 void proto_register_dsp(void) {
2310 /* List of fields */
2311 static hf_register_info hf[] =
2314 /*--- Included file: packet-dsp-hfarr.c ---*/
2315 #line 1 "packet-dsp-hfarr.c"
2316 { &hf_dsp_AccessPoint_PDU,
2317 { "AccessPoint", "dsp.AccessPoint",
2318 FT_NONE, BASE_NONE, NULL, 0,
2319 "AccessPoint", HFILL }},
2320 { &hf_dsp_MasterAndShadowAccessPoints_PDU,
2321 { "MasterAndShadowAccessPoints", "dsp.MasterAndShadowAccessPoints",
2322 FT_UINT32, BASE_DEC, NULL, 0,
2323 "MasterAndShadowAccessPoints", HFILL }},
2324 { &hf_dsp_chainedArgument,
2325 { "chainedArgument", "dsp.chainedArgument",
2326 FT_NONE, BASE_NONE, NULL, 0,
2328 { &hf_dsp_readArgument,
2329 { "readArgument", "dsp.readArgument",
2330 FT_UINT32, BASE_DEC, VALS(dap_ReadArgument_vals), 0,
2331 "ChainedReadArgumentData/readArgument", HFILL }},
2332 { &hf_dsp_unsignedChainedReadArgument,
2333 { "unsignedChainedReadArgument", "dsp.unsignedChainedReadArgument",
2334 FT_NONE, BASE_NONE, NULL, 0,
2335 "ChainedReadArgument/unsignedChainedReadArgument", HFILL }},
2336 { &hf_dsp_signedChainedReadArgument,
2337 { "signedChainedReadArgument", "dsp.signedChainedReadArgument",
2338 FT_NONE, BASE_NONE, NULL, 0,
2339 "ChainedReadArgument/signedChainedReadArgument", HFILL }},
2340 { &hf_dsp_chainedReadArgument,
2341 { "chainedReadArgument", "dsp.chainedReadArgument",
2342 FT_NONE, BASE_NONE, NULL, 0,
2343 "ChainedReadArgument/signedChainedReadArgument/chainedReadArgument", HFILL }},
2344 { &hf_dsp_algorithmIdentifier,
2345 { "algorithmIdentifier", "dsp.algorithmIdentifier",
2346 FT_NONE, BASE_NONE, NULL, 0,
2348 { &hf_dsp_encrypted,
2349 { "encrypted", "dsp.encrypted",
2350 FT_BYTES, BASE_HEX, NULL, 0,
2352 { &hf_dsp_chainedResults,
2353 { "chainedResults", "dsp.chainedResults",
2354 FT_NONE, BASE_NONE, NULL, 0,
2356 { &hf_dsp_readResult,
2357 { "readResult", "dsp.readResult",
2358 FT_UINT32, BASE_DEC, VALS(dap_ReadResult_vals), 0,
2359 "ChainedReadResultData/readResult", HFILL }},
2360 { &hf_dsp_unsignedChainedReadResult,
2361 { "unsignedChainedReadResult", "dsp.unsignedChainedReadResult",
2362 FT_NONE, BASE_NONE, NULL, 0,
2363 "ChainedReadResult/unsignedChainedReadResult", HFILL }},
2364 { &hf_dsp_signedChainedReadResult,
2365 { "signedChainedReadResult", "dsp.signedChainedReadResult",
2366 FT_NONE, BASE_NONE, NULL, 0,
2367 "ChainedReadResult/signedChainedReadResult", HFILL }},
2368 { &hf_dsp_chainedReadResult,
2369 { "chainedReadResult", "dsp.chainedReadResult",
2370 FT_NONE, BASE_NONE, NULL, 0,
2371 "ChainedReadResult/signedChainedReadResult/chainedReadResult", HFILL }},
2372 { &hf_dsp_compareArgument,
2373 { "compareArgument", "dsp.compareArgument",
2374 FT_UINT32, BASE_DEC, VALS(dap_CompareArgument_vals), 0,
2375 "ChainedCompareArgumentData/compareArgument", HFILL }},
2376 { &hf_dsp_unsignedChainedCompareArgument,
2377 { "unsignedChainedCompareArgument", "dsp.unsignedChainedCompareArgument",
2378 FT_NONE, BASE_NONE, NULL, 0,
2379 "ChainedCompareArgument/unsignedChainedCompareArgument", HFILL }},
2380 { &hf_dsp_signedChainedCompareArgument,
2381 { "signedChainedCompareArgument", "dsp.signedChainedCompareArgument",
2382 FT_NONE, BASE_NONE, NULL, 0,
2383 "ChainedCompareArgument/signedChainedCompareArgument", HFILL }},
2384 { &hf_dsp_chainedCompareArgument,
2385 { "chainedCompareArgument", "dsp.chainedCompareArgument",
2386 FT_NONE, BASE_NONE, NULL, 0,
2387 "ChainedCompareArgument/signedChainedCompareArgument/chainedCompareArgument", HFILL }},
2388 { &hf_dsp_compareResult,
2389 { "compareResult", "dsp.compareResult",
2390 FT_UINT32, BASE_DEC, VALS(dap_CompareResult_vals), 0,
2391 "ChainedCompareResultData/compareResult", HFILL }},
2392 { &hf_dsp_unsignedChainedCompareResult,
2393 { "unsignedChainedCompareResult", "dsp.unsignedChainedCompareResult",
2394 FT_NONE, BASE_NONE, NULL, 0,
2395 "ChainedCompareResult/unsignedChainedCompareResult", HFILL }},
2396 { &hf_dsp_signedChainedCompareResult,
2397 { "signedChainedCompareResult", "dsp.signedChainedCompareResult",
2398 FT_NONE, BASE_NONE, NULL, 0,
2399 "ChainedCompareResult/signedChainedCompareResult", HFILL }},
2400 { &hf_dsp_chainedCompareResult,
2401 { "chainedCompareResult", "dsp.chainedCompareResult",
2402 FT_NONE, BASE_NONE, NULL, 0,
2403 "ChainedCompareResult/signedChainedCompareResult/chainedCompareResult", HFILL }},
2404 { &hf_dsp_listArgument,
2405 { "listArgument", "dsp.listArgument",
2406 FT_UINT32, BASE_DEC, VALS(dap_ListArgument_vals), 0,
2407 "ChainedListArgumentData/listArgument", HFILL }},
2408 { &hf_dsp_unsignedChainedListArgument,
2409 { "unsignedChainedListArgument", "dsp.unsignedChainedListArgument",
2410 FT_NONE, BASE_NONE, NULL, 0,
2411 "ChainedListArgument/unsignedChainedListArgument", HFILL }},
2412 { &hf_dsp_signedChainedListArgument,
2413 { "signedChainedListArgument", "dsp.signedChainedListArgument",
2414 FT_NONE, BASE_NONE, NULL, 0,
2415 "ChainedListArgument/signedChainedListArgument", HFILL }},
2416 { &hf_dsp_chainedListArgument,
2417 { "chainedListArgument", "dsp.chainedListArgument",
2418 FT_NONE, BASE_NONE, NULL, 0,
2419 "ChainedListArgument/signedChainedListArgument/chainedListArgument", HFILL }},
2420 { &hf_dsp_listResult,
2421 { "listResult", "dsp.listResult",
2422 FT_UINT32, BASE_DEC, VALS(dap_ListResult_vals), 0,
2423 "ChainedListResultData/listResult", HFILL }},
2424 { &hf_dsp_unsignedChainedListResult,
2425 { "unsignedChainedListResult", "dsp.unsignedChainedListResult",
2426 FT_NONE, BASE_NONE, NULL, 0,
2427 "ChainedListResult/unsignedChainedListResult", HFILL }},
2428 { &hf_dsp_signedChainedListResult,
2429 { "signedChainedListResult", "dsp.signedChainedListResult",
2430 FT_NONE, BASE_NONE, NULL, 0,
2431 "ChainedListResult/signedChainedListResult", HFILL }},
2432 { &hf_dsp_chainedListResult,
2433 { "chainedListResult", "dsp.chainedListResult",
2434 FT_NONE, BASE_NONE, NULL, 0,
2435 "ChainedListResult/signedChainedListResult/chainedListResult", HFILL }},
2436 { &hf_dsp_searchArgument,
2437 { "searchArgument", "dsp.searchArgument",
2438 FT_UINT32, BASE_DEC, VALS(dap_SearchArgument_vals), 0,
2439 "ChainedSearchArgumentData/searchArgument", HFILL }},
2440 { &hf_dsp_unsignedChainedSearchArgument,
2441 { "unsignedChainedSearchArgument", "dsp.unsignedChainedSearchArgument",
2442 FT_NONE, BASE_NONE, NULL, 0,
2443 "ChainedSearchArgument/unsignedChainedSearchArgument", HFILL }},
2444 { &hf_dsp_signedChainedSearchArgument,
2445 { "signedChainedSearchArgument", "dsp.signedChainedSearchArgument",
2446 FT_NONE, BASE_NONE, NULL, 0,
2447 "ChainedSearchArgument/signedChainedSearchArgument", HFILL }},
2448 { &hf_dsp_chainedSearchArgument,
2449 { "chainedSearchArgument", "dsp.chainedSearchArgument",
2450 FT_NONE, BASE_NONE, NULL, 0,
2451 "ChainedSearchArgument/signedChainedSearchArgument/chainedSearchArgument", HFILL }},
2452 { &hf_dsp_searchResult,
2453 { "searchResult", "dsp.searchResult",
2454 FT_UINT32, BASE_DEC, VALS(dap_SearchResult_vals), 0,
2455 "ChainedSearchResultData/searchResult", HFILL }},
2456 { &hf_dsp_unsignedChainedSearchResult,
2457 { "unsignedChainedSearchResult", "dsp.unsignedChainedSearchResult",
2458 FT_NONE, BASE_NONE, NULL, 0,
2459 "ChainedSearchResult/unsignedChainedSearchResult", HFILL }},
2460 { &hf_dsp_signedChainedSearchResult,
2461 { "signedChainedSearchResult", "dsp.signedChainedSearchResult",
2462 FT_NONE, BASE_NONE, NULL, 0,
2463 "ChainedSearchResult/signedChainedSearchResult", HFILL }},
2464 { &hf_dsp_chainedSearchResult,
2465 { "chainedSearchResult", "dsp.chainedSearchResult",
2466 FT_NONE, BASE_NONE, NULL, 0,
2467 "ChainedSearchResult/signedChainedSearchResult/chainedSearchResult", HFILL }},
2468 { &hf_dsp_addEntryArgument,
2469 { "addEntryArgument", "dsp.addEntryArgument",
2470 FT_UINT32, BASE_DEC, VALS(dap_AddEntryArgument_vals), 0,
2471 "ChainedAddEntryArgumentData/addEntryArgument", HFILL }},
2472 { &hf_dsp_unsignedChainedAddEntryArgument,
2473 { "unsignedChainedAddEntryArgument", "dsp.unsignedChainedAddEntryArgument",
2474 FT_NONE, BASE_NONE, NULL, 0,
2475 "ChainedAddEntryArgument/unsignedChainedAddEntryArgument", HFILL }},
2476 { &hf_dsp_signedChainedAddEntryArgument,
2477 { "signedChainedAddEntryArgument", "dsp.signedChainedAddEntryArgument",
2478 FT_NONE, BASE_NONE, NULL, 0,
2479 "ChainedAddEntryArgument/signedChainedAddEntryArgument", HFILL }},
2480 { &hf_dsp_chainedAddEntryArgument,
2481 { "chainedAddEntryArgument", "dsp.chainedAddEntryArgument",
2482 FT_NONE, BASE_NONE, NULL, 0,
2483 "ChainedAddEntryArgument/signedChainedAddEntryArgument/chainedAddEntryArgument", HFILL }},
2484 { &hf_dsp_addEntryResult,
2485 { "addEntryResult", "dsp.addEntryResult",
2486 FT_UINT32, BASE_DEC, VALS(dap_AddEntryResult_vals), 0,
2487 "ChainedAddEntryResultData/addEntryResult", HFILL }},
2488 { &hf_dsp_unsignedChainedAddEntryResult,
2489 { "unsignedChainedAddEntryResult", "dsp.unsignedChainedAddEntryResult",
2490 FT_NONE, BASE_NONE, NULL, 0,
2491 "ChainedAddEntryResult/unsignedChainedAddEntryResult", HFILL }},
2492 { &hf_dsp_signedChainedAddEntryResult,
2493 { "signedChainedAddEntryResult", "dsp.signedChainedAddEntryResult",
2494 FT_NONE, BASE_NONE, NULL, 0,
2495 "ChainedAddEntryResult/signedChainedAddEntryResult", HFILL }},
2496 { &hf_dsp_chainedAddEntryResult,
2497 { "chainedAddEntryResult", "dsp.chainedAddEntryResult",
2498 FT_NONE, BASE_NONE, NULL, 0,
2499 "ChainedAddEntryResult/signedChainedAddEntryResult/chainedAddEntryResult", HFILL }},
2500 { &hf_dsp_removeEntryArgument,
2501 { "removeEntryArgument", "dsp.removeEntryArgument",
2502 FT_UINT32, BASE_DEC, VALS(dap_RemoveEntryArgument_vals), 0,
2503 "ChainedRemoveEntryArgumentData/removeEntryArgument", HFILL }},
2504 { &hf_dsp_unsignedChainedRemoveEntryArgument,
2505 { "unsignedChainedRemoveEntryArgument", "dsp.unsignedChainedRemoveEntryArgument",
2506 FT_NONE, BASE_NONE, NULL, 0,
2507 "ChainedRemoveEntryArgument/unsignedChainedRemoveEntryArgument", HFILL }},
2508 { &hf_dsp_signedChainedRemoveEntryArgument,
2509 { "signedChainedRemoveEntryArgument", "dsp.signedChainedRemoveEntryArgument",
2510 FT_NONE, BASE_NONE, NULL, 0,
2511 "ChainedRemoveEntryArgument/signedChainedRemoveEntryArgument", HFILL }},
2512 { &hf_dsp_chainedRemoveEntryArgument,
2513 { "chainedRemoveEntryArgument", "dsp.chainedRemoveEntryArgument",
2514 FT_NONE, BASE_NONE, NULL, 0,
2515 "ChainedRemoveEntryArgument/signedChainedRemoveEntryArgument/chainedRemoveEntryArgument", HFILL }},
2516 { &hf_dsp_removeEntryResult,
2517 { "removeEntryResult", "dsp.removeEntryResult",
2518 FT_UINT32, BASE_DEC, VALS(dap_RemoveEntryResult_vals), 0,
2519 "ChainedRemoveEntryResultData/removeEntryResult", HFILL }},
2520 { &hf_dsp_unsignedChainedRemoveEntryResult,
2521 { "unsignedChainedRemoveEntryResult", "dsp.unsignedChainedRemoveEntryResult",
2522 FT_NONE, BASE_NONE, NULL, 0,
2523 "ChainedRemoveEntryResult/unsignedChainedRemoveEntryResult", HFILL }},
2524 { &hf_dsp_signedChainedRemoveEntryResult,
2525 { "signedChainedRemoveEntryResult", "dsp.signedChainedRemoveEntryResult",
2526 FT_NONE, BASE_NONE, NULL, 0,
2527 "ChainedRemoveEntryResult/signedChainedRemoveEntryResult", HFILL }},
2528 { &hf_dsp_chainedRemoveEntryResult,
2529 { "chainedRemoveEntryResult", "dsp.chainedRemoveEntryResult",
2530 FT_NONE, BASE_NONE, NULL, 0,
2531 "ChainedRemoveEntryResult/signedChainedRemoveEntryResult/chainedRemoveEntryResult", HFILL }},
2532 { &hf_dsp_modifyEntryArgument,
2533 { "modifyEntryArgument", "dsp.modifyEntryArgument",
2534 FT_UINT32, BASE_DEC, VALS(dap_ModifyEntryArgument_vals), 0,
2535 "ChainedModifyEntryArgumentData/modifyEntryArgument", HFILL }},
2536 { &hf_dsp_unsignedChainedModifyEntryArgument,
2537 { "unsignedChainedModifyEntryArgument", "dsp.unsignedChainedModifyEntryArgument",
2538 FT_NONE, BASE_NONE, NULL, 0,
2539 "ChainedModifyEntryArgument/unsignedChainedModifyEntryArgument", HFILL }},
2540 { &hf_dsp_signedChainedModifyEntryArgument,
2541 { "signedChainedModifyEntryArgument", "dsp.signedChainedModifyEntryArgument",
2542 FT_NONE, BASE_NONE, NULL, 0,
2543 "ChainedModifyEntryArgument/signedChainedModifyEntryArgument", HFILL }},
2544 { &hf_dsp_chainedModifyEntryArgument,
2545 { "chainedModifyEntryArgument", "dsp.chainedModifyEntryArgument",
2546 FT_NONE, BASE_NONE, NULL, 0,
2547 "ChainedModifyEntryArgument/signedChainedModifyEntryArgument/chainedModifyEntryArgument", HFILL }},
2548 { &hf_dsp_modifyEntryResult,
2549 { "modifyEntryResult", "dsp.modifyEntryResult",
2550 FT_UINT32, BASE_DEC, VALS(dap_ModifyEntryResult_vals), 0,
2551 "ChainedModifyEntryResultData/modifyEntryResult", HFILL }},
2552 { &hf_dsp_unsignedChainedModifyEntryResult,
2553 { "unsignedChainedModifyEntryResult", "dsp.unsignedChainedModifyEntryResult",
2554 FT_NONE, BASE_NONE, NULL, 0,
2555 "ChainedModifyEntryResult/unsignedChainedModifyEntryResult", HFILL }},
2556 { &hf_dsp_signedChainedModifyEntryResult,
2557 { "signedChainedModifyEntryResult", "dsp.signedChainedModifyEntryResult",
2558 FT_NONE, BASE_NONE, NULL, 0,
2559 "ChainedModifyEntryResult/signedChainedModifyEntryResult", HFILL }},
2560 { &hf_dsp_chainedModifyEntryResult,
2561 { "chainedModifyEntryResult", "dsp.chainedModifyEntryResult",
2562 FT_NONE, BASE_NONE, NULL, 0,
2563 "ChainedModifyEntryResult/signedChainedModifyEntryResult/chainedModifyEntryResult", HFILL }},
2564 { &hf_dsp_modifyDNArgument,
2565 { "modifyDNArgument", "dsp.modifyDNArgument",
2566 FT_NONE, BASE_NONE, NULL, 0,
2567 "ChainedModifyDNArgumentData/modifyDNArgument", HFILL }},
2568 { &hf_dsp_unsignedChainedModifyDNArgument,
2569 { "unsignedChainedModifyDNArgument", "dsp.unsignedChainedModifyDNArgument",
2570 FT_NONE, BASE_NONE, NULL, 0,
2571 "ChainedModifyDNArgument/unsignedChainedModifyDNArgument", HFILL }},
2572 { &hf_dsp_signedChainedModifyDNArgument,
2573 { "signedChainedModifyDNArgument", "dsp.signedChainedModifyDNArgument",
2574 FT_NONE, BASE_NONE, NULL, 0,
2575 "ChainedModifyDNArgument/signedChainedModifyDNArgument", HFILL }},
2576 { &hf_dsp_chainedModifyDNArgument,
2577 { "chainedModifyDNArgument", "dsp.chainedModifyDNArgument",
2578 FT_NONE, BASE_NONE, NULL, 0,
2579 "ChainedModifyDNArgument/signedChainedModifyDNArgument/chainedModifyDNArgument", HFILL }},
2580 { &hf_dsp_modifyDNResult,
2581 { "modifyDNResult", "dsp.modifyDNResult",
2582 FT_UINT32, BASE_DEC, VALS(dap_ModifyDNResult_vals), 0,
2583 "ChainedModifyDNResultData/modifyDNResult", HFILL }},
2584 { &hf_dsp_unsignedChainedModifyDNResult,
2585 { "unsignedChainedModifyDNResult", "dsp.unsignedChainedModifyDNResult",
2586 FT_NONE, BASE_NONE, NULL, 0,
2587 "ChainedModifyDNResult/unsignedChainedModifyDNResult", HFILL }},
2588 { &hf_dsp_signedChainedModifyDNResult,
2589 { "signedChainedModifyDNResult", "dsp.signedChainedModifyDNResult",
2590 FT_NONE, BASE_NONE, NULL, 0,
2591 "ChainedModifyDNResult/signedChainedModifyDNResult", HFILL }},
2592 { &hf_dsp_chainedModifyDNResult,
2593 { "chainedModifyDNResult", "dsp.chainedModifyDNResult",
2594 FT_NONE, BASE_NONE, NULL, 0,
2595 "ChainedModifyDNResult/signedChainedModifyDNResult/chainedModifyDNResult", HFILL }},
2596 { &hf_dsp_reference,
2597 { "reference", "dsp.reference",
2598 FT_NONE, BASE_NONE, NULL, 0,
2599 "DSAReferralData/reference", HFILL }},
2600 { &hf_dsp_contextPrefix,
2601 { "contextPrefix", "dsp.contextPrefix",
2602 FT_UINT32, BASE_DEC, NULL, 0,
2604 { &hf_dsp_securityParameters,
2605 { "securityParameters", "dsp.securityParameters",
2606 FT_NONE, BASE_NONE, NULL, 0,
2608 { &hf_dsp_performer,
2609 { "performer", "dsp.performer",
2610 FT_UINT32, BASE_DEC, NULL, 0,
2611 "DSAReferralData/performer", HFILL }},
2612 { &hf_dsp_aliasDereferenced,
2613 { "aliasDereferenced", "dsp.aliasDereferenced",
2614 FT_BOOLEAN, 8, NULL, 0,
2616 { &hf_dsp_notification,
2617 { "notification", "dsp.notification",
2618 FT_UINT32, BASE_DEC, NULL, 0,
2619 "DSAReferralData/notification", HFILL }},
2620 { &hf_dsp_notification_item,
2621 { "Item", "dsp.notification_item",
2622 FT_NONE, BASE_NONE, NULL, 0,
2623 "DSAReferralData/notification/_item", HFILL }},
2624 { &hf_dsp_unsignedDSAReferral,
2625 { "unsignedDSAReferral", "dsp.unsignedDSAReferral",
2626 FT_NONE, BASE_NONE, NULL, 0,
2627 "DSAReferral/unsignedDSAReferral", HFILL }},
2628 { &hf_dsp_signedDSAReferral,
2629 { "signedDSAReferral", "dsp.signedDSAReferral",
2630 FT_NONE, BASE_NONE, NULL, 0,
2631 "DSAReferral/signedDSAReferral", HFILL }},
2632 { &hf_dsp_dsaReferral,
2633 { "dsaReferral", "dsp.dsaReferral",
2634 FT_NONE, BASE_NONE, NULL, 0,
2635 "DSAReferral/signedDSAReferral/dsaReferral", HFILL }},
2636 { &hf_dsp_originator,
2637 { "originator", "dsp.originator",
2638 FT_UINT32, BASE_DEC, NULL, 0,
2639 "ChainingArguments/originator", HFILL }},
2640 { &hf_dsp_targetObjectDN,
2641 { "targetObject", "dsp.targetObject",
2642 FT_UINT32, BASE_DEC, NULL, 0,
2643 "ChainingArguments/targetObject", HFILL }},
2644 { &hf_dsp_operationProgress,
2645 { "operationProgress", "dsp.operationProgress",
2646 FT_NONE, BASE_NONE, NULL, 0,
2648 { &hf_dsp_traceInformation,
2649 { "traceInformation", "dsp.traceInformation",
2650 FT_UINT32, BASE_DEC, NULL, 0,
2651 "ChainingArguments/traceInformation", HFILL }},
2652 { &hf_dsp_aliasedRDNs,
2653 { "aliasedRDNs", "dsp.aliasedRDNs",
2654 FT_INT32, BASE_DEC, NULL, 0,
2656 { &hf_dsp_returnCrossRefs,
2657 { "returnCrossRefs", "dsp.returnCrossRefs",
2658 FT_BOOLEAN, 8, NULL, 0,
2659 "ChainingArguments/returnCrossRefs", HFILL }},
2660 { &hf_dsp_referenceType,
2661 { "referenceType", "dsp.referenceType",
2662 FT_UINT32, BASE_DEC, VALS(dsp_ReferenceType_vals), 0,
2665 { "info", "dsp.info",
2666 FT_OID, BASE_NONE, NULL, 0,
2668 { &hf_dsp_timeLimit,
2669 { "timeLimit", "dsp.timeLimit",
2670 FT_UINT32, BASE_DEC, VALS(x509af_Time_vals), 0,
2671 "ChainingArguments/timeLimit", HFILL }},
2672 { &hf_dsp_entryOnly,
2673 { "entryOnly", "dsp.entryOnly",
2674 FT_BOOLEAN, 8, NULL, 0,
2676 { &hf_dsp_uniqueIdentifier,
2677 { "uniqueIdentifier", "dsp.uniqueIdentifier",
2678 FT_BYTES, BASE_HEX, NULL, 0,
2679 "ChainingArguments/uniqueIdentifier", HFILL }},
2680 { &hf_dsp_authenticationLevel,
2681 { "authenticationLevel", "dsp.authenticationLevel",
2682 FT_UINT32, BASE_DEC, VALS(dsp_AuthenticationLevel_vals), 0,
2683 "ChainingArguments/authenticationLevel", HFILL }},
2684 { &hf_dsp_exclusions,
2685 { "exclusions", "dsp.exclusions",
2686 FT_UINT32, BASE_DEC, NULL, 0,
2688 { &hf_dsp_excludeShadows,
2689 { "excludeShadows", "dsp.excludeShadows",
2690 FT_BOOLEAN, 8, NULL, 0,
2691 "ChainingArguments/excludeShadows", HFILL }},
2692 { &hf_dsp_nameResolveOnMaster,
2693 { "nameResolveOnMaster", "dsp.nameResolveOnMaster",
2694 FT_BOOLEAN, 8, NULL, 0,
2696 { &hf_dsp_operationIdentifier,
2697 { "operationIdentifier", "dsp.operationIdentifier",
2698 FT_INT32, BASE_DEC, NULL, 0,
2699 "ChainingArguments/operationIdentifier", HFILL }},
2700 { &hf_dsp_searchRuleId,
2701 { "searchRuleId", "dsp.searchRuleId",
2702 FT_NONE, BASE_NONE, NULL, 0,
2703 "ChainingArguments/searchRuleId", HFILL }},
2704 { &hf_dsp_chainedRelaxation,
2705 { "chainedRelaxation", "dsp.chainedRelaxation",
2706 FT_NONE, BASE_NONE, NULL, 0,
2707 "ChainingArguments/chainedRelaxation", HFILL }},
2708 { &hf_dsp_relatedEntry,
2709 { "relatedEntry", "dsp.relatedEntry",
2710 FT_INT32, BASE_DEC, NULL, 0,
2711 "ChainingArguments/relatedEntry", HFILL }},
2713 { "utcTime", "dsp.utcTime",
2714 FT_STRING, BASE_NONE, NULL, 0,
2715 "Time/utcTime", HFILL }},
2716 { &hf_dsp_generalizedTime,
2717 { "generalizedTime", "dsp.generalizedTime",
2718 FT_STRING, BASE_NONE, NULL, 0,
2719 "Time/generalizedTime", HFILL }},
2720 { &hf_dsp_crossReferences,
2721 { "crossReferences", "dsp.crossReferences",
2722 FT_UINT32, BASE_DEC, NULL, 0,
2723 "ChainingResults/crossReferences", HFILL }},
2724 { &hf_dsp_crossReferences_item,
2725 { "Item", "dsp.crossReferences_item",
2726 FT_NONE, BASE_NONE, NULL, 0,
2727 "ChainingResults/crossReferences/_item", HFILL }},
2728 { &hf_dsp_alreadySearched,
2729 { "alreadySearched", "dsp.alreadySearched",
2730 FT_UINT32, BASE_DEC, NULL, 0,
2731 "ChainingResults/alreadySearched", HFILL }},
2732 { &hf_dsp_accessPoint,
2733 { "accessPoint", "dsp.accessPoint",
2734 FT_NONE, BASE_NONE, NULL, 0,
2735 "CrossReference/accessPoint", HFILL }},
2736 { &hf_dsp_nameResolutionPhase,
2737 { "nameResolutionPhase", "dsp.nameResolutionPhase",
2738 FT_UINT32, BASE_DEC, VALS(dsp_T_nameResolutionPhase_vals), 0,
2739 "OperationProgress/nameResolutionPhase", HFILL }},
2740 { &hf_dsp_nextRDNToBeResolved,
2741 { "nextRDNToBeResolved", "dsp.nextRDNToBeResolved",
2742 FT_INT32, BASE_DEC, NULL, 0,
2743 "OperationProgress/nextRDNToBeResolved", HFILL }},
2744 { &hf_dsp_TraceInformation_item,
2745 { "Item", "dsp.TraceInformation_item",
2746 FT_NONE, BASE_NONE, NULL, 0,
2747 "TraceInformation/_item", HFILL }},
2750 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2751 "TraceItem/dsa", HFILL }},
2752 { &hf_dsp_targetObject,
2753 { "targetObject", "dsp.targetObject",
2754 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2757 { "ae-title", "dsp.ae_title",
2758 FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
2761 { "address", "dsp.address",
2762 FT_NONE, BASE_NONE, NULL, 0,
2764 { &hf_dsp_protocolInformation,
2765 { "protocolInformation", "dsp.protocolInformation",
2766 FT_UINT32, BASE_DEC, NULL, 0,
2768 { &hf_dsp_protocolInformation_item,
2769 { "Item", "dsp.protocolInformation_item",
2770 FT_NONE, BASE_NONE, NULL, 0,
2772 { &hf_dsp_access_point_category,
2773 { "category", "dsp.category",
2774 FT_UINT32, BASE_DEC, VALS(dsp_APCategory_vals), 0,
2775 "MasterOrShadowAccessPoint/category", HFILL }},
2776 { &hf_dsp_chainingRequired,
2777 { "chainingRequired", "dsp.chainingRequired",
2778 FT_BOOLEAN, 8, NULL, 0,
2780 { &hf_dsp_MasterAndShadowAccessPoints_item,
2781 { "Item", "dsp.MasterAndShadowAccessPoints_item",
2782 FT_NONE, BASE_NONE, NULL, 0,
2783 "MasterAndShadowAccessPoints/_item", HFILL }},
2785 { "category", "dsp.category",
2786 FT_UINT32, BASE_DEC, VALS(dsp_T_category_vals), 0,
2787 "AccessPointInformation/category", HFILL }},
2788 { &hf_dsp_additionalPoints,
2789 { "additionalPoints", "dsp.additionalPoints",
2790 FT_UINT32, BASE_DEC, NULL, 0,
2791 "AccessPointInformation/additionalPoints", HFILL }},
2792 { &hf_dsp_Exclusions_item,
2793 { "Item", "dsp.Exclusions_item",
2794 FT_UINT32, BASE_DEC, NULL, 0,
2795 "Exclusions/_item", HFILL }},
2796 { &hf_dsp_rdnsResolved,
2797 { "rdnsResolved", "dsp.rdnsResolved",
2798 FT_INT32, BASE_DEC, NULL, 0,
2799 "ContinuationReference/rdnsResolved", HFILL }},
2800 { &hf_dsp_accessPoints,
2801 { "accessPoints", "dsp.accessPoints",
2802 FT_UINT32, BASE_DEC, NULL, 0,
2803 "ContinuationReference/accessPoints", HFILL }},
2804 { &hf_dsp_accessPoints_item,
2805 { "Item", "dsp.accessPoints_item",
2806 FT_NONE, BASE_NONE, NULL, 0,
2807 "ContinuationReference/accessPoints/_item", HFILL }},
2808 { &hf_dsp_returnToDUA,
2809 { "returnToDUA", "dsp.returnToDUA",
2810 FT_BOOLEAN, 8, NULL, 0,
2811 "ContinuationReference/returnToDUA", HFILL }},
2812 { &hf_dsp_basicLevels,
2813 { "basicLevels", "dsp.basicLevels",
2814 FT_NONE, BASE_NONE, NULL, 0,
2815 "AuthenticationLevel/basicLevels", HFILL }},
2817 { "level", "dsp.level",
2818 FT_UINT32, BASE_DEC, VALS(dsp_T_level_vals), 0,
2819 "AuthenticationLevel/basicLevels/level", HFILL }},
2820 { &hf_dsp_localQualifier,
2821 { "localQualifier", "dsp.localQualifier",
2822 FT_INT32, BASE_DEC, NULL, 0,
2823 "AuthenticationLevel/basicLevels/localQualifier", HFILL }},
2825 { "signed", "dsp.signed",
2826 FT_BOOLEAN, 8, NULL, 0,
2827 "AuthenticationLevel/basicLevels/signed", HFILL }},
2829 { "other", "dsp.other",
2830 FT_NONE, BASE_NONE, NULL, 0,
2831 "AuthenticationLevel/other", HFILL }},
2833 /*--- End of included file: packet-dsp-hfarr.c ---*/
2834 #line 278 "packet-dsp-template.c"
2837 /* List of subtrees */
2838 static gint *ett[] = {
2841 /*--- Included file: packet-dsp-ettarr.c ---*/
2842 #line 1 "packet-dsp-ettarr.c"
2843 &ett_dsp_ChainedReadArgumentData,
2844 &ett_dsp_ChainedReadArgument,
2845 &ett_dsp_T_signedChainedReadArgument,
2846 &ett_dsp_ChainedReadResultData,
2847 &ett_dsp_ChainedReadResult,
2848 &ett_dsp_T_signedChainedReadResult,
2849 &ett_dsp_ChainedCompareArgumentData,
2850 &ett_dsp_ChainedCompareArgument,
2851 &ett_dsp_T_signedChainedCompareArgument,
2852 &ett_dsp_ChainedCompareResultData,
2853 &ett_dsp_ChainedCompareResult,
2854 &ett_dsp_T_signedChainedCompareResult,
2855 &ett_dsp_ChainedListArgumentData,
2856 &ett_dsp_ChainedListArgument,
2857 &ett_dsp_T_signedChainedListArgument,
2858 &ett_dsp_ChainedListResultData,
2859 &ett_dsp_ChainedListResult,
2860 &ett_dsp_T_signedChainedListResult,
2861 &ett_dsp_ChainedSearchArgumentData,
2862 &ett_dsp_ChainedSearchArgument,
2863 &ett_dsp_T_signedChainedSearchArgument,
2864 &ett_dsp_ChainedSearchResultData,
2865 &ett_dsp_ChainedSearchResult,
2866 &ett_dsp_T_signedChainedSearchResult,
2867 &ett_dsp_ChainedAddEntryArgumentData,
2868 &ett_dsp_ChainedAddEntryArgument,
2869 &ett_dsp_T_signedChainedAddEntryArgument,
2870 &ett_dsp_ChainedAddEntryResultData,
2871 &ett_dsp_ChainedAddEntryResult,
2872 &ett_dsp_T_signedChainedAddEntryResult,
2873 &ett_dsp_ChainedRemoveEntryArgumentData,
2874 &ett_dsp_ChainedRemoveEntryArgument,
2875 &ett_dsp_T_signedChainedRemoveEntryArgument,
2876 &ett_dsp_ChainedRemoveEntryResultData,
2877 &ett_dsp_ChainedRemoveEntryResult,
2878 &ett_dsp_T_signedChainedRemoveEntryResult,
2879 &ett_dsp_ChainedModifyEntryArgumentData,
2880 &ett_dsp_ChainedModifyEntryArgument,
2881 &ett_dsp_T_signedChainedModifyEntryArgument,
2882 &ett_dsp_ChainedModifyEntryResultData,
2883 &ett_dsp_ChainedModifyEntryResult,
2884 &ett_dsp_T_signedChainedModifyEntryResult,
2885 &ett_dsp_ChainedModifyDNArgumentData,
2886 &ett_dsp_ChainedModifyDNArgument,
2887 &ett_dsp_T_signedChainedModifyDNArgument,
2888 &ett_dsp_ChainedModifyDNResultData,
2889 &ett_dsp_ChainedModifyDNResult,
2890 &ett_dsp_T_signedChainedModifyDNResult,
2891 &ett_dsp_DSAReferralData,
2892 &ett_dsp_SEQUENCE_OF_Attribute,
2893 &ett_dsp_DSAReferral,
2894 &ett_dsp_T_signedDSAReferral,
2895 &ett_dsp_ChainingArguments,
2897 &ett_dsp_ChainingResults,
2898 &ett_dsp_SEQUENCE_OF_CrossReference,
2899 &ett_dsp_CrossReference,
2900 &ett_dsp_OperationProgress,
2901 &ett_dsp_TraceInformation,
2903 &ett_dsp_AccessPoint,
2904 &ett_dsp_SET_OF_ProtocolInformation,
2905 &ett_dsp_MasterOrShadowAccessPoint,
2906 &ett_dsp_MasterAndShadowAccessPoints,
2907 &ett_dsp_AccessPointInformation,
2908 &ett_dsp_Exclusions,
2909 &ett_dsp_ContinuationReference,
2910 &ett_dsp_SET_OF_AccessPointInformation,
2911 &ett_dsp_AuthenticationLevel,
2912 &ett_dsp_T_basicLevels,
2914 /*--- End of included file: packet-dsp-ettarr.c ---*/
2915 #line 284 "packet-dsp-template.c"
2917 module_t *dsp_module;
2919 /* Register protocol */
2920 proto_dsp = proto_register_protocol(PNAME, PSNAME, PFNAME);
2922 /* initially disable the protocol */
2923 proto_set_decoding(proto_dsp, FALSE);
2925 register_dissector("dsp", dissect_dsp, proto_dsp);
2927 /* Register fields and subtrees */
2928 proto_register_field_array(proto_dsp, hf, array_length(hf));
2929 proto_register_subtree_array(ett, array_length(ett));
2931 /* Register our configuration options for DSP, particularly our port */
2933 #ifdef PREFERENCE_GROUPING
2934 dsp_module = prefs_register_protocol_subtree("OSI/X.500", proto_dsp, prefs_register_dsp);
2936 dsp_module = prefs_register_protocol(proto_dsp, prefs_register_dsp);
2939 prefs_register_uint_preference(dsp_module, "tcp.port", "DSP TCP Port",
2940 "Set the port for DSP operations (if other"
2941 " than the default of 102)",
2942 10, &global_dsp_tcp_port);
2948 /*--- proto_reg_handoff_dsp --- */
2949 void proto_reg_handoff_dsp(void) {
2950 dissector_handle_t handle = NULL;
2953 /*--- Included file: packet-dsp-dis-tab.c ---*/
2954 #line 1 "packet-dsp-dis-tab.c"
2955 register_ber_oid_dissector("2.5.12.1", dissect_AccessPoint_PDU, proto_dsp, "id-doa-myAccessPoint");
2956 register_ber_oid_dissector("2.5.12.2", dissect_AccessPoint_PDU, proto_dsp, "id-doa-superiorKnowledge");
2957 register_ber_oid_dissector("2.5.12.3", dissect_MasterAndShadowAccessPoints_PDU, proto_dsp, "id-doa-specificKnowledge");
2958 register_ber_oid_dissector("2.5.12.4", dissect_MasterAndShadowAccessPoints_PDU, proto_dsp, "id-doa-nonSpecificKnowledge");
2961 /*--- End of included file: packet-dsp-dis-tab.c ---*/
2962 #line 321 "packet-dsp-template.c"
2964 /* APPLICATION CONTEXT */
2966 register_ber_oid_name("2.5.3.2", "id-ac-directory-system");
2968 /* ABSTRACT SYNTAXES */
2970 /* Register DSP with ROS (with no use of RTSE) */
2971 if((handle = find_dissector("dsp"))) {
2972 register_ros_oid_dissector_handle("2.5.9.2", handle, 0, "id-as-directory-system", FALSE);
2978 void prefs_register_dsp(void) {
2980 /* de-register the old port */
2981 /* port 102 is registered by TPKT - don't undo this! */
2982 if((tcp_port != 102) && tpkt_handle)
2983 dissector_delete("tcp.port", tcp_port, tpkt_handle);
2985 /* Set our port number for future use */
2986 tcp_port = global_dsp_tcp_port;
2988 if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
2989 dissector_add("tcp.port", global_dsp_tcp_port, tpkt_handle);