regen pidl all: rm epan/dissectors/pidl/*-stamp; pushd epan/dissectors/pidl/ && make...
[wireshark-sm.git] / epan / dissectors / packet-dcerpc-rcg.c
blobed11d4181162dd0e514284d99d012e631b745147
1 /* DO NOT EDIT
2 This file was automatically generated by Pidl
3 from rcg.idl and rcg.cnf.
5 Pidl is a perl based IDL compiler for DCE/RPC idl files.
6 It is maintained by the Samba team, not the Wireshark team.
7 Instructions on how to download and install Pidl can be
8 found at https://wiki.wireshark.org/Pidl
9 */
12 #include "config.h"
13 #include <string.h>
14 #include <wsutil/array.h>
15 #include <epan/packet.h>
16 #include <epan/tfs.h>
18 #include "packet-dcerpc.h"
19 #include "packet-dcerpc-nt.h"
20 #include "packet-windows-common.h"
21 #include "packet-dcerpc-rcg.h"
22 void proto_register_dcerpc_rcg(void);
23 void proto_reg_handoff_dcerpc_rcg(void);
25 /* Ett declarations */
26 static int ett_dcerpc_rcg;
27 static int ett_rcg_KERB_ASN1_DATA;
28 static int ett_rcg_KERB_ASN1_DATA_CHECKSUM;
29 static int ett_rcg_KERB_RPC_OCTET_STRING;
30 static int ett_rcg_KERB_RPC_PA_DATA;
31 static int ett_rcg_KERB_RPC_ENCRYPTION_KEY;
32 static int ett_rcg_RPC_UNICODE_STRING;
33 static int ett_rcg_KERB_RPC_INTERNAL_NAME;
34 static int ett_rcg_SECPKG_SUPPLEMENTAL_CRED;
35 static int ett_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY;
36 static int ett_rcg_PSECPKG_SUPPLEMENTAL_CRED_ARRAY;
37 static int ett_rcg_KERB_RPC_CRYPTO_API_BLOB;
38 static int ett_rcg_NegotiateVersion;
39 static int ett_rcg_LARGE_INTEGER;
40 static int ett_rcg_PLARGE_INTEGER;
41 static int ett_rcg_BuildAsReqAuthenticatorReq;
42 static int ett_rcg_BuildAsReqAuthenticatorResp;
43 static int ett_rcg_VerifyServiceTicketReq;
44 static int ett_rcg_VerifyServiceTicketResp;
45 static int ett_rcg_PRPC_UNICODE_STRING;
46 static int ett_rcg_CreateApReqAuthenticatorReq;
47 static int ett_rcg_CreateApReqAuthenticatorResp;
48 static int ett_rcg_DecryptApReplyReq;
49 static int ett_rcg_DecryptApReplyResp;
50 static int ett_rcg_UnpackKdcReplyBodyReq;
51 static int ett_rcg_UnpackKdcReplyBodyResp;
52 static int ett_rcg_ComputeTgsChecksumReq;
53 static int ett_rcg_ComputeTgsChecksumResp;
54 static int ett_rcg_BuildEncryptedAuthDataReq;
55 static int ett_rcg_BuildEncryptedAuthDataResp;
56 static int ett_rcg_PackApReplyReq;
57 static int ett_rcg_PackApReplyResp;
58 static int ett_rcg_HashS4UPreauthReq;
59 static int ett_rcg_HashS4UPreauthResp;
60 static int ett_rcg_SignS4UPreauthDataReq;
61 static int ett_rcg_SignS4UPreauthDataResp;
62 static int ett_rcg_VerifyChecksumReq;
63 static int ett_rcg_VerifyChecksumResp;
64 static int ett_rcg_DecryptPacCredentialsReq;
65 static int ett_rcg_DecryptPacCredentialsResp;
66 static int ett_rcg_CreateECDHKeyAgreementReq;
67 static int ett_rcg_CreateECDHKeyAgreementResp;
68 static int ett_rcg_CreateDHKeyAgreementReq;
69 static int ett_rcg_CreateDHKeyAgreementResp;
70 static int ett_rcg_DestroyKeyAgreementReq;
71 static int ett_rcg_DestroyKeyAgreementResp;
72 static int ett_rcg_KeyAgreementGenerateNonceReq;
73 static int ett_rcg_KeyAgreementGenerateNonceResp;
74 static int ett_rcg_FinalizeKeyAgreementReq;
75 static int ett_rcg_FinalizeKeyAgreementResp;
76 static int ett_rcg_KerbInputUnion;
77 static int ett_rcg_KerbCredIsoRemoteInput;
78 static int ett_rcg_KerbOutputUnion;
79 static int ett_rcg_KerbCredIsoRemoteOutput;
80 static int ett_rcg_NT_RESPONSE;
81 static int ett_rcg_NT_CHALLENGE;
82 static int ett_rcg_PNT_CHALLENGE;
83 static int ett_rcg_LM_SESSION_KEY;
84 static int ett_rcg_MSV1_0_LM3_RESPONSE;
85 static int ett_rcg_PMSV1_0_LM3_RESPONSE;
86 static int ett_rcg_USER_SESSION_KEY;
87 static int ett_rcg_PUSER_SESSION_KEY;
88 static int ett_rcg_MSV1_0_CREDENTIAL_KEY;
89 static int ett_rcg_PMSV1_0_CREDENTIAL_KEY;
90 static int ett_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS;
91 static int ett_rcg_PMSV1_0_REMOTE_ENCRYPTED_SECRETS;
92 static int ett_rcg_Lm20GetNtlm3ChallengeResponseReq;
93 static int ett_rcg_Lm20GetNtlm3ChallengeResponseResp;
94 static int ett_rcg_CalculateNtResponseReq;
95 static int ett_rcg_CalculateNtResponseResp;
96 static int ett_rcg_CalculateUserSessionKeyNtReq;
97 static int ett_rcg_CalculateUserSessionKeyNtResp;
98 static int ett_rcg_CompareCredentialsReq;
99 static int ett_rcg_CompareCredentialsResp;
100 static int ett_rcg_NtlmCredInput;
101 static int ett_rcg_NtlmCredIsoRemoteInput;
102 static int ett_rcg_NtlmCredOutput;
103 static int ett_rcg_NtlmCredIsoRemoteOutput;
106 /* Header field declarations */
107 static int hf_KERB_RPC_ENCRYPTION_KEY_reserved1;
108 static int hf_KERB_RPC_ENCRYPTION_KEY_reserved2;
109 static int hf_rcg_BuildAsReqAuthenticatorReq_ArmorKey;
110 static int hf_rcg_BuildAsReqAuthenticatorReq_EncryptionKey;
111 static int hf_rcg_BuildAsReqAuthenticatorReq_TimeSkew;
112 static int hf_rcg_BuildAsReqAuthenticatorResp_PreauthData;
113 static int hf_rcg_BuildAsReqAuthenticatorResp_PreauthDataType;
114 static int hf_rcg_BuildEncryptedAuthDataReq_Key;
115 static int hf_rcg_BuildEncryptedAuthDataReq_KeyUsage;
116 static int hf_rcg_BuildEncryptedAuthDataReq_PlainAuthData;
117 static int hf_rcg_BuildEncryptedAuthDataResp_EncryptedAuthData;
118 static int hf_rcg_CalculateNtResponseReq_Credential;
119 static int hf_rcg_CalculateNtResponseReq_NtChallenge;
120 static int hf_rcg_CalculateNtResponseResp_NtResponse;
121 static int hf_rcg_CalculateUserSessionKeyNtReq_Credential;
122 static int hf_rcg_CalculateUserSessionKeyNtReq_NtResponse;
123 static int hf_rcg_CalculateUserSessionKeyNtResp_UserSessionKey;
124 static int hf_rcg_CompareCredentialsReq_LhsCredential;
125 static int hf_rcg_CompareCredentialsReq_RhsCredential;
126 static int hf_rcg_CompareCredentialsResp_AreLmOwfsEqual;
127 static int hf_rcg_CompareCredentialsResp_AreNtOwfsEqual;
128 static int hf_rcg_CompareCredentialsResp_AreShaOwfsEqual;
129 static int hf_rcg_ComputeTgsChecksumReq_ChecksumType;
130 static int hf_rcg_ComputeTgsChecksumReq_Key;
131 static int hf_rcg_ComputeTgsChecksumReq_RequestBody;
132 static int hf_rcg_ComputeTgsChecksumResp_Checksum;
133 static int hf_rcg_CreateApReqAuthenticatorReq_AuthData;
134 static int hf_rcg_CreateApReqAuthenticatorReq_ClientName;
135 static int hf_rcg_CreateApReqAuthenticatorReq_ClientRealm;
136 static int hf_rcg_CreateApReqAuthenticatorReq_EncryptionKey;
137 static int hf_rcg_CreateApReqAuthenticatorReq_GssChecksum;
138 static int hf_rcg_CreateApReqAuthenticatorReq_KeyUsage;
139 static int hf_rcg_CreateApReqAuthenticatorReq_SequenceNumber;
140 static int hf_rcg_CreateApReqAuthenticatorReq_SkewTime;
141 static int hf_rcg_CreateApReqAuthenticatorReq_SubKey;
142 static int hf_rcg_CreateApReqAuthenticatorResp_Authenticator;
143 static int hf_rcg_CreateApReqAuthenticatorResp_AuthenticatorTime;
144 static int hf_rcg_CreateApReqAuthenticatorResp_KerbProtocolError;
145 static int hf_rcg_CreateDHKeyAgreementReq_Ignored;
146 static int hf_rcg_CreateDHKeyAgreementResp_FactorQ;
147 static int hf_rcg_CreateDHKeyAgreementResp_GeneratorG;
148 static int hf_rcg_CreateDHKeyAgreementResp_KerbErr;
149 static int hf_rcg_CreateDHKeyAgreementResp_KeyAgreementHandle;
150 static int hf_rcg_CreateDHKeyAgreementResp_LittleEndianPublicKey;
151 static int hf_rcg_CreateDHKeyAgreementResp_LittleEndianPublicKeyLen;
152 static int hf_rcg_CreateDHKeyAgreementResp_ModulusP;
153 static int hf_rcg_CreateECDHKeyAgreementReq_KeyBitLen;
154 static int hf_rcg_CreateECDHKeyAgreementResp_EncodedPubKey;
155 static int hf_rcg_CreateECDHKeyAgreementResp_EncodedPubKeyLen;
156 static int hf_rcg_CreateECDHKeyAgreementResp_KerbErr;
157 static int hf_rcg_CreateECDHKeyAgreementResp_KeyAgreementHandle;
158 static int hf_rcg_DecryptApReplyReq_EncryptedReply;
159 static int hf_rcg_DecryptApReplyReq_Key;
160 static int hf_rcg_DecryptApReplyResp_ApReply;
161 static int hf_rcg_DecryptPacCredentialsReq_Data;
162 static int hf_rcg_DecryptPacCredentialsReq_DataSize;
163 static int hf_rcg_DecryptPacCredentialsReq_EncryptionType;
164 static int hf_rcg_DecryptPacCredentialsReq_Key;
165 static int hf_rcg_DecryptPacCredentialsReq_Version;
166 static int hf_rcg_DecryptPacCredentialsResp_Credentials;
167 static int hf_rcg_DestroyKeyAgreementReq_KeyAgreementHandle;
168 static int hf_rcg_DestroyKeyAgreementResp_Ignored;
169 static int hf_rcg_FinalizeKeyAgreementReq_KerbEType;
170 static int hf_rcg_FinalizeKeyAgreementReq_KeyAgreementHandle;
171 static int hf_rcg_FinalizeKeyAgreementReq_RemoteNonce;
172 static int hf_rcg_FinalizeKeyAgreementReq_RemoteNonceLen;
173 static int hf_rcg_FinalizeKeyAgreementReq_X509PublicKey;
174 static int hf_rcg_FinalizeKeyAgreementReq_X509PublicKeyLen;
175 static int hf_rcg_FinalizeKeyAgreementResp_SharedKey;
176 static int hf_rcg_HashS4UPreauthReq_ChecksumType;
177 static int hf_rcg_HashS4UPreauthReq_Key;
178 static int hf_rcg_HashS4UPreauthReq_S4UPreauth;
179 static int hf_rcg_HashS4UPreauthResp_ChecksumSize;
180 static int hf_rcg_HashS4UPreauthResp_ChecksumValue;
181 static int hf_rcg_KERB_ASN1_DATA_Asn1Buffer;
182 static int hf_rcg_KERB_ASN1_DATA_CHECKSUM_Length;
183 static int hf_rcg_KERB_ASN1_DATA_CHECKSUM_Pdu;
184 static int hf_rcg_KERB_ASN1_DATA_CHECKSUM_checksum;
185 static int hf_rcg_KERB_ASN1_DATA_Length;
186 static int hf_rcg_KERB_ASN1_DATA_Pdu;
187 static int hf_rcg_KERB_RPC_CRYPTO_API_BLOB_cbData;
188 static int hf_rcg_KERB_RPC_CRYPTO_API_BLOB_pbData;
189 static int hf_rcg_KERB_RPC_ENCRYPTION_KEY_reserved3;
190 static int hf_rcg_KERB_RPC_INTERNAL_NAME_NameCount;
191 static int hf_rcg_KERB_RPC_INTERNAL_NAME_NameType;
192 static int hf_rcg_KERB_RPC_INTERNAL_NAME_Names;
193 static int hf_rcg_KERB_RPC_OCTET_STRING_length;
194 static int hf_rcg_KERB_RPC_OCTET_STRING_value;
195 static int hf_rcg_KERB_RPC_PA_DATA_preauth_data;
196 static int hf_rcg_KERB_RPC_PA_DATA_preauth_data_type;
197 static int hf_rcg_KerbCredIsoRemoteInput_CallId;
198 static int hf_rcg_KerbCredIsoRemoteInput_callUnion;
199 static int hf_rcg_KerbCredIsoRemoteOutput_CallId;
200 static int hf_rcg_KerbCredIsoRemoteOutput_Status;
201 static int hf_rcg_KerbCredIsoRemoteOutput_callUnion;
202 static int hf_rcg_KerbInputUnion_buildAsReqAuthenticator;
203 static int hf_rcg_KerbInputUnion_buildEncryptedAuthData;
204 static int hf_rcg_KerbInputUnion_computeTgsChecksum;
205 static int hf_rcg_KerbInputUnion_createApReqAuthenticator;
206 static int hf_rcg_KerbInputUnion_createDHKeyAgreement;
207 static int hf_rcg_KerbInputUnion_createECDHKeyAgreement;
208 static int hf_rcg_KerbInputUnion_decryptApReply;
209 static int hf_rcg_KerbInputUnion_decryptPacCredentials;
210 static int hf_rcg_KerbInputUnion_destroyKeyAgreement;
211 static int hf_rcg_KerbInputUnion_finalizeKeyAgreement;
212 static int hf_rcg_KerbInputUnion_hashS4UPreauth;
213 static int hf_rcg_KerbInputUnion_keyAgreementGenerateNonce;
214 static int hf_rcg_KerbInputUnion_negociateVersion;
215 static int hf_rcg_KerbInputUnion_packApReply;
216 static int hf_rcg_KerbInputUnion_signS4UPreauthData;
217 static int hf_rcg_KerbInputUnion_unpackKdcReplyBody;
218 static int hf_rcg_KerbInputUnion_verifyChecksum;
219 static int hf_rcg_KerbInputUnion_verifyServiceTicket;
220 static int hf_rcg_KerbOutputUnion_buildAsReqAuthenticator;
221 static int hf_rcg_KerbOutputUnion_buildEncryptedAuthData;
222 static int hf_rcg_KerbOutputUnion_computeTgsChecksum;
223 static int hf_rcg_KerbOutputUnion_createApReqAuthenticator;
224 static int hf_rcg_KerbOutputUnion_createDHKeyAgreement;
225 static int hf_rcg_KerbOutputUnion_createECDHKeyAgreement;
226 static int hf_rcg_KerbOutputUnion_decryptApReply;
227 static int hf_rcg_KerbOutputUnion_decryptPacCredentials;
228 static int hf_rcg_KerbOutputUnion_destroyKeyAgreement;
229 static int hf_rcg_KerbOutputUnion_finalizeKeyAgreement;
230 static int hf_rcg_KerbOutputUnion_hashS4UPreauth;
231 static int hf_rcg_KerbOutputUnion_keyAgreementGenerateNonce;
232 static int hf_rcg_KerbOutputUnion_negociateVersion;
233 static int hf_rcg_KerbOutputUnion_packApReply;
234 static int hf_rcg_KerbOutputUnion_signS4UPreauthData;
235 static int hf_rcg_KerbOutputUnion_unpackKdcReplyBody;
236 static int hf_rcg_KerbOutputUnion_verifyChecksum;
237 static int hf_rcg_KerbOutputUnion_verifyServiceTicket;
238 static int hf_rcg_KeyAgreementGenerateNonceReq_KeyAgreementHandle;
239 static int hf_rcg_KeyAgreementGenerateNonceResp_Nonce;
240 static int hf_rcg_KeyAgreementGenerateNonceResp_NonceLen;
241 static int hf_rcg_LARGE_INTEGER_QuadPart;
242 static int hf_rcg_Lm20GetNtlm3ChallengeResponseReq_Credential;
243 static int hf_rcg_Lm20GetNtlm3ChallengeResponseReq_LogonDomainName;
244 static int hf_rcg_Lm20GetNtlm3ChallengeResponseReq_ServerName;
245 static int hf_rcg_Lm20GetNtlm3ChallengeResponseReq_UserName;
246 static int hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Lm3Response;
247 static int hf_rcg_Lm20GetNtlm3ChallengeResponseResp_LmSessionKey;
248 static int hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response;
249 static int hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Ntlm3ResponseLength;
250 static int hf_rcg_Lm20GetNtlm3ChallengeResponseResp_UserSessionKey;
251 static int hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved1;
252 static int hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved2;
253 static int hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved3;
254 static int hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved4;
255 static int hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved5;
256 static int hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6;
257 static int hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reservedSize;
258 static int hf_rcg_NegotiateVersion_MaxSupportedVersion;
259 static int hf_rcg_NtlmCredInput_calculateNtResponse;
260 static int hf_rcg_NtlmCredInput_calculateUserSessionKeyNt;
261 static int hf_rcg_NtlmCredInput_compareCredentials;
262 static int hf_rcg_NtlmCredInput_lm20GetNtlm3ChallengeResponse;
263 static int hf_rcg_NtlmCredInput_negotiateVersion;
264 static int hf_rcg_NtlmCredIsoRemoteInput_CallId;
265 static int hf_rcg_NtlmCredIsoRemoteInput_callUnion;
266 static int hf_rcg_NtlmCredIsoRemoteOutput_CallId;
267 static int hf_rcg_NtlmCredIsoRemoteOutput_Status;
268 static int hf_rcg_NtlmCredIsoRemoteOutput_callUnion;
269 static int hf_rcg_NtlmCredOutput_calculateNtResponse;
270 static int hf_rcg_NtlmCredOutput_calculateUserSessionKeyNt;
271 static int hf_rcg_NtlmCredOutput_compareCredentials;
272 static int hf_rcg_NtlmCredOutput_lm20GetNtlm3ChallengeResponse;
273 static int hf_rcg_NtlmCredOutput_negotiateVersion;
274 static int hf_rcg_PackApReplyReq_Reply;
275 static int hf_rcg_PackApReplyReq_ReplyBody;
276 static int hf_rcg_PackApReplyReq_SessionKey;
277 static int hf_rcg_PackApReplyResp_PackedReply;
278 static int hf_rcg_PackApReplyResp_PackedReplySize;
279 static int hf_rcg_RPC_UNICODE_STRING_Buffer;
280 static int hf_rcg_RPC_UNICODE_STRING_Length;
281 static int hf_rcg_RPC_UNICODE_STRING_MaximumLength;
282 static int hf_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY_CredentialCount;
283 static int hf_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY_Credentials;
284 static int hf_rcg_SECPKG_SUPPLEMENTAL_CRED_CredentialSize;
285 static int hf_rcg_SECPKG_SUPPLEMENTAL_CRED_Credentials;
286 static int hf_rcg_SECPKG_SUPPLEMENTAL_CRED_PackageName;
287 static int hf_rcg_SignS4UPreauthDataReq_ChecksumType;
288 static int hf_rcg_SignS4UPreauthDataReq_IsRequest;
289 static int hf_rcg_SignS4UPreauthDataReq_Key;
290 static int hf_rcg_SignS4UPreauthDataReq_UserId;
291 static int hf_rcg_SignS4UPreauthDataResp_ChecksumSize;
292 static int hf_rcg_SignS4UPreauthDataResp_ChecksumType;
293 static int hf_rcg_SignS4UPreauthDataResp_ChecksumValue;
294 static int hf_rcg_UnpackKdcReplyBodyReq_EncryptedData;
295 static int hf_rcg_UnpackKdcReplyBodyReq_Key;
296 static int hf_rcg_UnpackKdcReplyBodyReq_KeyUsage;
297 static int hf_rcg_UnpackKdcReplyBodyReq_Pdu;
298 static int hf_rcg_UnpackKdcReplyBodyReq_StrengthenKey;
299 static int hf_rcg_UnpackKdcReplyBodyResp_KerbProtocolError;
300 static int hf_rcg_UnpackKdcReplyBodyResp_ReplyBody;
301 static int hf_rcg_VerifyChecksumReq_ChecksumType;
302 static int hf_rcg_VerifyChecksumReq_DataToCheck;
303 static int hf_rcg_VerifyChecksumReq_DataToCheckSize;
304 static int hf_rcg_VerifyChecksumReq_ExpectedChecksum;
305 static int hf_rcg_VerifyChecksumReq_ExpectedChecksumSize;
306 static int hf_rcg_VerifyChecksumReq_Key;
307 static int hf_rcg_VerifyChecksumResp_IsValid;
308 static int hf_rcg_VerifyServiceTicketReq_PackedTicket;
309 static int hf_rcg_VerifyServiceTicketReq_ServiceKey;
310 static int hf_rcg_VerifyServiceTicketReq_TimeSkew;
311 static int hf_rcg_VerifyServiceTicketResp_DecryptedTicket;
312 static int hf_rcg_VerifyServiceTicketResp_KerbProtocolError;
313 static int hf_rcg_opnum;
315 static int proto_dcerpc_rcg;
316 /* Version information */
319 static e_guid_t uuid_dcerpc_rcg = {
320 0x00000000, 0x0000, 0x0000,
321 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
323 static uint16_t ver_dcerpc_rcg = 0;
325 static int rcg_dissect_element_KERB_ASN1_DATA_Pdu(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
326 static int rcg_dissect_element_KERB_ASN1_DATA_Length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
327 static int rcg_dissect_element_KERB_ASN1_DATA_Asn1Buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
328 static int rcg_dissect_element_KERB_ASN1_DATA_Asn1Buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
329 static int rcg_dissect_element_KERB_ASN1_DATA_Asn1Buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
330 static int rcg_dissect_element_KERB_ASN1_DATA_CHECKSUM_Pdu(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
331 static int rcg_dissect_element_KERB_ASN1_DATA_CHECKSUM_Length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
332 static int rcg_dissect_element_KERB_ASN1_DATA_CHECKSUM_checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
333 static int rcg_dissect_element_KERB_ASN1_DATA_CHECKSUM_checksum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
334 static int rcg_dissect_element_KERB_RPC_OCTET_STRING_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
335 static int rcg_dissect_element_KERB_RPC_OCTET_STRING_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
336 static int rcg_dissect_element_KERB_RPC_OCTET_STRING_value_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
337 static int rcg_dissect_element_KERB_RPC_OCTET_STRING_value__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
338 static int rcg_dissect_element_KERB_RPC_PA_DATA_preauth_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
339 static int rcg_dissect_element_KERB_RPC_PA_DATA_preauth_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
340 static int rcg_dissect_element_KERB_RPC_ENCRYPTION_KEY_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
341 static int rcg_dissect_element_KERB_RPC_ENCRYPTION_KEY_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
342 static int rcg_dissect_element_KERB_RPC_ENCRYPTION_KEY_reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
343 static int rcg_dissect_element_RPC_UNICODE_STRING_Length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
344 static int rcg_dissect_element_RPC_UNICODE_STRING_MaximumLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
345 static int rcg_dissect_element_RPC_UNICODE_STRING_Buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
346 static int rcg_dissect_element_RPC_UNICODE_STRING_Buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
347 static int rcg_dissect_element_KERB_RPC_INTERNAL_NAME_NameType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
348 static int rcg_dissect_element_KERB_RPC_INTERNAL_NAME_NameCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
349 static int rcg_dissect_element_KERB_RPC_INTERNAL_NAME_Names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
350 static int rcg_dissect_element_KERB_RPC_INTERNAL_NAME_Names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
351 static int rcg_dissect_element_KERB_RPC_INTERNAL_NAME_Names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
352 const value_string rcg_RemoteGuardCallId_vals[] = {
353 { RemoteCallKerbNegotiateVersion, "RemoteCallKerbNegotiateVersion" },
354 { RemoteCallKerbBuildAsReqAuthenticator, "RemoteCallKerbBuildAsReqAuthenticator" },
355 { RemoteCallKerbVerifyServiceTicket, "RemoteCallKerbVerifyServiceTicket" },
356 { RemoteCallKerbCreateApReqAuthenticator, "RemoteCallKerbCreateApReqAuthenticator" },
357 { RemoteCallKerbDecryptApReply, "RemoteCallKerbDecryptApReply" },
358 { RemoteCallKerbUnpackKdcReplyBody, "RemoteCallKerbUnpackKdcReplyBody" },
359 { RemoteCallKerbComputeTgsChecksum, "RemoteCallKerbComputeTgsChecksum" },
360 { RemoteCallKerbBuildEncryptedAuthData, "RemoteCallKerbBuildEncryptedAuthData" },
361 { RemoteCallKerbPackApReply, "RemoteCallKerbPackApReply" },
362 { RemoteCallKerbHashS4UPreauth, "RemoteCallKerbHashS4UPreauth" },
363 { RemoteCallKerbSignS4UPreauthData, "RemoteCallKerbSignS4UPreauthData" },
364 { RemoteCallKerbVerifyChecksum, "RemoteCallKerbVerifyChecksum" },
365 { RemoteCallKerbDecryptPacCredentials, "RemoteCallKerbDecryptPacCredentials" },
366 { RemoteCallKerbCreateECDHKeyAgreement, "RemoteCallKerbCreateECDHKeyAgreement" },
367 { RemoteCallKerbCreateDHKeyAgreement, "RemoteCallKerbCreateDHKeyAgreement" },
368 { RemoteCallKerbDestroyKeyAgreement, "RemoteCallKerbDestroyKeyAgreement" },
369 { RemoteCallKerbKeyAgreementGenerateNonce, "RemoteCallKerbKeyAgreementGenerateNonce" },
370 { RemoteCallKerbFinalizeKeyAgreement, "RemoteCallKerbFinalizeKeyAgreement" },
371 { RemoteCallNtlmNegotiateVersion, "RemoteCallNtlmNegotiateVersion" },
372 { RemoteCallNtlmLm20GetNtlm3ChallengeResponse, "RemoteCallNtlmLm20GetNtlm3ChallengeResponse" },
373 { RemoteCallNtlmCalculateNtResponse, "RemoteCallNtlmCalculateNtResponse" },
374 { RemoteCallNtlmCalculateUserSessionKeyNt, "RemoteCallNtlmCalculateUserSessionKeyNt" },
375 { RemoteCallNtlmCompareCredentials, "RemoteCallNtlmCompareCredentials" },
376 { 0, NULL }
378 static int rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_PackageName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
379 static int rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_CredentialSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
380 static int rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_Credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
381 static int rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_Credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
382 static int rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_Credentials__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
383 static int rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_ARRAY_CredentialCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
384 static int rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_ARRAY_Credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, struct ndr_generic_array *nga);
385 static int rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_ARRAY_Credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
386 static int rcg_dissect_conformant_SECPKG_SUPPLEMENTAL_CRED_ARRAY_Credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, struct ndr_generic_array *nga);
387 static int rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_cbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
388 static int rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_pbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
389 static int rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_pbData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
390 static int rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_pbData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
391 static int rcg_dissect_element_NegotiateVersion_MaxSupportedVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
392 static int rcg_dissect_element_LARGE_INTEGER_QuadPart(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
393 static int rcg_dissect_element_BuildAsReqAuthenticatorReq_EncryptionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
394 static int rcg_dissect_element_BuildAsReqAuthenticatorReq_EncryptionKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
395 static int rcg_dissect_element_BuildAsReqAuthenticatorReq_ArmorKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
396 static int rcg_dissect_element_BuildAsReqAuthenticatorReq_ArmorKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
397 static int rcg_dissect_element_BuildAsReqAuthenticatorReq_TimeSkew(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
398 static int rcg_dissect_element_BuildAsReqAuthenticatorReq_TimeSkew_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
399 static int rcg_dissect_element_BuildAsReqAuthenticatorResp_PreauthDataType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
400 static int rcg_dissect_element_BuildAsReqAuthenticatorResp_PreauthData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
401 static int rcg_dissect_element_VerifyServiceTicketReq_PackedTicket(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
402 static int rcg_dissect_element_VerifyServiceTicketReq_PackedTicket_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
403 static int rcg_dissect_element_VerifyServiceTicketReq_ServiceKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
404 static int rcg_dissect_element_VerifyServiceTicketReq_ServiceKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
405 static int rcg_dissect_element_VerifyServiceTicketReq_TimeSkew(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
406 static int rcg_dissect_element_VerifyServiceTicketReq_TimeSkew_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
407 static int rcg_dissect_element_VerifyServiceTicketResp_DecryptedTicket(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
408 static int rcg_dissect_element_VerifyServiceTicketResp_KerbProtocolError(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
409 static int rcg_dissect_element_CreateApReqAuthenticatorReq_EncryptionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
410 static int rcg_dissect_element_CreateApReqAuthenticatorReq_EncryptionKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
411 static int rcg_dissect_element_CreateApReqAuthenticatorReq_SequenceNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
412 static int rcg_dissect_element_CreateApReqAuthenticatorReq_ClientName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
413 static int rcg_dissect_element_CreateApReqAuthenticatorReq_ClientName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
414 static int rcg_dissect_element_CreateApReqAuthenticatorReq_ClientRealm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
415 static int rcg_dissect_element_CreateApReqAuthenticatorReq_ClientRealm_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
416 static int rcg_dissect_element_CreateApReqAuthenticatorReq_SkewTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
417 static int rcg_dissect_element_CreateApReqAuthenticatorReq_SkewTime_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
418 static int rcg_dissect_element_CreateApReqAuthenticatorReq_SubKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
419 static int rcg_dissect_element_CreateApReqAuthenticatorReq_SubKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
420 static int rcg_dissect_element_CreateApReqAuthenticatorReq_AuthData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
421 static int rcg_dissect_element_CreateApReqAuthenticatorReq_AuthData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
422 static int rcg_dissect_element_CreateApReqAuthenticatorReq_GssChecksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
423 static int rcg_dissect_element_CreateApReqAuthenticatorReq_GssChecksum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
424 static int rcg_dissect_element_CreateApReqAuthenticatorReq_KeyUsage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
425 static int rcg_dissect_element_CreateApReqAuthenticatorResp_AuthenticatorTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
426 static int rcg_dissect_element_CreateApReqAuthenticatorResp_Authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
427 static int rcg_dissect_element_CreateApReqAuthenticatorResp_KerbProtocolError(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
428 static int rcg_dissect_element_DecryptApReplyReq_EncryptedReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
429 static int rcg_dissect_element_DecryptApReplyReq_EncryptedReply_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
430 static int rcg_dissect_element_DecryptApReplyReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
431 static int rcg_dissect_element_DecryptApReplyReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
432 static int rcg_dissect_element_DecryptApReplyResp_ApReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
433 static int rcg_dissect_element_UnpackKdcReplyBodyReq_EncryptedData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
434 static int rcg_dissect_element_UnpackKdcReplyBodyReq_EncryptedData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
435 static int rcg_dissect_element_UnpackKdcReplyBodyReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
436 static int rcg_dissect_element_UnpackKdcReplyBodyReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
437 static int rcg_dissect_element_UnpackKdcReplyBodyReq_StrengthenKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
438 static int rcg_dissect_element_UnpackKdcReplyBodyReq_StrengthenKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
439 static int rcg_dissect_element_UnpackKdcReplyBodyReq_Pdu(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
440 static int rcg_dissect_element_UnpackKdcReplyBodyReq_KeyUsage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
441 static int rcg_dissect_element_UnpackKdcReplyBodyResp_KerbProtocolError(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
442 static int rcg_dissect_element_UnpackKdcReplyBodyResp_ReplyBody(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
443 static int rcg_dissect_element_ComputeTgsChecksumReq_RequestBody(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
444 static int rcg_dissect_element_ComputeTgsChecksumReq_RequestBody_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
445 static int rcg_dissect_element_ComputeTgsChecksumReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
446 static int rcg_dissect_element_ComputeTgsChecksumReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
447 static int rcg_dissect_element_ComputeTgsChecksumReq_ChecksumType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
448 static int rcg_dissect_element_ComputeTgsChecksumResp_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
449 static int rcg_dissect_element_BuildEncryptedAuthDataReq_KeyUsage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
450 static int rcg_dissect_element_BuildEncryptedAuthDataReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
451 static int rcg_dissect_element_BuildEncryptedAuthDataReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
452 static int rcg_dissect_element_BuildEncryptedAuthDataReq_PlainAuthData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
453 static int rcg_dissect_element_BuildEncryptedAuthDataReq_PlainAuthData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
454 static int rcg_dissect_element_BuildEncryptedAuthDataResp_EncryptedAuthData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
455 static int rcg_dissect_element_PackApReplyReq_Reply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
456 static int rcg_dissect_element_PackApReplyReq_Reply_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
457 static int rcg_dissect_element_PackApReplyReq_ReplyBody(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
458 static int rcg_dissect_element_PackApReplyReq_ReplyBody_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
459 static int rcg_dissect_element_PackApReplyReq_SessionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
460 static int rcg_dissect_element_PackApReplyReq_SessionKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
461 static int rcg_dissect_element_PackApReplyResp_PackedReplySize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
462 static int rcg_dissect_element_PackApReplyResp_PackedReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
463 static int rcg_dissect_element_PackApReplyResp_PackedReply_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
464 static int rcg_dissect_element_PackApReplyResp_PackedReply__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
465 static int rcg_dissect_element_HashS4UPreauthReq_S4UPreauth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
466 static int rcg_dissect_element_HashS4UPreauthReq_S4UPreauth_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
467 static int rcg_dissect_element_HashS4UPreauthReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
468 static int rcg_dissect_element_HashS4UPreauthReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
469 static int rcg_dissect_element_HashS4UPreauthReq_ChecksumType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
470 static int rcg_dissect_element_HashS4UPreauthResp_ChecksumSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
471 static int rcg_dissect_element_HashS4UPreauthResp_ChecksumSize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
472 static int rcg_dissect_element_HashS4UPreauthResp_ChecksumValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
473 static int rcg_dissect_element_HashS4UPreauthResp_ChecksumValue_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
474 static int rcg_dissect_element_HashS4UPreauthResp_ChecksumValue__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
475 static int rcg_dissect_element_HashS4UPreauthResp_ChecksumValue___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
476 static int rcg_dissect_element_SignS4UPreauthDataReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
477 static int rcg_dissect_element_SignS4UPreauthDataReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
478 static int rcg_dissect_element_SignS4UPreauthDataReq_IsRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
479 static int rcg_dissect_element_SignS4UPreauthDataReq_UserId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
480 static int rcg_dissect_element_SignS4UPreauthDataReq_UserId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
481 static int rcg_dissect_element_SignS4UPreauthDataReq_ChecksumType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
482 static int rcg_dissect_element_SignS4UPreauthDataReq_ChecksumType_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
483 static int rcg_dissect_element_SignS4UPreauthDataResp_ChecksumType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
484 static int rcg_dissect_element_SignS4UPreauthDataResp_ChecksumType_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
485 static int rcg_dissect_element_SignS4UPreauthDataResp_ChecksumSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
486 static int rcg_dissect_element_SignS4UPreauthDataResp_ChecksumSize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
487 static int rcg_dissect_element_SignS4UPreauthDataResp_ChecksumValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
488 static int rcg_dissect_element_SignS4UPreauthDataResp_ChecksumValue_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
489 static int rcg_dissect_element_SignS4UPreauthDataResp_ChecksumValue__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
490 static int rcg_dissect_element_SignS4UPreauthDataResp_ChecksumValue___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
491 static int rcg_dissect_element_VerifyChecksumReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
492 static int rcg_dissect_element_VerifyChecksumReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
493 static int rcg_dissect_element_VerifyChecksumReq_ChecksumType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
494 static int rcg_dissect_element_VerifyChecksumReq_ExpectedChecksumSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
495 static int rcg_dissect_element_VerifyChecksumReq_ExpectedChecksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
496 static int rcg_dissect_element_VerifyChecksumReq_ExpectedChecksum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
497 static int rcg_dissect_element_VerifyChecksumReq_ExpectedChecksum__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
498 static int rcg_dissect_element_VerifyChecksumReq_DataToCheckSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
499 static int rcg_dissect_element_VerifyChecksumReq_DataToCheck(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
500 static int rcg_dissect_element_VerifyChecksumReq_DataToCheck_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
501 static int rcg_dissect_element_VerifyChecksumReq_DataToCheck__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
502 static int rcg_dissect_element_VerifyChecksumResp_IsValid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
503 static int rcg_dissect_element_DecryptPacCredentialsReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
504 static int rcg_dissect_element_DecryptPacCredentialsReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
505 static int rcg_dissect_element_DecryptPacCredentialsReq_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
506 static int rcg_dissect_element_DecryptPacCredentialsReq_EncryptionType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
507 static int rcg_dissect_element_DecryptPacCredentialsReq_DataSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
508 static int rcg_dissect_element_DecryptPacCredentialsReq_Data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
509 static int rcg_dissect_element_DecryptPacCredentialsReq_Data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
510 static int rcg_dissect_element_DecryptPacCredentialsReq_Data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
511 static int rcg_dissect_element_DecryptPacCredentialsResp_Credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
512 static int rcg_dissect_element_CreateECDHKeyAgreementReq_KeyBitLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
513 static int rcg_dissect_element_CreateECDHKeyAgreementResp_KeyAgreementHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
514 static int rcg_dissect_element_CreateECDHKeyAgreementResp_KeyAgreementHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
515 static int rcg_dissect_element_CreateECDHKeyAgreementResp_KerbErr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
516 static int rcg_dissect_element_CreateECDHKeyAgreementResp_KerbErr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
517 static int rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKeyLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
518 static int rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKeyLen_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
519 static int rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
520 static int rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
521 static int rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKey__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
522 static int rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKey___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
523 static int rcg_dissect_element_CreateDHKeyAgreementReq_Ignored(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
524 static int rcg_dissect_element_CreateDHKeyAgreementResp_ModulusP(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
525 static int rcg_dissect_element_CreateDHKeyAgreementResp_ModulusP_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
526 static int rcg_dissect_element_CreateDHKeyAgreementResp_GeneratorG(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
527 static int rcg_dissect_element_CreateDHKeyAgreementResp_GeneratorG_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
528 static int rcg_dissect_element_CreateDHKeyAgreementResp_FactorQ(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
529 static int rcg_dissect_element_CreateDHKeyAgreementResp_FactorQ_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
530 static int rcg_dissect_element_CreateDHKeyAgreementResp_KeyAgreementHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
531 static int rcg_dissect_element_CreateDHKeyAgreementResp_KeyAgreementHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
532 static int rcg_dissect_element_CreateDHKeyAgreementResp_KerbErr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
533 static int rcg_dissect_element_CreateDHKeyAgreementResp_KerbErr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
534 static int rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKeyLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
535 static int rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKeyLen_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
536 static int rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
537 static int rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
538 static int rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKey__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
539 static int rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKey___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
540 static int rcg_dissect_element_DestroyKeyAgreementReq_KeyAgreementHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
541 static int rcg_dissect_element_DestroyKeyAgreementResp_Ignored(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
542 static int rcg_dissect_element_KeyAgreementGenerateNonceReq_KeyAgreementHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
543 static int rcg_dissect_element_KeyAgreementGenerateNonceResp_NonceLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
544 static int rcg_dissect_element_KeyAgreementGenerateNonceResp_NonceLen_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
545 static int rcg_dissect_element_KeyAgreementGenerateNonceResp_Nonce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
546 static int rcg_dissect_element_KeyAgreementGenerateNonceResp_Nonce_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
547 static int rcg_dissect_element_KeyAgreementGenerateNonceResp_Nonce__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
548 static int rcg_dissect_element_KeyAgreementGenerateNonceResp_Nonce___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
549 static int rcg_dissect_element_FinalizeKeyAgreementReq_KeyAgreementHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
550 static int rcg_dissect_element_FinalizeKeyAgreementReq_KeyAgreementHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
551 static int rcg_dissect_element_FinalizeKeyAgreementReq_KerbEType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
552 static int rcg_dissect_element_FinalizeKeyAgreementReq_KerbEType_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
553 static int rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonceLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
554 static int rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
555 static int rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonce_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
556 static int rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonce__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
557 static int rcg_dissect_element_FinalizeKeyAgreementReq_X509PublicKeyLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
558 static int rcg_dissect_element_FinalizeKeyAgreementReq_X509PublicKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
559 static int rcg_dissect_element_FinalizeKeyAgreementReq_X509PublicKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
560 static int rcg_dissect_element_FinalizeKeyAgreementReq_X509PublicKey__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
561 static int rcg_dissect_element_FinalizeKeyAgreementResp_SharedKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
562 static int rcg_dissect_element_FinalizeKeyAgreementResp_SharedKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
563 static int rcg_dissect_element_KerbInputUnion_negociateVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
564 static int rcg_dissect_element_KerbInputUnion_buildAsReqAuthenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
565 static int rcg_dissect_element_KerbInputUnion_verifyServiceTicket(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
566 static int rcg_dissect_element_KerbInputUnion_createApReqAuthenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
567 static int rcg_dissect_element_KerbInputUnion_decryptApReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
568 static int rcg_dissect_element_KerbInputUnion_unpackKdcReplyBody(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
569 static int rcg_dissect_element_KerbInputUnion_computeTgsChecksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
570 static int rcg_dissect_element_KerbInputUnion_buildEncryptedAuthData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
571 static int rcg_dissect_element_KerbInputUnion_packApReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
572 static int rcg_dissect_element_KerbInputUnion_hashS4UPreauth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
573 static int rcg_dissect_element_KerbInputUnion_signS4UPreauthData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
574 static int rcg_dissect_element_KerbInputUnion_verifyChecksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
575 static int rcg_dissect_element_KerbInputUnion_decryptPacCredentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
576 static int rcg_dissect_element_KerbInputUnion_createECDHKeyAgreement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
577 static int rcg_dissect_element_KerbInputUnion_createDHKeyAgreement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
578 static int rcg_dissect_element_KerbInputUnion_destroyKeyAgreement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
579 static int rcg_dissect_element_KerbInputUnion_keyAgreementGenerateNonce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
580 static int rcg_dissect_element_KerbInputUnion_finalizeKeyAgreement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
581 static int rcg_dissect_element_KerbCredIsoRemoteInput_CallId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t *CallId);
582 static int rcg_dissect_element_KerbCredIsoRemoteInput_callUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t CallId);
583 static int rcg_dissect_element_KerbOutputUnion_negociateVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
584 static int rcg_dissect_element_KerbOutputUnion_buildAsReqAuthenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
585 static int rcg_dissect_element_KerbOutputUnion_verifyServiceTicket(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
586 static int rcg_dissect_element_KerbOutputUnion_createApReqAuthenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
587 static int rcg_dissect_element_KerbOutputUnion_decryptApReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
588 static int rcg_dissect_element_KerbOutputUnion_unpackKdcReplyBody(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
589 static int rcg_dissect_element_KerbOutputUnion_computeTgsChecksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
590 static int rcg_dissect_element_KerbOutputUnion_buildEncryptedAuthData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
591 static int rcg_dissect_element_KerbOutputUnion_packApReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
592 static int rcg_dissect_element_KerbOutputUnion_hashS4UPreauth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
593 static int rcg_dissect_element_KerbOutputUnion_signS4UPreauthData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
594 static int rcg_dissect_element_KerbOutputUnion_verifyChecksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
595 static int rcg_dissect_element_KerbOutputUnion_decryptPacCredentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
596 static int rcg_dissect_element_KerbOutputUnion_createECDHKeyAgreement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
597 static int rcg_dissect_element_KerbOutputUnion_createDHKeyAgreement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
598 static int rcg_dissect_element_KerbOutputUnion_destroyKeyAgreement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
599 static int rcg_dissect_element_KerbOutputUnion_keyAgreementGenerateNonce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
600 static int rcg_dissect_element_KerbOutputUnion_finalizeKeyAgreement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
601 static int rcg_dissect_element_KerbCredIsoRemoteOutput_CallId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t *CallId);
602 static int rcg_dissect_element_KerbCredIsoRemoteOutput_Status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
603 static int rcg_dissect_element_KerbCredIsoRemoteOutput_callUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t CallId);
604 static int rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
605 static int rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
606 static int rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
607 static int rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
608 static int rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
609 static int rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reservedSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
610 static int rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
611 static int rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
612 static int rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
613 static int rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_Credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
614 static int rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_UserName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
615 static int rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_LogonDomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
616 static int rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
617 static int rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Ntlm3ResponseLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
618 static int rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
619 static int rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
620 static int rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
621 static int rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Lm3Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
622 static int rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_UserSessionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
623 static int rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_LmSessionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
624 static int rcg_dissect_element_CalculateNtResponseReq_NtChallenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
625 static int rcg_dissect_element_CalculateNtResponseReq_Credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
626 static int rcg_dissect_element_CalculateNtResponseResp_NtResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
627 static int rcg_dissect_element_CalculateUserSessionKeyNtReq_NtResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
628 static int rcg_dissect_element_CalculateUserSessionKeyNtReq_NtResponse_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
629 static int rcg_dissect_element_CalculateUserSessionKeyNtReq_Credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
630 static int rcg_dissect_element_CalculateUserSessionKeyNtResp_UserSessionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
631 static int rcg_dissect_element_CompareCredentialsReq_LhsCredential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
632 static int rcg_dissect_element_CompareCredentialsReq_RhsCredential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
633 static int rcg_dissect_element_CompareCredentialsResp_AreNtOwfsEqual(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
634 static int rcg_dissect_element_CompareCredentialsResp_AreLmOwfsEqual(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
635 static int rcg_dissect_element_CompareCredentialsResp_AreShaOwfsEqual(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
636 static int rcg_dissect_element_NtlmCredInput_negotiateVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
637 static int rcg_dissect_element_NtlmCredInput_lm20GetNtlm3ChallengeResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
638 static int rcg_dissect_element_NtlmCredInput_calculateNtResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
639 static int rcg_dissect_element_NtlmCredInput_calculateUserSessionKeyNt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
640 static int rcg_dissect_element_NtlmCredInput_compareCredentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
641 static int rcg_dissect_element_NtlmCredIsoRemoteInput_CallId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t *CallId);
642 static int rcg_dissect_element_NtlmCredIsoRemoteInput_callUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t CallId);
643 static int rcg_dissect_element_NtlmCredOutput_negotiateVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
644 static int rcg_dissect_element_NtlmCredOutput_lm20GetNtlm3ChallengeResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
645 static int rcg_dissect_element_NtlmCredOutput_calculateNtResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
646 static int rcg_dissect_element_NtlmCredOutput_calculateUserSessionKeyNt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
647 static int rcg_dissect_element_NtlmCredOutput_compareCredentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
648 static int rcg_dissect_element_NtlmCredIsoRemoteOutput_CallId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t *CallId);
649 static int rcg_dissect_element_NtlmCredIsoRemoteOutput_Status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
650 static int rcg_dissect_element_NtlmCredIsoRemoteOutput_callUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t CallId);
651 #include <epan/asn1.h>
652 #include "packet-kerberos.h"
653 static int
654 rcg_dissect_element_KERB_ASN1_DATA_CHECKSUM_checksum_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di _U_ , guint8 *drep _U_)
656 if (di->conformant_run)
657 return offset;
658 asn1_ctx_t asn1_ctx;
659 ALIGN_TO_4_BYTES;
660 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
661 asn1_ctx.private_data = /*&rcg*/NULL;
662 offset = dissect_krb5_Checksum(tree, tvb, offset + 4, &asn1_ctx);
663 return offset;
666 rcg_dissect_struct_KerbCredIsoRemoteOutput(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
668 uint16_t CallId = 0;
669 proto_item *item = NULL;
670 proto_tree *tree = NULL;
671 int old_offset;
672 ALIGN_TO_4_BYTES;
673 old_offset = offset;
674 if (parent_tree) {
675 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
676 tree = proto_item_add_subtree(item, ett_rcg_KerbCredIsoRemoteOutput);
678 offset = rcg_dissect_element_KerbCredIsoRemoteOutput_CallId(tvb, offset, pinfo, tree, di, drep, &CallId);
679 col_set_str(pinfo->cinfo, COL_INFO, val_to_str(CallId, rcg_RemoteGuardCallId_vals, "unknown operation (%u)"));
680 offset = rcg_dissect_element_KerbCredIsoRemoteOutput_Status(tvb, offset, pinfo, tree, di, drep);
681 offset = rcg_dissect_element_KerbCredIsoRemoteOutput_callUnion(tvb, offset, pinfo, tree, di, drep, CallId);
682 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
683 proto_item_set_len(item, offset-old_offset);
684 if (di->call_data->flags & DCERPC_IS_NDR64) {
685 ALIGN_TO_4_BYTES;
687 return offset;
690 rcg_dissect_struct_KerbCredIsoRemoteInput(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
692 uint16_t CallId = 0;
693 proto_item *item = NULL;
694 proto_tree *tree = NULL;
695 int old_offset;
696 ALIGN_TO_4_BYTES;
697 old_offset = offset;
698 if (parent_tree) {
699 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
700 tree = proto_item_add_subtree(item, ett_rcg_KerbCredIsoRemoteInput);
702 offset = rcg_dissect_element_KerbCredIsoRemoteInput_CallId(tvb, offset, pinfo, tree, di, drep, &CallId);
703 col_set_str(pinfo->cinfo, COL_INFO, val_to_str(CallId, rcg_RemoteGuardCallId_vals, "unknown operation (%u)"));
704 offset = rcg_dissect_element_KerbCredIsoRemoteInput_callUnion(tvb, offset, pinfo, tree, di, drep, CallId);
705 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
706 proto_item_set_len(item, offset-old_offset);
707 if (di->call_data->flags & DCERPC_IS_NDR64) {
708 ALIGN_TO_4_BYTES;
710 return offset;
713 rcg_dissect_struct_NtlmCredIsoRemoteOutput(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
715 uint16_t CallId = 0;
716 proto_item *item = NULL;
717 proto_tree *tree = NULL;
718 int old_offset;
719 if (di->conformant_run) return offset;
720 ALIGN_TO_4_BYTES;
721 old_offset = offset;
722 if (parent_tree) {
723 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
724 tree = proto_item_add_subtree(item, ett_rcg_NtlmCredIsoRemoteOutput);
726 offset = rcg_dissect_element_NtlmCredIsoRemoteOutput_CallId(tvb, offset, pinfo, tree, di, drep, &CallId);
727 col_set_str(pinfo->cinfo, COL_INFO, val_to_str(CallId, rcg_RemoteGuardCallId_vals, "unknown operation (%u)"));
728 offset = rcg_dissect_element_NtlmCredIsoRemoteOutput_Status(tvb, offset, pinfo, tree, di, drep);
729 offset = rcg_dissect_element_NtlmCredIsoRemoteOutput_callUnion(tvb, offset, pinfo, tree, di, drep, CallId);
730 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
731 proto_item_set_len(item, offset-old_offset);
732 if (di->call_data->flags & DCERPC_IS_NDR64) {
733 ALIGN_TO_4_BYTES;
735 return offset;
738 rcg_dissect_struct_NtlmCredIsoRemoteInput(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
740 uint16_t CallId = 0;
741 proto_item *item = NULL;
742 proto_tree *tree = NULL;
743 int old_offset;
744 if (di->conformant_run) return offset;
745 ALIGN_TO_4_BYTES;
746 old_offset = offset;
747 if (parent_tree) {
748 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
749 tree = proto_item_add_subtree(item, ett_rcg_NtlmCredIsoRemoteInput);
751 offset = rcg_dissect_element_NtlmCredIsoRemoteInput_CallId(tvb, offset, pinfo, tree, di, drep, &CallId);
752 col_set_str(pinfo->cinfo, COL_INFO, val_to_str(CallId, rcg_RemoteGuardCallId_vals, "unknown operation (%u)"));
753 offset = rcg_dissect_element_NtlmCredIsoRemoteInput_callUnion(tvb, offset, pinfo, tree, di, drep, CallId);
754 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
755 proto_item_set_len(item, offset-old_offset);
756 if (di->call_data->flags & DCERPC_IS_NDR64) {
757 ALIGN_TO_4_BYTES;
759 return offset;
763 /* IDL: struct { */
764 /* IDL: uint32 Pdu; */
765 /* IDL: uint32 Length; */
766 /* IDL: [ref] [size_is(Length)] uint8 *Asn1Buffer; */
767 /* IDL: } */
769 static int
770 rcg_dissect_element_KERB_ASN1_DATA_Pdu(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
772 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_ASN1_DATA_Pdu, 0);
774 return offset;
777 static int
778 rcg_dissect_element_KERB_ASN1_DATA_Length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
780 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_ASN1_DATA_Length, 0);
782 return offset;
785 static int
786 rcg_dissect_element_KERB_ASN1_DATA_Asn1Buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
788 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_KERB_ASN1_DATA_Asn1Buffer_, NDR_POINTER_REF, "Pointer to Asn1Buffer (uint8)",hf_rcg_KERB_ASN1_DATA_Asn1Buffer);
790 return offset;
793 static int
794 rcg_dissect_element_KERB_ASN1_DATA_Asn1Buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
796 struct ndr_generic_array nga = { .is_conformant = false, };
798 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
800 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, rcg_dissect_element_KERB_ASN1_DATA_Asn1Buffer__);
802 return offset;
805 static int
806 rcg_dissect_element_KERB_ASN1_DATA_Asn1Buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
808 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_ASN1_DATA_Asn1Buffer, 0);
810 return offset;
814 rcg_dissect_struct_KERB_ASN1_DATA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
816 proto_item *item = NULL;
817 proto_tree *tree = NULL;
818 int old_offset;
820 ALIGN_TO_5_BYTES;
822 old_offset = offset;
824 if (parent_tree) {
825 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
826 tree = proto_item_add_subtree(item, ett_rcg_KERB_ASN1_DATA);
829 offset = rcg_dissect_element_KERB_ASN1_DATA_Pdu(tvb, offset, pinfo, tree, di, drep);
831 offset = rcg_dissect_element_KERB_ASN1_DATA_Length(tvb, offset, pinfo, tree, di, drep);
833 offset = rcg_dissect_element_KERB_ASN1_DATA_Asn1Buffer(tvb, offset, pinfo, tree, di, drep);
836 proto_item_set_len(item, offset-old_offset);
839 if (di->call_data->flags & DCERPC_IS_NDR64) {
840 ALIGN_TO_5_BYTES;
843 return offset;
847 /* IDL: struct { */
848 /* IDL: uint32 Pdu; */
849 /* IDL: uint32 Length; */
850 /* IDL: [ref] [size_is(Length)] uint8 *checksum; */
851 /* IDL: } */
853 static int
854 rcg_dissect_element_KERB_ASN1_DATA_CHECKSUM_Pdu(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
856 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_ASN1_DATA_CHECKSUM_Pdu, 0);
858 return offset;
861 static int
862 rcg_dissect_element_KERB_ASN1_DATA_CHECKSUM_Length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
864 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_ASN1_DATA_CHECKSUM_Length, 0);
866 return offset;
869 static int
870 rcg_dissect_element_KERB_ASN1_DATA_CHECKSUM_checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
872 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_KERB_ASN1_DATA_CHECKSUM_checksum_, NDR_POINTER_REF, "Pointer to Checksum (uint8)",hf_rcg_KERB_ASN1_DATA_CHECKSUM_checksum);
874 return offset;
878 rcg_dissect_struct_KERB_ASN1_DATA_CHECKSUM(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
880 proto_item *item = NULL;
881 proto_tree *tree = NULL;
882 int old_offset;
884 ALIGN_TO_5_BYTES;
886 old_offset = offset;
888 if (parent_tree) {
889 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
890 tree = proto_item_add_subtree(item, ett_rcg_KERB_ASN1_DATA_CHECKSUM);
893 offset = rcg_dissect_element_KERB_ASN1_DATA_CHECKSUM_Pdu(tvb, offset, pinfo, tree, di, drep);
895 offset = rcg_dissect_element_KERB_ASN1_DATA_CHECKSUM_Length(tvb, offset, pinfo, tree, di, drep);
897 offset = rcg_dissect_element_KERB_ASN1_DATA_CHECKSUM_checksum(tvb, offset, pinfo, tree, di, drep);
900 proto_item_set_len(item, offset-old_offset);
903 if (di->call_data->flags & DCERPC_IS_NDR64) {
904 ALIGN_TO_5_BYTES;
907 return offset;
911 /* IDL: struct { */
912 /* IDL: uint32 length; */
913 /* IDL: [ref] [size_is(length)] uint8 *value; */
914 /* IDL: } */
916 static int
917 rcg_dissect_element_KERB_RPC_OCTET_STRING_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
919 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_OCTET_STRING_length, 0);
921 return offset;
924 static int
925 rcg_dissect_element_KERB_RPC_OCTET_STRING_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
927 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_KERB_RPC_OCTET_STRING_value_, NDR_POINTER_REF, "Pointer to Value (uint8)",hf_rcg_KERB_RPC_OCTET_STRING_value);
929 return offset;
932 static int
933 rcg_dissect_element_KERB_RPC_OCTET_STRING_value_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
935 struct ndr_generic_array nga = { .is_conformant = false, };
937 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
939 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, rcg_dissect_element_KERB_RPC_OCTET_STRING_value__);
941 return offset;
944 static int
945 rcg_dissect_element_KERB_RPC_OCTET_STRING_value__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
947 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_OCTET_STRING_value, 0);
949 return offset;
953 rcg_dissect_struct_KERB_RPC_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
955 proto_item *item = NULL;
956 proto_tree *tree = NULL;
957 int old_offset;
959 ALIGN_TO_5_BYTES;
961 old_offset = offset;
963 if (parent_tree) {
964 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
965 tree = proto_item_add_subtree(item, ett_rcg_KERB_RPC_OCTET_STRING);
968 offset = rcg_dissect_element_KERB_RPC_OCTET_STRING_length(tvb, offset, pinfo, tree, di, drep);
970 offset = rcg_dissect_element_KERB_RPC_OCTET_STRING_value(tvb, offset, pinfo, tree, di, drep);
973 proto_item_set_len(item, offset-old_offset);
976 if (di->call_data->flags & DCERPC_IS_NDR64) {
977 ALIGN_TO_5_BYTES;
980 return offset;
984 /* IDL: struct { */
985 /* IDL: int32 preauth_data_type; */
986 /* IDL: KERB_RPC_OCTET_STRING preauth_data; */
987 /* IDL: } */
989 static int
990 rcg_dissect_element_KERB_RPC_PA_DATA_preauth_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
992 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_PA_DATA_preauth_data_type, 0);
994 return offset;
997 static int
998 rcg_dissect_element_KERB_RPC_PA_DATA_preauth_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1000 offset = rcg_dissect_struct_KERB_RPC_OCTET_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_KERB_RPC_PA_DATA_preauth_data,0);
1002 return offset;
1006 rcg_dissect_struct_KERB_RPC_PA_DATA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1008 proto_item *item = NULL;
1009 proto_tree *tree = NULL;
1010 int old_offset;
1012 ALIGN_TO_5_BYTES;
1014 old_offset = offset;
1016 if (parent_tree) {
1017 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1018 tree = proto_item_add_subtree(item, ett_rcg_KERB_RPC_PA_DATA);
1021 offset = rcg_dissect_element_KERB_RPC_PA_DATA_preauth_data_type(tvb, offset, pinfo, tree, di, drep);
1023 offset = rcg_dissect_element_KERB_RPC_PA_DATA_preauth_data(tvb, offset, pinfo, tree, di, drep);
1026 proto_item_set_len(item, offset-old_offset);
1029 if (di->call_data->flags & DCERPC_IS_NDR64) {
1030 ALIGN_TO_5_BYTES;
1033 return offset;
1037 /* IDL: struct { */
1038 /* IDL: uint32 reserved1; */
1039 /* IDL: uint32 reserved2; */
1040 /* IDL: KERB_RPC_OCTET_STRING reserved3; */
1041 /* IDL: } */
1043 static int
1044 rcg_dissect_element_KERB_RPC_ENCRYPTION_KEY_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1046 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_KERB_RPC_ENCRYPTION_KEY_reserved1, 0);
1048 return offset;
1051 static int
1052 rcg_dissect_element_KERB_RPC_ENCRYPTION_KEY_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1054 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_KERB_RPC_ENCRYPTION_KEY_reserved2, 0);
1056 return offset;
1059 static int
1060 rcg_dissect_element_KERB_RPC_ENCRYPTION_KEY_reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1062 offset = rcg_dissect_struct_KERB_RPC_OCTET_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_KERB_RPC_ENCRYPTION_KEY_reserved3,0);
1064 return offset;
1068 rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1070 proto_item *item = NULL;
1071 proto_tree *tree = NULL;
1072 int old_offset;
1074 ALIGN_TO_5_BYTES;
1076 old_offset = offset;
1078 if (parent_tree) {
1079 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1080 tree = proto_item_add_subtree(item, ett_rcg_KERB_RPC_ENCRYPTION_KEY);
1083 offset = rcg_dissect_element_KERB_RPC_ENCRYPTION_KEY_reserved1(tvb, offset, pinfo, tree, di, drep);
1085 offset = rcg_dissect_element_KERB_RPC_ENCRYPTION_KEY_reserved2(tvb, offset, pinfo, tree, di, drep);
1087 offset = rcg_dissect_element_KERB_RPC_ENCRYPTION_KEY_reserved3(tvb, offset, pinfo, tree, di, drep);
1090 proto_item_set_len(item, offset-old_offset);
1093 if (di->call_data->flags & DCERPC_IS_NDR64) {
1094 ALIGN_TO_5_BYTES;
1097 return offset;
1101 /* IDL: struct { */
1102 /* IDL: uint16 Length; */
1103 /* IDL: uint16 MaximumLength; */
1104 /* IDL: [charset(UTF16)] [length_is(Length/2)] [ref] [size_is(MaximumLength/2)] uint16 *Buffer; */
1105 /* IDL: } */
1107 static int
1108 rcg_dissect_element_RPC_UNICODE_STRING_Length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1110 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_rcg_RPC_UNICODE_STRING_Length, 0);
1112 return offset;
1115 static int
1116 rcg_dissect_element_RPC_UNICODE_STRING_MaximumLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1118 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_rcg_RPC_UNICODE_STRING_MaximumLength, 0);
1120 return offset;
1123 static int
1124 rcg_dissect_element_RPC_UNICODE_STRING_Buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1126 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_RPC_UNICODE_STRING_Buffer_, NDR_POINTER_REF, "Pointer to Buffer (uint16)",hf_rcg_RPC_UNICODE_STRING_Buffer);
1128 return offset;
1131 static int
1132 rcg_dissect_element_RPC_UNICODE_STRING_Buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1134 char *data = NULL;
1135 struct ndr_generic_array nga = { .is_conformant = false, };
1137 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1139 offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1140 offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_rcg_RPC_UNICODE_STRING_Buffer, false, &nga, &data);
1141 proto_item_append_text(tree, ": %s", data);
1143 return offset;
1147 rcg_dissect_struct_RPC_UNICODE_STRING(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1149 proto_item *item = NULL;
1150 proto_tree *tree = NULL;
1151 int old_offset;
1153 ALIGN_TO_5_BYTES;
1155 old_offset = offset;
1157 if (parent_tree) {
1158 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1159 tree = proto_item_add_subtree(item, ett_rcg_RPC_UNICODE_STRING);
1162 offset = rcg_dissect_element_RPC_UNICODE_STRING_Length(tvb, offset, pinfo, tree, di, drep);
1164 offset = rcg_dissect_element_RPC_UNICODE_STRING_MaximumLength(tvb, offset, pinfo, tree, di, drep);
1166 offset = rcg_dissect_element_RPC_UNICODE_STRING_Buffer(tvb, offset, pinfo, tree, di, drep);
1169 proto_item_set_len(item, offset-old_offset);
1172 if (di->call_data->flags & DCERPC_IS_NDR64) {
1173 ALIGN_TO_5_BYTES;
1176 return offset;
1180 /* IDL: struct { */
1181 /* IDL: int16 NameType; */
1182 /* IDL: uint16 NameCount; */
1183 /* IDL: [ref] [size_is(NameCount)] RPC_UNICODE_STRING *Names; */
1184 /* IDL: } */
1186 static int
1187 rcg_dissect_element_KERB_RPC_INTERNAL_NAME_NameType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1189 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_INTERNAL_NAME_NameType, 0);
1191 return offset;
1194 static int
1195 rcg_dissect_element_KERB_RPC_INTERNAL_NAME_NameCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1197 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_INTERNAL_NAME_NameCount, 0);
1199 return offset;
1202 static int
1203 rcg_dissect_element_KERB_RPC_INTERNAL_NAME_Names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1205 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_KERB_RPC_INTERNAL_NAME_Names_, NDR_POINTER_REF, "Pointer to Names (RPC_UNICODE_STRING)",hf_rcg_KERB_RPC_INTERNAL_NAME_Names);
1207 return offset;
1210 static int
1211 rcg_dissect_element_KERB_RPC_INTERNAL_NAME_Names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1213 struct ndr_generic_array nga = { .is_conformant = false, };
1215 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1217 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, rcg_dissect_element_KERB_RPC_INTERNAL_NAME_Names__);
1219 return offset;
1222 static int
1223 rcg_dissect_element_KERB_RPC_INTERNAL_NAME_Names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1225 offset = rcg_dissect_struct_RPC_UNICODE_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_KERB_RPC_INTERNAL_NAME_Names,0);
1227 return offset;
1231 rcg_dissect_struct_KERB_RPC_INTERNAL_NAME(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1233 proto_item *item = NULL;
1234 proto_tree *tree = NULL;
1235 int old_offset;
1237 ALIGN_TO_5_BYTES;
1239 old_offset = offset;
1241 if (parent_tree) {
1242 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1243 tree = proto_item_add_subtree(item, ett_rcg_KERB_RPC_INTERNAL_NAME);
1246 offset = rcg_dissect_element_KERB_RPC_INTERNAL_NAME_NameType(tvb, offset, pinfo, tree, di, drep);
1248 offset = rcg_dissect_element_KERB_RPC_INTERNAL_NAME_NameCount(tvb, offset, pinfo, tree, di, drep);
1250 offset = rcg_dissect_element_KERB_RPC_INTERNAL_NAME_Names(tvb, offset, pinfo, tree, di, drep);
1253 proto_item_set_len(item, offset-old_offset);
1256 if (di->call_data->flags & DCERPC_IS_NDR64) {
1257 ALIGN_TO_5_BYTES;
1260 return offset;
1264 /* IDL: enum { */
1265 /* IDL: RemoteCallKerbNegotiateVersion=0x100, */
1266 /* IDL: RemoteCallKerbBuildAsReqAuthenticator=0x101, */
1267 /* IDL: RemoteCallKerbVerifyServiceTicket=0x102, */
1268 /* IDL: RemoteCallKerbCreateApReqAuthenticator=0x103, */
1269 /* IDL: RemoteCallKerbDecryptApReply=0x104, */
1270 /* IDL: RemoteCallKerbUnpackKdcReplyBody=0x105, */
1271 /* IDL: RemoteCallKerbComputeTgsChecksum=0x106, */
1272 /* IDL: RemoteCallKerbBuildEncryptedAuthData=0x107, */
1273 /* IDL: RemoteCallKerbPackApReply=0x108, */
1274 /* IDL: RemoteCallKerbHashS4UPreauth=0x109, */
1275 /* IDL: RemoteCallKerbSignS4UPreauthData=0x10a, */
1276 /* IDL: RemoteCallKerbVerifyChecksum=0x10b, */
1277 /* IDL: RemoteCallKerbDecryptPacCredentials=0x113, */
1278 /* IDL: RemoteCallKerbCreateECDHKeyAgreement=0x114, */
1279 /* IDL: RemoteCallKerbCreateDHKeyAgreement=0x115, */
1280 /* IDL: RemoteCallKerbDestroyKeyAgreement=0x116, */
1281 /* IDL: RemoteCallKerbKeyAgreementGenerateNonce=0x117, */
1282 /* IDL: RemoteCallKerbFinalizeKeyAgreement=0x118, */
1283 /* IDL: RemoteCallNtlmNegotiateVersion=0x200, */
1284 /* IDL: RemoteCallNtlmLm20GetNtlm3ChallengeResponse=0x201, */
1285 /* IDL: RemoteCallNtlmCalculateNtResponse=0x202, */
1286 /* IDL: RemoteCallNtlmCalculateUserSessionKeyNt=0x203, */
1287 /* IDL: RemoteCallNtlmCompareCredentials=0x204, */
1288 /* IDL: } */
1291 rcg_dissect_enum_RemoteGuardCallId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint16_t *param _U_)
1293 uint16_t parameter=0;
1294 if (param) {
1295 parameter = *param;
1297 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
1298 if (param) {
1299 *param = parameter;
1301 return offset;
1305 /* IDL: struct _SECPKG_SUPPLEMENTAL_CRED { */
1306 /* IDL: RPC_UNICODE_STRING PackageName; */
1307 /* IDL: uint32 CredentialSize; */
1308 /* IDL: [ref] [size_is(CredentialSize)] uint8 *Credentials; */
1309 /* IDL: } */
1311 static int
1312 rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_PackageName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1314 offset = rcg_dissect_struct_RPC_UNICODE_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_SECPKG_SUPPLEMENTAL_CRED_PackageName,0);
1316 return offset;
1319 static int
1320 rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_CredentialSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1322 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_SECPKG_SUPPLEMENTAL_CRED_CredentialSize, 0);
1324 return offset;
1327 static int
1328 rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_Credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1330 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_Credentials_, NDR_POINTER_REF, "Pointer to Credentials (uint8)",hf_rcg_SECPKG_SUPPLEMENTAL_CRED_Credentials);
1332 return offset;
1335 static int
1336 rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_Credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1338 struct ndr_generic_array nga = { .is_conformant = false, };
1340 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1342 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_Credentials__);
1344 return offset;
1347 static int
1348 rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_Credentials__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1350 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_SECPKG_SUPPLEMENTAL_CRED_Credentials, 0);
1352 return offset;
1356 rcg_dissect_struct_SECPKG_SUPPLEMENTAL_CRED(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1358 proto_item *item = NULL;
1359 proto_tree *tree = NULL;
1360 int old_offset;
1362 ALIGN_TO_4_BYTES;
1364 old_offset = offset;
1366 if (parent_tree) {
1367 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1368 tree = proto_item_add_subtree(item, ett_rcg_SECPKG_SUPPLEMENTAL_CRED);
1371 offset = rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_PackageName(tvb, offset, pinfo, tree, di, drep);
1373 offset = rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_CredentialSize(tvb, offset, pinfo, tree, di, drep);
1375 offset = rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_Credentials(tvb, offset, pinfo, tree, di, drep);
1378 proto_item_set_len(item, offset-old_offset);
1381 if (di->call_data->flags & DCERPC_IS_NDR64) {
1382 ALIGN_TO_4_BYTES;
1385 return offset;
1389 /* IDL: struct { */
1390 /* IDL: uint32 CredentialCount; */
1391 /* IDL: [size_is(CredentialCount)] SECPKG_SUPPLEMENTAL_CRED Credentials[*]; */
1392 /* IDL: } */
1394 static int
1395 rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_ARRAY_CredentialCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1397 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY_CredentialCount, 0);
1399 return offset;
1402 static int
1403 rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_ARRAY_Credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, struct ndr_generic_array *nga)
1406 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, nga, rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_ARRAY_Credentials_);
1408 return offset;
1411 static int
1412 rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_ARRAY_Credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1414 offset = rcg_dissect_struct_SECPKG_SUPPLEMENTAL_CRED(tvb,offset,pinfo,tree,di,drep,hf_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY_Credentials,0);
1416 return offset;
1419 static int
1420 rcg_dissect_conformant_SECPKG_SUPPLEMENTAL_CRED_ARRAY_Credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, struct ndr_generic_array *nga)
1422 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, nga);
1424 return offset;
1428 rcg_dissect_struct_SECPKG_SUPPLEMENTAL_CRED_ARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1430 struct ndr_generic_array nga_Credentials = { .is_conformant = false, };
1431 proto_item *item = NULL;
1432 proto_tree *tree = NULL;
1433 int old_offset;
1435 offset = rcg_dissect_conformant_SECPKG_SUPPLEMENTAL_CRED_ARRAY_Credentials(tvb, offset, pinfo, parent_tree, di, drep, &nga_Credentials);
1437 ALIGN_TO_4_BYTES;
1439 old_offset = offset;
1441 if (parent_tree) {
1442 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1443 tree = proto_item_add_subtree(item, ett_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY);
1446 offset = rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_ARRAY_CredentialCount(tvb, offset, pinfo, tree, di, drep);
1448 offset = rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_ARRAY_Credentials(tvb, offset, pinfo, tree, di, drep, &nga_Credentials);
1451 proto_item_set_len(item, offset-old_offset);
1454 return offset;
1458 /* IDL: struct SECPKG_SUPPLEMENTAL_CRED_ARRAY { */
1459 /* IDL: } */
1462 rcg_dissect_struct_PSECPKG_SUPPLEMENTAL_CRED_ARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1464 proto_item *item = NULL;
1465 int old_offset;
1467 ALIGN_TO_4_BYTES;
1469 old_offset = offset;
1471 if (parent_tree) {
1472 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1476 proto_item_set_len(item, offset-old_offset);
1479 if (di->call_data->flags & DCERPC_IS_NDR64) {
1480 ALIGN_TO_4_BYTES;
1483 return offset;
1487 /* IDL: struct { */
1488 /* IDL: uint32 cbData; */
1489 /* IDL: [ref] [size_is(cbData)] uint8 *pbData; */
1490 /* IDL: } */
1492 static int
1493 rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_cbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1495 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_CRYPTO_API_BLOB_cbData, 0);
1497 return offset;
1500 static int
1501 rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_pbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1503 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_pbData_, NDR_POINTER_REF, "Pointer to PbData (uint8)",hf_rcg_KERB_RPC_CRYPTO_API_BLOB_pbData);
1505 return offset;
1508 static int
1509 rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_pbData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1511 struct ndr_generic_array nga = { .is_conformant = false, };
1513 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
1515 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_pbData__);
1517 return offset;
1520 static int
1521 rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_pbData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1523 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_CRYPTO_API_BLOB_pbData, 0);
1525 return offset;
1529 rcg_dissect_struct_KERB_RPC_CRYPTO_API_BLOB(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1531 proto_item *item = NULL;
1532 proto_tree *tree = NULL;
1533 int old_offset;
1535 ALIGN_TO_5_BYTES;
1537 old_offset = offset;
1539 if (parent_tree) {
1540 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1541 tree = proto_item_add_subtree(item, ett_rcg_KERB_RPC_CRYPTO_API_BLOB);
1544 offset = rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_cbData(tvb, offset, pinfo, tree, di, drep);
1546 offset = rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_pbData(tvb, offset, pinfo, tree, di, drep);
1549 proto_item_set_len(item, offset-old_offset);
1552 if (di->call_data->flags & DCERPC_IS_NDR64) {
1553 ALIGN_TO_5_BYTES;
1556 return offset;
1560 /* IDL: struct { */
1561 /* IDL: uint32 MaxSupportedVersion; */
1562 /* IDL: } */
1564 static int
1565 rcg_dissect_element_NegotiateVersion_MaxSupportedVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1567 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_NegotiateVersion_MaxSupportedVersion, 0);
1569 return offset;
1573 rcg_dissect_struct_NegotiateVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1575 proto_item *item = NULL;
1576 proto_tree *tree = NULL;
1577 int old_offset;
1579 ALIGN_TO_4_BYTES;
1581 old_offset = offset;
1583 if (parent_tree) {
1584 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1585 tree = proto_item_add_subtree(item, ett_rcg_NegotiateVersion);
1588 offset = rcg_dissect_element_NegotiateVersion_MaxSupportedVersion(tvb, offset, pinfo, tree, di, drep);
1591 proto_item_set_len(item, offset-old_offset);
1594 if (di->call_data->flags & DCERPC_IS_NDR64) {
1595 ALIGN_TO_4_BYTES;
1598 return offset;
1602 /* IDL: struct { */
1603 /* IDL: int64 QuadPart; */
1604 /* IDL: } */
1606 static int
1607 rcg_dissect_element_LARGE_INTEGER_QuadPart(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1609 offset = PIDL_dissect_uint64(tvb, offset, pinfo, tree, di, drep, hf_rcg_LARGE_INTEGER_QuadPart, 0);
1611 return offset;
1615 rcg_dissect_struct_LARGE_INTEGER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1617 proto_item *item = NULL;
1618 proto_tree *tree = NULL;
1619 int old_offset;
1621 ALIGN_TO_8_BYTES;
1623 old_offset = offset;
1625 if (parent_tree) {
1626 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1627 tree = proto_item_add_subtree(item, ett_rcg_LARGE_INTEGER);
1630 offset = rcg_dissect_element_LARGE_INTEGER_QuadPart(tvb, offset, pinfo, tree, di, drep);
1633 proto_item_set_len(item, offset-old_offset);
1636 if (di->call_data->flags & DCERPC_IS_NDR64) {
1637 ALIGN_TO_8_BYTES;
1640 return offset;
1644 /* IDL: struct LARGE_INTEGER { */
1645 /* IDL: } */
1648 rcg_dissect_struct_PLARGE_INTEGER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1650 proto_item *item = NULL;
1651 int old_offset;
1653 ALIGN_TO_4_BYTES;
1655 old_offset = offset;
1657 if (parent_tree) {
1658 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1662 proto_item_set_len(item, offset-old_offset);
1665 if (di->call_data->flags & DCERPC_IS_NDR64) {
1666 ALIGN_TO_4_BYTES;
1669 return offset;
1673 /* IDL: struct { */
1674 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *EncryptionKey; */
1675 /* IDL: [ptr(1)] KERB_RPC_ENCRYPTION_KEY *ArmorKey; */
1676 /* IDL: [ref] LARGE_INTEGER *TimeSkew; */
1677 /* IDL: } */
1679 static int
1680 rcg_dissect_element_BuildAsReqAuthenticatorReq_EncryptionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1682 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_BuildAsReqAuthenticatorReq_EncryptionKey_, NDR_POINTER_REF, "Pointer to EncryptionKey (KERB_RPC_ENCRYPTION_KEY)",hf_rcg_BuildAsReqAuthenticatorReq_EncryptionKey);
1684 return offset;
1687 static int
1688 rcg_dissect_element_BuildAsReqAuthenticatorReq_EncryptionKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1690 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildAsReqAuthenticatorReq_EncryptionKey,0);
1692 return offset;
1695 static int
1696 rcg_dissect_element_BuildAsReqAuthenticatorReq_ArmorKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1698 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_BuildAsReqAuthenticatorReq_ArmorKey_, NDR_POINTER_PTR, "Pointer to ArmorKey (KERB_RPC_ENCRYPTION_KEY)",hf_rcg_BuildAsReqAuthenticatorReq_ArmorKey);
1700 return offset;
1703 static int
1704 rcg_dissect_element_BuildAsReqAuthenticatorReq_ArmorKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1706 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildAsReqAuthenticatorReq_ArmorKey,0);
1708 return offset;
1711 static int
1712 rcg_dissect_element_BuildAsReqAuthenticatorReq_TimeSkew(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1714 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_BuildAsReqAuthenticatorReq_TimeSkew_, NDR_POINTER_REF, "Pointer to TimeSkew (LARGE_INTEGER)",hf_rcg_BuildAsReqAuthenticatorReq_TimeSkew);
1716 return offset;
1719 static int
1720 rcg_dissect_element_BuildAsReqAuthenticatorReq_TimeSkew_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1722 offset = rcg_dissect_struct_LARGE_INTEGER(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildAsReqAuthenticatorReq_TimeSkew,0);
1724 return offset;
1728 rcg_dissect_struct_BuildAsReqAuthenticatorReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1730 proto_item *item = NULL;
1731 proto_tree *tree = NULL;
1732 int old_offset;
1734 ALIGN_TO_5_BYTES;
1736 old_offset = offset;
1738 if (parent_tree) {
1739 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1740 tree = proto_item_add_subtree(item, ett_rcg_BuildAsReqAuthenticatorReq);
1743 offset = rcg_dissect_element_BuildAsReqAuthenticatorReq_EncryptionKey(tvb, offset, pinfo, tree, di, drep);
1745 offset = rcg_dissect_element_BuildAsReqAuthenticatorReq_ArmorKey(tvb, offset, pinfo, tree, di, drep);
1747 offset = rcg_dissect_element_BuildAsReqAuthenticatorReq_TimeSkew(tvb, offset, pinfo, tree, di, drep);
1750 proto_item_set_len(item, offset-old_offset);
1753 if (di->call_data->flags & DCERPC_IS_NDR64) {
1754 ALIGN_TO_5_BYTES;
1757 return offset;
1761 /* IDL: struct { */
1762 /* IDL: int32 PreauthDataType; */
1763 /* IDL: KERB_RPC_OCTET_STRING PreauthData; */
1764 /* IDL: } */
1766 static int
1767 rcg_dissect_element_BuildAsReqAuthenticatorResp_PreauthDataType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1769 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_BuildAsReqAuthenticatorResp_PreauthDataType, 0);
1771 return offset;
1774 static int
1775 rcg_dissect_element_BuildAsReqAuthenticatorResp_PreauthData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1777 offset = rcg_dissect_struct_KERB_RPC_OCTET_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildAsReqAuthenticatorResp_PreauthData,0);
1779 return offset;
1783 rcg_dissect_struct_BuildAsReqAuthenticatorResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1785 proto_item *item = NULL;
1786 proto_tree *tree = NULL;
1787 int old_offset;
1789 ALIGN_TO_5_BYTES;
1791 old_offset = offset;
1793 if (parent_tree) {
1794 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1795 tree = proto_item_add_subtree(item, ett_rcg_BuildAsReqAuthenticatorResp);
1798 offset = rcg_dissect_element_BuildAsReqAuthenticatorResp_PreauthDataType(tvb, offset, pinfo, tree, di, drep);
1800 offset = rcg_dissect_element_BuildAsReqAuthenticatorResp_PreauthData(tvb, offset, pinfo, tree, di, drep);
1803 proto_item_set_len(item, offset-old_offset);
1806 if (di->call_data->flags & DCERPC_IS_NDR64) {
1807 ALIGN_TO_5_BYTES;
1810 return offset;
1814 /* IDL: struct { */
1815 /* IDL: [ref] KERB_ASN1_DATA *PackedTicket; */
1816 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *ServiceKey; */
1817 /* IDL: [ptr(1)] LARGE_INTEGER *TimeSkew; */
1818 /* IDL: } */
1820 static int
1821 rcg_dissect_element_VerifyServiceTicketReq_PackedTicket(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1823 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_VerifyServiceTicketReq_PackedTicket_, NDR_POINTER_REF, "Pointer to PackedTicket (KERB_ASN1_DATA)",hf_rcg_VerifyServiceTicketReq_PackedTicket);
1825 return offset;
1828 static int
1829 rcg_dissect_element_VerifyServiceTicketReq_PackedTicket_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1831 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_VerifyServiceTicketReq_PackedTicket,0);
1833 return offset;
1836 static int
1837 rcg_dissect_element_VerifyServiceTicketReq_ServiceKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1839 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_VerifyServiceTicketReq_ServiceKey_, NDR_POINTER_REF, "Pointer to ServiceKey (KERB_RPC_ENCRYPTION_KEY)",hf_rcg_VerifyServiceTicketReq_ServiceKey);
1841 return offset;
1844 static int
1845 rcg_dissect_element_VerifyServiceTicketReq_ServiceKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1847 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_VerifyServiceTicketReq_ServiceKey,0);
1849 return offset;
1852 static int
1853 rcg_dissect_element_VerifyServiceTicketReq_TimeSkew(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1855 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_VerifyServiceTicketReq_TimeSkew_, NDR_POINTER_PTR, "Pointer to TimeSkew (LARGE_INTEGER)",hf_rcg_VerifyServiceTicketReq_TimeSkew);
1857 return offset;
1860 static int
1861 rcg_dissect_element_VerifyServiceTicketReq_TimeSkew_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1863 offset = rcg_dissect_struct_LARGE_INTEGER(tvb,offset,pinfo,tree,di,drep,hf_rcg_VerifyServiceTicketReq_TimeSkew,0);
1865 return offset;
1869 rcg_dissect_struct_VerifyServiceTicketReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1871 proto_item *item = NULL;
1872 proto_tree *tree = NULL;
1873 int old_offset;
1875 ALIGN_TO_5_BYTES;
1877 old_offset = offset;
1879 if (parent_tree) {
1880 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1881 tree = proto_item_add_subtree(item, ett_rcg_VerifyServiceTicketReq);
1884 offset = rcg_dissect_element_VerifyServiceTicketReq_PackedTicket(tvb, offset, pinfo, tree, di, drep);
1886 offset = rcg_dissect_element_VerifyServiceTicketReq_ServiceKey(tvb, offset, pinfo, tree, di, drep);
1888 offset = rcg_dissect_element_VerifyServiceTicketReq_TimeSkew(tvb, offset, pinfo, tree, di, drep);
1891 proto_item_set_len(item, offset-old_offset);
1894 if (di->call_data->flags & DCERPC_IS_NDR64) {
1895 ALIGN_TO_5_BYTES;
1898 return offset;
1902 /* IDL: struct { */
1903 /* IDL: KERB_ASN1_DATA DecryptedTicket; */
1904 /* IDL: int32 KerbProtocolError; */
1905 /* IDL: } */
1907 static int
1908 rcg_dissect_element_VerifyServiceTicketResp_DecryptedTicket(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1910 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_VerifyServiceTicketResp_DecryptedTicket,0);
1912 return offset;
1915 static int
1916 rcg_dissect_element_VerifyServiceTicketResp_KerbProtocolError(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1918 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyServiceTicketResp_KerbProtocolError, 0);
1920 return offset;
1924 rcg_dissect_struct_VerifyServiceTicketResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1926 proto_item *item = NULL;
1927 proto_tree *tree = NULL;
1928 int old_offset;
1930 ALIGN_TO_5_BYTES;
1932 old_offset = offset;
1934 if (parent_tree) {
1935 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1936 tree = proto_item_add_subtree(item, ett_rcg_VerifyServiceTicketResp);
1939 offset = rcg_dissect_element_VerifyServiceTicketResp_DecryptedTicket(tvb, offset, pinfo, tree, di, drep);
1941 offset = rcg_dissect_element_VerifyServiceTicketResp_KerbProtocolError(tvb, offset, pinfo, tree, di, drep);
1944 proto_item_set_len(item, offset-old_offset);
1947 if (di->call_data->flags & DCERPC_IS_NDR64) {
1948 ALIGN_TO_5_BYTES;
1951 return offset;
1955 /* IDL: struct RPC_UNICODE_STRING { */
1956 /* IDL: } */
1959 rcg_dissect_struct_PRPC_UNICODE_STRING(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1961 proto_item *item = NULL;
1962 int old_offset;
1964 ALIGN_TO_4_BYTES;
1966 old_offset = offset;
1968 if (parent_tree) {
1969 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1973 proto_item_set_len(item, offset-old_offset);
1976 if (di->call_data->flags & DCERPC_IS_NDR64) {
1977 ALIGN_TO_4_BYTES;
1980 return offset;
1984 /* IDL: struct { */
1985 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *EncryptionKey; */
1986 /* IDL: uint32 SequenceNumber; */
1987 /* IDL: [ref] KERB_RPC_INTERNAL_NAME *ClientName; */
1988 /* IDL: [ref] RPC_UNICODE_STRING *ClientRealm; */
1989 /* IDL: [ref] LARGE_INTEGER *SkewTime; */
1990 /* IDL: [ptr(1)] KERB_RPC_ENCRYPTION_KEY *SubKey; */
1991 /* IDL: [ptr(1)] KERB_ASN1_DATA *AuthData; */
1992 /* IDL: [ptr(1)] KERB_ASN1_DATA_CHECKSUM *GssChecksum; */
1993 /* IDL: uint32 KeyUsage; */
1994 /* IDL: } */
1996 static int
1997 rcg_dissect_element_CreateApReqAuthenticatorReq_EncryptionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1999 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateApReqAuthenticatorReq_EncryptionKey_, NDR_POINTER_REF, "Pointer to EncryptionKey (KERB_RPC_ENCRYPTION_KEY)",hf_rcg_CreateApReqAuthenticatorReq_EncryptionKey);
2001 return offset;
2004 static int
2005 rcg_dissect_element_CreateApReqAuthenticatorReq_EncryptionKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2007 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_EncryptionKey,0);
2009 return offset;
2012 static int
2013 rcg_dissect_element_CreateApReqAuthenticatorReq_SequenceNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2015 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateApReqAuthenticatorReq_SequenceNumber, 0);
2017 return offset;
2020 static int
2021 rcg_dissect_element_CreateApReqAuthenticatorReq_ClientName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2023 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateApReqAuthenticatorReq_ClientName_, NDR_POINTER_REF, "Pointer to ClientName (KERB_RPC_INTERNAL_NAME)",hf_rcg_CreateApReqAuthenticatorReq_ClientName);
2025 return offset;
2028 static int
2029 rcg_dissect_element_CreateApReqAuthenticatorReq_ClientName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2031 offset = rcg_dissect_struct_KERB_RPC_INTERNAL_NAME(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_ClientName,0);
2033 return offset;
2036 static int
2037 rcg_dissect_element_CreateApReqAuthenticatorReq_ClientRealm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2039 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateApReqAuthenticatorReq_ClientRealm_, NDR_POINTER_REF, "Pointer to ClientRealm (RPC_UNICODE_STRING)",hf_rcg_CreateApReqAuthenticatorReq_ClientRealm);
2041 return offset;
2044 static int
2045 rcg_dissect_element_CreateApReqAuthenticatorReq_ClientRealm_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2047 offset = rcg_dissect_struct_RPC_UNICODE_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_ClientRealm,0);
2049 return offset;
2052 static int
2053 rcg_dissect_element_CreateApReqAuthenticatorReq_SkewTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2055 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateApReqAuthenticatorReq_SkewTime_, NDR_POINTER_REF, "Pointer to SkewTime (LARGE_INTEGER)",hf_rcg_CreateApReqAuthenticatorReq_SkewTime);
2057 return offset;
2060 static int
2061 rcg_dissect_element_CreateApReqAuthenticatorReq_SkewTime_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2063 offset = rcg_dissect_struct_LARGE_INTEGER(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_SkewTime,0);
2065 return offset;
2068 static int
2069 rcg_dissect_element_CreateApReqAuthenticatorReq_SubKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2071 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateApReqAuthenticatorReq_SubKey_, NDR_POINTER_PTR, "Pointer to SubKey (KERB_RPC_ENCRYPTION_KEY)",hf_rcg_CreateApReqAuthenticatorReq_SubKey);
2073 return offset;
2076 static int
2077 rcg_dissect_element_CreateApReqAuthenticatorReq_SubKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2079 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_SubKey,0);
2081 return offset;
2084 static int
2085 rcg_dissect_element_CreateApReqAuthenticatorReq_AuthData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2087 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateApReqAuthenticatorReq_AuthData_, NDR_POINTER_PTR, "Pointer to AuthData (KERB_ASN1_DATA)",hf_rcg_CreateApReqAuthenticatorReq_AuthData);
2089 return offset;
2092 static int
2093 rcg_dissect_element_CreateApReqAuthenticatorReq_AuthData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2095 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_AuthData,0);
2097 return offset;
2100 static int
2101 rcg_dissect_element_CreateApReqAuthenticatorReq_GssChecksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2103 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateApReqAuthenticatorReq_GssChecksum_, NDR_POINTER_PTR, "Pointer to GssChecksum (KERB_ASN1_DATA_CHECKSUM)",hf_rcg_CreateApReqAuthenticatorReq_GssChecksum);
2105 return offset;
2108 static int
2109 rcg_dissect_element_CreateApReqAuthenticatorReq_GssChecksum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2111 offset = rcg_dissect_struct_KERB_ASN1_DATA_CHECKSUM(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_GssChecksum,0);
2113 return offset;
2116 static int
2117 rcg_dissect_element_CreateApReqAuthenticatorReq_KeyUsage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2119 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateApReqAuthenticatorReq_KeyUsage, 0);
2121 return offset;
2125 rcg_dissect_struct_CreateApReqAuthenticatorReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2127 proto_item *item = NULL;
2128 proto_tree *tree = NULL;
2129 int old_offset;
2131 ALIGN_TO_5_BYTES;
2133 old_offset = offset;
2135 if (parent_tree) {
2136 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2137 tree = proto_item_add_subtree(item, ett_rcg_CreateApReqAuthenticatorReq);
2140 offset = rcg_dissect_element_CreateApReqAuthenticatorReq_EncryptionKey(tvb, offset, pinfo, tree, di, drep);
2142 offset = rcg_dissect_element_CreateApReqAuthenticatorReq_SequenceNumber(tvb, offset, pinfo, tree, di, drep);
2144 offset = rcg_dissect_element_CreateApReqAuthenticatorReq_ClientName(tvb, offset, pinfo, tree, di, drep);
2146 offset = rcg_dissect_element_CreateApReqAuthenticatorReq_ClientRealm(tvb, offset, pinfo, tree, di, drep);
2148 offset = rcg_dissect_element_CreateApReqAuthenticatorReq_SkewTime(tvb, offset, pinfo, tree, di, drep);
2150 offset = rcg_dissect_element_CreateApReqAuthenticatorReq_SubKey(tvb, offset, pinfo, tree, di, drep);
2152 offset = rcg_dissect_element_CreateApReqAuthenticatorReq_AuthData(tvb, offset, pinfo, tree, di, drep);
2154 offset = rcg_dissect_element_CreateApReqAuthenticatorReq_GssChecksum(tvb, offset, pinfo, tree, di, drep);
2156 offset = rcg_dissect_element_CreateApReqAuthenticatorReq_KeyUsage(tvb, offset, pinfo, tree, di, drep);
2159 proto_item_set_len(item, offset-old_offset);
2162 if (di->call_data->flags & DCERPC_IS_NDR64) {
2163 ALIGN_TO_5_BYTES;
2166 return offset;
2170 /* IDL: struct { */
2171 /* IDL: LARGE_INTEGER AuthenticatorTime; */
2172 /* IDL: KERB_ASN1_DATA Authenticator; */
2173 /* IDL: int32 KerbProtocolError; */
2174 /* IDL: } */
2176 static int
2177 rcg_dissect_element_CreateApReqAuthenticatorResp_AuthenticatorTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2179 offset = rcg_dissect_struct_LARGE_INTEGER(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorResp_AuthenticatorTime,0);
2181 return offset;
2184 static int
2185 rcg_dissect_element_CreateApReqAuthenticatorResp_Authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2187 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorResp_Authenticator,0);
2189 return offset;
2192 static int
2193 rcg_dissect_element_CreateApReqAuthenticatorResp_KerbProtocolError(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2195 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateApReqAuthenticatorResp_KerbProtocolError, 0);
2197 return offset;
2201 rcg_dissect_struct_CreateApReqAuthenticatorResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2203 proto_item *item = NULL;
2204 proto_tree *tree = NULL;
2205 int old_offset;
2207 ALIGN_TO_8_BYTES;
2209 old_offset = offset;
2211 if (parent_tree) {
2212 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2213 tree = proto_item_add_subtree(item, ett_rcg_CreateApReqAuthenticatorResp);
2216 offset = rcg_dissect_element_CreateApReqAuthenticatorResp_AuthenticatorTime(tvb, offset, pinfo, tree, di, drep);
2218 offset = rcg_dissect_element_CreateApReqAuthenticatorResp_Authenticator(tvb, offset, pinfo, tree, di, drep);
2220 offset = rcg_dissect_element_CreateApReqAuthenticatorResp_KerbProtocolError(tvb, offset, pinfo, tree, di, drep);
2223 proto_item_set_len(item, offset-old_offset);
2226 if (di->call_data->flags & DCERPC_IS_NDR64) {
2227 ALIGN_TO_8_BYTES;
2230 return offset;
2234 /* IDL: struct { */
2235 /* IDL: [ref] KERB_ASN1_DATA *EncryptedReply; */
2236 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
2237 /* IDL: } */
2239 static int
2240 rcg_dissect_element_DecryptApReplyReq_EncryptedReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2242 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_DecryptApReplyReq_EncryptedReply_, NDR_POINTER_REF, "Pointer to EncryptedReply (KERB_ASN1_DATA)",hf_rcg_DecryptApReplyReq_EncryptedReply);
2244 return offset;
2247 static int
2248 rcg_dissect_element_DecryptApReplyReq_EncryptedReply_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2250 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_DecryptApReplyReq_EncryptedReply,0);
2252 return offset;
2255 static int
2256 rcg_dissect_element_DecryptApReplyReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2258 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_DecryptApReplyReq_Key_, NDR_POINTER_REF, "Pointer to Key (KERB_RPC_ENCRYPTION_KEY)",hf_rcg_DecryptApReplyReq_Key);
2260 return offset;
2263 static int
2264 rcg_dissect_element_DecryptApReplyReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2266 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_DecryptApReplyReq_Key,0);
2268 return offset;
2272 rcg_dissect_struct_DecryptApReplyReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2274 proto_item *item = NULL;
2275 proto_tree *tree = NULL;
2276 int old_offset;
2278 ALIGN_TO_5_BYTES;
2280 old_offset = offset;
2282 if (parent_tree) {
2283 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2284 tree = proto_item_add_subtree(item, ett_rcg_DecryptApReplyReq);
2287 offset = rcg_dissect_element_DecryptApReplyReq_EncryptedReply(tvb, offset, pinfo, tree, di, drep);
2289 offset = rcg_dissect_element_DecryptApReplyReq_Key(tvb, offset, pinfo, tree, di, drep);
2292 proto_item_set_len(item, offset-old_offset);
2295 if (di->call_data->flags & DCERPC_IS_NDR64) {
2296 ALIGN_TO_5_BYTES;
2299 return offset;
2303 /* IDL: struct { */
2304 /* IDL: KERB_ASN1_DATA ApReply; */
2305 /* IDL: } */
2307 static int
2308 rcg_dissect_element_DecryptApReplyResp_ApReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2310 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_DecryptApReplyResp_ApReply,0);
2312 return offset;
2316 rcg_dissect_struct_DecryptApReplyResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2318 proto_item *item = NULL;
2319 proto_tree *tree = NULL;
2320 int old_offset;
2322 ALIGN_TO_5_BYTES;
2324 old_offset = offset;
2326 if (parent_tree) {
2327 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2328 tree = proto_item_add_subtree(item, ett_rcg_DecryptApReplyResp);
2331 offset = rcg_dissect_element_DecryptApReplyResp_ApReply(tvb, offset, pinfo, tree, di, drep);
2334 proto_item_set_len(item, offset-old_offset);
2337 if (di->call_data->flags & DCERPC_IS_NDR64) {
2338 ALIGN_TO_5_BYTES;
2341 return offset;
2345 /* IDL: struct { */
2346 /* IDL: [ref] KERB_ASN1_DATA *EncryptedData; */
2347 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
2348 /* IDL: [ptr(1)] KERB_RPC_ENCRYPTION_KEY *StrengthenKey; */
2349 /* IDL: uint32 Pdu; */
2350 /* IDL: uint32 KeyUsage; */
2351 /* IDL: } */
2353 static int
2354 rcg_dissect_element_UnpackKdcReplyBodyReq_EncryptedData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2356 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_UnpackKdcReplyBodyReq_EncryptedData_, NDR_POINTER_REF, "Pointer to EncryptedData (KERB_ASN1_DATA)",hf_rcg_UnpackKdcReplyBodyReq_EncryptedData);
2358 return offset;
2361 static int
2362 rcg_dissect_element_UnpackKdcReplyBodyReq_EncryptedData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2364 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_UnpackKdcReplyBodyReq_EncryptedData,0);
2366 return offset;
2369 static int
2370 rcg_dissect_element_UnpackKdcReplyBodyReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2372 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_UnpackKdcReplyBodyReq_Key_, NDR_POINTER_REF, "Pointer to Key (KERB_RPC_ENCRYPTION_KEY)",hf_rcg_UnpackKdcReplyBodyReq_Key);
2374 return offset;
2377 static int
2378 rcg_dissect_element_UnpackKdcReplyBodyReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2380 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_UnpackKdcReplyBodyReq_Key,0);
2382 return offset;
2385 static int
2386 rcg_dissect_element_UnpackKdcReplyBodyReq_StrengthenKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2388 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_UnpackKdcReplyBodyReq_StrengthenKey_, NDR_POINTER_PTR, "Pointer to StrengthenKey (KERB_RPC_ENCRYPTION_KEY)",hf_rcg_UnpackKdcReplyBodyReq_StrengthenKey);
2390 return offset;
2393 static int
2394 rcg_dissect_element_UnpackKdcReplyBodyReq_StrengthenKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2396 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_UnpackKdcReplyBodyReq_StrengthenKey,0);
2398 return offset;
2401 static int
2402 rcg_dissect_element_UnpackKdcReplyBodyReq_Pdu(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2404 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_UnpackKdcReplyBodyReq_Pdu, 0);
2406 return offset;
2409 static int
2410 rcg_dissect_element_UnpackKdcReplyBodyReq_KeyUsage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2412 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_UnpackKdcReplyBodyReq_KeyUsage, 0);
2414 return offset;
2418 rcg_dissect_struct_UnpackKdcReplyBodyReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2420 proto_item *item = NULL;
2421 proto_tree *tree = NULL;
2422 int old_offset;
2424 ALIGN_TO_5_BYTES;
2426 old_offset = offset;
2428 if (parent_tree) {
2429 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2430 tree = proto_item_add_subtree(item, ett_rcg_UnpackKdcReplyBodyReq);
2433 offset = rcg_dissect_element_UnpackKdcReplyBodyReq_EncryptedData(tvb, offset, pinfo, tree, di, drep);
2435 offset = rcg_dissect_element_UnpackKdcReplyBodyReq_Key(tvb, offset, pinfo, tree, di, drep);
2437 offset = rcg_dissect_element_UnpackKdcReplyBodyReq_StrengthenKey(tvb, offset, pinfo, tree, di, drep);
2439 offset = rcg_dissect_element_UnpackKdcReplyBodyReq_Pdu(tvb, offset, pinfo, tree, di, drep);
2441 offset = rcg_dissect_element_UnpackKdcReplyBodyReq_KeyUsage(tvb, offset, pinfo, tree, di, drep);
2444 proto_item_set_len(item, offset-old_offset);
2447 if (di->call_data->flags & DCERPC_IS_NDR64) {
2448 ALIGN_TO_5_BYTES;
2451 return offset;
2455 /* IDL: struct { */
2456 /* IDL: int32 KerbProtocolError; */
2457 /* IDL: KERB_ASN1_DATA ReplyBody; */
2458 /* IDL: } */
2460 static int
2461 rcg_dissect_element_UnpackKdcReplyBodyResp_KerbProtocolError(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2463 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_UnpackKdcReplyBodyResp_KerbProtocolError, 0);
2465 return offset;
2468 static int
2469 rcg_dissect_element_UnpackKdcReplyBodyResp_ReplyBody(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2471 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_UnpackKdcReplyBodyResp_ReplyBody,0);
2473 return offset;
2477 rcg_dissect_struct_UnpackKdcReplyBodyResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2479 proto_item *item = NULL;
2480 proto_tree *tree = NULL;
2481 int old_offset;
2483 ALIGN_TO_5_BYTES;
2485 old_offset = offset;
2487 if (parent_tree) {
2488 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2489 tree = proto_item_add_subtree(item, ett_rcg_UnpackKdcReplyBodyResp);
2492 offset = rcg_dissect_element_UnpackKdcReplyBodyResp_KerbProtocolError(tvb, offset, pinfo, tree, di, drep);
2494 offset = rcg_dissect_element_UnpackKdcReplyBodyResp_ReplyBody(tvb, offset, pinfo, tree, di, drep);
2497 proto_item_set_len(item, offset-old_offset);
2500 if (di->call_data->flags & DCERPC_IS_NDR64) {
2501 ALIGN_TO_5_BYTES;
2504 return offset;
2508 /* IDL: struct { */
2509 /* IDL: [ref] KERB_ASN1_DATA *RequestBody; */
2510 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
2511 /* IDL: uint32 ChecksumType; */
2512 /* IDL: } */
2514 static int
2515 rcg_dissect_element_ComputeTgsChecksumReq_RequestBody(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2517 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_ComputeTgsChecksumReq_RequestBody_, NDR_POINTER_REF, "Pointer to RequestBody (KERB_ASN1_DATA)",hf_rcg_ComputeTgsChecksumReq_RequestBody);
2519 return offset;
2522 static int
2523 rcg_dissect_element_ComputeTgsChecksumReq_RequestBody_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2525 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_ComputeTgsChecksumReq_RequestBody,0);
2527 return offset;
2530 static int
2531 rcg_dissect_element_ComputeTgsChecksumReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2533 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_ComputeTgsChecksumReq_Key_, NDR_POINTER_REF, "Pointer to Key (KERB_RPC_ENCRYPTION_KEY)",hf_rcg_ComputeTgsChecksumReq_Key);
2535 return offset;
2538 static int
2539 rcg_dissect_element_ComputeTgsChecksumReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2541 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_ComputeTgsChecksumReq_Key,0);
2543 return offset;
2546 static int
2547 rcg_dissect_element_ComputeTgsChecksumReq_ChecksumType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2549 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_ComputeTgsChecksumReq_ChecksumType, 0);
2551 return offset;
2555 rcg_dissect_struct_ComputeTgsChecksumReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2557 proto_item *item = NULL;
2558 proto_tree *tree = NULL;
2559 int old_offset;
2561 ALIGN_TO_5_BYTES;
2563 old_offset = offset;
2565 if (parent_tree) {
2566 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2567 tree = proto_item_add_subtree(item, ett_rcg_ComputeTgsChecksumReq);
2570 offset = rcg_dissect_element_ComputeTgsChecksumReq_RequestBody(tvb, offset, pinfo, tree, di, drep);
2572 offset = rcg_dissect_element_ComputeTgsChecksumReq_Key(tvb, offset, pinfo, tree, di, drep);
2574 offset = rcg_dissect_element_ComputeTgsChecksumReq_ChecksumType(tvb, offset, pinfo, tree, di, drep);
2577 proto_item_set_len(item, offset-old_offset);
2580 if (di->call_data->flags & DCERPC_IS_NDR64) {
2581 ALIGN_TO_5_BYTES;
2584 return offset;
2588 /* IDL: struct { */
2589 /* IDL: KERB_ASN1_DATA_CHECKSUM Checksum; */
2590 /* IDL: } */
2592 static int
2593 rcg_dissect_element_ComputeTgsChecksumResp_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2595 offset = rcg_dissect_struct_KERB_ASN1_DATA_CHECKSUM(tvb,offset,pinfo,tree,di,drep,hf_rcg_ComputeTgsChecksumResp_Checksum,0);
2597 return offset;
2601 rcg_dissect_struct_ComputeTgsChecksumResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2603 proto_item *item = NULL;
2604 proto_tree *tree = NULL;
2605 int old_offset;
2607 ALIGN_TO_5_BYTES;
2609 old_offset = offset;
2611 if (parent_tree) {
2612 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2613 tree = proto_item_add_subtree(item, ett_rcg_ComputeTgsChecksumResp);
2616 offset = rcg_dissect_element_ComputeTgsChecksumResp_Checksum(tvb, offset, pinfo, tree, di, drep);
2619 proto_item_set_len(item, offset-old_offset);
2622 if (di->call_data->flags & DCERPC_IS_NDR64) {
2623 ALIGN_TO_5_BYTES;
2626 return offset;
2630 /* IDL: struct { */
2631 /* IDL: uint32 KeyUsage; */
2632 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
2633 /* IDL: [ref] KERB_ASN1_DATA *PlainAuthData; */
2634 /* IDL: } */
2636 static int
2637 rcg_dissect_element_BuildEncryptedAuthDataReq_KeyUsage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2639 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_BuildEncryptedAuthDataReq_KeyUsage, 0);
2641 return offset;
2644 static int
2645 rcg_dissect_element_BuildEncryptedAuthDataReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2647 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_BuildEncryptedAuthDataReq_Key_, NDR_POINTER_REF, "Pointer to Key (KERB_RPC_ENCRYPTION_KEY)",hf_rcg_BuildEncryptedAuthDataReq_Key);
2649 return offset;
2652 static int
2653 rcg_dissect_element_BuildEncryptedAuthDataReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2655 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildEncryptedAuthDataReq_Key,0);
2657 return offset;
2660 static int
2661 rcg_dissect_element_BuildEncryptedAuthDataReq_PlainAuthData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2663 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_BuildEncryptedAuthDataReq_PlainAuthData_, NDR_POINTER_REF, "Pointer to PlainAuthData (KERB_ASN1_DATA)",hf_rcg_BuildEncryptedAuthDataReq_PlainAuthData);
2665 return offset;
2668 static int
2669 rcg_dissect_element_BuildEncryptedAuthDataReq_PlainAuthData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2671 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildEncryptedAuthDataReq_PlainAuthData,0);
2673 return offset;
2677 rcg_dissect_struct_BuildEncryptedAuthDataReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2679 proto_item *item = NULL;
2680 proto_tree *tree = NULL;
2681 int old_offset;
2683 ALIGN_TO_5_BYTES;
2685 old_offset = offset;
2687 if (parent_tree) {
2688 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2689 tree = proto_item_add_subtree(item, ett_rcg_BuildEncryptedAuthDataReq);
2692 offset = rcg_dissect_element_BuildEncryptedAuthDataReq_KeyUsage(tvb, offset, pinfo, tree, di, drep);
2694 offset = rcg_dissect_element_BuildEncryptedAuthDataReq_Key(tvb, offset, pinfo, tree, di, drep);
2696 offset = rcg_dissect_element_BuildEncryptedAuthDataReq_PlainAuthData(tvb, offset, pinfo, tree, di, drep);
2699 proto_item_set_len(item, offset-old_offset);
2702 if (di->call_data->flags & DCERPC_IS_NDR64) {
2703 ALIGN_TO_5_BYTES;
2706 return offset;
2710 /* IDL: struct { */
2711 /* IDL: KERB_ASN1_DATA EncryptedAuthData; */
2712 /* IDL: } */
2714 static int
2715 rcg_dissect_element_BuildEncryptedAuthDataResp_EncryptedAuthData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2717 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildEncryptedAuthDataResp_EncryptedAuthData,0);
2719 return offset;
2723 rcg_dissect_struct_BuildEncryptedAuthDataResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2725 proto_item *item = NULL;
2726 proto_tree *tree = NULL;
2727 int old_offset;
2729 ALIGN_TO_5_BYTES;
2731 old_offset = offset;
2733 if (parent_tree) {
2734 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2735 tree = proto_item_add_subtree(item, ett_rcg_BuildEncryptedAuthDataResp);
2738 offset = rcg_dissect_element_BuildEncryptedAuthDataResp_EncryptedAuthData(tvb, offset, pinfo, tree, di, drep);
2741 proto_item_set_len(item, offset-old_offset);
2744 if (di->call_data->flags & DCERPC_IS_NDR64) {
2745 ALIGN_TO_5_BYTES;
2748 return offset;
2752 /* IDL: struct { */
2753 /* IDL: [ref] KERB_ASN1_DATA *Reply; */
2754 /* IDL: [ref] KERB_ASN1_DATA *ReplyBody; */
2755 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *SessionKey; */
2756 /* IDL: } */
2758 static int
2759 rcg_dissect_element_PackApReplyReq_Reply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2761 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_PackApReplyReq_Reply_, NDR_POINTER_REF, "Pointer to Reply (KERB_ASN1_DATA)",hf_rcg_PackApReplyReq_Reply);
2763 return offset;
2766 static int
2767 rcg_dissect_element_PackApReplyReq_Reply_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2769 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_PackApReplyReq_Reply,0);
2771 return offset;
2774 static int
2775 rcg_dissect_element_PackApReplyReq_ReplyBody(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2777 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_PackApReplyReq_ReplyBody_, NDR_POINTER_REF, "Pointer to ReplyBody (KERB_ASN1_DATA)",hf_rcg_PackApReplyReq_ReplyBody);
2779 return offset;
2782 static int
2783 rcg_dissect_element_PackApReplyReq_ReplyBody_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2785 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_PackApReplyReq_ReplyBody,0);
2787 return offset;
2790 static int
2791 rcg_dissect_element_PackApReplyReq_SessionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2793 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_PackApReplyReq_SessionKey_, NDR_POINTER_REF, "Pointer to SessionKey (KERB_RPC_ENCRYPTION_KEY)",hf_rcg_PackApReplyReq_SessionKey);
2795 return offset;
2798 static int
2799 rcg_dissect_element_PackApReplyReq_SessionKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2801 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_PackApReplyReq_SessionKey,0);
2803 return offset;
2807 rcg_dissect_struct_PackApReplyReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2809 proto_item *item = NULL;
2810 proto_tree *tree = NULL;
2811 int old_offset;
2813 ALIGN_TO_5_BYTES;
2815 old_offset = offset;
2817 if (parent_tree) {
2818 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2819 tree = proto_item_add_subtree(item, ett_rcg_PackApReplyReq);
2822 offset = rcg_dissect_element_PackApReplyReq_Reply(tvb, offset, pinfo, tree, di, drep);
2824 offset = rcg_dissect_element_PackApReplyReq_ReplyBody(tvb, offset, pinfo, tree, di, drep);
2826 offset = rcg_dissect_element_PackApReplyReq_SessionKey(tvb, offset, pinfo, tree, di, drep);
2829 proto_item_set_len(item, offset-old_offset);
2832 if (di->call_data->flags & DCERPC_IS_NDR64) {
2833 ALIGN_TO_5_BYTES;
2836 return offset;
2840 /* IDL: struct { */
2841 /* IDL: uint32 PackedReplySize; */
2842 /* IDL: [ref] [size_is(PackedReplySize)] uint8 *PackedReply; */
2843 /* IDL: } */
2845 static int
2846 rcg_dissect_element_PackApReplyResp_PackedReplySize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2848 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_PackApReplyResp_PackedReplySize, 0);
2850 return offset;
2853 static int
2854 rcg_dissect_element_PackApReplyResp_PackedReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2856 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_PackApReplyResp_PackedReply_, NDR_POINTER_REF, "Pointer to PackedReply (uint8)",hf_rcg_PackApReplyResp_PackedReply);
2858 return offset;
2861 static int
2862 rcg_dissect_element_PackApReplyResp_PackedReply_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2864 struct ndr_generic_array nga = { .is_conformant = false, };
2866 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
2868 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, rcg_dissect_element_PackApReplyResp_PackedReply__);
2870 return offset;
2873 static int
2874 rcg_dissect_element_PackApReplyResp_PackedReply__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2876 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_PackApReplyResp_PackedReply, 0);
2878 return offset;
2882 rcg_dissect_struct_PackApReplyResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2884 proto_item *item = NULL;
2885 proto_tree *tree = NULL;
2886 int old_offset;
2888 ALIGN_TO_5_BYTES;
2890 old_offset = offset;
2892 if (parent_tree) {
2893 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2894 tree = proto_item_add_subtree(item, ett_rcg_PackApReplyResp);
2897 offset = rcg_dissect_element_PackApReplyResp_PackedReplySize(tvb, offset, pinfo, tree, di, drep);
2899 offset = rcg_dissect_element_PackApReplyResp_PackedReply(tvb, offset, pinfo, tree, di, drep);
2902 proto_item_set_len(item, offset-old_offset);
2905 if (di->call_data->flags & DCERPC_IS_NDR64) {
2906 ALIGN_TO_5_BYTES;
2909 return offset;
2913 /* IDL: struct { */
2914 /* IDL: [ref] KERB_ASN1_DATA *S4UPreauth; */
2915 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
2916 /* IDL: int32 ChecksumType; */
2917 /* IDL: } */
2919 static int
2920 rcg_dissect_element_HashS4UPreauthReq_S4UPreauth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2922 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_HashS4UPreauthReq_S4UPreauth_, NDR_POINTER_REF, "Pointer to S4UPreauth (KERB_ASN1_DATA)",hf_rcg_HashS4UPreauthReq_S4UPreauth);
2924 return offset;
2927 static int
2928 rcg_dissect_element_HashS4UPreauthReq_S4UPreauth_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2930 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_HashS4UPreauthReq_S4UPreauth,0);
2932 return offset;
2935 static int
2936 rcg_dissect_element_HashS4UPreauthReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2938 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_HashS4UPreauthReq_Key_, NDR_POINTER_REF, "Pointer to Key (KERB_RPC_ENCRYPTION_KEY)",hf_rcg_HashS4UPreauthReq_Key);
2940 return offset;
2943 static int
2944 rcg_dissect_element_HashS4UPreauthReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2946 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_HashS4UPreauthReq_Key,0);
2948 return offset;
2951 static int
2952 rcg_dissect_element_HashS4UPreauthReq_ChecksumType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2954 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_HashS4UPreauthReq_ChecksumType, 0);
2956 return offset;
2960 rcg_dissect_struct_HashS4UPreauthReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2962 proto_item *item = NULL;
2963 proto_tree *tree = NULL;
2964 int old_offset;
2966 ALIGN_TO_5_BYTES;
2968 old_offset = offset;
2970 if (parent_tree) {
2971 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2972 tree = proto_item_add_subtree(item, ett_rcg_HashS4UPreauthReq);
2975 offset = rcg_dissect_element_HashS4UPreauthReq_S4UPreauth(tvb, offset, pinfo, tree, di, drep);
2977 offset = rcg_dissect_element_HashS4UPreauthReq_Key(tvb, offset, pinfo, tree, di, drep);
2979 offset = rcg_dissect_element_HashS4UPreauthReq_ChecksumType(tvb, offset, pinfo, tree, di, drep);
2982 proto_item_set_len(item, offset-old_offset);
2985 if (di->call_data->flags & DCERPC_IS_NDR64) {
2986 ALIGN_TO_5_BYTES;
2989 return offset;
2993 /* IDL: struct { */
2994 /* IDL: [ref] uint32 *ChecksumSize; */
2995 /* IDL: [ref] [size_is(,*ChecksumSize)] uint8 **ChecksumValue; */
2996 /* IDL: } */
2998 static int
2999 rcg_dissect_element_HashS4UPreauthResp_ChecksumSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3001 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_HashS4UPreauthResp_ChecksumSize_, NDR_POINTER_REF, "Pointer to ChecksumSize (uint32)",hf_rcg_HashS4UPreauthResp_ChecksumSize);
3003 return offset;
3006 static int
3007 rcg_dissect_element_HashS4UPreauthResp_ChecksumSize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3009 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_HashS4UPreauthResp_ChecksumSize, 0);
3011 return offset;
3014 static int
3015 rcg_dissect_element_HashS4UPreauthResp_ChecksumValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3017 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_HashS4UPreauthResp_ChecksumValue_, NDR_POINTER_REF, "Pointer to ChecksumValue (uint8)",hf_rcg_HashS4UPreauthResp_ChecksumValue);
3019 return offset;
3022 static int
3023 rcg_dissect_element_HashS4UPreauthResp_ChecksumValue_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3025 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_HashS4UPreauthResp_ChecksumValue__, NDR_POINTER_REF, "Pointer to ChecksumValue (uint8)",hf_rcg_HashS4UPreauthResp_ChecksumValue);
3027 return offset;
3030 static int
3031 rcg_dissect_element_HashS4UPreauthResp_ChecksumValue__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3033 struct ndr_generic_array nga = { .is_conformant = false, };
3035 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
3037 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, rcg_dissect_element_HashS4UPreauthResp_ChecksumValue___);
3039 return offset;
3042 static int
3043 rcg_dissect_element_HashS4UPreauthResp_ChecksumValue___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3045 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_HashS4UPreauthResp_ChecksumValue, 0);
3047 return offset;
3051 rcg_dissect_struct_HashS4UPreauthResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3053 proto_item *item = NULL;
3054 proto_tree *tree = NULL;
3055 int old_offset;
3057 ALIGN_TO_5_BYTES;
3059 old_offset = offset;
3061 if (parent_tree) {
3062 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3063 tree = proto_item_add_subtree(item, ett_rcg_HashS4UPreauthResp);
3066 offset = rcg_dissect_element_HashS4UPreauthResp_ChecksumSize(tvb, offset, pinfo, tree, di, drep);
3068 offset = rcg_dissect_element_HashS4UPreauthResp_ChecksumValue(tvb, offset, pinfo, tree, di, drep);
3071 proto_item_set_len(item, offset-old_offset);
3074 if (di->call_data->flags & DCERPC_IS_NDR64) {
3075 ALIGN_TO_5_BYTES;
3078 return offset;
3082 /* IDL: struct { */
3083 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
3084 /* IDL: uint32 IsRequest; */
3085 /* IDL: [ref] KERB_ASN1_DATA *UserId; */
3086 /* IDL: [ref] int32 *ChecksumType; */
3087 /* IDL: } */
3089 static int
3090 rcg_dissect_element_SignS4UPreauthDataReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3092 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_SignS4UPreauthDataReq_Key_, NDR_POINTER_REF, "Pointer to Key (KERB_RPC_ENCRYPTION_KEY)",hf_rcg_SignS4UPreauthDataReq_Key);
3094 return offset;
3097 static int
3098 rcg_dissect_element_SignS4UPreauthDataReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3100 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_SignS4UPreauthDataReq_Key,0);
3102 return offset;
3105 static int
3106 rcg_dissect_element_SignS4UPreauthDataReq_IsRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3108 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_SignS4UPreauthDataReq_IsRequest, 0);
3110 return offset;
3113 static int
3114 rcg_dissect_element_SignS4UPreauthDataReq_UserId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3116 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_SignS4UPreauthDataReq_UserId_, NDR_POINTER_REF, "Pointer to UserId (KERB_ASN1_DATA)",hf_rcg_SignS4UPreauthDataReq_UserId);
3118 return offset;
3121 static int
3122 rcg_dissect_element_SignS4UPreauthDataReq_UserId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3124 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_SignS4UPreauthDataReq_UserId,0);
3126 return offset;
3129 static int
3130 rcg_dissect_element_SignS4UPreauthDataReq_ChecksumType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3132 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_SignS4UPreauthDataReq_ChecksumType_, NDR_POINTER_REF, "Pointer to ChecksumType (int32)",hf_rcg_SignS4UPreauthDataReq_ChecksumType);
3134 return offset;
3137 static int
3138 rcg_dissect_element_SignS4UPreauthDataReq_ChecksumType_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3140 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_SignS4UPreauthDataReq_ChecksumType, 0);
3142 return offset;
3146 rcg_dissect_struct_SignS4UPreauthDataReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3148 proto_item *item = NULL;
3149 proto_tree *tree = NULL;
3150 int old_offset;
3152 ALIGN_TO_5_BYTES;
3154 old_offset = offset;
3156 if (parent_tree) {
3157 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3158 tree = proto_item_add_subtree(item, ett_rcg_SignS4UPreauthDataReq);
3161 offset = rcg_dissect_element_SignS4UPreauthDataReq_Key(tvb, offset, pinfo, tree, di, drep);
3163 offset = rcg_dissect_element_SignS4UPreauthDataReq_IsRequest(tvb, offset, pinfo, tree, di, drep);
3165 offset = rcg_dissect_element_SignS4UPreauthDataReq_UserId(tvb, offset, pinfo, tree, di, drep);
3167 offset = rcg_dissect_element_SignS4UPreauthDataReq_ChecksumType(tvb, offset, pinfo, tree, di, drep);
3170 proto_item_set_len(item, offset-old_offset);
3173 if (di->call_data->flags & DCERPC_IS_NDR64) {
3174 ALIGN_TO_5_BYTES;
3177 return offset;
3181 /* IDL: struct { */
3182 /* IDL: [ref] int32 *ChecksumType; */
3183 /* IDL: [ref] uint32 *ChecksumSize; */
3184 /* IDL: [ref] [size_is(,*ChecksumSize)] uint8 **ChecksumValue; */
3185 /* IDL: } */
3187 static int
3188 rcg_dissect_element_SignS4UPreauthDataResp_ChecksumType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3190 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_SignS4UPreauthDataResp_ChecksumType_, NDR_POINTER_REF, "Pointer to ChecksumType (int32)",hf_rcg_SignS4UPreauthDataResp_ChecksumType);
3192 return offset;
3195 static int
3196 rcg_dissect_element_SignS4UPreauthDataResp_ChecksumType_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3198 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_SignS4UPreauthDataResp_ChecksumType, 0);
3200 return offset;
3203 static int
3204 rcg_dissect_element_SignS4UPreauthDataResp_ChecksumSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3206 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_SignS4UPreauthDataResp_ChecksumSize_, NDR_POINTER_REF, "Pointer to ChecksumSize (uint32)",hf_rcg_SignS4UPreauthDataResp_ChecksumSize);
3208 return offset;
3211 static int
3212 rcg_dissect_element_SignS4UPreauthDataResp_ChecksumSize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3214 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_SignS4UPreauthDataResp_ChecksumSize, 0);
3216 return offset;
3219 static int
3220 rcg_dissect_element_SignS4UPreauthDataResp_ChecksumValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3222 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_SignS4UPreauthDataResp_ChecksumValue_, NDR_POINTER_REF, "Pointer to ChecksumValue (uint8)",hf_rcg_SignS4UPreauthDataResp_ChecksumValue);
3224 return offset;
3227 static int
3228 rcg_dissect_element_SignS4UPreauthDataResp_ChecksumValue_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3230 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_SignS4UPreauthDataResp_ChecksumValue__, NDR_POINTER_REF, "Pointer to ChecksumValue (uint8)",hf_rcg_SignS4UPreauthDataResp_ChecksumValue);
3232 return offset;
3235 static int
3236 rcg_dissect_element_SignS4UPreauthDataResp_ChecksumValue__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3238 struct ndr_generic_array nga = { .is_conformant = false, };
3240 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
3242 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, rcg_dissect_element_SignS4UPreauthDataResp_ChecksumValue___);
3244 return offset;
3247 static int
3248 rcg_dissect_element_SignS4UPreauthDataResp_ChecksumValue___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3250 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_SignS4UPreauthDataResp_ChecksumValue, 0);
3252 return offset;
3256 rcg_dissect_struct_SignS4UPreauthDataResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3258 proto_item *item = NULL;
3259 proto_tree *tree = NULL;
3260 int old_offset;
3262 ALIGN_TO_5_BYTES;
3264 old_offset = offset;
3266 if (parent_tree) {
3267 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3268 tree = proto_item_add_subtree(item, ett_rcg_SignS4UPreauthDataResp);
3271 offset = rcg_dissect_element_SignS4UPreauthDataResp_ChecksumType(tvb, offset, pinfo, tree, di, drep);
3273 offset = rcg_dissect_element_SignS4UPreauthDataResp_ChecksumSize(tvb, offset, pinfo, tree, di, drep);
3275 offset = rcg_dissect_element_SignS4UPreauthDataResp_ChecksumValue(tvb, offset, pinfo, tree, di, drep);
3278 proto_item_set_len(item, offset-old_offset);
3281 if (di->call_data->flags & DCERPC_IS_NDR64) {
3282 ALIGN_TO_5_BYTES;
3285 return offset;
3289 /* IDL: struct { */
3290 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
3291 /* IDL: uint32 ChecksumType; */
3292 /* IDL: uint32 ExpectedChecksumSize; */
3293 /* IDL: [ref] [size_is(ExpectedChecksumSize)] uint8 *ExpectedChecksum; */
3294 /* IDL: uint32 DataToCheckSize; */
3295 /* IDL: [ref] [size_is(DataToCheckSize)] uint8 *DataToCheck; */
3296 /* IDL: } */
3298 static int
3299 rcg_dissect_element_VerifyChecksumReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3301 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_VerifyChecksumReq_Key_, NDR_POINTER_REF, "Pointer to Key (KERB_RPC_ENCRYPTION_KEY)",hf_rcg_VerifyChecksumReq_Key);
3303 return offset;
3306 static int
3307 rcg_dissect_element_VerifyChecksumReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3309 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_VerifyChecksumReq_Key,0);
3311 return offset;
3314 static int
3315 rcg_dissect_element_VerifyChecksumReq_ChecksumType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3317 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyChecksumReq_ChecksumType, 0);
3319 return offset;
3322 static int
3323 rcg_dissect_element_VerifyChecksumReq_ExpectedChecksumSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3325 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyChecksumReq_ExpectedChecksumSize, 0);
3327 return offset;
3330 static int
3331 rcg_dissect_element_VerifyChecksumReq_ExpectedChecksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3333 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_VerifyChecksumReq_ExpectedChecksum_, NDR_POINTER_REF, "Pointer to ExpectedChecksum (uint8)",hf_rcg_VerifyChecksumReq_ExpectedChecksum);
3335 return offset;
3338 static int
3339 rcg_dissect_element_VerifyChecksumReq_ExpectedChecksum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3341 struct ndr_generic_array nga = { .is_conformant = false, };
3343 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
3345 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, rcg_dissect_element_VerifyChecksumReq_ExpectedChecksum__);
3347 return offset;
3350 static int
3351 rcg_dissect_element_VerifyChecksumReq_ExpectedChecksum__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3353 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyChecksumReq_ExpectedChecksum, 0);
3355 return offset;
3358 static int
3359 rcg_dissect_element_VerifyChecksumReq_DataToCheckSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3361 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyChecksumReq_DataToCheckSize, 0);
3363 return offset;
3366 static int
3367 rcg_dissect_element_VerifyChecksumReq_DataToCheck(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3369 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_VerifyChecksumReq_DataToCheck_, NDR_POINTER_REF, "Pointer to DataToCheck (uint8)",hf_rcg_VerifyChecksumReq_DataToCheck);
3371 return offset;
3374 static int
3375 rcg_dissect_element_VerifyChecksumReq_DataToCheck_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3377 struct ndr_generic_array nga = { .is_conformant = false, };
3379 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
3381 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, rcg_dissect_element_VerifyChecksumReq_DataToCheck__);
3383 return offset;
3386 static int
3387 rcg_dissect_element_VerifyChecksumReq_DataToCheck__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3389 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyChecksumReq_DataToCheck, 0);
3391 return offset;
3395 rcg_dissect_struct_VerifyChecksumReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3397 proto_item *item = NULL;
3398 proto_tree *tree = NULL;
3399 int old_offset;
3401 ALIGN_TO_5_BYTES;
3403 old_offset = offset;
3405 if (parent_tree) {
3406 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3407 tree = proto_item_add_subtree(item, ett_rcg_VerifyChecksumReq);
3410 offset = rcg_dissect_element_VerifyChecksumReq_Key(tvb, offset, pinfo, tree, di, drep);
3412 offset = rcg_dissect_element_VerifyChecksumReq_ChecksumType(tvb, offset, pinfo, tree, di, drep);
3414 offset = rcg_dissect_element_VerifyChecksumReq_ExpectedChecksumSize(tvb, offset, pinfo, tree, di, drep);
3416 offset = rcg_dissect_element_VerifyChecksumReq_ExpectedChecksum(tvb, offset, pinfo, tree, di, drep);
3418 offset = rcg_dissect_element_VerifyChecksumReq_DataToCheckSize(tvb, offset, pinfo, tree, di, drep);
3420 offset = rcg_dissect_element_VerifyChecksumReq_DataToCheck(tvb, offset, pinfo, tree, di, drep);
3423 proto_item_set_len(item, offset-old_offset);
3426 if (di->call_data->flags & DCERPC_IS_NDR64) {
3427 ALIGN_TO_5_BYTES;
3430 return offset;
3434 /* IDL: struct { */
3435 /* IDL: uint32 IsValid; */
3436 /* IDL: } */
3438 static int
3439 rcg_dissect_element_VerifyChecksumResp_IsValid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3441 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyChecksumResp_IsValid, 0);
3443 return offset;
3447 rcg_dissect_struct_VerifyChecksumResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3449 proto_item *item = NULL;
3450 proto_tree *tree = NULL;
3451 int old_offset;
3453 ALIGN_TO_4_BYTES;
3455 old_offset = offset;
3457 if (parent_tree) {
3458 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3459 tree = proto_item_add_subtree(item, ett_rcg_VerifyChecksumResp);
3462 offset = rcg_dissect_element_VerifyChecksumResp_IsValid(tvb, offset, pinfo, tree, di, drep);
3465 proto_item_set_len(item, offset-old_offset);
3468 if (di->call_data->flags & DCERPC_IS_NDR64) {
3469 ALIGN_TO_4_BYTES;
3472 return offset;
3476 /* IDL: struct { */
3477 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
3478 /* IDL: uint32 Version; */
3479 /* IDL: uint32 EncryptionType; */
3480 /* IDL: uint32 DataSize; */
3481 /* IDL: [ref] [size_is(DataSize)] uint8 *Data; */
3482 /* IDL: } */
3484 static int
3485 rcg_dissect_element_DecryptPacCredentialsReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3487 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_DecryptPacCredentialsReq_Key_, NDR_POINTER_REF, "Pointer to Key (KERB_RPC_ENCRYPTION_KEY)",hf_rcg_DecryptPacCredentialsReq_Key);
3489 return offset;
3492 static int
3493 rcg_dissect_element_DecryptPacCredentialsReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3495 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_DecryptPacCredentialsReq_Key,0);
3497 return offset;
3500 static int
3501 rcg_dissect_element_DecryptPacCredentialsReq_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3503 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_DecryptPacCredentialsReq_Version, 0);
3505 return offset;
3508 static int
3509 rcg_dissect_element_DecryptPacCredentialsReq_EncryptionType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3511 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_DecryptPacCredentialsReq_EncryptionType, 0);
3513 return offset;
3516 static int
3517 rcg_dissect_element_DecryptPacCredentialsReq_DataSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3519 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_DecryptPacCredentialsReq_DataSize, 0);
3521 return offset;
3524 static int
3525 rcg_dissect_element_DecryptPacCredentialsReq_Data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3527 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_DecryptPacCredentialsReq_Data_, NDR_POINTER_REF, "Pointer to Data (uint8)",hf_rcg_DecryptPacCredentialsReq_Data);
3529 return offset;
3532 static int
3533 rcg_dissect_element_DecryptPacCredentialsReq_Data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3535 struct ndr_generic_array nga = { .is_conformant = false, };
3537 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
3539 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, rcg_dissect_element_DecryptPacCredentialsReq_Data__);
3541 return offset;
3544 static int
3545 rcg_dissect_element_DecryptPacCredentialsReq_Data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3547 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_DecryptPacCredentialsReq_Data, 0);
3549 return offset;
3553 rcg_dissect_struct_DecryptPacCredentialsReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3555 proto_item *item = NULL;
3556 proto_tree *tree = NULL;
3557 int old_offset;
3559 ALIGN_TO_5_BYTES;
3561 old_offset = offset;
3563 if (parent_tree) {
3564 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3565 tree = proto_item_add_subtree(item, ett_rcg_DecryptPacCredentialsReq);
3568 offset = rcg_dissect_element_DecryptPacCredentialsReq_Key(tvb, offset, pinfo, tree, di, drep);
3570 offset = rcg_dissect_element_DecryptPacCredentialsReq_Version(tvb, offset, pinfo, tree, di, drep);
3572 offset = rcg_dissect_element_DecryptPacCredentialsReq_EncryptionType(tvb, offset, pinfo, tree, di, drep);
3574 offset = rcg_dissect_element_DecryptPacCredentialsReq_DataSize(tvb, offset, pinfo, tree, di, drep);
3576 offset = rcg_dissect_element_DecryptPacCredentialsReq_Data(tvb, offset, pinfo, tree, di, drep);
3579 proto_item_set_len(item, offset-old_offset);
3582 if (di->call_data->flags & DCERPC_IS_NDR64) {
3583 ALIGN_TO_5_BYTES;
3586 return offset;
3590 /* IDL: struct { */
3591 /* IDL: PSECPKG_SUPPLEMENTAL_CRED_ARRAY Credentials; */
3592 /* IDL: } */
3594 static int
3595 rcg_dissect_element_DecryptPacCredentialsResp_Credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3597 offset = rcg_dissect_struct_PSECPKG_SUPPLEMENTAL_CRED_ARRAY(tvb,offset,pinfo,tree,di,drep,hf_rcg_DecryptPacCredentialsResp_Credentials,0);
3599 return offset;
3603 rcg_dissect_struct_DecryptPacCredentialsResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3605 proto_item *item = NULL;
3606 proto_tree *tree = NULL;
3607 int old_offset;
3609 ALIGN_TO_4_BYTES;
3611 old_offset = offset;
3613 if (parent_tree) {
3614 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3615 tree = proto_item_add_subtree(item, ett_rcg_DecryptPacCredentialsResp);
3618 offset = rcg_dissect_element_DecryptPacCredentialsResp_Credentials(tvb, offset, pinfo, tree, di, drep);
3621 proto_item_set_len(item, offset-old_offset);
3624 if (di->call_data->flags & DCERPC_IS_NDR64) {
3625 ALIGN_TO_4_BYTES;
3628 return offset;
3632 /* IDL: struct { */
3633 /* IDL: uint32 KeyBitLen; */
3634 /* IDL: } */
3636 static int
3637 rcg_dissect_element_CreateECDHKeyAgreementReq_KeyBitLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3639 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateECDHKeyAgreementReq_KeyBitLen, 0);
3641 return offset;
3645 rcg_dissect_struct_CreateECDHKeyAgreementReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3647 proto_item *item = NULL;
3648 proto_tree *tree = NULL;
3649 int old_offset;
3651 ALIGN_TO_4_BYTES;
3653 old_offset = offset;
3655 if (parent_tree) {
3656 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3657 tree = proto_item_add_subtree(item, ett_rcg_CreateECDHKeyAgreementReq);
3660 offset = rcg_dissect_element_CreateECDHKeyAgreementReq_KeyBitLen(tvb, offset, pinfo, tree, di, drep);
3663 proto_item_set_len(item, offset-old_offset);
3666 if (di->call_data->flags & DCERPC_IS_NDR64) {
3667 ALIGN_TO_4_BYTES;
3670 return offset;
3674 /* IDL: struct { */
3675 /* IDL: [ref] int64 *KeyAgreementHandle; */
3676 /* IDL: [ref] int32 *KerbErr; */
3677 /* IDL: [ref] uint32 *EncodedPubKeyLen; */
3678 /* IDL: [ref] [size_is(,*EncodedPubKeyLen)] uint8 **EncodedPubKey; */
3679 /* IDL: } */
3681 static int
3682 rcg_dissect_element_CreateECDHKeyAgreementResp_KeyAgreementHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3684 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateECDHKeyAgreementResp_KeyAgreementHandle_, NDR_POINTER_REF, "Pointer to KeyAgreementHandle (int64)",hf_rcg_CreateECDHKeyAgreementResp_KeyAgreementHandle);
3686 return offset;
3689 static int
3690 rcg_dissect_element_CreateECDHKeyAgreementResp_KeyAgreementHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3692 offset = PIDL_dissect_uint64(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateECDHKeyAgreementResp_KeyAgreementHandle, 0);
3694 return offset;
3697 static int
3698 rcg_dissect_element_CreateECDHKeyAgreementResp_KerbErr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3700 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateECDHKeyAgreementResp_KerbErr_, NDR_POINTER_REF, "Pointer to KerbErr (int32)",hf_rcg_CreateECDHKeyAgreementResp_KerbErr);
3702 return offset;
3705 static int
3706 rcg_dissect_element_CreateECDHKeyAgreementResp_KerbErr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3708 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateECDHKeyAgreementResp_KerbErr, 0);
3710 return offset;
3713 static int
3714 rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKeyLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3716 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKeyLen_, NDR_POINTER_REF, "Pointer to EncodedPubKeyLen (uint32)",hf_rcg_CreateECDHKeyAgreementResp_EncodedPubKeyLen);
3718 return offset;
3721 static int
3722 rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKeyLen_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3724 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateECDHKeyAgreementResp_EncodedPubKeyLen, 0);
3726 return offset;
3729 static int
3730 rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3732 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKey_, NDR_POINTER_REF, "Pointer to EncodedPubKey (uint8)",hf_rcg_CreateECDHKeyAgreementResp_EncodedPubKey);
3734 return offset;
3737 static int
3738 rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3740 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKey__, NDR_POINTER_REF, "Pointer to EncodedPubKey (uint8)",hf_rcg_CreateECDHKeyAgreementResp_EncodedPubKey);
3742 return offset;
3745 static int
3746 rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKey__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3748 struct ndr_generic_array nga = { .is_conformant = false, };
3750 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
3752 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKey___);
3754 return offset;
3757 static int
3758 rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKey___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3760 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateECDHKeyAgreementResp_EncodedPubKey, 0);
3762 return offset;
3766 rcg_dissect_struct_CreateECDHKeyAgreementResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3768 proto_item *item = NULL;
3769 proto_tree *tree = NULL;
3770 int old_offset;
3772 ALIGN_TO_5_BYTES;
3774 old_offset = offset;
3776 if (parent_tree) {
3777 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3778 tree = proto_item_add_subtree(item, ett_rcg_CreateECDHKeyAgreementResp);
3781 offset = rcg_dissect_element_CreateECDHKeyAgreementResp_KeyAgreementHandle(tvb, offset, pinfo, tree, di, drep);
3783 offset = rcg_dissect_element_CreateECDHKeyAgreementResp_KerbErr(tvb, offset, pinfo, tree, di, drep);
3785 offset = rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKeyLen(tvb, offset, pinfo, tree, di, drep);
3787 offset = rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKey(tvb, offset, pinfo, tree, di, drep);
3790 proto_item_set_len(item, offset-old_offset);
3793 if (di->call_data->flags & DCERPC_IS_NDR64) {
3794 ALIGN_TO_5_BYTES;
3797 return offset;
3801 /* IDL: struct { */
3802 /* IDL: uint8 Ignored; */
3803 /* IDL: } */
3805 static int
3806 rcg_dissect_element_CreateDHKeyAgreementReq_Ignored(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3808 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateDHKeyAgreementReq_Ignored, 0);
3810 return offset;
3814 rcg_dissect_struct_CreateDHKeyAgreementReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3816 proto_item *item = NULL;
3817 proto_tree *tree = NULL;
3818 int old_offset;
3820 old_offset = offset;
3822 if (parent_tree) {
3823 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3824 tree = proto_item_add_subtree(item, ett_rcg_CreateDHKeyAgreementReq);
3827 offset = rcg_dissect_element_CreateDHKeyAgreementReq_Ignored(tvb, offset, pinfo, tree, di, drep);
3830 proto_item_set_len(item, offset-old_offset);
3833 return offset;
3837 /* IDL: struct { */
3838 /* IDL: [ref] KERB_RPC_CRYPTO_API_BLOB *ModulusP; */
3839 /* IDL: [ref] KERB_RPC_CRYPTO_API_BLOB *GeneratorG; */
3840 /* IDL: [ref] KERB_RPC_CRYPTO_API_BLOB *FactorQ; */
3841 /* IDL: [ref] int64 *KeyAgreementHandle; */
3842 /* IDL: [ref] int32 *KerbErr; */
3843 /* IDL: [ref] uint32 *LittleEndianPublicKeyLen; */
3844 /* IDL: [ref] [size_is(,*LittleEndianPublicKeyLen)] uint8 **LittleEndianPublicKey; */
3845 /* IDL: } */
3847 static int
3848 rcg_dissect_element_CreateDHKeyAgreementResp_ModulusP(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3850 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateDHKeyAgreementResp_ModulusP_, NDR_POINTER_REF, "Pointer to ModulusP (KERB_RPC_CRYPTO_API_BLOB)",hf_rcg_CreateDHKeyAgreementResp_ModulusP);
3852 return offset;
3855 static int
3856 rcg_dissect_element_CreateDHKeyAgreementResp_ModulusP_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3858 offset = rcg_dissect_struct_KERB_RPC_CRYPTO_API_BLOB(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateDHKeyAgreementResp_ModulusP,0);
3860 return offset;
3863 static int
3864 rcg_dissect_element_CreateDHKeyAgreementResp_GeneratorG(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3866 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateDHKeyAgreementResp_GeneratorG_, NDR_POINTER_REF, "Pointer to GeneratorG (KERB_RPC_CRYPTO_API_BLOB)",hf_rcg_CreateDHKeyAgreementResp_GeneratorG);
3868 return offset;
3871 static int
3872 rcg_dissect_element_CreateDHKeyAgreementResp_GeneratorG_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3874 offset = rcg_dissect_struct_KERB_RPC_CRYPTO_API_BLOB(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateDHKeyAgreementResp_GeneratorG,0);
3876 return offset;
3879 static int
3880 rcg_dissect_element_CreateDHKeyAgreementResp_FactorQ(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3882 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateDHKeyAgreementResp_FactorQ_, NDR_POINTER_REF, "Pointer to FactorQ (KERB_RPC_CRYPTO_API_BLOB)",hf_rcg_CreateDHKeyAgreementResp_FactorQ);
3884 return offset;
3887 static int
3888 rcg_dissect_element_CreateDHKeyAgreementResp_FactorQ_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3890 offset = rcg_dissect_struct_KERB_RPC_CRYPTO_API_BLOB(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateDHKeyAgreementResp_FactorQ,0);
3892 return offset;
3895 static int
3896 rcg_dissect_element_CreateDHKeyAgreementResp_KeyAgreementHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3898 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateDHKeyAgreementResp_KeyAgreementHandle_, NDR_POINTER_REF, "Pointer to KeyAgreementHandle (int64)",hf_rcg_CreateDHKeyAgreementResp_KeyAgreementHandle);
3900 return offset;
3903 static int
3904 rcg_dissect_element_CreateDHKeyAgreementResp_KeyAgreementHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3906 offset = PIDL_dissect_uint64(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateDHKeyAgreementResp_KeyAgreementHandle, 0);
3908 return offset;
3911 static int
3912 rcg_dissect_element_CreateDHKeyAgreementResp_KerbErr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3914 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateDHKeyAgreementResp_KerbErr_, NDR_POINTER_REF, "Pointer to KerbErr (int32)",hf_rcg_CreateDHKeyAgreementResp_KerbErr);
3916 return offset;
3919 static int
3920 rcg_dissect_element_CreateDHKeyAgreementResp_KerbErr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3922 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateDHKeyAgreementResp_KerbErr, 0);
3924 return offset;
3927 static int
3928 rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKeyLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3930 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKeyLen_, NDR_POINTER_REF, "Pointer to LittleEndianPublicKeyLen (uint32)",hf_rcg_CreateDHKeyAgreementResp_LittleEndianPublicKeyLen);
3932 return offset;
3935 static int
3936 rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKeyLen_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3938 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateDHKeyAgreementResp_LittleEndianPublicKeyLen, 0);
3940 return offset;
3943 static int
3944 rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3946 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKey_, NDR_POINTER_REF, "Pointer to LittleEndianPublicKey (uint8)",hf_rcg_CreateDHKeyAgreementResp_LittleEndianPublicKey);
3948 return offset;
3951 static int
3952 rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3954 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKey__, NDR_POINTER_REF, "Pointer to LittleEndianPublicKey (uint8)",hf_rcg_CreateDHKeyAgreementResp_LittleEndianPublicKey);
3956 return offset;
3959 static int
3960 rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKey__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3962 struct ndr_generic_array nga = { .is_conformant = false, };
3964 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
3966 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKey___);
3968 return offset;
3971 static int
3972 rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKey___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3974 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateDHKeyAgreementResp_LittleEndianPublicKey, 0);
3976 return offset;
3980 rcg_dissect_struct_CreateDHKeyAgreementResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3982 proto_item *item = NULL;
3983 proto_tree *tree = NULL;
3984 int old_offset;
3986 ALIGN_TO_5_BYTES;
3988 old_offset = offset;
3990 if (parent_tree) {
3991 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3992 tree = proto_item_add_subtree(item, ett_rcg_CreateDHKeyAgreementResp);
3995 offset = rcg_dissect_element_CreateDHKeyAgreementResp_ModulusP(tvb, offset, pinfo, tree, di, drep);
3997 offset = rcg_dissect_element_CreateDHKeyAgreementResp_GeneratorG(tvb, offset, pinfo, tree, di, drep);
3999 offset = rcg_dissect_element_CreateDHKeyAgreementResp_FactorQ(tvb, offset, pinfo, tree, di, drep);
4001 offset = rcg_dissect_element_CreateDHKeyAgreementResp_KeyAgreementHandle(tvb, offset, pinfo, tree, di, drep);
4003 offset = rcg_dissect_element_CreateDHKeyAgreementResp_KerbErr(tvb, offset, pinfo, tree, di, drep);
4005 offset = rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKeyLen(tvb, offset, pinfo, tree, di, drep);
4007 offset = rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKey(tvb, offset, pinfo, tree, di, drep);
4010 proto_item_set_len(item, offset-old_offset);
4013 if (di->call_data->flags & DCERPC_IS_NDR64) {
4014 ALIGN_TO_5_BYTES;
4017 return offset;
4021 /* IDL: struct { */
4022 /* IDL: int64 KeyAgreementHandle; */
4023 /* IDL: } */
4025 static int
4026 rcg_dissect_element_DestroyKeyAgreementReq_KeyAgreementHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4028 offset = PIDL_dissect_uint64(tvb, offset, pinfo, tree, di, drep, hf_rcg_DestroyKeyAgreementReq_KeyAgreementHandle, 0);
4030 return offset;
4034 rcg_dissect_struct_DestroyKeyAgreementReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4036 proto_item *item = NULL;
4037 proto_tree *tree = NULL;
4038 int old_offset;
4040 ALIGN_TO_8_BYTES;
4042 old_offset = offset;
4044 if (parent_tree) {
4045 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4046 tree = proto_item_add_subtree(item, ett_rcg_DestroyKeyAgreementReq);
4049 offset = rcg_dissect_element_DestroyKeyAgreementReq_KeyAgreementHandle(tvb, offset, pinfo, tree, di, drep);
4052 proto_item_set_len(item, offset-old_offset);
4055 if (di->call_data->flags & DCERPC_IS_NDR64) {
4056 ALIGN_TO_8_BYTES;
4059 return offset;
4063 /* IDL: struct { */
4064 /* IDL: uint8 Ignored; */
4065 /* IDL: } */
4067 static int
4068 rcg_dissect_element_DestroyKeyAgreementResp_Ignored(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4070 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_DestroyKeyAgreementResp_Ignored, 0);
4072 return offset;
4076 rcg_dissect_struct_DestroyKeyAgreementResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4078 proto_item *item = NULL;
4079 proto_tree *tree = NULL;
4080 int old_offset;
4082 old_offset = offset;
4084 if (parent_tree) {
4085 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4086 tree = proto_item_add_subtree(item, ett_rcg_DestroyKeyAgreementResp);
4089 offset = rcg_dissect_element_DestroyKeyAgreementResp_Ignored(tvb, offset, pinfo, tree, di, drep);
4092 proto_item_set_len(item, offset-old_offset);
4095 return offset;
4099 /* IDL: struct { */
4100 /* IDL: int64 KeyAgreementHandle; */
4101 /* IDL: } */
4103 static int
4104 rcg_dissect_element_KeyAgreementGenerateNonceReq_KeyAgreementHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4106 offset = PIDL_dissect_uint64(tvb, offset, pinfo, tree, di, drep, hf_rcg_KeyAgreementGenerateNonceReq_KeyAgreementHandle, 0);
4108 return offset;
4112 rcg_dissect_struct_KeyAgreementGenerateNonceReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4114 proto_item *item = NULL;
4115 proto_tree *tree = NULL;
4116 int old_offset;
4118 ALIGN_TO_8_BYTES;
4120 old_offset = offset;
4122 if (parent_tree) {
4123 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4124 tree = proto_item_add_subtree(item, ett_rcg_KeyAgreementGenerateNonceReq);
4127 offset = rcg_dissect_element_KeyAgreementGenerateNonceReq_KeyAgreementHandle(tvb, offset, pinfo, tree, di, drep);
4130 proto_item_set_len(item, offset-old_offset);
4133 if (di->call_data->flags & DCERPC_IS_NDR64) {
4134 ALIGN_TO_8_BYTES;
4137 return offset;
4141 /* IDL: struct { */
4142 /* IDL: [ref] uint32 *NonceLen; */
4143 /* IDL: [ref] [size_is(,*NonceLen)] uint8 **Nonce; */
4144 /* IDL: } */
4146 static int
4147 rcg_dissect_element_KeyAgreementGenerateNonceResp_NonceLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4149 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_KeyAgreementGenerateNonceResp_NonceLen_, NDR_POINTER_REF, "Pointer to NonceLen (uint32)",hf_rcg_KeyAgreementGenerateNonceResp_NonceLen);
4151 return offset;
4154 static int
4155 rcg_dissect_element_KeyAgreementGenerateNonceResp_NonceLen_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4157 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KeyAgreementGenerateNonceResp_NonceLen, 0);
4159 return offset;
4162 static int
4163 rcg_dissect_element_KeyAgreementGenerateNonceResp_Nonce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4165 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_KeyAgreementGenerateNonceResp_Nonce_, NDR_POINTER_REF, "Pointer to Nonce (uint8)",hf_rcg_KeyAgreementGenerateNonceResp_Nonce);
4167 return offset;
4170 static int
4171 rcg_dissect_element_KeyAgreementGenerateNonceResp_Nonce_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4173 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_KeyAgreementGenerateNonceResp_Nonce__, NDR_POINTER_REF, "Pointer to Nonce (uint8)",hf_rcg_KeyAgreementGenerateNonceResp_Nonce);
4175 return offset;
4178 static int
4179 rcg_dissect_element_KeyAgreementGenerateNonceResp_Nonce__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4181 struct ndr_generic_array nga = { .is_conformant = false, };
4183 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
4185 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, rcg_dissect_element_KeyAgreementGenerateNonceResp_Nonce___);
4187 return offset;
4190 static int
4191 rcg_dissect_element_KeyAgreementGenerateNonceResp_Nonce___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4193 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_KeyAgreementGenerateNonceResp_Nonce, 0);
4195 return offset;
4199 rcg_dissect_struct_KeyAgreementGenerateNonceResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4201 proto_item *item = NULL;
4202 proto_tree *tree = NULL;
4203 int old_offset;
4205 ALIGN_TO_5_BYTES;
4207 old_offset = offset;
4209 if (parent_tree) {
4210 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4211 tree = proto_item_add_subtree(item, ett_rcg_KeyAgreementGenerateNonceResp);
4214 offset = rcg_dissect_element_KeyAgreementGenerateNonceResp_NonceLen(tvb, offset, pinfo, tree, di, drep);
4216 offset = rcg_dissect_element_KeyAgreementGenerateNonceResp_Nonce(tvb, offset, pinfo, tree, di, drep);
4219 proto_item_set_len(item, offset-old_offset);
4222 if (di->call_data->flags & DCERPC_IS_NDR64) {
4223 ALIGN_TO_5_BYTES;
4226 return offset;
4230 /* IDL: struct { */
4231 /* IDL: [ref] int64 *KeyAgreementHandle; */
4232 /* IDL: [ref] uint32 *KerbEType; */
4233 /* IDL: uint32 RemoteNonceLen; */
4234 /* IDL: [ref] [size_is(RemoteNonceLen)] uint8 *RemoteNonce; */
4235 /* IDL: uint32 X509PublicKeyLen; */
4236 /* IDL: [ref] [size_is(X509PublicKeyLen)] uint8 *X509PublicKey; */
4237 /* IDL: } */
4239 static int
4240 rcg_dissect_element_FinalizeKeyAgreementReq_KeyAgreementHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4242 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_FinalizeKeyAgreementReq_KeyAgreementHandle_, NDR_POINTER_REF, "Pointer to KeyAgreementHandle (int64)",hf_rcg_FinalizeKeyAgreementReq_KeyAgreementHandle);
4244 return offset;
4247 static int
4248 rcg_dissect_element_FinalizeKeyAgreementReq_KeyAgreementHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4250 offset = PIDL_dissect_uint64(tvb, offset, pinfo, tree, di, drep, hf_rcg_FinalizeKeyAgreementReq_KeyAgreementHandle, 0);
4252 return offset;
4255 static int
4256 rcg_dissect_element_FinalizeKeyAgreementReq_KerbEType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4258 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_FinalizeKeyAgreementReq_KerbEType_, NDR_POINTER_REF, "Pointer to KerbEType (uint32)",hf_rcg_FinalizeKeyAgreementReq_KerbEType);
4260 return offset;
4263 static int
4264 rcg_dissect_element_FinalizeKeyAgreementReq_KerbEType_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4266 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_FinalizeKeyAgreementReq_KerbEType, 0);
4268 return offset;
4271 static int
4272 rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonceLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4274 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_FinalizeKeyAgreementReq_RemoteNonceLen, 0);
4276 return offset;
4279 static int
4280 rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4282 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonce_, NDR_POINTER_REF, "Pointer to RemoteNonce (uint8)",hf_rcg_FinalizeKeyAgreementReq_RemoteNonce);
4284 return offset;
4287 static int
4288 rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonce_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4290 struct ndr_generic_array nga = { .is_conformant = false, };
4292 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
4294 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonce__);
4296 return offset;
4299 static int
4300 rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonce__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4302 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_FinalizeKeyAgreementReq_RemoteNonce, 0);
4304 return offset;
4307 static int
4308 rcg_dissect_element_FinalizeKeyAgreementReq_X509PublicKeyLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4310 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_FinalizeKeyAgreementReq_X509PublicKeyLen, 0);
4312 return offset;
4315 static int
4316 rcg_dissect_element_FinalizeKeyAgreementReq_X509PublicKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4318 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_FinalizeKeyAgreementReq_X509PublicKey_, NDR_POINTER_REF, "Pointer to X509PublicKey (uint8)",hf_rcg_FinalizeKeyAgreementReq_X509PublicKey);
4320 return offset;
4323 static int
4324 rcg_dissect_element_FinalizeKeyAgreementReq_X509PublicKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4326 struct ndr_generic_array nga = { .is_conformant = false, };
4328 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
4330 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, rcg_dissect_element_FinalizeKeyAgreementReq_X509PublicKey__);
4332 return offset;
4335 static int
4336 rcg_dissect_element_FinalizeKeyAgreementReq_X509PublicKey__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4338 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_FinalizeKeyAgreementReq_X509PublicKey, 0);
4340 return offset;
4344 rcg_dissect_struct_FinalizeKeyAgreementReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4346 proto_item *item = NULL;
4347 proto_tree *tree = NULL;
4348 int old_offset;
4350 ALIGN_TO_5_BYTES;
4352 old_offset = offset;
4354 if (parent_tree) {
4355 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4356 tree = proto_item_add_subtree(item, ett_rcg_FinalizeKeyAgreementReq);
4359 offset = rcg_dissect_element_FinalizeKeyAgreementReq_KeyAgreementHandle(tvb, offset, pinfo, tree, di, drep);
4361 offset = rcg_dissect_element_FinalizeKeyAgreementReq_KerbEType(tvb, offset, pinfo, tree, di, drep);
4363 offset = rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonceLen(tvb, offset, pinfo, tree, di, drep);
4365 offset = rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonce(tvb, offset, pinfo, tree, di, drep);
4367 offset = rcg_dissect_element_FinalizeKeyAgreementReq_X509PublicKeyLen(tvb, offset, pinfo, tree, di, drep);
4369 offset = rcg_dissect_element_FinalizeKeyAgreementReq_X509PublicKey(tvb, offset, pinfo, tree, di, drep);
4372 proto_item_set_len(item, offset-old_offset);
4375 if (di->call_data->flags & DCERPC_IS_NDR64) {
4376 ALIGN_TO_5_BYTES;
4379 return offset;
4383 /* IDL: struct { */
4384 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *SharedKey; */
4385 /* IDL: } */
4387 static int
4388 rcg_dissect_element_FinalizeKeyAgreementResp_SharedKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4390 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_FinalizeKeyAgreementResp_SharedKey_, NDR_POINTER_REF, "Pointer to SharedKey (KERB_RPC_ENCRYPTION_KEY)",hf_rcg_FinalizeKeyAgreementResp_SharedKey);
4392 return offset;
4395 static int
4396 rcg_dissect_element_FinalizeKeyAgreementResp_SharedKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4398 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_FinalizeKeyAgreementResp_SharedKey,0);
4400 return offset;
4404 rcg_dissect_struct_FinalizeKeyAgreementResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4406 proto_item *item = NULL;
4407 proto_tree *tree = NULL;
4408 int old_offset;
4410 ALIGN_TO_5_BYTES;
4412 old_offset = offset;
4414 if (parent_tree) {
4415 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4416 tree = proto_item_add_subtree(item, ett_rcg_FinalizeKeyAgreementResp);
4419 offset = rcg_dissect_element_FinalizeKeyAgreementResp_SharedKey(tvb, offset, pinfo, tree, di, drep);
4422 proto_item_set_len(item, offset-old_offset);
4425 if (di->call_data->flags & DCERPC_IS_NDR64) {
4426 ALIGN_TO_5_BYTES;
4429 return offset;
4433 /* IDL: [flag(LIBNDR_FLAG_ALIGN4)] [switch_type(uint16)] union { */
4434 /* IDL: [case(RemoteCallKerbNegotiateVersion)] [case(RemoteCallKerbNegotiateVersion)] NegotiateVersion negociateVersion; */
4435 /* IDL: [case(RemoteCallKerbBuildAsReqAuthenticator)] [case(RemoteCallKerbBuildAsReqAuthenticator)] BuildAsReqAuthenticatorReq buildAsReqAuthenticator; */
4436 /* IDL: [case(RemoteCallKerbVerifyServiceTicket)] [case(RemoteCallKerbVerifyServiceTicket)] VerifyServiceTicketReq verifyServiceTicket; */
4437 /* IDL: [case(RemoteCallKerbCreateApReqAuthenticator)] [case(RemoteCallKerbCreateApReqAuthenticator)] CreateApReqAuthenticatorReq createApReqAuthenticator; */
4438 /* IDL: [case(RemoteCallKerbDecryptApReply)] [case(RemoteCallKerbDecryptApReply)] DecryptApReplyReq decryptApReply; */
4439 /* IDL: [case(RemoteCallKerbUnpackKdcReplyBody)] [case(RemoteCallKerbUnpackKdcReplyBody)] UnpackKdcReplyBodyReq unpackKdcReplyBody; */
4440 /* IDL: [case(RemoteCallKerbComputeTgsChecksum)] [case(RemoteCallKerbComputeTgsChecksum)] ComputeTgsChecksumReq computeTgsChecksum; */
4441 /* IDL: [case(RemoteCallKerbBuildEncryptedAuthData)] [case(RemoteCallKerbBuildEncryptedAuthData)] BuildEncryptedAuthDataReq buildEncryptedAuthData; */
4442 /* IDL: [case(RemoteCallKerbPackApReply)] [case(RemoteCallKerbPackApReply)] PackApReplyReq packApReply; */
4443 /* IDL: [case(RemoteCallKerbHashS4UPreauth)] [case(RemoteCallKerbHashS4UPreauth)] HashS4UPreauthReq hashS4UPreauth; */
4444 /* IDL: [case(RemoteCallKerbSignS4UPreauthData)] [case(RemoteCallKerbSignS4UPreauthData)] SignS4UPreauthDataReq signS4UPreauthData; */
4445 /* IDL: [case(RemoteCallKerbVerifyChecksum)] [case(RemoteCallKerbVerifyChecksum)] VerifyChecksumReq verifyChecksum; */
4446 /* IDL: [case(RemoteCallKerbDecryptPacCredentials)] [case(RemoteCallKerbDecryptPacCredentials)] DecryptPacCredentialsReq decryptPacCredentials; */
4447 /* IDL: [case(RemoteCallKerbCreateECDHKeyAgreement)] [case(RemoteCallKerbCreateECDHKeyAgreement)] CreateECDHKeyAgreementReq createECDHKeyAgreement; */
4448 /* IDL: [case(RemoteCallKerbCreateDHKeyAgreement)] [case(RemoteCallKerbCreateDHKeyAgreement)] CreateDHKeyAgreementReq createDHKeyAgreement; */
4449 /* IDL: [case(RemoteCallKerbDestroyKeyAgreement)] [case(RemoteCallKerbDestroyKeyAgreement)] DestroyKeyAgreementReq destroyKeyAgreement; */
4450 /* IDL: [case(RemoteCallKerbKeyAgreementGenerateNonce)] [case(RemoteCallKerbKeyAgreementGenerateNonce)] KeyAgreementGenerateNonceReq keyAgreementGenerateNonce; */
4451 /* IDL: [case(RemoteCallKerbFinalizeKeyAgreement)] [case(RemoteCallKerbFinalizeKeyAgreement)] FinalizeKeyAgreementReq finalizeKeyAgreement; */
4452 /* IDL: } */
4454 static int
4455 rcg_dissect_element_KerbInputUnion_negociateVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4457 offset = rcg_dissect_struct_NegotiateVersion(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_negociateVersion,0);
4459 return offset;
4462 static int
4463 rcg_dissect_element_KerbInputUnion_buildAsReqAuthenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4465 offset = rcg_dissect_struct_BuildAsReqAuthenticatorReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_buildAsReqAuthenticator,0);
4467 return offset;
4470 static int
4471 rcg_dissect_element_KerbInputUnion_verifyServiceTicket(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4473 offset = rcg_dissect_struct_VerifyServiceTicketReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_verifyServiceTicket,0);
4475 return offset;
4478 static int
4479 rcg_dissect_element_KerbInputUnion_createApReqAuthenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4481 offset = rcg_dissect_struct_CreateApReqAuthenticatorReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_createApReqAuthenticator,0);
4483 return offset;
4486 static int
4487 rcg_dissect_element_KerbInputUnion_decryptApReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4489 offset = rcg_dissect_struct_DecryptApReplyReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_decryptApReply,0);
4491 return offset;
4494 static int
4495 rcg_dissect_element_KerbInputUnion_unpackKdcReplyBody(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4497 offset = rcg_dissect_struct_UnpackKdcReplyBodyReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_unpackKdcReplyBody,0);
4499 return offset;
4502 static int
4503 rcg_dissect_element_KerbInputUnion_computeTgsChecksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4505 offset = rcg_dissect_struct_ComputeTgsChecksumReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_computeTgsChecksum,0);
4507 return offset;
4510 static int
4511 rcg_dissect_element_KerbInputUnion_buildEncryptedAuthData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4513 offset = rcg_dissect_struct_BuildEncryptedAuthDataReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_buildEncryptedAuthData,0);
4515 return offset;
4518 static int
4519 rcg_dissect_element_KerbInputUnion_packApReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4521 offset = rcg_dissect_struct_PackApReplyReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_packApReply,0);
4523 return offset;
4526 static int
4527 rcg_dissect_element_KerbInputUnion_hashS4UPreauth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4529 offset = rcg_dissect_struct_HashS4UPreauthReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_hashS4UPreauth,0);
4531 return offset;
4534 static int
4535 rcg_dissect_element_KerbInputUnion_signS4UPreauthData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4537 offset = rcg_dissect_struct_SignS4UPreauthDataReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_signS4UPreauthData,0);
4539 return offset;
4542 static int
4543 rcg_dissect_element_KerbInputUnion_verifyChecksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4545 offset = rcg_dissect_struct_VerifyChecksumReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_verifyChecksum,0);
4547 return offset;
4550 static int
4551 rcg_dissect_element_KerbInputUnion_decryptPacCredentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4553 offset = rcg_dissect_struct_DecryptPacCredentialsReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_decryptPacCredentials,0);
4555 return offset;
4558 static int
4559 rcg_dissect_element_KerbInputUnion_createECDHKeyAgreement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4561 offset = rcg_dissect_struct_CreateECDHKeyAgreementReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_createECDHKeyAgreement,0);
4563 return offset;
4566 static int
4567 rcg_dissect_element_KerbInputUnion_createDHKeyAgreement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4569 offset = rcg_dissect_struct_CreateDHKeyAgreementReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_createDHKeyAgreement,0);
4571 return offset;
4574 static int
4575 rcg_dissect_element_KerbInputUnion_destroyKeyAgreement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4577 offset = rcg_dissect_struct_DestroyKeyAgreementReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_destroyKeyAgreement,0);
4579 return offset;
4582 static int
4583 rcg_dissect_element_KerbInputUnion_keyAgreementGenerateNonce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4585 offset = rcg_dissect_struct_KeyAgreementGenerateNonceReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_keyAgreementGenerateNonce,0);
4587 return offset;
4590 static int
4591 rcg_dissect_element_KerbInputUnion_finalizeKeyAgreement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4593 offset = rcg_dissect_struct_FinalizeKeyAgreementReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_finalizeKeyAgreement,0);
4595 return offset;
4598 static int
4599 rcg_dissect_KerbInputUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4601 proto_item *item = NULL;
4602 proto_tree *tree = NULL;
4603 int old_offset;
4604 uint16_t level;
4606 old_offset = offset;
4607 if (parent_tree) {
4608 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_rcg_KerbInputUnion, &item, "KerbInputUnion");
4611 UNION_ALIGN_TO_4_BYTES;
4612 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
4613 UNION_ALIGN_TO_4_BYTES;
4615 switch(level) {
4616 case RemoteCallKerbNegotiateVersion:
4617 offset = rcg_dissect_element_KerbInputUnion_negociateVersion(tvb, offset, pinfo, tree, di, drep);
4618 break;
4620 case RemoteCallKerbBuildAsReqAuthenticator:
4621 offset = rcg_dissect_element_KerbInputUnion_buildAsReqAuthenticator(tvb, offset, pinfo, tree, di, drep);
4622 break;
4624 case RemoteCallKerbVerifyServiceTicket:
4625 offset = rcg_dissect_element_KerbInputUnion_verifyServiceTicket(tvb, offset, pinfo, tree, di, drep);
4626 break;
4628 case RemoteCallKerbCreateApReqAuthenticator:
4629 offset = rcg_dissect_element_KerbInputUnion_createApReqAuthenticator(tvb, offset, pinfo, tree, di, drep);
4630 break;
4632 case RemoteCallKerbDecryptApReply:
4633 offset = rcg_dissect_element_KerbInputUnion_decryptApReply(tvb, offset, pinfo, tree, di, drep);
4634 break;
4636 case RemoteCallKerbUnpackKdcReplyBody:
4637 offset = rcg_dissect_element_KerbInputUnion_unpackKdcReplyBody(tvb, offset, pinfo, tree, di, drep);
4638 break;
4640 case RemoteCallKerbComputeTgsChecksum:
4641 offset = rcg_dissect_element_KerbInputUnion_computeTgsChecksum(tvb, offset, pinfo, tree, di, drep);
4642 break;
4644 case RemoteCallKerbBuildEncryptedAuthData:
4645 offset = rcg_dissect_element_KerbInputUnion_buildEncryptedAuthData(tvb, offset, pinfo, tree, di, drep);
4646 break;
4648 case RemoteCallKerbPackApReply:
4649 offset = rcg_dissect_element_KerbInputUnion_packApReply(tvb, offset, pinfo, tree, di, drep);
4650 break;
4652 case RemoteCallKerbHashS4UPreauth:
4653 offset = rcg_dissect_element_KerbInputUnion_hashS4UPreauth(tvb, offset, pinfo, tree, di, drep);
4654 break;
4656 case RemoteCallKerbSignS4UPreauthData:
4657 offset = rcg_dissect_element_KerbInputUnion_signS4UPreauthData(tvb, offset, pinfo, tree, di, drep);
4658 break;
4660 case RemoteCallKerbVerifyChecksum:
4661 offset = rcg_dissect_element_KerbInputUnion_verifyChecksum(tvb, offset, pinfo, tree, di, drep);
4662 break;
4664 case RemoteCallKerbDecryptPacCredentials:
4665 offset = rcg_dissect_element_KerbInputUnion_decryptPacCredentials(tvb, offset, pinfo, tree, di, drep);
4666 break;
4668 case RemoteCallKerbCreateECDHKeyAgreement:
4669 offset = rcg_dissect_element_KerbInputUnion_createECDHKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4670 break;
4672 case RemoteCallKerbCreateDHKeyAgreement:
4673 offset = rcg_dissect_element_KerbInputUnion_createDHKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4674 break;
4676 case RemoteCallKerbDestroyKeyAgreement:
4677 offset = rcg_dissect_element_KerbInputUnion_destroyKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4678 break;
4680 case RemoteCallKerbKeyAgreementGenerateNonce:
4681 offset = rcg_dissect_element_KerbInputUnion_keyAgreementGenerateNonce(tvb, offset, pinfo, tree, di, drep);
4682 break;
4684 case RemoteCallKerbFinalizeKeyAgreement:
4685 offset = rcg_dissect_element_KerbInputUnion_finalizeKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4686 break;
4688 proto_item_set_len(item, offset-old_offset);
4691 return offset;
4694 /* IDL: struct { */
4695 /* IDL: RemoteGuardCallId CallId; */
4696 /* IDL: [switch_is(CallId)] [switch_type(uint16)] KerbInputUnion callUnion; */
4697 /* IDL: } */
4699 static int
4700 rcg_dissect_element_KerbCredIsoRemoteInput_CallId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t *CallId)
4702 offset = rcg_dissect_enum_RemoteGuardCallId(tvb, offset, pinfo, tree, di, drep, hf_rcg_KerbCredIsoRemoteInput_CallId, CallId);
4704 return offset;
4707 static int
4708 rcg_dissect_element_KerbCredIsoRemoteInput_callUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t CallId)
4710 offset = rcg_dissect_KerbInputUnion(tvb, offset, pinfo, tree, di, drep, hf_rcg_KerbCredIsoRemoteInput_callUnion, CallId);
4712 return offset;
4716 /* IDL: [flag(LIBNDR_FLAG_ALIGN4)] [switch_type(uint16)] union { */
4717 /* IDL: [case(RemoteCallKerbNegotiateVersion)] [case(RemoteCallKerbNegotiateVersion)] NegotiateVersion negociateVersion; */
4718 /* IDL: [case(RemoteCallKerbBuildAsReqAuthenticator)] [case(RemoteCallKerbBuildAsReqAuthenticator)] BuildAsReqAuthenticatorResp buildAsReqAuthenticator; */
4719 /* IDL: [case(RemoteCallKerbVerifyServiceTicket)] [case(RemoteCallKerbVerifyServiceTicket)] VerifyServiceTicketResp verifyServiceTicket; */
4720 /* IDL: [case(RemoteCallKerbCreateApReqAuthenticator)] [case(RemoteCallKerbCreateApReqAuthenticator)] CreateApReqAuthenticatorResp createApReqAuthenticator; */
4721 /* IDL: [case(RemoteCallKerbDecryptApReply)] [case(RemoteCallKerbDecryptApReply)] DecryptApReplyResp decryptApReply; */
4722 /* IDL: [case(RemoteCallKerbUnpackKdcReplyBody)] [case(RemoteCallKerbUnpackKdcReplyBody)] UnpackKdcReplyBodyResp unpackKdcReplyBody; */
4723 /* IDL: [case(RemoteCallKerbComputeTgsChecksum)] [case(RemoteCallKerbComputeTgsChecksum)] ComputeTgsChecksumResp computeTgsChecksum; */
4724 /* IDL: [case(RemoteCallKerbBuildEncryptedAuthData)] [case(RemoteCallKerbBuildEncryptedAuthData)] BuildEncryptedAuthDataResp buildEncryptedAuthData; */
4725 /* IDL: [case(RemoteCallKerbPackApReply)] [case(RemoteCallKerbPackApReply)] PackApReplyResp packApReply; */
4726 /* IDL: [case(RemoteCallKerbHashS4UPreauth)] [case(RemoteCallKerbHashS4UPreauth)] HashS4UPreauthResp hashS4UPreauth; */
4727 /* IDL: [case(RemoteCallKerbSignS4UPreauthData)] [case(RemoteCallKerbSignS4UPreauthData)] SignS4UPreauthDataResp signS4UPreauthData; */
4728 /* IDL: [case(RemoteCallKerbVerifyChecksum)] [case(RemoteCallKerbVerifyChecksum)] VerifyChecksumResp verifyChecksum; */
4729 /* IDL: [case(RemoteCallKerbDecryptPacCredentials)] [case(RemoteCallKerbDecryptPacCredentials)] DecryptPacCredentialsResp decryptPacCredentials; */
4730 /* IDL: [case(RemoteCallKerbCreateECDHKeyAgreement)] [case(RemoteCallKerbCreateECDHKeyAgreement)] CreateECDHKeyAgreementResp createECDHKeyAgreement; */
4731 /* IDL: [case(RemoteCallKerbCreateDHKeyAgreement)] [case(RemoteCallKerbCreateDHKeyAgreement)] CreateDHKeyAgreementResp createDHKeyAgreement; */
4732 /* IDL: [case(RemoteCallKerbDestroyKeyAgreement)] [case(RemoteCallKerbDestroyKeyAgreement)] DestroyKeyAgreementResp destroyKeyAgreement; */
4733 /* IDL: [case(RemoteCallKerbKeyAgreementGenerateNonce)] [case(RemoteCallKerbKeyAgreementGenerateNonce)] KeyAgreementGenerateNonceResp keyAgreementGenerateNonce; */
4734 /* IDL: [case(RemoteCallKerbFinalizeKeyAgreement)] [case(RemoteCallKerbFinalizeKeyAgreement)] FinalizeKeyAgreementResp finalizeKeyAgreement; */
4735 /* IDL: } */
4737 static int
4738 rcg_dissect_element_KerbOutputUnion_negociateVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4740 offset = rcg_dissect_struct_NegotiateVersion(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_negociateVersion,0);
4742 return offset;
4745 static int
4746 rcg_dissect_element_KerbOutputUnion_buildAsReqAuthenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4748 offset = rcg_dissect_struct_BuildAsReqAuthenticatorResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_buildAsReqAuthenticator,0);
4750 return offset;
4753 static int
4754 rcg_dissect_element_KerbOutputUnion_verifyServiceTicket(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4756 offset = rcg_dissect_struct_VerifyServiceTicketResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_verifyServiceTicket,0);
4758 return offset;
4761 static int
4762 rcg_dissect_element_KerbOutputUnion_createApReqAuthenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4764 offset = rcg_dissect_struct_CreateApReqAuthenticatorResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_createApReqAuthenticator,0);
4766 return offset;
4769 static int
4770 rcg_dissect_element_KerbOutputUnion_decryptApReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4772 offset = rcg_dissect_struct_DecryptApReplyResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_decryptApReply,0);
4774 return offset;
4777 static int
4778 rcg_dissect_element_KerbOutputUnion_unpackKdcReplyBody(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4780 offset = rcg_dissect_struct_UnpackKdcReplyBodyResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_unpackKdcReplyBody,0);
4782 return offset;
4785 static int
4786 rcg_dissect_element_KerbOutputUnion_computeTgsChecksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4788 offset = rcg_dissect_struct_ComputeTgsChecksumResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_computeTgsChecksum,0);
4790 return offset;
4793 static int
4794 rcg_dissect_element_KerbOutputUnion_buildEncryptedAuthData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4796 offset = rcg_dissect_struct_BuildEncryptedAuthDataResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_buildEncryptedAuthData,0);
4798 return offset;
4801 static int
4802 rcg_dissect_element_KerbOutputUnion_packApReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4804 offset = rcg_dissect_struct_PackApReplyResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_packApReply,0);
4806 return offset;
4809 static int
4810 rcg_dissect_element_KerbOutputUnion_hashS4UPreauth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4812 offset = rcg_dissect_struct_HashS4UPreauthResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_hashS4UPreauth,0);
4814 return offset;
4817 static int
4818 rcg_dissect_element_KerbOutputUnion_signS4UPreauthData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4820 offset = rcg_dissect_struct_SignS4UPreauthDataResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_signS4UPreauthData,0);
4822 return offset;
4825 static int
4826 rcg_dissect_element_KerbOutputUnion_verifyChecksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4828 offset = rcg_dissect_struct_VerifyChecksumResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_verifyChecksum,0);
4830 return offset;
4833 static int
4834 rcg_dissect_element_KerbOutputUnion_decryptPacCredentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4836 offset = rcg_dissect_struct_DecryptPacCredentialsResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_decryptPacCredentials,0);
4838 return offset;
4841 static int
4842 rcg_dissect_element_KerbOutputUnion_createECDHKeyAgreement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4844 offset = rcg_dissect_struct_CreateECDHKeyAgreementResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_createECDHKeyAgreement,0);
4846 return offset;
4849 static int
4850 rcg_dissect_element_KerbOutputUnion_createDHKeyAgreement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4852 offset = rcg_dissect_struct_CreateDHKeyAgreementResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_createDHKeyAgreement,0);
4854 return offset;
4857 static int
4858 rcg_dissect_element_KerbOutputUnion_destroyKeyAgreement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4860 offset = rcg_dissect_struct_DestroyKeyAgreementResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_destroyKeyAgreement,0);
4862 return offset;
4865 static int
4866 rcg_dissect_element_KerbOutputUnion_keyAgreementGenerateNonce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4868 offset = rcg_dissect_struct_KeyAgreementGenerateNonceResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_keyAgreementGenerateNonce,0);
4870 return offset;
4873 static int
4874 rcg_dissect_element_KerbOutputUnion_finalizeKeyAgreement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4876 offset = rcg_dissect_struct_FinalizeKeyAgreementResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_finalizeKeyAgreement,0);
4878 return offset;
4881 static int
4882 rcg_dissect_KerbOutputUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4884 proto_item *item = NULL;
4885 proto_tree *tree = NULL;
4886 int old_offset;
4887 uint16_t level;
4889 old_offset = offset;
4890 if (parent_tree) {
4891 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_rcg_KerbOutputUnion, &item, "KerbOutputUnion");
4894 UNION_ALIGN_TO_4_BYTES;
4895 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
4896 UNION_ALIGN_TO_4_BYTES;
4898 switch(level) {
4899 case RemoteCallKerbNegotiateVersion:
4900 offset = rcg_dissect_element_KerbOutputUnion_negociateVersion(tvb, offset, pinfo, tree, di, drep);
4901 break;
4903 case RemoteCallKerbBuildAsReqAuthenticator:
4904 offset = rcg_dissect_element_KerbOutputUnion_buildAsReqAuthenticator(tvb, offset, pinfo, tree, di, drep);
4905 break;
4907 case RemoteCallKerbVerifyServiceTicket:
4908 offset = rcg_dissect_element_KerbOutputUnion_verifyServiceTicket(tvb, offset, pinfo, tree, di, drep);
4909 break;
4911 case RemoteCallKerbCreateApReqAuthenticator:
4912 offset = rcg_dissect_element_KerbOutputUnion_createApReqAuthenticator(tvb, offset, pinfo, tree, di, drep);
4913 break;
4915 case RemoteCallKerbDecryptApReply:
4916 offset = rcg_dissect_element_KerbOutputUnion_decryptApReply(tvb, offset, pinfo, tree, di, drep);
4917 break;
4919 case RemoteCallKerbUnpackKdcReplyBody:
4920 offset = rcg_dissect_element_KerbOutputUnion_unpackKdcReplyBody(tvb, offset, pinfo, tree, di, drep);
4921 break;
4923 case RemoteCallKerbComputeTgsChecksum:
4924 offset = rcg_dissect_element_KerbOutputUnion_computeTgsChecksum(tvb, offset, pinfo, tree, di, drep);
4925 break;
4927 case RemoteCallKerbBuildEncryptedAuthData:
4928 offset = rcg_dissect_element_KerbOutputUnion_buildEncryptedAuthData(tvb, offset, pinfo, tree, di, drep);
4929 break;
4931 case RemoteCallKerbPackApReply:
4932 offset = rcg_dissect_element_KerbOutputUnion_packApReply(tvb, offset, pinfo, tree, di, drep);
4933 break;
4935 case RemoteCallKerbHashS4UPreauth:
4936 offset = rcg_dissect_element_KerbOutputUnion_hashS4UPreauth(tvb, offset, pinfo, tree, di, drep);
4937 break;
4939 case RemoteCallKerbSignS4UPreauthData:
4940 offset = rcg_dissect_element_KerbOutputUnion_signS4UPreauthData(tvb, offset, pinfo, tree, di, drep);
4941 break;
4943 case RemoteCallKerbVerifyChecksum:
4944 offset = rcg_dissect_element_KerbOutputUnion_verifyChecksum(tvb, offset, pinfo, tree, di, drep);
4945 break;
4947 case RemoteCallKerbDecryptPacCredentials:
4948 offset = rcg_dissect_element_KerbOutputUnion_decryptPacCredentials(tvb, offset, pinfo, tree, di, drep);
4949 break;
4951 case RemoteCallKerbCreateECDHKeyAgreement:
4952 offset = rcg_dissect_element_KerbOutputUnion_createECDHKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4953 break;
4955 case RemoteCallKerbCreateDHKeyAgreement:
4956 offset = rcg_dissect_element_KerbOutputUnion_createDHKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4957 break;
4959 case RemoteCallKerbDestroyKeyAgreement:
4960 offset = rcg_dissect_element_KerbOutputUnion_destroyKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4961 break;
4963 case RemoteCallKerbKeyAgreementGenerateNonce:
4964 offset = rcg_dissect_element_KerbOutputUnion_keyAgreementGenerateNonce(tvb, offset, pinfo, tree, di, drep);
4965 break;
4967 case RemoteCallKerbFinalizeKeyAgreement:
4968 offset = rcg_dissect_element_KerbOutputUnion_finalizeKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4969 break;
4971 proto_item_set_len(item, offset-old_offset);
4974 return offset;
4977 /* IDL: struct { */
4978 /* IDL: RemoteGuardCallId CallId; */
4979 /* IDL: NTSTATUS Status; */
4980 /* IDL: [switch_is(CallId)] [switch_type(RemoteGuardCallId)] KerbOutputUnion callUnion; */
4981 /* IDL: } */
4983 static int
4984 rcg_dissect_element_KerbCredIsoRemoteOutput_CallId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t *CallId)
4986 offset = rcg_dissect_enum_RemoteGuardCallId(tvb, offset, pinfo, tree, di, drep, hf_rcg_KerbCredIsoRemoteOutput_CallId, CallId);
4988 return offset;
4991 static int
4992 rcg_dissect_element_KerbCredIsoRemoteOutput_Status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4994 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KerbCredIsoRemoteOutput_Status, 0);
4996 return offset;
4999 static int
5000 rcg_dissect_element_KerbCredIsoRemoteOutput_callUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t CallId)
5002 offset = rcg_dissect_KerbOutputUnion(tvb, offset, pinfo, tree, di, drep, hf_rcg_KerbCredIsoRemoteOutput_callUnion, CallId);
5004 return offset;
5008 /* IDL: struct { */
5009 /* IDL: } */
5012 rcg_dissect_struct_NT_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5014 proto_item *item = NULL;
5015 int old_offset;
5017 old_offset = offset;
5019 if (parent_tree) {
5020 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5024 proto_item_set_len(item, offset-old_offset);
5027 return offset;
5031 /* IDL: struct _NT_CHALLENGE { */
5032 /* IDL: } */
5035 rcg_dissect_struct_NT_CHALLENGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5037 proto_item *item = NULL;
5038 int old_offset;
5040 ALIGN_TO_4_BYTES;
5042 old_offset = offset;
5044 if (parent_tree) {
5045 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5049 proto_item_set_len(item, offset-old_offset);
5052 if (di->call_data->flags & DCERPC_IS_NDR64) {
5053 ALIGN_TO_4_BYTES;
5056 return offset;
5060 /* IDL: struct NT_CHALLENGE { */
5061 /* IDL: } */
5064 rcg_dissect_struct_PNT_CHALLENGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5066 proto_item *item = NULL;
5067 int old_offset;
5069 ALIGN_TO_4_BYTES;
5071 old_offset = offset;
5073 if (parent_tree) {
5074 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5078 proto_item_set_len(item, offset-old_offset);
5081 if (di->call_data->flags & DCERPC_IS_NDR64) {
5082 ALIGN_TO_4_BYTES;
5085 return offset;
5092 rcg_dissect_struct_LM_SESSION_KEY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5094 proto_item *item = NULL;
5095 int old_offset;
5097 old_offset = offset;
5099 if (parent_tree) {
5100 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5104 proto_item_set_len(item, offset-old_offset);
5107 return offset;
5111 /* IDL: struct { */
5112 /* IDL: } */
5115 rcg_dissect_struct_MSV1_0_LM3_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5117 proto_item *item = NULL;
5118 int old_offset;
5120 old_offset = offset;
5122 if (parent_tree) {
5123 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5127 proto_item_set_len(item, offset-old_offset);
5130 return offset;
5134 /* IDL: struct MSV1_0_LM3_RESPONSE { */
5135 /* IDL: } */
5138 rcg_dissect_struct_PMSV1_0_LM3_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5140 proto_item *item = NULL;
5141 int old_offset;
5143 ALIGN_TO_4_BYTES;
5145 old_offset = offset;
5147 if (parent_tree) {
5148 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5152 proto_item_set_len(item, offset-old_offset);
5155 if (di->call_data->flags & DCERPC_IS_NDR64) {
5156 ALIGN_TO_4_BYTES;
5159 return offset;
5163 /* IDL: struct { */
5164 /* IDL: } */
5167 rcg_dissect_struct_USER_SESSION_KEY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5169 proto_item *item = NULL;
5170 int old_offset;
5172 old_offset = offset;
5174 if (parent_tree) {
5175 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5179 proto_item_set_len(item, offset-old_offset);
5182 return offset;
5186 /* IDL: struct PUSER_SESSION_KEY { */
5187 /* IDL: } */
5190 rcg_dissect_struct_PUSER_SESSION_KEY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5192 proto_item *item = NULL;
5193 int old_offset;
5195 ALIGN_TO_4_BYTES;
5197 old_offset = offset;
5199 if (parent_tree) {
5200 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5204 proto_item_set_len(item, offset-old_offset);
5207 if (di->call_data->flags & DCERPC_IS_NDR64) {
5208 ALIGN_TO_4_BYTES;
5211 return offset;
5215 /* IDL: struct { */
5216 /* IDL: } */
5219 rcg_dissect_struct_MSV1_0_CREDENTIAL_KEY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5221 proto_item *item = NULL;
5222 int old_offset;
5224 old_offset = offset;
5226 if (parent_tree) {
5227 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5231 proto_item_set_len(item, offset-old_offset);
5234 return offset;
5238 /* IDL: struct MSV1_0_CREDENTIAL_KEY { */
5239 /* IDL: } */
5242 rcg_dissect_struct_PMSV1_0_CREDENTIAL_KEY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5244 proto_item *item = NULL;
5245 int old_offset;
5247 ALIGN_TO_4_BYTES;
5249 old_offset = offset;
5251 if (parent_tree) {
5252 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5256 proto_item_set_len(item, offset-old_offset);
5259 if (di->call_data->flags & DCERPC_IS_NDR64) {
5260 ALIGN_TO_4_BYTES;
5263 return offset;
5267 /* IDL: struct _MSV1_0_REMOTE_ENCRYPTED_SECRETS { */
5268 /* IDL: uint32 reserved1; */
5269 /* IDL: uint32 reserved2; */
5270 /* IDL: uint32 reserved3; */
5271 /* IDL: MSV1_0_CREDENTIAL_KEY reserved4; */
5272 /* IDL: MSV1_0_CREDENTIAL_KEY reserved5; */
5273 /* IDL: uint32 reservedSize; */
5274 /* IDL: [ref] [size_is(reservedSize)] uint8 *reserved6; */
5275 /* IDL: } */
5277 static int
5278 rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5280 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved1, 0);
5282 return offset;
5285 static int
5286 rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5288 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved2, 0);
5290 return offset;
5293 static int
5294 rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5296 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved3, 0);
5298 return offset;
5301 static int
5302 rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5304 offset = rcg_dissect_struct_MSV1_0_CREDENTIAL_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved4,0);
5306 return offset;
5309 static int
5310 rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5312 offset = rcg_dissect_struct_MSV1_0_CREDENTIAL_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved5,0);
5314 return offset;
5317 static int
5318 rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reservedSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5320 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reservedSize, 0);
5322 return offset;
5325 static int
5326 rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5328 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6_, NDR_POINTER_REF, "Pointer to Reserved6 (uint8)",hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6);
5330 return offset;
5333 static int
5334 rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5336 struct ndr_generic_array nga = { .is_conformant = false, };
5338 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
5340 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6__);
5342 return offset;
5345 static int
5346 rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5348 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6, 0);
5350 return offset;
5354 rcg_dissect_struct_MSV1_0_REMOTE_ENCRYPTED_SECRETS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5356 proto_item *item = NULL;
5357 proto_tree *tree = NULL;
5358 int old_offset;
5360 ALIGN_TO_4_BYTES;
5362 old_offset = offset;
5364 if (parent_tree) {
5365 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5366 tree = proto_item_add_subtree(item, ett_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS);
5369 offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved1(tvb, offset, pinfo, tree, di, drep);
5371 offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved2(tvb, offset, pinfo, tree, di, drep);
5373 offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved3(tvb, offset, pinfo, tree, di, drep);
5375 offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved4(tvb, offset, pinfo, tree, di, drep);
5377 offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved5(tvb, offset, pinfo, tree, di, drep);
5379 offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reservedSize(tvb, offset, pinfo, tree, di, drep);
5381 offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6(tvb, offset, pinfo, tree, di, drep);
5384 proto_item_set_len(item, offset-old_offset);
5387 if (di->call_data->flags & DCERPC_IS_NDR64) {
5388 ALIGN_TO_4_BYTES;
5391 return offset;
5395 /* IDL: struct MSV1_0_REMOTE_ENCRYPTED_SECRETS { */
5396 /* IDL: } */
5399 rcg_dissect_struct_PMSV1_0_REMOTE_ENCRYPTED_SECRETS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5401 proto_item *item = NULL;
5402 int old_offset;
5404 ALIGN_TO_4_BYTES;
5406 old_offset = offset;
5408 if (parent_tree) {
5409 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5413 proto_item_set_len(item, offset-old_offset);
5416 if (di->call_data->flags & DCERPC_IS_NDR64) {
5417 ALIGN_TO_4_BYTES;
5420 return offset;
5424 /* IDL: struct { */
5425 /* IDL: PMSV1_0_REMOTE_ENCRYPTED_SECRETS Credential; */
5426 /* IDL: PRPC_UNICODE_STRING UserName; */
5427 /* IDL: PRPC_UNICODE_STRING LogonDomainName; */
5428 /* IDL: PRPC_UNICODE_STRING ServerName; */
5429 /* IDL: } */
5431 static int
5432 rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_Credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5434 offset = rcg_dissect_struct_PMSV1_0_REMOTE_ENCRYPTED_SECRETS(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseReq_Credential,0);
5436 return offset;
5439 static int
5440 rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_UserName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5442 offset = rcg_dissect_struct_PRPC_UNICODE_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseReq_UserName,0);
5444 return offset;
5447 static int
5448 rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_LogonDomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5450 offset = rcg_dissect_struct_PRPC_UNICODE_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseReq_LogonDomainName,0);
5452 return offset;
5455 static int
5456 rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5458 offset = rcg_dissect_struct_PRPC_UNICODE_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseReq_ServerName,0);
5460 return offset;
5464 rcg_dissect_struct_Lm20GetNtlm3ChallengeResponseReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5466 proto_item *item = NULL;
5467 proto_tree *tree = NULL;
5468 int old_offset;
5470 ALIGN_TO_4_BYTES;
5472 old_offset = offset;
5474 if (parent_tree) {
5475 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5476 tree = proto_item_add_subtree(item, ett_rcg_Lm20GetNtlm3ChallengeResponseReq);
5479 offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_Credential(tvb, offset, pinfo, tree, di, drep);
5481 offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_UserName(tvb, offset, pinfo, tree, di, drep);
5483 offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_LogonDomainName(tvb, offset, pinfo, tree, di, drep);
5485 offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_ServerName(tvb, offset, pinfo, tree, di, drep);
5488 proto_item_set_len(item, offset-old_offset);
5491 if (di->call_data->flags & DCERPC_IS_NDR64) {
5492 ALIGN_TO_4_BYTES;
5495 return offset;
5499 /* IDL: struct { */
5500 /* IDL: uint16 Ntlm3ResponseLength; */
5501 /* IDL: [ref] [size_is(Ntlm3ResponseLength)] uint8 *Ntlm3Response; */
5502 /* IDL: MSV1_0_LM3_RESPONSE Lm3Response; */
5503 /* IDL: USER_SESSION_KEY UserSessionKey; */
5504 /* IDL: LM_SESSION_KEY LmSessionKey; */
5505 /* IDL: } */
5507 static int
5508 rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Ntlm3ResponseLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5510 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Ntlm3ResponseLength, 0);
5512 return offset;
5515 static int
5516 rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5518 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response_, NDR_POINTER_REF, "Pointer to Ntlm3Response (uint8)",hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response);
5520 return offset;
5523 static int
5524 rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5526 struct ndr_generic_array nga = { .is_conformant = false, };
5528 offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
5530 offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response__);
5532 return offset;
5535 static int
5536 rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5538 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response, 0);
5540 return offset;
5543 static int
5544 rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Lm3Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5546 offset = rcg_dissect_struct_MSV1_0_LM3_RESPONSE(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Lm3Response,0);
5548 return offset;
5551 static int
5552 rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_UserSessionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5554 offset = rcg_dissect_struct_USER_SESSION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseResp_UserSessionKey,0);
5556 return offset;
5559 static int
5560 rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_LmSessionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5562 offset = rcg_dissect_struct_LM_SESSION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseResp_LmSessionKey,0);
5564 return offset;
5568 rcg_dissect_struct_Lm20GetNtlm3ChallengeResponseResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5570 proto_item *item = NULL;
5571 proto_tree *tree = NULL;
5572 int old_offset;
5574 ALIGN_TO_5_BYTES;
5576 old_offset = offset;
5578 if (parent_tree) {
5579 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5580 tree = proto_item_add_subtree(item, ett_rcg_Lm20GetNtlm3ChallengeResponseResp);
5583 offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Ntlm3ResponseLength(tvb, offset, pinfo, tree, di, drep);
5585 offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response(tvb, offset, pinfo, tree, di, drep);
5587 offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Lm3Response(tvb, offset, pinfo, tree, di, drep);
5589 offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_UserSessionKey(tvb, offset, pinfo, tree, di, drep);
5591 offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_LmSessionKey(tvb, offset, pinfo, tree, di, drep);
5594 proto_item_set_len(item, offset-old_offset);
5597 if (di->call_data->flags & DCERPC_IS_NDR64) {
5598 ALIGN_TO_5_BYTES;
5601 return offset;
5605 /* IDL: struct { */
5606 /* IDL: PNT_CHALLENGE NtChallenge; */
5607 /* IDL: PMSV1_0_REMOTE_ENCRYPTED_SECRETS Credential; */
5608 /* IDL: } */
5610 static int
5611 rcg_dissect_element_CalculateNtResponseReq_NtChallenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5613 offset = rcg_dissect_struct_PNT_CHALLENGE(tvb,offset,pinfo,tree,di,drep,hf_rcg_CalculateNtResponseReq_NtChallenge,0);
5615 return offset;
5618 static int
5619 rcg_dissect_element_CalculateNtResponseReq_Credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5621 offset = rcg_dissect_struct_PMSV1_0_REMOTE_ENCRYPTED_SECRETS(tvb,offset,pinfo,tree,di,drep,hf_rcg_CalculateNtResponseReq_Credential,0);
5623 return offset;
5627 rcg_dissect_struct_CalculateNtResponseReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5629 proto_item *item = NULL;
5630 proto_tree *tree = NULL;
5631 int old_offset;
5633 ALIGN_TO_4_BYTES;
5635 old_offset = offset;
5637 if (parent_tree) {
5638 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5639 tree = proto_item_add_subtree(item, ett_rcg_CalculateNtResponseReq);
5642 offset = rcg_dissect_element_CalculateNtResponseReq_NtChallenge(tvb, offset, pinfo, tree, di, drep);
5644 offset = rcg_dissect_element_CalculateNtResponseReq_Credential(tvb, offset, pinfo, tree, di, drep);
5647 proto_item_set_len(item, offset-old_offset);
5650 if (di->call_data->flags & DCERPC_IS_NDR64) {
5651 ALIGN_TO_4_BYTES;
5654 return offset;
5658 /* IDL: struct { */
5659 /* IDL: NT_RESPONSE NtResponse; */
5660 /* IDL: } */
5662 static int
5663 rcg_dissect_element_CalculateNtResponseResp_NtResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5665 offset = rcg_dissect_struct_NT_RESPONSE(tvb,offset,pinfo,tree,di,drep,hf_rcg_CalculateNtResponseResp_NtResponse,0);
5667 return offset;
5671 rcg_dissect_struct_CalculateNtResponseResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5673 proto_item *item = NULL;
5674 proto_tree *tree = NULL;
5675 int old_offset;
5677 old_offset = offset;
5679 if (parent_tree) {
5680 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5681 tree = proto_item_add_subtree(item, ett_rcg_CalculateNtResponseResp);
5684 offset = rcg_dissect_element_CalculateNtResponseResp_NtResponse(tvb, offset, pinfo, tree, di, drep);
5687 proto_item_set_len(item, offset-old_offset);
5690 return offset;
5694 /* IDL: struct { */
5695 /* IDL: [ref] NT_RESPONSE *NtResponse; */
5696 /* IDL: PMSV1_0_REMOTE_ENCRYPTED_SECRETS Credential; */
5697 /* IDL: } */
5699 static int
5700 rcg_dissect_element_CalculateUserSessionKeyNtReq_NtResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5702 offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CalculateUserSessionKeyNtReq_NtResponse_, NDR_POINTER_REF, "Pointer to NtResponse (NT_RESPONSE)",hf_rcg_CalculateUserSessionKeyNtReq_NtResponse);
5704 return offset;
5707 static int
5708 rcg_dissect_element_CalculateUserSessionKeyNtReq_NtResponse_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5710 offset = rcg_dissect_struct_NT_RESPONSE(tvb,offset,pinfo,tree,di,drep,hf_rcg_CalculateUserSessionKeyNtReq_NtResponse,0);
5712 return offset;
5715 static int
5716 rcg_dissect_element_CalculateUserSessionKeyNtReq_Credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5718 offset = rcg_dissect_struct_PMSV1_0_REMOTE_ENCRYPTED_SECRETS(tvb,offset,pinfo,tree,di,drep,hf_rcg_CalculateUserSessionKeyNtReq_Credential,0);
5720 return offset;
5724 rcg_dissect_struct_CalculateUserSessionKeyNtReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5726 proto_item *item = NULL;
5727 proto_tree *tree = NULL;
5728 int old_offset;
5730 ALIGN_TO_5_BYTES;
5732 old_offset = offset;
5734 if (parent_tree) {
5735 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5736 tree = proto_item_add_subtree(item, ett_rcg_CalculateUserSessionKeyNtReq);
5739 offset = rcg_dissect_element_CalculateUserSessionKeyNtReq_NtResponse(tvb, offset, pinfo, tree, di, drep);
5741 offset = rcg_dissect_element_CalculateUserSessionKeyNtReq_Credential(tvb, offset, pinfo, tree, di, drep);
5744 proto_item_set_len(item, offset-old_offset);
5747 if (di->call_data->flags & DCERPC_IS_NDR64) {
5748 ALIGN_TO_5_BYTES;
5751 return offset;
5755 /* IDL: struct { */
5756 /* IDL: USER_SESSION_KEY UserSessionKey; */
5757 /* IDL: } */
5759 static int
5760 rcg_dissect_element_CalculateUserSessionKeyNtResp_UserSessionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5762 offset = rcg_dissect_struct_USER_SESSION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_CalculateUserSessionKeyNtResp_UserSessionKey,0);
5764 return offset;
5768 rcg_dissect_struct_CalculateUserSessionKeyNtResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5770 proto_item *item = NULL;
5771 proto_tree *tree = NULL;
5772 int old_offset;
5774 old_offset = offset;
5776 if (parent_tree) {
5777 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5778 tree = proto_item_add_subtree(item, ett_rcg_CalculateUserSessionKeyNtResp);
5781 offset = rcg_dissect_element_CalculateUserSessionKeyNtResp_UserSessionKey(tvb, offset, pinfo, tree, di, drep);
5784 proto_item_set_len(item, offset-old_offset);
5787 return offset;
5791 /* IDL: struct { */
5792 /* IDL: PMSV1_0_REMOTE_ENCRYPTED_SECRETS LhsCredential; */
5793 /* IDL: PMSV1_0_REMOTE_ENCRYPTED_SECRETS RhsCredential; */
5794 /* IDL: } */
5796 static int
5797 rcg_dissect_element_CompareCredentialsReq_LhsCredential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5799 offset = rcg_dissect_struct_PMSV1_0_REMOTE_ENCRYPTED_SECRETS(tvb,offset,pinfo,tree,di,drep,hf_rcg_CompareCredentialsReq_LhsCredential,0);
5801 return offset;
5804 static int
5805 rcg_dissect_element_CompareCredentialsReq_RhsCredential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5807 offset = rcg_dissect_struct_PMSV1_0_REMOTE_ENCRYPTED_SECRETS(tvb,offset,pinfo,tree,di,drep,hf_rcg_CompareCredentialsReq_RhsCredential,0);
5809 return offset;
5813 rcg_dissect_struct_CompareCredentialsReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5815 proto_item *item = NULL;
5816 proto_tree *tree = NULL;
5817 int old_offset;
5819 ALIGN_TO_4_BYTES;
5821 old_offset = offset;
5823 if (parent_tree) {
5824 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5825 tree = proto_item_add_subtree(item, ett_rcg_CompareCredentialsReq);
5828 offset = rcg_dissect_element_CompareCredentialsReq_LhsCredential(tvb, offset, pinfo, tree, di, drep);
5830 offset = rcg_dissect_element_CompareCredentialsReq_RhsCredential(tvb, offset, pinfo, tree, di, drep);
5833 proto_item_set_len(item, offset-old_offset);
5836 if (di->call_data->flags & DCERPC_IS_NDR64) {
5837 ALIGN_TO_4_BYTES;
5840 return offset;
5844 /* IDL: struct { */
5845 /* IDL: uint32 AreNtOwfsEqual; */
5846 /* IDL: uint32 AreLmOwfsEqual; */
5847 /* IDL: uint32 AreShaOwfsEqual; */
5848 /* IDL: } */
5850 static int
5851 rcg_dissect_element_CompareCredentialsResp_AreNtOwfsEqual(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5853 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CompareCredentialsResp_AreNtOwfsEqual, 0);
5855 return offset;
5858 static int
5859 rcg_dissect_element_CompareCredentialsResp_AreLmOwfsEqual(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5861 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CompareCredentialsResp_AreLmOwfsEqual, 0);
5863 return offset;
5866 static int
5867 rcg_dissect_element_CompareCredentialsResp_AreShaOwfsEqual(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5869 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CompareCredentialsResp_AreShaOwfsEqual, 0);
5871 return offset;
5875 rcg_dissect_struct_CompareCredentialsResp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5877 proto_item *item = NULL;
5878 proto_tree *tree = NULL;
5879 int old_offset;
5881 ALIGN_TO_4_BYTES;
5883 old_offset = offset;
5885 if (parent_tree) {
5886 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5887 tree = proto_item_add_subtree(item, ett_rcg_CompareCredentialsResp);
5890 offset = rcg_dissect_element_CompareCredentialsResp_AreNtOwfsEqual(tvb, offset, pinfo, tree, di, drep);
5892 offset = rcg_dissect_element_CompareCredentialsResp_AreLmOwfsEqual(tvb, offset, pinfo, tree, di, drep);
5894 offset = rcg_dissect_element_CompareCredentialsResp_AreShaOwfsEqual(tvb, offset, pinfo, tree, di, drep);
5897 proto_item_set_len(item, offset-old_offset);
5900 if (di->call_data->flags & DCERPC_IS_NDR64) {
5901 ALIGN_TO_4_BYTES;
5904 return offset;
5908 /* IDL: [flag(LIBNDR_FLAG_ALIGN4)] [switch_type(uint16)] union { */
5909 /* IDL: [case(RemoteCallNtlmNegotiateVersion)] [case(RemoteCallNtlmNegotiateVersion)] NegotiateVersion negotiateVersion; */
5910 /* IDL: [case(RemoteCallNtlmLm20GetNtlm3ChallengeResponse)] [case(RemoteCallNtlmLm20GetNtlm3ChallengeResponse)] Lm20GetNtlm3ChallengeResponseReq lm20GetNtlm3ChallengeResponse; */
5911 /* IDL: [case(RemoteCallNtlmCalculateNtResponse)] [case(RemoteCallNtlmCalculateNtResponse)] CalculateNtResponseReq calculateNtResponse; */
5912 /* IDL: [case(RemoteCallNtlmCalculateUserSessionKeyNt)] [case(RemoteCallNtlmCalculateUserSessionKeyNt)] CalculateUserSessionKeyNtReq calculateUserSessionKeyNt; */
5913 /* IDL: [case(RemoteCallNtlmCompareCredentials)] [case(RemoteCallNtlmCompareCredentials)] CompareCredentialsReq compareCredentials; */
5914 /* IDL: } */
5916 static int
5917 rcg_dissect_element_NtlmCredInput_negotiateVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5919 offset = rcg_dissect_struct_NegotiateVersion(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredInput_negotiateVersion,0);
5921 return offset;
5924 static int
5925 rcg_dissect_element_NtlmCredInput_lm20GetNtlm3ChallengeResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5927 offset = rcg_dissect_struct_Lm20GetNtlm3ChallengeResponseReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredInput_lm20GetNtlm3ChallengeResponse,0);
5929 return offset;
5932 static int
5933 rcg_dissect_element_NtlmCredInput_calculateNtResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5935 offset = rcg_dissect_struct_CalculateNtResponseReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredInput_calculateNtResponse,0);
5937 return offset;
5940 static int
5941 rcg_dissect_element_NtlmCredInput_calculateUserSessionKeyNt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5943 offset = rcg_dissect_struct_CalculateUserSessionKeyNtReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredInput_calculateUserSessionKeyNt,0);
5945 return offset;
5948 static int
5949 rcg_dissect_element_NtlmCredInput_compareCredentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5951 offset = rcg_dissect_struct_CompareCredentialsReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredInput_compareCredentials,0);
5953 return offset;
5956 static int
5957 rcg_dissect_NtlmCredInput(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5959 proto_item *item = NULL;
5960 proto_tree *tree = NULL;
5961 int old_offset;
5962 uint16_t level;
5964 old_offset = offset;
5965 if (parent_tree) {
5966 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_rcg_NtlmCredInput, &item, "NtlmCredInput");
5969 UNION_ALIGN_TO_4_BYTES;
5970 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
5971 UNION_ALIGN_TO_4_BYTES;
5973 switch(level) {
5974 case RemoteCallNtlmNegotiateVersion:
5975 offset = rcg_dissect_element_NtlmCredInput_negotiateVersion(tvb, offset, pinfo, tree, di, drep);
5976 break;
5978 case RemoteCallNtlmLm20GetNtlm3ChallengeResponse:
5979 offset = rcg_dissect_element_NtlmCredInput_lm20GetNtlm3ChallengeResponse(tvb, offset, pinfo, tree, di, drep);
5980 break;
5982 case RemoteCallNtlmCalculateNtResponse:
5983 offset = rcg_dissect_element_NtlmCredInput_calculateNtResponse(tvb, offset, pinfo, tree, di, drep);
5984 break;
5986 case RemoteCallNtlmCalculateUserSessionKeyNt:
5987 offset = rcg_dissect_element_NtlmCredInput_calculateUserSessionKeyNt(tvb, offset, pinfo, tree, di, drep);
5988 break;
5990 case RemoteCallNtlmCompareCredentials:
5991 offset = rcg_dissect_element_NtlmCredInput_compareCredentials(tvb, offset, pinfo, tree, di, drep);
5992 break;
5994 proto_item_set_len(item, offset-old_offset);
5997 return offset;
6000 /* IDL: struct { */
6001 /* IDL: RemoteGuardCallId CallId; */
6002 /* IDL: [switch_is(CallId)] [switch_type(RemoteGuardCallId)] NtlmCredInput callUnion; */
6003 /* IDL: } */
6005 static int
6006 rcg_dissect_element_NtlmCredIsoRemoteInput_CallId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t *CallId)
6008 offset = rcg_dissect_enum_RemoteGuardCallId(tvb, offset, pinfo, tree, di, drep, hf_rcg_NtlmCredIsoRemoteInput_CallId, CallId);
6010 return offset;
6013 static int
6014 rcg_dissect_element_NtlmCredIsoRemoteInput_callUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t CallId)
6016 offset = rcg_dissect_NtlmCredInput(tvb, offset, pinfo, tree, di, drep, hf_rcg_NtlmCredIsoRemoteInput_callUnion, CallId);
6018 return offset;
6022 /* IDL: [flag(LIBNDR_FLAG_ALIGN4)] [switch_type(uint16)] union { */
6023 /* IDL: [case(RemoteCallNtlmNegotiateVersion)] [case(RemoteCallNtlmNegotiateVersion)] NegotiateVersion negotiateVersion; */
6024 /* IDL: [case(RemoteCallNtlmLm20GetNtlm3ChallengeResponse)] [case(RemoteCallNtlmLm20GetNtlm3ChallengeResponse)] Lm20GetNtlm3ChallengeResponseResp lm20GetNtlm3ChallengeResponse; */
6025 /* IDL: [case(RemoteCallNtlmCalculateNtResponse)] [case(RemoteCallNtlmCalculateNtResponse)] CalculateNtResponseResp calculateNtResponse; */
6026 /* IDL: [case(RemoteCallNtlmCalculateUserSessionKeyNt)] [case(RemoteCallNtlmCalculateUserSessionKeyNt)] CalculateUserSessionKeyNtResp calculateUserSessionKeyNt; */
6027 /* IDL: [case(RemoteCallNtlmCompareCredentials)] [case(RemoteCallNtlmCompareCredentials)] CompareCredentialsResp compareCredentials; */
6028 /* IDL: } */
6030 static int
6031 rcg_dissect_element_NtlmCredOutput_negotiateVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6033 offset = rcg_dissect_struct_NegotiateVersion(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredOutput_negotiateVersion,0);
6035 return offset;
6038 static int
6039 rcg_dissect_element_NtlmCredOutput_lm20GetNtlm3ChallengeResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6041 offset = rcg_dissect_struct_Lm20GetNtlm3ChallengeResponseResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredOutput_lm20GetNtlm3ChallengeResponse,0);
6043 return offset;
6046 static int
6047 rcg_dissect_element_NtlmCredOutput_calculateNtResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6049 offset = rcg_dissect_struct_CalculateNtResponseResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredOutput_calculateNtResponse,0);
6051 return offset;
6054 static int
6055 rcg_dissect_element_NtlmCredOutput_calculateUserSessionKeyNt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6057 offset = rcg_dissect_struct_CalculateUserSessionKeyNtResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredOutput_calculateUserSessionKeyNt,0);
6059 return offset;
6062 static int
6063 rcg_dissect_element_NtlmCredOutput_compareCredentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6065 offset = rcg_dissect_struct_CompareCredentialsResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredOutput_compareCredentials,0);
6067 return offset;
6070 static int
6071 rcg_dissect_NtlmCredOutput(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
6073 proto_item *item = NULL;
6074 proto_tree *tree = NULL;
6075 int old_offset;
6076 uint16_t level;
6078 old_offset = offset;
6079 if (parent_tree) {
6080 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_rcg_NtlmCredOutput, &item, "NtlmCredOutput");
6083 UNION_ALIGN_TO_4_BYTES;
6084 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
6085 UNION_ALIGN_TO_4_BYTES;
6087 switch(level) {
6088 case RemoteCallNtlmNegotiateVersion:
6089 offset = rcg_dissect_element_NtlmCredOutput_negotiateVersion(tvb, offset, pinfo, tree, di, drep);
6090 break;
6092 case RemoteCallNtlmLm20GetNtlm3ChallengeResponse:
6093 offset = rcg_dissect_element_NtlmCredOutput_lm20GetNtlm3ChallengeResponse(tvb, offset, pinfo, tree, di, drep);
6094 break;
6096 case RemoteCallNtlmCalculateNtResponse:
6097 offset = rcg_dissect_element_NtlmCredOutput_calculateNtResponse(tvb, offset, pinfo, tree, di, drep);
6098 break;
6100 case RemoteCallNtlmCalculateUserSessionKeyNt:
6101 offset = rcg_dissect_element_NtlmCredOutput_calculateUserSessionKeyNt(tvb, offset, pinfo, tree, di, drep);
6102 break;
6104 case RemoteCallNtlmCompareCredentials:
6105 offset = rcg_dissect_element_NtlmCredOutput_compareCredentials(tvb, offset, pinfo, tree, di, drep);
6106 break;
6108 proto_item_set_len(item, offset-old_offset);
6111 return offset;
6114 /* IDL: struct { */
6115 /* IDL: RemoteGuardCallId CallId; */
6116 /* IDL: NTSTATUS Status; */
6117 /* IDL: [switch_is(CallId)] [switch_type(RemoteGuardCallId)] NtlmCredOutput callUnion; */
6118 /* IDL: } */
6120 static int
6121 rcg_dissect_element_NtlmCredIsoRemoteOutput_CallId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t *CallId)
6123 offset = rcg_dissect_enum_RemoteGuardCallId(tvb, offset, pinfo, tree, di, drep, hf_rcg_NtlmCredIsoRemoteOutput_CallId, CallId);
6125 return offset;
6128 static int
6129 rcg_dissect_element_NtlmCredIsoRemoteOutput_Status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
6131 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_NtlmCredIsoRemoteOutput_Status, 0);
6133 return offset;
6136 static int
6137 rcg_dissect_element_NtlmCredIsoRemoteOutput_callUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, uint16_t CallId)
6139 offset = rcg_dissect_NtlmCredOutput(tvb, offset, pinfo, tree, di, drep, hf_rcg_NtlmCredIsoRemoteOutput_callUnion, CallId);
6141 return offset;
6145 static const dcerpc_sub_dissector rcg_dissectors[] = {
6146 { 0, NULL, NULL, NULL }
6149 void proto_register_dcerpc_rcg(void)
6151 static hf_register_info hf[] = {
6152 { &hf_KERB_RPC_ENCRYPTION_KEY_reserved1,
6153 { "Reserved1", "rcg.KERB_RPC_ENCRYPTION_KEY.reserved1", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
6154 { &hf_KERB_RPC_ENCRYPTION_KEY_reserved2,
6155 { "Encoding type", "rcg.KERB_RPC_ENCRYPTION_KEY.reserved2", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
6156 { &hf_rcg_BuildAsReqAuthenticatorReq_ArmorKey,
6157 { "ArmorKey", "rcg.BuildAsReqAuthenticatorReq.ArmorKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6158 { &hf_rcg_BuildAsReqAuthenticatorReq_EncryptionKey,
6159 { "EncryptionKey", "rcg.BuildAsReqAuthenticatorReq.EncryptionKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6160 { &hf_rcg_BuildAsReqAuthenticatorReq_TimeSkew,
6161 { "TimeSkew", "rcg.BuildAsReqAuthenticatorReq.TimeSkew", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6162 { &hf_rcg_BuildAsReqAuthenticatorResp_PreauthData,
6163 { "PreauthData", "rcg.BuildAsReqAuthenticatorResp.PreauthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6164 { &hf_rcg_BuildAsReqAuthenticatorResp_PreauthDataType,
6165 { "PreauthDataType", "rcg.BuildAsReqAuthenticatorResp.PreauthDataType", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6166 { &hf_rcg_BuildEncryptedAuthDataReq_Key,
6167 { "Key", "rcg.BuildEncryptedAuthDataReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6168 { &hf_rcg_BuildEncryptedAuthDataReq_KeyUsage,
6169 { "KeyUsage", "rcg.BuildEncryptedAuthDataReq.KeyUsage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6170 { &hf_rcg_BuildEncryptedAuthDataReq_PlainAuthData,
6171 { "PlainAuthData", "rcg.BuildEncryptedAuthDataReq.PlainAuthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6172 { &hf_rcg_BuildEncryptedAuthDataResp_EncryptedAuthData,
6173 { "EncryptedAuthData", "rcg.BuildEncryptedAuthDataResp.EncryptedAuthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6174 { &hf_rcg_CalculateNtResponseReq_Credential,
6175 { "Credential", "rcg.CalculateNtResponseReq.Credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6176 { &hf_rcg_CalculateNtResponseReq_NtChallenge,
6177 { "NtChallenge", "rcg.CalculateNtResponseReq.NtChallenge", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6178 { &hf_rcg_CalculateNtResponseResp_NtResponse,
6179 { "NtResponse", "rcg.CalculateNtResponseResp.NtResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6180 { &hf_rcg_CalculateUserSessionKeyNtReq_Credential,
6181 { "Credential", "rcg.CalculateUserSessionKeyNtReq.Credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6182 { &hf_rcg_CalculateUserSessionKeyNtReq_NtResponse,
6183 { "NtResponse", "rcg.CalculateUserSessionKeyNtReq.NtResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6184 { &hf_rcg_CalculateUserSessionKeyNtResp_UserSessionKey,
6185 { "UserSessionKey", "rcg.CalculateUserSessionKeyNtResp.UserSessionKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6186 { &hf_rcg_CompareCredentialsReq_LhsCredential,
6187 { "LhsCredential", "rcg.CompareCredentialsReq.LhsCredential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6188 { &hf_rcg_CompareCredentialsReq_RhsCredential,
6189 { "RhsCredential", "rcg.CompareCredentialsReq.RhsCredential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6190 { &hf_rcg_CompareCredentialsResp_AreLmOwfsEqual,
6191 { "AreLmOwfsEqual", "rcg.CompareCredentialsResp.AreLmOwfsEqual", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6192 { &hf_rcg_CompareCredentialsResp_AreNtOwfsEqual,
6193 { "AreNtOwfsEqual", "rcg.CompareCredentialsResp.AreNtOwfsEqual", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6194 { &hf_rcg_CompareCredentialsResp_AreShaOwfsEqual,
6195 { "AreShaOwfsEqual", "rcg.CompareCredentialsResp.AreShaOwfsEqual", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6196 { &hf_rcg_ComputeTgsChecksumReq_ChecksumType,
6197 { "ChecksumType", "rcg.ComputeTgsChecksumReq.ChecksumType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6198 { &hf_rcg_ComputeTgsChecksumReq_Key,
6199 { "Key", "rcg.ComputeTgsChecksumReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6200 { &hf_rcg_ComputeTgsChecksumReq_RequestBody,
6201 { "RequestBody", "rcg.ComputeTgsChecksumReq.RequestBody", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6202 { &hf_rcg_ComputeTgsChecksumResp_Checksum,
6203 { "Checksum", "rcg.ComputeTgsChecksumResp.Checksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6204 { &hf_rcg_CreateApReqAuthenticatorReq_AuthData,
6205 { "AuthData", "rcg.CreateApReqAuthenticatorReq.AuthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6206 { &hf_rcg_CreateApReqAuthenticatorReq_ClientName,
6207 { "ClientName", "rcg.CreateApReqAuthenticatorReq.ClientName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6208 { &hf_rcg_CreateApReqAuthenticatorReq_ClientRealm,
6209 { "ClientRealm", "rcg.CreateApReqAuthenticatorReq.ClientRealm", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6210 { &hf_rcg_CreateApReqAuthenticatorReq_EncryptionKey,
6211 { "EncryptionKey", "rcg.CreateApReqAuthenticatorReq.EncryptionKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6212 { &hf_rcg_CreateApReqAuthenticatorReq_GssChecksum,
6213 { "GssChecksum", "rcg.CreateApReqAuthenticatorReq.GssChecksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6214 { &hf_rcg_CreateApReqAuthenticatorReq_KeyUsage,
6215 { "KeyUsage", "rcg.CreateApReqAuthenticatorReq.KeyUsage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6216 { &hf_rcg_CreateApReqAuthenticatorReq_SequenceNumber,
6217 { "SequenceNumber", "rcg.CreateApReqAuthenticatorReq.SequenceNumber", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6218 { &hf_rcg_CreateApReqAuthenticatorReq_SkewTime,
6219 { "SkewTime", "rcg.CreateApReqAuthenticatorReq.SkewTime", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6220 { &hf_rcg_CreateApReqAuthenticatorReq_SubKey,
6221 { "SubKey", "rcg.CreateApReqAuthenticatorReq.SubKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6222 { &hf_rcg_CreateApReqAuthenticatorResp_Authenticator,
6223 { "Authenticator", "rcg.CreateApReqAuthenticatorResp.Authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6224 { &hf_rcg_CreateApReqAuthenticatorResp_AuthenticatorTime,
6225 { "AuthenticatorTime", "rcg.CreateApReqAuthenticatorResp.AuthenticatorTime", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6226 { &hf_rcg_CreateApReqAuthenticatorResp_KerbProtocolError,
6227 { "KerbProtocolError", "rcg.CreateApReqAuthenticatorResp.KerbProtocolError", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6228 { &hf_rcg_CreateDHKeyAgreementReq_Ignored,
6229 { "Ignored", "rcg.CreateDHKeyAgreementReq.Ignored", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6230 { &hf_rcg_CreateDHKeyAgreementResp_FactorQ,
6231 { "FactorQ", "rcg.CreateDHKeyAgreementResp.FactorQ", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6232 { &hf_rcg_CreateDHKeyAgreementResp_GeneratorG,
6233 { "GeneratorG", "rcg.CreateDHKeyAgreementResp.GeneratorG", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6234 { &hf_rcg_CreateDHKeyAgreementResp_KerbErr,
6235 { "KerbErr", "rcg.CreateDHKeyAgreementResp.KerbErr", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6236 { &hf_rcg_CreateDHKeyAgreementResp_KeyAgreementHandle,
6237 { "KeyAgreementHandle", "rcg.CreateDHKeyAgreementResp.KeyAgreementHandle", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
6238 { &hf_rcg_CreateDHKeyAgreementResp_LittleEndianPublicKey,
6239 { "LittleEndianPublicKey", "rcg.CreateDHKeyAgreementResp.LittleEndianPublicKey", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6240 { &hf_rcg_CreateDHKeyAgreementResp_LittleEndianPublicKeyLen,
6241 { "LittleEndianPublicKeyLen", "rcg.CreateDHKeyAgreementResp.LittleEndianPublicKeyLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6242 { &hf_rcg_CreateDHKeyAgreementResp_ModulusP,
6243 { "ModulusP", "rcg.CreateDHKeyAgreementResp.ModulusP", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6244 { &hf_rcg_CreateECDHKeyAgreementReq_KeyBitLen,
6245 { "KeyBitLen", "rcg.CreateECDHKeyAgreementReq.KeyBitLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6246 { &hf_rcg_CreateECDHKeyAgreementResp_EncodedPubKey,
6247 { "EncodedPubKey", "rcg.CreateECDHKeyAgreementResp.EncodedPubKey", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6248 { &hf_rcg_CreateECDHKeyAgreementResp_EncodedPubKeyLen,
6249 { "EncodedPubKeyLen", "rcg.CreateECDHKeyAgreementResp.EncodedPubKeyLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6250 { &hf_rcg_CreateECDHKeyAgreementResp_KerbErr,
6251 { "KerbErr", "rcg.CreateECDHKeyAgreementResp.KerbErr", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6252 { &hf_rcg_CreateECDHKeyAgreementResp_KeyAgreementHandle,
6253 { "KeyAgreementHandle", "rcg.CreateECDHKeyAgreementResp.KeyAgreementHandle", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
6254 { &hf_rcg_DecryptApReplyReq_EncryptedReply,
6255 { "EncryptedReply", "rcg.DecryptApReplyReq.EncryptedReply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6256 { &hf_rcg_DecryptApReplyReq_Key,
6257 { "Key", "rcg.DecryptApReplyReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6258 { &hf_rcg_DecryptApReplyResp_ApReply,
6259 { "ApReply", "rcg.DecryptApReplyResp.ApReply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6260 { &hf_rcg_DecryptPacCredentialsReq_Data,
6261 { "Data", "rcg.DecryptPacCredentialsReq.Data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6262 { &hf_rcg_DecryptPacCredentialsReq_DataSize,
6263 { "DataSize", "rcg.DecryptPacCredentialsReq.DataSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6264 { &hf_rcg_DecryptPacCredentialsReq_EncryptionType,
6265 { "EncryptionType", "rcg.DecryptPacCredentialsReq.EncryptionType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6266 { &hf_rcg_DecryptPacCredentialsReq_Key,
6267 { "Key", "rcg.DecryptPacCredentialsReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6268 { &hf_rcg_DecryptPacCredentialsReq_Version,
6269 { "Version", "rcg.DecryptPacCredentialsReq.Version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6270 { &hf_rcg_DecryptPacCredentialsResp_Credentials,
6271 { "Credentials", "rcg.DecryptPacCredentialsResp.Credentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6272 { &hf_rcg_DestroyKeyAgreementReq_KeyAgreementHandle,
6273 { "KeyAgreementHandle", "rcg.DestroyKeyAgreementReq.KeyAgreementHandle", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
6274 { &hf_rcg_DestroyKeyAgreementResp_Ignored,
6275 { "Ignored", "rcg.DestroyKeyAgreementResp.Ignored", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6276 { &hf_rcg_FinalizeKeyAgreementReq_KerbEType,
6277 { "KerbEType", "rcg.FinalizeKeyAgreementReq.KerbEType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6278 { &hf_rcg_FinalizeKeyAgreementReq_KeyAgreementHandle,
6279 { "KeyAgreementHandle", "rcg.FinalizeKeyAgreementReq.KeyAgreementHandle", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
6280 { &hf_rcg_FinalizeKeyAgreementReq_RemoteNonce,
6281 { "RemoteNonce", "rcg.FinalizeKeyAgreementReq.RemoteNonce", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6282 { &hf_rcg_FinalizeKeyAgreementReq_RemoteNonceLen,
6283 { "RemoteNonceLen", "rcg.FinalizeKeyAgreementReq.RemoteNonceLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6284 { &hf_rcg_FinalizeKeyAgreementReq_X509PublicKey,
6285 { "X509PublicKey", "rcg.FinalizeKeyAgreementReq.X509PublicKey", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6286 { &hf_rcg_FinalizeKeyAgreementReq_X509PublicKeyLen,
6287 { "X509PublicKeyLen", "rcg.FinalizeKeyAgreementReq.X509PublicKeyLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6288 { &hf_rcg_FinalizeKeyAgreementResp_SharedKey,
6289 { "SharedKey", "rcg.FinalizeKeyAgreementResp.SharedKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6290 { &hf_rcg_HashS4UPreauthReq_ChecksumType,
6291 { "ChecksumType", "rcg.HashS4UPreauthReq.ChecksumType", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6292 { &hf_rcg_HashS4UPreauthReq_Key,
6293 { "Key", "rcg.HashS4UPreauthReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6294 { &hf_rcg_HashS4UPreauthReq_S4UPreauth,
6295 { "S4UPreauth", "rcg.HashS4UPreauthReq.S4UPreauth", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6296 { &hf_rcg_HashS4UPreauthResp_ChecksumSize,
6297 { "ChecksumSize", "rcg.HashS4UPreauthResp.ChecksumSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6298 { &hf_rcg_HashS4UPreauthResp_ChecksumValue,
6299 { "ChecksumValue", "rcg.HashS4UPreauthResp.ChecksumValue", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6300 { &hf_rcg_KERB_ASN1_DATA_Asn1Buffer,
6301 { "Asn1Buffer", "rcg.KERB_ASN1_DATA.Asn1Buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6302 { &hf_rcg_KERB_ASN1_DATA_CHECKSUM_Length,
6303 { "Length", "rcg.KERB_ASN1_DATA_CHECKSUM.Length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6304 { &hf_rcg_KERB_ASN1_DATA_CHECKSUM_Pdu,
6305 { "Pdu", "rcg.KERB_ASN1_DATA_CHECKSUM.Pdu", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6306 { &hf_rcg_KERB_ASN1_DATA_CHECKSUM_checksum,
6307 { "Checksum", "rcg.KERB_ASN1_DATA_CHECKSUM.checksum", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6308 { &hf_rcg_KERB_ASN1_DATA_Length,
6309 { "Length", "rcg.KERB_ASN1_DATA.Length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6310 { &hf_rcg_KERB_ASN1_DATA_Pdu,
6311 { "Pdu", "rcg.KERB_ASN1_DATA.Pdu", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6312 { &hf_rcg_KERB_RPC_CRYPTO_API_BLOB_cbData,
6313 { "CbData", "rcg.KERB_RPC_CRYPTO_API_BLOB.cbData", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6314 { &hf_rcg_KERB_RPC_CRYPTO_API_BLOB_pbData,
6315 { "PbData", "rcg.KERB_RPC_CRYPTO_API_BLOB.pbData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6316 { &hf_rcg_KERB_RPC_ENCRYPTION_KEY_reserved3,
6317 { "Reserved3", "rcg.KERB_RPC_ENCRYPTION_KEY.reserved3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6318 { &hf_rcg_KERB_RPC_INTERNAL_NAME_NameCount,
6319 { "NameCount", "rcg.KERB_RPC_INTERNAL_NAME.NameCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
6320 { &hf_rcg_KERB_RPC_INTERNAL_NAME_NameType,
6321 { "NameType", "rcg.KERB_RPC_INTERNAL_NAME.NameType", FT_INT16, BASE_DEC, NULL, 0, NULL, HFILL }},
6322 { &hf_rcg_KERB_RPC_INTERNAL_NAME_Names,
6323 { "Names", "rcg.KERB_RPC_INTERNAL_NAME.Names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6324 { &hf_rcg_KERB_RPC_OCTET_STRING_length,
6325 { "Length", "rcg.KERB_RPC_OCTET_STRING.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6326 { &hf_rcg_KERB_RPC_OCTET_STRING_value,
6327 { "Value", "rcg.KERB_RPC_OCTET_STRING.value", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6328 { &hf_rcg_KERB_RPC_PA_DATA_preauth_data,
6329 { "Preauth Data", "rcg.KERB_RPC_PA_DATA.preauth_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6330 { &hf_rcg_KERB_RPC_PA_DATA_preauth_data_type,
6331 { "Preauth Data Type", "rcg.KERB_RPC_PA_DATA.preauth_data_type", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6332 { &hf_rcg_KerbCredIsoRemoteInput_CallId,
6333 { "CallId", "rcg.KerbCredIsoRemoteInput.CallId", FT_UINT16, BASE_DEC, VALS(rcg_RemoteGuardCallId_vals), 0, NULL, HFILL }},
6334 { &hf_rcg_KerbCredIsoRemoteInput_callUnion,
6335 { "CallUnion", "rcg.KerbCredIsoRemoteInput.callUnion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6336 { &hf_rcg_KerbCredIsoRemoteOutput_CallId,
6337 { "CallId", "rcg.KerbCredIsoRemoteOutput.CallId", FT_UINT16, BASE_DEC, VALS(rcg_RemoteGuardCallId_vals), 0, NULL, HFILL }},
6338 { &hf_rcg_KerbCredIsoRemoteOutput_Status,
6339 { "Status", "rcg.KerbCredIsoRemoteOutput.Status", FT_UINT32, BASE_HEX|BASE_EXT_STRING, &NT_errors_ext, 0, NULL, HFILL }},
6340 { &hf_rcg_KerbCredIsoRemoteOutput_callUnion,
6341 { "CallUnion", "rcg.KerbCredIsoRemoteOutput.callUnion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6342 { &hf_rcg_KerbInputUnion_buildAsReqAuthenticator,
6343 { "BuildAsReqAuthenticator", "rcg.KerbInputUnion.buildAsReqAuthenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6344 { &hf_rcg_KerbInputUnion_buildEncryptedAuthData,
6345 { "BuildEncryptedAuthData", "rcg.KerbInputUnion.buildEncryptedAuthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6346 { &hf_rcg_KerbInputUnion_computeTgsChecksum,
6347 { "ComputeTgsChecksum", "rcg.KerbInputUnion.computeTgsChecksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6348 { &hf_rcg_KerbInputUnion_createApReqAuthenticator,
6349 { "CreateApReqAuthenticator", "rcg.KerbInputUnion.createApReqAuthenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6350 { &hf_rcg_KerbInputUnion_createDHKeyAgreement,
6351 { "CreateDHKeyAgreement", "rcg.KerbInputUnion.createDHKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6352 { &hf_rcg_KerbInputUnion_createECDHKeyAgreement,
6353 { "CreateECDHKeyAgreement", "rcg.KerbInputUnion.createECDHKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6354 { &hf_rcg_KerbInputUnion_decryptApReply,
6355 { "DecryptApReply", "rcg.KerbInputUnion.decryptApReply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6356 { &hf_rcg_KerbInputUnion_decryptPacCredentials,
6357 { "DecryptPacCredentials", "rcg.KerbInputUnion.decryptPacCredentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6358 { &hf_rcg_KerbInputUnion_destroyKeyAgreement,
6359 { "DestroyKeyAgreement", "rcg.KerbInputUnion.destroyKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6360 { &hf_rcg_KerbInputUnion_finalizeKeyAgreement,
6361 { "FinalizeKeyAgreement", "rcg.KerbInputUnion.finalizeKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6362 { &hf_rcg_KerbInputUnion_hashS4UPreauth,
6363 { "HashS4UPreauth", "rcg.KerbInputUnion.hashS4UPreauth", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6364 { &hf_rcg_KerbInputUnion_keyAgreementGenerateNonce,
6365 { "KeyAgreementGenerateNonce", "rcg.KerbInputUnion.keyAgreementGenerateNonce", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6366 { &hf_rcg_KerbInputUnion_negociateVersion,
6367 { "NegociateVersion", "rcg.KerbInputUnion.negociateVersion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6368 { &hf_rcg_KerbInputUnion_packApReply,
6369 { "PackApReply", "rcg.KerbInputUnion.packApReply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6370 { &hf_rcg_KerbInputUnion_signS4UPreauthData,
6371 { "SignS4UPreauthData", "rcg.KerbInputUnion.signS4UPreauthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6372 { &hf_rcg_KerbInputUnion_unpackKdcReplyBody,
6373 { "UnpackKdcReplyBody", "rcg.KerbInputUnion.unpackKdcReplyBody", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6374 { &hf_rcg_KerbInputUnion_verifyChecksum,
6375 { "VerifyChecksum", "rcg.KerbInputUnion.verifyChecksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6376 { &hf_rcg_KerbInputUnion_verifyServiceTicket,
6377 { "VerifyServiceTicket", "rcg.KerbInputUnion.verifyServiceTicket", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6378 { &hf_rcg_KerbOutputUnion_buildAsReqAuthenticator,
6379 { "BuildAsReqAuthenticator", "rcg.KerbOutputUnion.buildAsReqAuthenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6380 { &hf_rcg_KerbOutputUnion_buildEncryptedAuthData,
6381 { "BuildEncryptedAuthData", "rcg.KerbOutputUnion.buildEncryptedAuthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6382 { &hf_rcg_KerbOutputUnion_computeTgsChecksum,
6383 { "ComputeTgsChecksum", "rcg.KerbOutputUnion.computeTgsChecksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6384 { &hf_rcg_KerbOutputUnion_createApReqAuthenticator,
6385 { "CreateApReqAuthenticator", "rcg.KerbOutputUnion.createApReqAuthenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6386 { &hf_rcg_KerbOutputUnion_createDHKeyAgreement,
6387 { "CreateDHKeyAgreement", "rcg.KerbOutputUnion.createDHKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6388 { &hf_rcg_KerbOutputUnion_createECDHKeyAgreement,
6389 { "CreateECDHKeyAgreement", "rcg.KerbOutputUnion.createECDHKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6390 { &hf_rcg_KerbOutputUnion_decryptApReply,
6391 { "DecryptApReply", "rcg.KerbOutputUnion.decryptApReply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6392 { &hf_rcg_KerbOutputUnion_decryptPacCredentials,
6393 { "DecryptPacCredentials", "rcg.KerbOutputUnion.decryptPacCredentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6394 { &hf_rcg_KerbOutputUnion_destroyKeyAgreement,
6395 { "DestroyKeyAgreement", "rcg.KerbOutputUnion.destroyKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6396 { &hf_rcg_KerbOutputUnion_finalizeKeyAgreement,
6397 { "FinalizeKeyAgreement", "rcg.KerbOutputUnion.finalizeKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6398 { &hf_rcg_KerbOutputUnion_hashS4UPreauth,
6399 { "HashS4UPreauth", "rcg.KerbOutputUnion.hashS4UPreauth", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6400 { &hf_rcg_KerbOutputUnion_keyAgreementGenerateNonce,
6401 { "KeyAgreementGenerateNonce", "rcg.KerbOutputUnion.keyAgreementGenerateNonce", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6402 { &hf_rcg_KerbOutputUnion_negociateVersion,
6403 { "NegociateVersion", "rcg.KerbOutputUnion.negociateVersion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6404 { &hf_rcg_KerbOutputUnion_packApReply,
6405 { "PackApReply", "rcg.KerbOutputUnion.packApReply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6406 { &hf_rcg_KerbOutputUnion_signS4UPreauthData,
6407 { "SignS4UPreauthData", "rcg.KerbOutputUnion.signS4UPreauthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6408 { &hf_rcg_KerbOutputUnion_unpackKdcReplyBody,
6409 { "UnpackKdcReplyBody", "rcg.KerbOutputUnion.unpackKdcReplyBody", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6410 { &hf_rcg_KerbOutputUnion_verifyChecksum,
6411 { "VerifyChecksum", "rcg.KerbOutputUnion.verifyChecksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6412 { &hf_rcg_KerbOutputUnion_verifyServiceTicket,
6413 { "VerifyServiceTicket", "rcg.KerbOutputUnion.verifyServiceTicket", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6414 { &hf_rcg_KeyAgreementGenerateNonceReq_KeyAgreementHandle,
6415 { "KeyAgreementHandle", "rcg.KeyAgreementGenerateNonceReq.KeyAgreementHandle", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
6416 { &hf_rcg_KeyAgreementGenerateNonceResp_Nonce,
6417 { "Nonce", "rcg.KeyAgreementGenerateNonceResp.Nonce", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6418 { &hf_rcg_KeyAgreementGenerateNonceResp_NonceLen,
6419 { "NonceLen", "rcg.KeyAgreementGenerateNonceResp.NonceLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6420 { &hf_rcg_LARGE_INTEGER_QuadPart,
6421 { "QuadPart", "rcg.LARGE_INTEGER.QuadPart", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
6422 { &hf_rcg_Lm20GetNtlm3ChallengeResponseReq_Credential,
6423 { "Credential", "rcg.Lm20GetNtlm3ChallengeResponseReq.Credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6424 { &hf_rcg_Lm20GetNtlm3ChallengeResponseReq_LogonDomainName,
6425 { "LogonDomainName", "rcg.Lm20GetNtlm3ChallengeResponseReq.LogonDomainName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6426 { &hf_rcg_Lm20GetNtlm3ChallengeResponseReq_ServerName,
6427 { "ServerName", "rcg.Lm20GetNtlm3ChallengeResponseReq.ServerName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6428 { &hf_rcg_Lm20GetNtlm3ChallengeResponseReq_UserName,
6429 { "UserName", "rcg.Lm20GetNtlm3ChallengeResponseReq.UserName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6430 { &hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Lm3Response,
6431 { "Lm3Response", "rcg.Lm20GetNtlm3ChallengeResponseResp.Lm3Response", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6432 { &hf_rcg_Lm20GetNtlm3ChallengeResponseResp_LmSessionKey,
6433 { "LmSessionKey", "rcg.Lm20GetNtlm3ChallengeResponseResp.LmSessionKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6434 { &hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response,
6435 { "Ntlm3Response", "rcg.Lm20GetNtlm3ChallengeResponseResp.Ntlm3Response", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6436 { &hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Ntlm3ResponseLength,
6437 { "Ntlm3ResponseLength", "rcg.Lm20GetNtlm3ChallengeResponseResp.Ntlm3ResponseLength", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
6438 { &hf_rcg_Lm20GetNtlm3ChallengeResponseResp_UserSessionKey,
6439 { "UserSessionKey", "rcg.Lm20GetNtlm3ChallengeResponseResp.UserSessionKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6440 { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved1,
6441 { "Reserved1", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reserved1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6442 { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved2,
6443 { "Reserved2", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6444 { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved3,
6445 { "Reserved3", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reserved3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6446 { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved4,
6447 { "Reserved4", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reserved4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6448 { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved5,
6449 { "Reserved5", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reserved5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6450 { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6,
6451 { "Reserved6", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reserved6", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6452 { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reservedSize,
6453 { "ReservedSize", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reservedSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6454 { &hf_rcg_NegotiateVersion_MaxSupportedVersion,
6455 { "MaxSupportedVersion", "rcg.NegotiateVersion.MaxSupportedVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6456 { &hf_rcg_NtlmCredInput_calculateNtResponse,
6457 { "CalculateNtResponse", "rcg.NtlmCredInput.calculateNtResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6458 { &hf_rcg_NtlmCredInput_calculateUserSessionKeyNt,
6459 { "CalculateUserSessionKeyNt", "rcg.NtlmCredInput.calculateUserSessionKeyNt", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6460 { &hf_rcg_NtlmCredInput_compareCredentials,
6461 { "CompareCredentials", "rcg.NtlmCredInput.compareCredentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6462 { &hf_rcg_NtlmCredInput_lm20GetNtlm3ChallengeResponse,
6463 { "Lm20GetNtlm3ChallengeResponse", "rcg.NtlmCredInput.lm20GetNtlm3ChallengeResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6464 { &hf_rcg_NtlmCredInput_negotiateVersion,
6465 { "NegotiateVersion", "rcg.NtlmCredInput.negotiateVersion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6466 { &hf_rcg_NtlmCredIsoRemoteInput_CallId,
6467 { "CallId", "rcg.NtlmCredIsoRemoteInput.CallId", FT_UINT16, BASE_DEC, VALS(rcg_RemoteGuardCallId_vals), 0, NULL, HFILL }},
6468 { &hf_rcg_NtlmCredIsoRemoteInput_callUnion,
6469 { "CallUnion", "rcg.NtlmCredIsoRemoteInput.callUnion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6470 { &hf_rcg_NtlmCredIsoRemoteOutput_CallId,
6471 { "CallId", "rcg.NtlmCredIsoRemoteOutput.CallId", FT_UINT16, BASE_DEC, VALS(rcg_RemoteGuardCallId_vals), 0, NULL, HFILL }},
6472 { &hf_rcg_NtlmCredIsoRemoteOutput_Status,
6473 { "Status", "rcg.NtlmCredIsoRemoteOutput.Status", FT_UINT32, BASE_HEX|BASE_EXT_STRING, &NT_errors_ext, 0, NULL, HFILL }},
6474 { &hf_rcg_NtlmCredIsoRemoteOutput_callUnion,
6475 { "CallUnion", "rcg.NtlmCredIsoRemoteOutput.callUnion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6476 { &hf_rcg_NtlmCredOutput_calculateNtResponse,
6477 { "CalculateNtResponse", "rcg.NtlmCredOutput.calculateNtResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6478 { &hf_rcg_NtlmCredOutput_calculateUserSessionKeyNt,
6479 { "CalculateUserSessionKeyNt", "rcg.NtlmCredOutput.calculateUserSessionKeyNt", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6480 { &hf_rcg_NtlmCredOutput_compareCredentials,
6481 { "CompareCredentials", "rcg.NtlmCredOutput.compareCredentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6482 { &hf_rcg_NtlmCredOutput_lm20GetNtlm3ChallengeResponse,
6483 { "Lm20GetNtlm3ChallengeResponse", "rcg.NtlmCredOutput.lm20GetNtlm3ChallengeResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6484 { &hf_rcg_NtlmCredOutput_negotiateVersion,
6485 { "NegotiateVersion", "rcg.NtlmCredOutput.negotiateVersion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6486 { &hf_rcg_PackApReplyReq_Reply,
6487 { "Reply", "rcg.PackApReplyReq.Reply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6488 { &hf_rcg_PackApReplyReq_ReplyBody,
6489 { "ReplyBody", "rcg.PackApReplyReq.ReplyBody", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6490 { &hf_rcg_PackApReplyReq_SessionKey,
6491 { "SessionKey", "rcg.PackApReplyReq.SessionKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6492 { &hf_rcg_PackApReplyResp_PackedReply,
6493 { "PackedReply", "rcg.PackApReplyResp.PackedReply", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6494 { &hf_rcg_PackApReplyResp_PackedReplySize,
6495 { "PackedReplySize", "rcg.PackApReplyResp.PackedReplySize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6496 { &hf_rcg_RPC_UNICODE_STRING_Buffer,
6497 { "Buffer", "rcg.RPC_UNICODE_STRING.Buffer", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
6498 { &hf_rcg_RPC_UNICODE_STRING_Length,
6499 { "Length", "rcg.RPC_UNICODE_STRING.Length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
6500 { &hf_rcg_RPC_UNICODE_STRING_MaximumLength,
6501 { "MaximumLength", "rcg.RPC_UNICODE_STRING.MaximumLength", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
6502 { &hf_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY_CredentialCount,
6503 { "CredentialCount", "rcg.SECPKG_SUPPLEMENTAL_CRED_ARRAY.CredentialCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6504 { &hf_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY_Credentials,
6505 { "Credentials", "rcg.SECPKG_SUPPLEMENTAL_CRED_ARRAY.Credentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6506 { &hf_rcg_SECPKG_SUPPLEMENTAL_CRED_CredentialSize,
6507 { "CredentialSize", "rcg.SECPKG_SUPPLEMENTAL_CRED.CredentialSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6508 { &hf_rcg_SECPKG_SUPPLEMENTAL_CRED_Credentials,
6509 { "Credentials", "rcg.SECPKG_SUPPLEMENTAL_CRED.Credentials", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6510 { &hf_rcg_SECPKG_SUPPLEMENTAL_CRED_PackageName,
6511 { "PackageName", "rcg.SECPKG_SUPPLEMENTAL_CRED.PackageName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6512 { &hf_rcg_SignS4UPreauthDataReq_ChecksumType,
6513 { "ChecksumType", "rcg.SignS4UPreauthDataReq.ChecksumType", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6514 { &hf_rcg_SignS4UPreauthDataReq_IsRequest,
6515 { "IsRequest", "rcg.SignS4UPreauthDataReq.IsRequest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6516 { &hf_rcg_SignS4UPreauthDataReq_Key,
6517 { "Key", "rcg.SignS4UPreauthDataReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6518 { &hf_rcg_SignS4UPreauthDataReq_UserId,
6519 { "UserId", "rcg.SignS4UPreauthDataReq.UserId", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6520 { &hf_rcg_SignS4UPreauthDataResp_ChecksumSize,
6521 { "ChecksumSize", "rcg.SignS4UPreauthDataResp.ChecksumSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6522 { &hf_rcg_SignS4UPreauthDataResp_ChecksumType,
6523 { "ChecksumType", "rcg.SignS4UPreauthDataResp.ChecksumType", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6524 { &hf_rcg_SignS4UPreauthDataResp_ChecksumValue,
6525 { "ChecksumValue", "rcg.SignS4UPreauthDataResp.ChecksumValue", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6526 { &hf_rcg_UnpackKdcReplyBodyReq_EncryptedData,
6527 { "EncryptedData", "rcg.UnpackKdcReplyBodyReq.EncryptedData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6528 { &hf_rcg_UnpackKdcReplyBodyReq_Key,
6529 { "Key", "rcg.UnpackKdcReplyBodyReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6530 { &hf_rcg_UnpackKdcReplyBodyReq_KeyUsage,
6531 { "KeyUsage", "rcg.UnpackKdcReplyBodyReq.KeyUsage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6532 { &hf_rcg_UnpackKdcReplyBodyReq_Pdu,
6533 { "Pdu", "rcg.UnpackKdcReplyBodyReq.Pdu", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6534 { &hf_rcg_UnpackKdcReplyBodyReq_StrengthenKey,
6535 { "StrengthenKey", "rcg.UnpackKdcReplyBodyReq.StrengthenKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6536 { &hf_rcg_UnpackKdcReplyBodyResp_KerbProtocolError,
6537 { "KerbProtocolError", "rcg.UnpackKdcReplyBodyResp.KerbProtocolError", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6538 { &hf_rcg_UnpackKdcReplyBodyResp_ReplyBody,
6539 { "ReplyBody", "rcg.UnpackKdcReplyBodyResp.ReplyBody", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6540 { &hf_rcg_VerifyChecksumReq_ChecksumType,
6541 { "ChecksumType", "rcg.VerifyChecksumReq.ChecksumType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6542 { &hf_rcg_VerifyChecksumReq_DataToCheck,
6543 { "DataToCheck", "rcg.VerifyChecksumReq.DataToCheck", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6544 { &hf_rcg_VerifyChecksumReq_DataToCheckSize,
6545 { "DataToCheckSize", "rcg.VerifyChecksumReq.DataToCheckSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6546 { &hf_rcg_VerifyChecksumReq_ExpectedChecksum,
6547 { "ExpectedChecksum", "rcg.VerifyChecksumReq.ExpectedChecksum", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6548 { &hf_rcg_VerifyChecksumReq_ExpectedChecksumSize,
6549 { "ExpectedChecksumSize", "rcg.VerifyChecksumReq.ExpectedChecksumSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6550 { &hf_rcg_VerifyChecksumReq_Key,
6551 { "Key", "rcg.VerifyChecksumReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6552 { &hf_rcg_VerifyChecksumResp_IsValid,
6553 { "IsValid", "rcg.VerifyChecksumResp.IsValid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6554 { &hf_rcg_VerifyServiceTicketReq_PackedTicket,
6555 { "PackedTicket", "rcg.VerifyServiceTicketReq.PackedTicket", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6556 { &hf_rcg_VerifyServiceTicketReq_ServiceKey,
6557 { "ServiceKey", "rcg.VerifyServiceTicketReq.ServiceKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6558 { &hf_rcg_VerifyServiceTicketReq_TimeSkew,
6559 { "TimeSkew", "rcg.VerifyServiceTicketReq.TimeSkew", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6560 { &hf_rcg_VerifyServiceTicketResp_DecryptedTicket,
6561 { "DecryptedTicket", "rcg.VerifyServiceTicketResp.DecryptedTicket", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6562 { &hf_rcg_VerifyServiceTicketResp_KerbProtocolError,
6563 { "KerbProtocolError", "rcg.VerifyServiceTicketResp.KerbProtocolError", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6564 { &hf_rcg_opnum,
6565 { "Operation", "rcg.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
6569 static int *ett[] = {
6570 &ett_dcerpc_rcg,
6571 &ett_rcg_KERB_ASN1_DATA,
6572 &ett_rcg_KERB_ASN1_DATA_CHECKSUM,
6573 &ett_rcg_KERB_RPC_OCTET_STRING,
6574 &ett_rcg_KERB_RPC_PA_DATA,
6575 &ett_rcg_KERB_RPC_ENCRYPTION_KEY,
6576 &ett_rcg_RPC_UNICODE_STRING,
6577 &ett_rcg_KERB_RPC_INTERNAL_NAME,
6578 &ett_rcg_SECPKG_SUPPLEMENTAL_CRED,
6579 &ett_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY,
6580 &ett_rcg_PSECPKG_SUPPLEMENTAL_CRED_ARRAY,
6581 &ett_rcg_KERB_RPC_CRYPTO_API_BLOB,
6582 &ett_rcg_NegotiateVersion,
6583 &ett_rcg_LARGE_INTEGER,
6584 &ett_rcg_PLARGE_INTEGER,
6585 &ett_rcg_BuildAsReqAuthenticatorReq,
6586 &ett_rcg_BuildAsReqAuthenticatorResp,
6587 &ett_rcg_VerifyServiceTicketReq,
6588 &ett_rcg_VerifyServiceTicketResp,
6589 &ett_rcg_PRPC_UNICODE_STRING,
6590 &ett_rcg_CreateApReqAuthenticatorReq,
6591 &ett_rcg_CreateApReqAuthenticatorResp,
6592 &ett_rcg_DecryptApReplyReq,
6593 &ett_rcg_DecryptApReplyResp,
6594 &ett_rcg_UnpackKdcReplyBodyReq,
6595 &ett_rcg_UnpackKdcReplyBodyResp,
6596 &ett_rcg_ComputeTgsChecksumReq,
6597 &ett_rcg_ComputeTgsChecksumResp,
6598 &ett_rcg_BuildEncryptedAuthDataReq,
6599 &ett_rcg_BuildEncryptedAuthDataResp,
6600 &ett_rcg_PackApReplyReq,
6601 &ett_rcg_PackApReplyResp,
6602 &ett_rcg_HashS4UPreauthReq,
6603 &ett_rcg_HashS4UPreauthResp,
6604 &ett_rcg_SignS4UPreauthDataReq,
6605 &ett_rcg_SignS4UPreauthDataResp,
6606 &ett_rcg_VerifyChecksumReq,
6607 &ett_rcg_VerifyChecksumResp,
6608 &ett_rcg_DecryptPacCredentialsReq,
6609 &ett_rcg_DecryptPacCredentialsResp,
6610 &ett_rcg_CreateECDHKeyAgreementReq,
6611 &ett_rcg_CreateECDHKeyAgreementResp,
6612 &ett_rcg_CreateDHKeyAgreementReq,
6613 &ett_rcg_CreateDHKeyAgreementResp,
6614 &ett_rcg_DestroyKeyAgreementReq,
6615 &ett_rcg_DestroyKeyAgreementResp,
6616 &ett_rcg_KeyAgreementGenerateNonceReq,
6617 &ett_rcg_KeyAgreementGenerateNonceResp,
6618 &ett_rcg_FinalizeKeyAgreementReq,
6619 &ett_rcg_FinalizeKeyAgreementResp,
6620 &ett_rcg_KerbInputUnion,
6621 &ett_rcg_KerbCredIsoRemoteInput,
6622 &ett_rcg_KerbOutputUnion,
6623 &ett_rcg_KerbCredIsoRemoteOutput,
6624 &ett_rcg_NT_RESPONSE,
6625 &ett_rcg_NT_CHALLENGE,
6626 &ett_rcg_PNT_CHALLENGE,
6627 &ett_rcg_LM_SESSION_KEY,
6628 &ett_rcg_MSV1_0_LM3_RESPONSE,
6629 &ett_rcg_PMSV1_0_LM3_RESPONSE,
6630 &ett_rcg_USER_SESSION_KEY,
6631 &ett_rcg_PUSER_SESSION_KEY,
6632 &ett_rcg_MSV1_0_CREDENTIAL_KEY,
6633 &ett_rcg_PMSV1_0_CREDENTIAL_KEY,
6634 &ett_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS,
6635 &ett_rcg_PMSV1_0_REMOTE_ENCRYPTED_SECRETS,
6636 &ett_rcg_Lm20GetNtlm3ChallengeResponseReq,
6637 &ett_rcg_Lm20GetNtlm3ChallengeResponseResp,
6638 &ett_rcg_CalculateNtResponseReq,
6639 &ett_rcg_CalculateNtResponseResp,
6640 &ett_rcg_CalculateUserSessionKeyNtReq,
6641 &ett_rcg_CalculateUserSessionKeyNtResp,
6642 &ett_rcg_CompareCredentialsReq,
6643 &ett_rcg_CompareCredentialsResp,
6644 &ett_rcg_NtlmCredInput,
6645 &ett_rcg_NtlmCredIsoRemoteInput,
6646 &ett_rcg_NtlmCredOutput,
6647 &ett_rcg_NtlmCredIsoRemoteOutput,
6650 proto_dcerpc_rcg = proto_register_protocol("RCG (pidl)", "RCG", "rcg");
6651 proto_register_field_array(proto_dcerpc_rcg, hf, array_length (hf));
6652 proto_register_subtree_array(ett, array_length(ett));
6655 void proto_reg_handoff_dcerpc_rcg(void)
6657 dcerpc_init_uuid(proto_dcerpc_rcg, ett_dcerpc_rcg,
6658 &uuid_dcerpc_rcg, ver_dcerpc_rcg,
6659 rcg_dissectors, hf_rcg_opnum);