TODO drsuapi compressed
[wireshark-sm.git] / epan / dissectors / packet-dcerpc-rcg.c
blob02104593bef8655ac8cd65cef1f72140d8d01a78
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_);
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_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_);
387 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_);
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_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_);
391 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_);
392 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_);
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_ArmorKey(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_TimeSkew(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_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_);
399 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_);
400 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_);
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_ServiceKey(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_TimeSkew(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_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_);
407 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_);
408 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_);
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_SequenceNumber(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_ClientName(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_ClientRealm(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_SkewTime(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_SubKey(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_AuthData(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_GssChecksum(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_KeyUsage(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_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_);
425 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_);
426 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_);
427 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_);
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_Key(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_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_);
432 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_);
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_Key(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_StrengthenKey(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_Pdu(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_KeyUsage(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_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_);
441 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_);
442 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_);
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_Key(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_ChecksumType(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_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_);
448 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_);
449 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_);
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_PlainAuthData(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_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_);
454 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_);
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_ReplyBody(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_SessionKey(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_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_);
461 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_);
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_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_);
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_Key(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_ChecksumType(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_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_);
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_ChecksumValue(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_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_);
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_IsRequest(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_UserId(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_ChecksumType(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_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_);
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_ChecksumSize(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_ChecksumValue(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_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_);
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_ChecksumType(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_ExpectedChecksumSize(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_ExpectedChecksum(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_DataToCheckSize(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_DataToCheck(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_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_);
502 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_);
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_Version(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_EncryptionType(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_DataSize(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_Data(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_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_);
511 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_);
512 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_);
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_KerbErr(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_EncodedPubKeyLen(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_EncodedPubKey(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_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_);
523 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_);
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_GeneratorG(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_FactorQ(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_KeyAgreementHandle(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_KerbErr(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_LittleEndianPublicKeyLen(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_LittleEndianPublicKey(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_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_);
540 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_);
541 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_);
542 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_);
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_Nonce(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_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_);
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_KerbEType(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_RemoteNonceLen(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_RemoteNonce(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_X509PublicKeyLen(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_X509PublicKey(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_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_);
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_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_);
563 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_);
564 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_);
565 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_);
566 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_);
567 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_);
568 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_);
569 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_);
570 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_);
571 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_);
572 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_);
573 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_);
574 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_);
575 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_);
576 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_);
577 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_);
578 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_);
579 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_);
580 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);
581 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);
582 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_);
583 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_);
584 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_);
585 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_);
586 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_);
587 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_);
588 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_);
589 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_);
590 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_);
591 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_);
592 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_);
593 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_);
594 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_);
595 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_);
596 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_);
597 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_);
598 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_);
599 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_);
600 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);
601 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_);
602 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);
603 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_);
604 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_);
605 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_);
606 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_);
607 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_);
608 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_);
609 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_);
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_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_);
613 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_);
614 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_);
615 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_);
616 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_);
617 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_);
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_Lm3Response(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_UserSessionKey(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_LmSessionKey(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_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_);
624 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_);
625 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_);
626 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_);
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_Credential(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_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_);
630 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_);
631 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_);
632 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_);
633 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_);
634 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_);
635 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_);
636 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_);
637 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_);
638 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_);
639 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_);
640 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);
641 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);
642 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_);
643 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_);
644 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_);
645 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_);
646 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_);
647 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);
648 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_);
649 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);
650 #include <epan/asn1.h>
651 #include "packet-kerberos.h"
652 static int
653 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_)
655 if (di->conformant_run)
656 return offset;
657 asn1_ctx_t asn1_ctx;
658 ALIGN_TO_4_BYTES;
659 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
660 asn1_ctx.private_data = /*&rcg*/NULL;
661 offset = dissect_krb5_Checksum(tree, tvb, offset + 4, &asn1_ctx);
662 return offset;
665 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_)
667 guint16 CallId = 0;
668 proto_item *item = NULL;
669 proto_tree *tree = NULL;
670 int old_offset;
671 ALIGN_TO_4_BYTES;
672 old_offset = offset;
673 if (parent_tree) {
674 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
675 tree = proto_item_add_subtree(item, ett_rcg_KerbCredIsoRemoteOutput);
677 offset = rcg_dissect_element_KerbCredIsoRemoteOutput_CallId(tvb, offset, pinfo, tree, di, drep, &CallId);
678 col_set_str(pinfo->cinfo, COL_INFO, val_to_str(CallId, rcg_RemoteGuardCallId_vals, "unknown operation (%u)"));
679 offset = rcg_dissect_element_KerbCredIsoRemoteOutput_Status(tvb, offset, pinfo, tree, di, drep);
680 offset = rcg_dissect_element_KerbCredIsoRemoteOutput_callUnion(tvb, offset, pinfo, tree, di, drep, &CallId);
681 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
682 proto_item_set_len(item, offset-old_offset);
683 if (di->call_data->flags & DCERPC_IS_NDR64) {
684 ALIGN_TO_4_BYTES;
686 return offset;
689 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_)
691 guint16 CallId = 0;
692 proto_item *item = NULL;
693 proto_tree *tree = NULL;
694 int old_offset;
695 ALIGN_TO_4_BYTES;
696 old_offset = offset;
697 if (parent_tree) {
698 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
699 tree = proto_item_add_subtree(item, ett_rcg_KerbCredIsoRemoteInput);
701 offset = rcg_dissect_element_KerbCredIsoRemoteInput_CallId(tvb, offset, pinfo, tree, di, drep, &CallId);
702 col_set_str(pinfo->cinfo, COL_INFO, val_to_str(CallId, rcg_RemoteGuardCallId_vals, "unknown operation (%u)"));
703 offset = rcg_dissect_element_KerbCredIsoRemoteInput_callUnion(tvb, offset, pinfo, tree, di, drep, &CallId);
704 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
705 proto_item_set_len(item, offset-old_offset);
706 if (di->call_data->flags & DCERPC_IS_NDR64) {
707 ALIGN_TO_4_BYTES;
709 return offset;
712 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_)
714 uint16_t CallId = 0;
715 proto_item *item = NULL;
716 proto_tree *tree = NULL;
717 int old_offset;
718 if (di->conformant_run) return offset;
719 ALIGN_TO_4_BYTES;
720 old_offset = offset;
721 if (parent_tree) {
722 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
723 tree = proto_item_add_subtree(item, ett_rcg_NtlmCredIsoRemoteOutput);
725 offset = rcg_dissect_element_NtlmCredIsoRemoteOutput_CallId(tvb, offset, pinfo, tree, di, drep, &CallId);
726 col_set_str(pinfo->cinfo, COL_INFO, val_to_str(CallId, rcg_RemoteGuardCallId_vals, "unknown operation (%u)"));
727 offset = rcg_dissect_element_NtlmCredIsoRemoteOutput_Status(tvb, offset, pinfo, tree, di, drep);
728 offset = rcg_dissect_element_NtlmCredIsoRemoteOutput_callUnion(tvb, offset, pinfo, tree, di, drep, &CallId);
729 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
730 proto_item_set_len(item, offset-old_offset);
731 if (di->call_data->flags & DCERPC_IS_NDR64) {
732 ALIGN_TO_4_BYTES;
734 return offset;
737 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_)
739 uint16_t CallId = 0;
740 proto_item *item = NULL;
741 proto_tree *tree = NULL;
742 int old_offset;
743 if (di->conformant_run) return offset;
744 ALIGN_TO_4_BYTES;
745 old_offset = offset;
746 if (parent_tree) {
747 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
748 tree = proto_item_add_subtree(item, ett_rcg_NtlmCredIsoRemoteInput);
750 offset = rcg_dissect_element_NtlmCredIsoRemoteInput_CallId(tvb, offset, pinfo, tree, di, drep, &CallId);
751 col_set_str(pinfo->cinfo, COL_INFO, val_to_str(CallId, rcg_RemoteGuardCallId_vals, "unknown operation (%u)"));
752 offset = rcg_dissect_element_NtlmCredIsoRemoteInput_callUnion(tvb, offset, pinfo, tree, di, drep, &CallId);
753 offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
754 proto_item_set_len(item, offset-old_offset);
755 if (di->call_data->flags & DCERPC_IS_NDR64) {
756 ALIGN_TO_4_BYTES;
758 return offset;
762 /* IDL: struct { */
763 /* IDL: uint32 Pdu; */
764 /* IDL: uint32 Length; */
765 /* IDL: [ref] [size_is(Length)] uint8 *Asn1Buffer; */
766 /* IDL: } */
768 static int
769 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_)
771 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_ASN1_DATA_Pdu, 0);
773 return offset;
776 static int
777 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_)
779 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_ASN1_DATA_Length, 0);
781 return offset;
784 static int
785 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_)
787 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);
789 return offset;
792 static int
793 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_)
795 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_KERB_ASN1_DATA_Asn1Buffer__);
797 return offset;
800 static int
801 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_)
803 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_ASN1_DATA_Asn1Buffer, 0);
805 return offset;
809 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_)
811 proto_item *item = NULL;
812 proto_tree *tree = NULL;
813 int old_offset;
815 ALIGN_TO_5_BYTES;
817 old_offset = offset;
819 if (parent_tree) {
820 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
821 tree = proto_item_add_subtree(item, ett_rcg_KERB_ASN1_DATA);
824 offset = rcg_dissect_element_KERB_ASN1_DATA_Pdu(tvb, offset, pinfo, tree, di, drep);
826 offset = rcg_dissect_element_KERB_ASN1_DATA_Length(tvb, offset, pinfo, tree, di, drep);
828 offset = rcg_dissect_element_KERB_ASN1_DATA_Asn1Buffer(tvb, offset, pinfo, tree, di, drep);
831 proto_item_set_len(item, offset-old_offset);
834 if (di->call_data->flags & DCERPC_IS_NDR64) {
835 ALIGN_TO_5_BYTES;
838 return offset;
842 /* IDL: struct { */
843 /* IDL: uint32 Pdu; */
844 /* IDL: uint32 Length; */
845 /* IDL: [ref] [size_is(Length)] uint8 *checksum; */
846 /* IDL: } */
848 static int
849 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_)
851 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_ASN1_DATA_CHECKSUM_Pdu, 0);
853 return offset;
856 static int
857 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_)
859 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_ASN1_DATA_CHECKSUM_Length, 0);
861 return offset;
864 static int
865 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_)
867 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);
869 return offset;
873 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_)
875 proto_item *item = NULL;
876 proto_tree *tree = NULL;
877 int old_offset;
879 ALIGN_TO_5_BYTES;
881 old_offset = offset;
883 if (parent_tree) {
884 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
885 tree = proto_item_add_subtree(item, ett_rcg_KERB_ASN1_DATA_CHECKSUM);
888 offset = rcg_dissect_element_KERB_ASN1_DATA_CHECKSUM_Pdu(tvb, offset, pinfo, tree, di, drep);
890 offset = rcg_dissect_element_KERB_ASN1_DATA_CHECKSUM_Length(tvb, offset, pinfo, tree, di, drep);
892 offset = rcg_dissect_element_KERB_ASN1_DATA_CHECKSUM_checksum(tvb, offset, pinfo, tree, di, drep);
895 proto_item_set_len(item, offset-old_offset);
898 if (di->call_data->flags & DCERPC_IS_NDR64) {
899 ALIGN_TO_5_BYTES;
902 return offset;
906 /* IDL: struct { */
907 /* IDL: uint32 length; */
908 /* IDL: [ref] [size_is(length)] uint8 *value; */
909 /* IDL: } */
911 static int
912 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_)
914 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_OCTET_STRING_length, 0);
916 return offset;
919 static int
920 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_)
922 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);
924 return offset;
927 static int
928 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_)
930 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_KERB_RPC_OCTET_STRING_value__);
932 return offset;
935 static int
936 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_)
938 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_OCTET_STRING_value, 0);
940 return offset;
944 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_)
946 proto_item *item = NULL;
947 proto_tree *tree = NULL;
948 int old_offset;
950 ALIGN_TO_5_BYTES;
952 old_offset = offset;
954 if (parent_tree) {
955 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
956 tree = proto_item_add_subtree(item, ett_rcg_KERB_RPC_OCTET_STRING);
959 offset = rcg_dissect_element_KERB_RPC_OCTET_STRING_length(tvb, offset, pinfo, tree, di, drep);
961 offset = rcg_dissect_element_KERB_RPC_OCTET_STRING_value(tvb, offset, pinfo, tree, di, drep);
964 proto_item_set_len(item, offset-old_offset);
967 if (di->call_data->flags & DCERPC_IS_NDR64) {
968 ALIGN_TO_5_BYTES;
971 return offset;
975 /* IDL: struct { */
976 /* IDL: int32 preauth_data_type; */
977 /* IDL: KERB_RPC_OCTET_STRING preauth_data; */
978 /* IDL: } */
980 static int
981 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_)
983 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_PA_DATA_preauth_data_type, 0);
985 return offset;
988 static int
989 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_)
991 offset = rcg_dissect_struct_KERB_RPC_OCTET_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_KERB_RPC_PA_DATA_preauth_data,0);
993 return offset;
997 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_)
999 proto_item *item = NULL;
1000 proto_tree *tree = NULL;
1001 int old_offset;
1003 ALIGN_TO_5_BYTES;
1005 old_offset = offset;
1007 if (parent_tree) {
1008 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1009 tree = proto_item_add_subtree(item, ett_rcg_KERB_RPC_PA_DATA);
1012 offset = rcg_dissect_element_KERB_RPC_PA_DATA_preauth_data_type(tvb, offset, pinfo, tree, di, drep);
1014 offset = rcg_dissect_element_KERB_RPC_PA_DATA_preauth_data(tvb, offset, pinfo, tree, di, drep);
1017 proto_item_set_len(item, offset-old_offset);
1020 if (di->call_data->flags & DCERPC_IS_NDR64) {
1021 ALIGN_TO_5_BYTES;
1024 return offset;
1028 /* IDL: struct { */
1029 /* IDL: uint32 reserved1; */
1030 /* IDL: uint32 reserved2; */
1031 /* IDL: KERB_RPC_OCTET_STRING reserved3; */
1032 /* IDL: } */
1034 static int
1035 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_)
1037 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_KERB_RPC_ENCRYPTION_KEY_reserved1, 0);
1039 return offset;
1042 static int
1043 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_)
1045 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_KERB_RPC_ENCRYPTION_KEY_reserved2, 0);
1047 return offset;
1050 static int
1051 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_)
1053 offset = rcg_dissect_struct_KERB_RPC_OCTET_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_KERB_RPC_ENCRYPTION_KEY_reserved3,0);
1055 return offset;
1059 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_)
1061 proto_item *item = NULL;
1062 proto_tree *tree = NULL;
1063 int old_offset;
1065 ALIGN_TO_5_BYTES;
1067 old_offset = offset;
1069 if (parent_tree) {
1070 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1071 tree = proto_item_add_subtree(item, ett_rcg_KERB_RPC_ENCRYPTION_KEY);
1074 offset = rcg_dissect_element_KERB_RPC_ENCRYPTION_KEY_reserved1(tvb, offset, pinfo, tree, di, drep);
1076 offset = rcg_dissect_element_KERB_RPC_ENCRYPTION_KEY_reserved2(tvb, offset, pinfo, tree, di, drep);
1078 offset = rcg_dissect_element_KERB_RPC_ENCRYPTION_KEY_reserved3(tvb, offset, pinfo, tree, di, drep);
1081 proto_item_set_len(item, offset-old_offset);
1084 if (di->call_data->flags & DCERPC_IS_NDR64) {
1085 ALIGN_TO_5_BYTES;
1088 return offset;
1092 /* IDL: struct { */
1093 /* IDL: uint16 Length; */
1094 /* IDL: uint16 MaximumLength; */
1095 /* IDL: [charset(UTF16)] [length_is(Length/2)] [ref] [size_is(MaximumLength/2)] uint16 *Buffer; */
1096 /* IDL: } */
1098 static int
1099 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_)
1101 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_rcg_RPC_UNICODE_STRING_Length, 0);
1103 return offset;
1106 static int
1107 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_)
1109 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_rcg_RPC_UNICODE_STRING_MaximumLength, 0);
1111 return offset;
1114 static int
1115 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_)
1117 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);
1119 return offset;
1122 static int
1123 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_)
1125 char *data;
1127 offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_rcg_RPC_UNICODE_STRING_Buffer, false, &data);
1128 proto_item_append_text(tree, ": %s", data);
1130 return offset;
1134 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_)
1136 proto_item *item = NULL;
1137 proto_tree *tree = NULL;
1138 int old_offset;
1140 ALIGN_TO_5_BYTES;
1142 old_offset = offset;
1144 if (parent_tree) {
1145 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1146 tree = proto_item_add_subtree(item, ett_rcg_RPC_UNICODE_STRING);
1149 offset = rcg_dissect_element_RPC_UNICODE_STRING_Length(tvb, offset, pinfo, tree, di, drep);
1151 offset = rcg_dissect_element_RPC_UNICODE_STRING_MaximumLength(tvb, offset, pinfo, tree, di, drep);
1153 offset = rcg_dissect_element_RPC_UNICODE_STRING_Buffer(tvb, offset, pinfo, tree, di, drep);
1156 proto_item_set_len(item, offset-old_offset);
1159 if (di->call_data->flags & DCERPC_IS_NDR64) {
1160 ALIGN_TO_5_BYTES;
1163 return offset;
1167 /* IDL: struct { */
1168 /* IDL: int16 NameType; */
1169 /* IDL: uint16 NameCount; */
1170 /* IDL: [ref] [size_is(NameCount)] RPC_UNICODE_STRING *Names; */
1171 /* IDL: } */
1173 static int
1174 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_)
1176 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_INTERNAL_NAME_NameType, 0);
1178 return offset;
1181 static int
1182 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_)
1184 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_INTERNAL_NAME_NameCount, 0);
1186 return offset;
1189 static int
1190 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_)
1192 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);
1194 return offset;
1197 static int
1198 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_)
1200 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_KERB_RPC_INTERNAL_NAME_Names__);
1202 return offset;
1205 static int
1206 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_)
1208 offset = rcg_dissect_struct_RPC_UNICODE_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_KERB_RPC_INTERNAL_NAME_Names,0);
1210 return offset;
1214 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_)
1216 proto_item *item = NULL;
1217 proto_tree *tree = NULL;
1218 int old_offset;
1220 ALIGN_TO_5_BYTES;
1222 old_offset = offset;
1224 if (parent_tree) {
1225 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1226 tree = proto_item_add_subtree(item, ett_rcg_KERB_RPC_INTERNAL_NAME);
1229 offset = rcg_dissect_element_KERB_RPC_INTERNAL_NAME_NameType(tvb, offset, pinfo, tree, di, drep);
1231 offset = rcg_dissect_element_KERB_RPC_INTERNAL_NAME_NameCount(tvb, offset, pinfo, tree, di, drep);
1233 offset = rcg_dissect_element_KERB_RPC_INTERNAL_NAME_Names(tvb, offset, pinfo, tree, di, drep);
1236 proto_item_set_len(item, offset-old_offset);
1239 if (di->call_data->flags & DCERPC_IS_NDR64) {
1240 ALIGN_TO_5_BYTES;
1243 return offset;
1247 /* IDL: enum { */
1248 /* IDL: RemoteCallKerbNegotiateVersion=0x100, */
1249 /* IDL: RemoteCallKerbBuildAsReqAuthenticator=0x101, */
1250 /* IDL: RemoteCallKerbVerifyServiceTicket=0x102, */
1251 /* IDL: RemoteCallKerbCreateApReqAuthenticator=0x103, */
1252 /* IDL: RemoteCallKerbDecryptApReply=0x104, */
1253 /* IDL: RemoteCallKerbUnpackKdcReplyBody=0x105, */
1254 /* IDL: RemoteCallKerbComputeTgsChecksum=0x106, */
1255 /* IDL: RemoteCallKerbBuildEncryptedAuthData=0x107, */
1256 /* IDL: RemoteCallKerbPackApReply=0x108, */
1257 /* IDL: RemoteCallKerbHashS4UPreauth=0x109, */
1258 /* IDL: RemoteCallKerbSignS4UPreauthData=0x10a, */
1259 /* IDL: RemoteCallKerbVerifyChecksum=0x10b, */
1260 /* IDL: RemoteCallKerbDecryptPacCredentials=0x113, */
1261 /* IDL: RemoteCallKerbCreateECDHKeyAgreement=0x114, */
1262 /* IDL: RemoteCallKerbCreateDHKeyAgreement=0x115, */
1263 /* IDL: RemoteCallKerbDestroyKeyAgreement=0x116, */
1264 /* IDL: RemoteCallKerbKeyAgreementGenerateNonce=0x117, */
1265 /* IDL: RemoteCallKerbFinalizeKeyAgreement=0x118, */
1266 /* IDL: RemoteCallNtlmNegotiateVersion=0x200, */
1267 /* IDL: RemoteCallNtlmLm20GetNtlm3ChallengeResponse=0x201, */
1268 /* IDL: RemoteCallNtlmCalculateNtResponse=0x202, */
1269 /* IDL: RemoteCallNtlmCalculateUserSessionKeyNt=0x203, */
1270 /* IDL: RemoteCallNtlmCompareCredentials=0x204, */
1271 /* IDL: } */
1274 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_)
1276 uint16_t parameter=0;
1277 if (param) {
1278 parameter = *param;
1280 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
1281 if (param) {
1282 *param = parameter;
1284 return offset;
1288 /* IDL: struct _SECPKG_SUPPLEMENTAL_CRED { */
1289 /* IDL: RPC_UNICODE_STRING PackageName; */
1290 /* IDL: uint32 CredentialSize; */
1291 /* IDL: [ref] [size_is(CredentialSize)] uint8 *Credentials; */
1292 /* IDL: } */
1294 static int
1295 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_)
1297 offset = rcg_dissect_struct_RPC_UNICODE_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_SECPKG_SUPPLEMENTAL_CRED_PackageName,0);
1299 return offset;
1302 static int
1303 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_)
1305 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_SECPKG_SUPPLEMENTAL_CRED_CredentialSize, 0);
1307 return offset;
1310 static int
1311 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_)
1313 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);
1315 return offset;
1318 static int
1319 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_)
1321 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_Credentials__);
1323 return offset;
1326 static int
1327 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_)
1329 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_SECPKG_SUPPLEMENTAL_CRED_Credentials, 0);
1331 return offset;
1335 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_)
1337 proto_item *item = NULL;
1338 proto_tree *tree = NULL;
1339 int old_offset;
1341 ALIGN_TO_4_BYTES;
1343 old_offset = offset;
1345 if (parent_tree) {
1346 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1347 tree = proto_item_add_subtree(item, ett_rcg_SECPKG_SUPPLEMENTAL_CRED);
1350 offset = rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_PackageName(tvb, offset, pinfo, tree, di, drep);
1352 offset = rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_CredentialSize(tvb, offset, pinfo, tree, di, drep);
1354 offset = rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_Credentials(tvb, offset, pinfo, tree, di, drep);
1357 proto_item_set_len(item, offset-old_offset);
1360 if (di->call_data->flags & DCERPC_IS_NDR64) {
1361 ALIGN_TO_4_BYTES;
1364 return offset;
1368 /* IDL: struct { */
1369 /* IDL: uint32 CredentialCount; */
1370 /* IDL: [size_is(CredentialCount)] SECPKG_SUPPLEMENTAL_CRED Credentials[*]; */
1371 /* IDL: } */
1373 static int
1374 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_)
1376 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY_CredentialCount, 0);
1378 return offset;
1381 static int
1382 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_)
1384 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_ARRAY_Credentials_);
1386 return offset;
1389 static int
1390 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_)
1392 offset = rcg_dissect_struct_SECPKG_SUPPLEMENTAL_CRED(tvb,offset,pinfo,tree,di,drep,hf_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY_Credentials,0);
1394 return offset;
1398 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_)
1400 proto_item *item = NULL;
1401 proto_tree *tree = NULL;
1402 int old_offset;
1404 ALIGN_TO_4_BYTES;
1406 old_offset = offset;
1408 if (parent_tree) {
1409 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1410 tree = proto_item_add_subtree(item, ett_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY);
1413 offset = rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_ARRAY_CredentialCount(tvb, offset, pinfo, tree, di, drep);
1415 offset = rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_ARRAY_Credentials(tvb, offset, pinfo, tree, di, drep);
1418 proto_item_set_len(item, offset-old_offset);
1421 if (di->call_data->flags & DCERPC_IS_NDR64) {
1422 ALIGN_TO_4_BYTES;
1425 return offset;
1429 /* IDL: struct SECPKG_SUPPLEMENTAL_CRED_ARRAY { */
1430 /* IDL: } */
1433 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_)
1435 proto_item *item = NULL;
1436 int old_offset;
1438 ALIGN_TO_4_BYTES;
1440 old_offset = offset;
1442 if (parent_tree) {
1443 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1447 proto_item_set_len(item, offset-old_offset);
1450 if (di->call_data->flags & DCERPC_IS_NDR64) {
1451 ALIGN_TO_4_BYTES;
1454 return offset;
1458 /* IDL: struct { */
1459 /* IDL: uint32 cbData; */
1460 /* IDL: [ref] [size_is(cbData)] uint8 *pbData; */
1461 /* IDL: } */
1463 static int
1464 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_)
1466 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_CRYPTO_API_BLOB_cbData, 0);
1468 return offset;
1471 static int
1472 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_)
1474 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);
1476 return offset;
1479 static int
1480 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_)
1482 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_pbData__);
1484 return offset;
1487 static int
1488 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_)
1490 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_CRYPTO_API_BLOB_pbData, 0);
1492 return offset;
1496 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_)
1498 proto_item *item = NULL;
1499 proto_tree *tree = NULL;
1500 int old_offset;
1502 ALIGN_TO_5_BYTES;
1504 old_offset = offset;
1506 if (parent_tree) {
1507 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1508 tree = proto_item_add_subtree(item, ett_rcg_KERB_RPC_CRYPTO_API_BLOB);
1511 offset = rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_cbData(tvb, offset, pinfo, tree, di, drep);
1513 offset = rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_pbData(tvb, offset, pinfo, tree, di, drep);
1516 proto_item_set_len(item, offset-old_offset);
1519 if (di->call_data->flags & DCERPC_IS_NDR64) {
1520 ALIGN_TO_5_BYTES;
1523 return offset;
1527 /* IDL: struct { */
1528 /* IDL: uint32 MaxSupportedVersion; */
1529 /* IDL: } */
1531 static int
1532 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_)
1534 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_NegotiateVersion_MaxSupportedVersion, 0);
1536 return offset;
1540 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_)
1542 proto_item *item = NULL;
1543 proto_tree *tree = NULL;
1544 int old_offset;
1546 ALIGN_TO_4_BYTES;
1548 old_offset = offset;
1550 if (parent_tree) {
1551 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1552 tree = proto_item_add_subtree(item, ett_rcg_NegotiateVersion);
1555 offset = rcg_dissect_element_NegotiateVersion_MaxSupportedVersion(tvb, offset, pinfo, tree, di, drep);
1558 proto_item_set_len(item, offset-old_offset);
1561 if (di->call_data->flags & DCERPC_IS_NDR64) {
1562 ALIGN_TO_4_BYTES;
1565 return offset;
1569 /* IDL: struct { */
1570 /* IDL: int64 QuadPart; */
1571 /* IDL: } */
1573 static int
1574 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_)
1576 offset = PIDL_dissect_uint64(tvb, offset, pinfo, tree, di, drep, hf_rcg_LARGE_INTEGER_QuadPart, 0);
1578 return offset;
1582 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_)
1584 proto_item *item = NULL;
1585 proto_tree *tree = NULL;
1586 int old_offset;
1588 ALIGN_TO_8_BYTES;
1590 old_offset = offset;
1592 if (parent_tree) {
1593 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1594 tree = proto_item_add_subtree(item, ett_rcg_LARGE_INTEGER);
1597 offset = rcg_dissect_element_LARGE_INTEGER_QuadPart(tvb, offset, pinfo, tree, di, drep);
1600 proto_item_set_len(item, offset-old_offset);
1603 if (di->call_data->flags & DCERPC_IS_NDR64) {
1604 ALIGN_TO_8_BYTES;
1607 return offset;
1611 /* IDL: struct LARGE_INTEGER { */
1612 /* IDL: } */
1615 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_)
1617 proto_item *item = NULL;
1618 int old_offset;
1620 ALIGN_TO_4_BYTES;
1622 old_offset = offset;
1624 if (parent_tree) {
1625 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1629 proto_item_set_len(item, offset-old_offset);
1632 if (di->call_data->flags & DCERPC_IS_NDR64) {
1633 ALIGN_TO_4_BYTES;
1636 return offset;
1640 /* IDL: struct { */
1641 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *EncryptionKey; */
1642 /* IDL: [ptr(1)] KERB_RPC_ENCRYPTION_KEY *ArmorKey; */
1643 /* IDL: [ref] LARGE_INTEGER *TimeSkew; */
1644 /* IDL: } */
1646 static int
1647 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_)
1649 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);
1651 return offset;
1654 static int
1655 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_)
1657 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildAsReqAuthenticatorReq_EncryptionKey,0);
1659 return offset;
1662 static int
1663 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_)
1665 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);
1667 return offset;
1670 static int
1671 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_)
1673 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildAsReqAuthenticatorReq_ArmorKey,0);
1675 return offset;
1678 static int
1679 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_)
1681 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);
1683 return offset;
1686 static int
1687 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_)
1689 offset = rcg_dissect_struct_LARGE_INTEGER(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildAsReqAuthenticatorReq_TimeSkew,0);
1691 return offset;
1695 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_)
1697 proto_item *item = NULL;
1698 proto_tree *tree = NULL;
1699 int old_offset;
1701 ALIGN_TO_5_BYTES;
1703 old_offset = offset;
1705 if (parent_tree) {
1706 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1707 tree = proto_item_add_subtree(item, ett_rcg_BuildAsReqAuthenticatorReq);
1710 offset = rcg_dissect_element_BuildAsReqAuthenticatorReq_EncryptionKey(tvb, offset, pinfo, tree, di, drep);
1712 offset = rcg_dissect_element_BuildAsReqAuthenticatorReq_ArmorKey(tvb, offset, pinfo, tree, di, drep);
1714 offset = rcg_dissect_element_BuildAsReqAuthenticatorReq_TimeSkew(tvb, offset, pinfo, tree, di, drep);
1717 proto_item_set_len(item, offset-old_offset);
1720 if (di->call_data->flags & DCERPC_IS_NDR64) {
1721 ALIGN_TO_5_BYTES;
1724 return offset;
1728 /* IDL: struct { */
1729 /* IDL: int32 PreauthDataType; */
1730 /* IDL: KERB_RPC_OCTET_STRING PreauthData; */
1731 /* IDL: } */
1733 static int
1734 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_)
1736 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_BuildAsReqAuthenticatorResp_PreauthDataType, 0);
1738 return offset;
1741 static int
1742 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_)
1744 offset = rcg_dissect_struct_KERB_RPC_OCTET_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildAsReqAuthenticatorResp_PreauthData,0);
1746 return offset;
1750 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_)
1752 proto_item *item = NULL;
1753 proto_tree *tree = NULL;
1754 int old_offset;
1756 ALIGN_TO_5_BYTES;
1758 old_offset = offset;
1760 if (parent_tree) {
1761 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1762 tree = proto_item_add_subtree(item, ett_rcg_BuildAsReqAuthenticatorResp);
1765 offset = rcg_dissect_element_BuildAsReqAuthenticatorResp_PreauthDataType(tvb, offset, pinfo, tree, di, drep);
1767 offset = rcg_dissect_element_BuildAsReqAuthenticatorResp_PreauthData(tvb, offset, pinfo, tree, di, drep);
1770 proto_item_set_len(item, offset-old_offset);
1773 if (di->call_data->flags & DCERPC_IS_NDR64) {
1774 ALIGN_TO_5_BYTES;
1777 return offset;
1781 /* IDL: struct { */
1782 /* IDL: [ref] KERB_ASN1_DATA *PackedTicket; */
1783 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *ServiceKey; */
1784 /* IDL: [ptr(1)] LARGE_INTEGER *TimeSkew; */
1785 /* IDL: } */
1787 static int
1788 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_)
1790 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);
1792 return offset;
1795 static int
1796 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_)
1798 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_VerifyServiceTicketReq_PackedTicket,0);
1800 return offset;
1803 static int
1804 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_)
1806 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);
1808 return offset;
1811 static int
1812 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_)
1814 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_VerifyServiceTicketReq_ServiceKey,0);
1816 return offset;
1819 static int
1820 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_)
1822 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);
1824 return offset;
1827 static int
1828 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_)
1830 offset = rcg_dissect_struct_LARGE_INTEGER(tvb,offset,pinfo,tree,di,drep,hf_rcg_VerifyServiceTicketReq_TimeSkew,0);
1832 return offset;
1836 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_)
1838 proto_item *item = NULL;
1839 proto_tree *tree = NULL;
1840 int old_offset;
1842 ALIGN_TO_5_BYTES;
1844 old_offset = offset;
1846 if (parent_tree) {
1847 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1848 tree = proto_item_add_subtree(item, ett_rcg_VerifyServiceTicketReq);
1851 offset = rcg_dissect_element_VerifyServiceTicketReq_PackedTicket(tvb, offset, pinfo, tree, di, drep);
1853 offset = rcg_dissect_element_VerifyServiceTicketReq_ServiceKey(tvb, offset, pinfo, tree, di, drep);
1855 offset = rcg_dissect_element_VerifyServiceTicketReq_TimeSkew(tvb, offset, pinfo, tree, di, drep);
1858 proto_item_set_len(item, offset-old_offset);
1861 if (di->call_data->flags & DCERPC_IS_NDR64) {
1862 ALIGN_TO_5_BYTES;
1865 return offset;
1869 /* IDL: struct { */
1870 /* IDL: KERB_ASN1_DATA DecryptedTicket; */
1871 /* IDL: int32 KerbProtocolError; */
1872 /* IDL: } */
1874 static int
1875 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_)
1877 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_VerifyServiceTicketResp_DecryptedTicket,0);
1879 return offset;
1882 static int
1883 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_)
1885 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyServiceTicketResp_KerbProtocolError, 0);
1887 return offset;
1891 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_)
1893 proto_item *item = NULL;
1894 proto_tree *tree = NULL;
1895 int old_offset;
1897 ALIGN_TO_5_BYTES;
1899 old_offset = offset;
1901 if (parent_tree) {
1902 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1903 tree = proto_item_add_subtree(item, ett_rcg_VerifyServiceTicketResp);
1906 offset = rcg_dissect_element_VerifyServiceTicketResp_DecryptedTicket(tvb, offset, pinfo, tree, di, drep);
1908 offset = rcg_dissect_element_VerifyServiceTicketResp_KerbProtocolError(tvb, offset, pinfo, tree, di, drep);
1911 proto_item_set_len(item, offset-old_offset);
1914 if (di->call_data->flags & DCERPC_IS_NDR64) {
1915 ALIGN_TO_5_BYTES;
1918 return offset;
1922 /* IDL: struct RPC_UNICODE_STRING { */
1923 /* IDL: } */
1926 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_)
1928 proto_item *item = NULL;
1929 int old_offset;
1931 ALIGN_TO_4_BYTES;
1933 old_offset = offset;
1935 if (parent_tree) {
1936 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1940 proto_item_set_len(item, offset-old_offset);
1943 if (di->call_data->flags & DCERPC_IS_NDR64) {
1944 ALIGN_TO_4_BYTES;
1947 return offset;
1951 /* IDL: struct { */
1952 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *EncryptionKey; */
1953 /* IDL: uint32 SequenceNumber; */
1954 /* IDL: [ref] KERB_RPC_INTERNAL_NAME *ClientName; */
1955 /* IDL: [ref] RPC_UNICODE_STRING *ClientRealm; */
1956 /* IDL: [ref] LARGE_INTEGER *SkewTime; */
1957 /* IDL: [ptr(1)] KERB_RPC_ENCRYPTION_KEY *SubKey; */
1958 /* IDL: [ptr(1)] KERB_ASN1_DATA *AuthData; */
1959 /* IDL: [ptr(1)] KERB_ASN1_DATA_CHECKSUM *GssChecksum; */
1960 /* IDL: uint32 KeyUsage; */
1961 /* IDL: } */
1963 static int
1964 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_)
1966 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);
1968 return offset;
1971 static int
1972 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_)
1974 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_EncryptionKey,0);
1976 return offset;
1979 static int
1980 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_)
1982 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateApReqAuthenticatorReq_SequenceNumber, 0);
1984 return offset;
1987 static int
1988 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_)
1990 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);
1992 return offset;
1995 static int
1996 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_)
1998 offset = rcg_dissect_struct_KERB_RPC_INTERNAL_NAME(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_ClientName,0);
2000 return offset;
2003 static int
2004 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_)
2006 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);
2008 return offset;
2011 static int
2012 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_)
2014 offset = rcg_dissect_struct_RPC_UNICODE_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_ClientRealm,0);
2016 return offset;
2019 static int
2020 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_)
2022 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);
2024 return offset;
2027 static int
2028 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_)
2030 offset = rcg_dissect_struct_LARGE_INTEGER(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_SkewTime,0);
2032 return offset;
2035 static int
2036 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_)
2038 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);
2040 return offset;
2043 static int
2044 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_)
2046 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_SubKey,0);
2048 return offset;
2051 static int
2052 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_)
2054 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);
2056 return offset;
2059 static int
2060 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_)
2062 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_AuthData,0);
2064 return offset;
2067 static int
2068 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_)
2070 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);
2072 return offset;
2075 static int
2076 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_)
2078 offset = rcg_dissect_struct_KERB_ASN1_DATA_CHECKSUM(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_GssChecksum,0);
2080 return offset;
2083 static int
2084 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_)
2086 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateApReqAuthenticatorReq_KeyUsage, 0);
2088 return offset;
2092 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_)
2094 proto_item *item = NULL;
2095 proto_tree *tree = NULL;
2096 int old_offset;
2098 ALIGN_TO_5_BYTES;
2100 old_offset = offset;
2102 if (parent_tree) {
2103 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2104 tree = proto_item_add_subtree(item, ett_rcg_CreateApReqAuthenticatorReq);
2107 offset = rcg_dissect_element_CreateApReqAuthenticatorReq_EncryptionKey(tvb, offset, pinfo, tree, di, drep);
2109 offset = rcg_dissect_element_CreateApReqAuthenticatorReq_SequenceNumber(tvb, offset, pinfo, tree, di, drep);
2111 offset = rcg_dissect_element_CreateApReqAuthenticatorReq_ClientName(tvb, offset, pinfo, tree, di, drep);
2113 offset = rcg_dissect_element_CreateApReqAuthenticatorReq_ClientRealm(tvb, offset, pinfo, tree, di, drep);
2115 offset = rcg_dissect_element_CreateApReqAuthenticatorReq_SkewTime(tvb, offset, pinfo, tree, di, drep);
2117 offset = rcg_dissect_element_CreateApReqAuthenticatorReq_SubKey(tvb, offset, pinfo, tree, di, drep);
2119 offset = rcg_dissect_element_CreateApReqAuthenticatorReq_AuthData(tvb, offset, pinfo, tree, di, drep);
2121 offset = rcg_dissect_element_CreateApReqAuthenticatorReq_GssChecksum(tvb, offset, pinfo, tree, di, drep);
2123 offset = rcg_dissect_element_CreateApReqAuthenticatorReq_KeyUsage(tvb, offset, pinfo, tree, di, drep);
2126 proto_item_set_len(item, offset-old_offset);
2129 if (di->call_data->flags & DCERPC_IS_NDR64) {
2130 ALIGN_TO_5_BYTES;
2133 return offset;
2137 /* IDL: struct { */
2138 /* IDL: LARGE_INTEGER AuthenticatorTime; */
2139 /* IDL: KERB_ASN1_DATA Authenticator; */
2140 /* IDL: int32 KerbProtocolError; */
2141 /* IDL: } */
2143 static int
2144 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_)
2146 offset = rcg_dissect_struct_LARGE_INTEGER(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorResp_AuthenticatorTime,0);
2148 return offset;
2151 static int
2152 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_)
2154 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorResp_Authenticator,0);
2156 return offset;
2159 static int
2160 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_)
2162 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateApReqAuthenticatorResp_KerbProtocolError, 0);
2164 return offset;
2168 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_)
2170 proto_item *item = NULL;
2171 proto_tree *tree = NULL;
2172 int old_offset;
2174 ALIGN_TO_8_BYTES;
2176 old_offset = offset;
2178 if (parent_tree) {
2179 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2180 tree = proto_item_add_subtree(item, ett_rcg_CreateApReqAuthenticatorResp);
2183 offset = rcg_dissect_element_CreateApReqAuthenticatorResp_AuthenticatorTime(tvb, offset, pinfo, tree, di, drep);
2185 offset = rcg_dissect_element_CreateApReqAuthenticatorResp_Authenticator(tvb, offset, pinfo, tree, di, drep);
2187 offset = rcg_dissect_element_CreateApReqAuthenticatorResp_KerbProtocolError(tvb, offset, pinfo, tree, di, drep);
2190 proto_item_set_len(item, offset-old_offset);
2193 if (di->call_data->flags & DCERPC_IS_NDR64) {
2194 ALIGN_TO_8_BYTES;
2197 return offset;
2201 /* IDL: struct { */
2202 /* IDL: [ref] KERB_ASN1_DATA *EncryptedReply; */
2203 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
2204 /* IDL: } */
2206 static int
2207 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_)
2209 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);
2211 return offset;
2214 static int
2215 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_)
2217 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_DecryptApReplyReq_EncryptedReply,0);
2219 return offset;
2222 static int
2223 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_)
2225 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);
2227 return offset;
2230 static int
2231 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_)
2233 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_DecryptApReplyReq_Key,0);
2235 return offset;
2239 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_)
2241 proto_item *item = NULL;
2242 proto_tree *tree = NULL;
2243 int old_offset;
2245 ALIGN_TO_5_BYTES;
2247 old_offset = offset;
2249 if (parent_tree) {
2250 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2251 tree = proto_item_add_subtree(item, ett_rcg_DecryptApReplyReq);
2254 offset = rcg_dissect_element_DecryptApReplyReq_EncryptedReply(tvb, offset, pinfo, tree, di, drep);
2256 offset = rcg_dissect_element_DecryptApReplyReq_Key(tvb, offset, pinfo, tree, di, drep);
2259 proto_item_set_len(item, offset-old_offset);
2262 if (di->call_data->flags & DCERPC_IS_NDR64) {
2263 ALIGN_TO_5_BYTES;
2266 return offset;
2270 /* IDL: struct { */
2271 /* IDL: KERB_ASN1_DATA ApReply; */
2272 /* IDL: } */
2274 static int
2275 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_)
2277 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_DecryptApReplyResp_ApReply,0);
2279 return offset;
2283 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_)
2285 proto_item *item = NULL;
2286 proto_tree *tree = NULL;
2287 int old_offset;
2289 ALIGN_TO_5_BYTES;
2291 old_offset = offset;
2293 if (parent_tree) {
2294 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2295 tree = proto_item_add_subtree(item, ett_rcg_DecryptApReplyResp);
2298 offset = rcg_dissect_element_DecryptApReplyResp_ApReply(tvb, offset, pinfo, tree, di, drep);
2301 proto_item_set_len(item, offset-old_offset);
2304 if (di->call_data->flags & DCERPC_IS_NDR64) {
2305 ALIGN_TO_5_BYTES;
2308 return offset;
2312 /* IDL: struct { */
2313 /* IDL: [ref] KERB_ASN1_DATA *EncryptedData; */
2314 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
2315 /* IDL: [ptr(1)] KERB_RPC_ENCRYPTION_KEY *StrengthenKey; */
2316 /* IDL: uint32 Pdu; */
2317 /* IDL: uint32 KeyUsage; */
2318 /* IDL: } */
2320 static int
2321 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_)
2323 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);
2325 return offset;
2328 static int
2329 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_)
2331 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_UnpackKdcReplyBodyReq_EncryptedData,0);
2333 return offset;
2336 static int
2337 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_)
2339 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);
2341 return offset;
2344 static int
2345 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_)
2347 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_UnpackKdcReplyBodyReq_Key,0);
2349 return offset;
2352 static int
2353 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_)
2355 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);
2357 return offset;
2360 static int
2361 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_)
2363 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_UnpackKdcReplyBodyReq_StrengthenKey,0);
2365 return offset;
2368 static int
2369 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_)
2371 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_UnpackKdcReplyBodyReq_Pdu, 0);
2373 return offset;
2376 static int
2377 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_)
2379 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_UnpackKdcReplyBodyReq_KeyUsage, 0);
2381 return offset;
2385 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_)
2387 proto_item *item = NULL;
2388 proto_tree *tree = NULL;
2389 int old_offset;
2391 ALIGN_TO_5_BYTES;
2393 old_offset = offset;
2395 if (parent_tree) {
2396 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2397 tree = proto_item_add_subtree(item, ett_rcg_UnpackKdcReplyBodyReq);
2400 offset = rcg_dissect_element_UnpackKdcReplyBodyReq_EncryptedData(tvb, offset, pinfo, tree, di, drep);
2402 offset = rcg_dissect_element_UnpackKdcReplyBodyReq_Key(tvb, offset, pinfo, tree, di, drep);
2404 offset = rcg_dissect_element_UnpackKdcReplyBodyReq_StrengthenKey(tvb, offset, pinfo, tree, di, drep);
2406 offset = rcg_dissect_element_UnpackKdcReplyBodyReq_Pdu(tvb, offset, pinfo, tree, di, drep);
2408 offset = rcg_dissect_element_UnpackKdcReplyBodyReq_KeyUsage(tvb, offset, pinfo, tree, di, drep);
2411 proto_item_set_len(item, offset-old_offset);
2414 if (di->call_data->flags & DCERPC_IS_NDR64) {
2415 ALIGN_TO_5_BYTES;
2418 return offset;
2422 /* IDL: struct { */
2423 /* IDL: int32 KerbProtocolError; */
2424 /* IDL: KERB_ASN1_DATA ReplyBody; */
2425 /* IDL: } */
2427 static int
2428 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_)
2430 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_UnpackKdcReplyBodyResp_KerbProtocolError, 0);
2432 return offset;
2435 static int
2436 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_)
2438 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_UnpackKdcReplyBodyResp_ReplyBody,0);
2440 return offset;
2444 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_)
2446 proto_item *item = NULL;
2447 proto_tree *tree = NULL;
2448 int old_offset;
2450 ALIGN_TO_5_BYTES;
2452 old_offset = offset;
2454 if (parent_tree) {
2455 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2456 tree = proto_item_add_subtree(item, ett_rcg_UnpackKdcReplyBodyResp);
2459 offset = rcg_dissect_element_UnpackKdcReplyBodyResp_KerbProtocolError(tvb, offset, pinfo, tree, di, drep);
2461 offset = rcg_dissect_element_UnpackKdcReplyBodyResp_ReplyBody(tvb, offset, pinfo, tree, di, drep);
2464 proto_item_set_len(item, offset-old_offset);
2467 if (di->call_data->flags & DCERPC_IS_NDR64) {
2468 ALIGN_TO_5_BYTES;
2471 return offset;
2475 /* IDL: struct { */
2476 /* IDL: [ref] KERB_ASN1_DATA *RequestBody; */
2477 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
2478 /* IDL: uint32 ChecksumType; */
2479 /* IDL: } */
2481 static int
2482 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_)
2484 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);
2486 return offset;
2489 static int
2490 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_)
2492 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_ComputeTgsChecksumReq_RequestBody,0);
2494 return offset;
2497 static int
2498 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_)
2500 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);
2502 return offset;
2505 static int
2506 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_)
2508 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_ComputeTgsChecksumReq_Key,0);
2510 return offset;
2513 static int
2514 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_)
2516 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_ComputeTgsChecksumReq_ChecksumType, 0);
2518 return offset;
2522 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_)
2524 proto_item *item = NULL;
2525 proto_tree *tree = NULL;
2526 int old_offset;
2528 ALIGN_TO_5_BYTES;
2530 old_offset = offset;
2532 if (parent_tree) {
2533 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2534 tree = proto_item_add_subtree(item, ett_rcg_ComputeTgsChecksumReq);
2537 offset = rcg_dissect_element_ComputeTgsChecksumReq_RequestBody(tvb, offset, pinfo, tree, di, drep);
2539 offset = rcg_dissect_element_ComputeTgsChecksumReq_Key(tvb, offset, pinfo, tree, di, drep);
2541 offset = rcg_dissect_element_ComputeTgsChecksumReq_ChecksumType(tvb, offset, pinfo, tree, di, drep);
2544 proto_item_set_len(item, offset-old_offset);
2547 if (di->call_data->flags & DCERPC_IS_NDR64) {
2548 ALIGN_TO_5_BYTES;
2551 return offset;
2555 /* IDL: struct { */
2556 /* IDL: KERB_ASN1_DATA_CHECKSUM Checksum; */
2557 /* IDL: } */
2559 static int
2560 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_)
2562 offset = rcg_dissect_struct_KERB_ASN1_DATA_CHECKSUM(tvb,offset,pinfo,tree,di,drep,hf_rcg_ComputeTgsChecksumResp_Checksum,0);
2564 return offset;
2568 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_)
2570 proto_item *item = NULL;
2571 proto_tree *tree = NULL;
2572 int old_offset;
2574 ALIGN_TO_5_BYTES;
2576 old_offset = offset;
2578 if (parent_tree) {
2579 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2580 tree = proto_item_add_subtree(item, ett_rcg_ComputeTgsChecksumResp);
2583 offset = rcg_dissect_element_ComputeTgsChecksumResp_Checksum(tvb, offset, pinfo, tree, di, drep);
2586 proto_item_set_len(item, offset-old_offset);
2589 if (di->call_data->flags & DCERPC_IS_NDR64) {
2590 ALIGN_TO_5_BYTES;
2593 return offset;
2597 /* IDL: struct { */
2598 /* IDL: uint32 KeyUsage; */
2599 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
2600 /* IDL: [ref] KERB_ASN1_DATA *PlainAuthData; */
2601 /* IDL: } */
2603 static int
2604 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_)
2606 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_BuildEncryptedAuthDataReq_KeyUsage, 0);
2608 return offset;
2611 static int
2612 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_)
2614 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);
2616 return offset;
2619 static int
2620 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_)
2622 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildEncryptedAuthDataReq_Key,0);
2624 return offset;
2627 static int
2628 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_)
2630 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);
2632 return offset;
2635 static int
2636 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_)
2638 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildEncryptedAuthDataReq_PlainAuthData,0);
2640 return offset;
2644 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_)
2646 proto_item *item = NULL;
2647 proto_tree *tree = NULL;
2648 int old_offset;
2650 ALIGN_TO_5_BYTES;
2652 old_offset = offset;
2654 if (parent_tree) {
2655 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2656 tree = proto_item_add_subtree(item, ett_rcg_BuildEncryptedAuthDataReq);
2659 offset = rcg_dissect_element_BuildEncryptedAuthDataReq_KeyUsage(tvb, offset, pinfo, tree, di, drep);
2661 offset = rcg_dissect_element_BuildEncryptedAuthDataReq_Key(tvb, offset, pinfo, tree, di, drep);
2663 offset = rcg_dissect_element_BuildEncryptedAuthDataReq_PlainAuthData(tvb, offset, pinfo, tree, di, drep);
2666 proto_item_set_len(item, offset-old_offset);
2669 if (di->call_data->flags & DCERPC_IS_NDR64) {
2670 ALIGN_TO_5_BYTES;
2673 return offset;
2677 /* IDL: struct { */
2678 /* IDL: KERB_ASN1_DATA EncryptedAuthData; */
2679 /* IDL: } */
2681 static int
2682 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_)
2684 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildEncryptedAuthDataResp_EncryptedAuthData,0);
2686 return offset;
2690 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_)
2692 proto_item *item = NULL;
2693 proto_tree *tree = NULL;
2694 int old_offset;
2696 ALIGN_TO_5_BYTES;
2698 old_offset = offset;
2700 if (parent_tree) {
2701 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2702 tree = proto_item_add_subtree(item, ett_rcg_BuildEncryptedAuthDataResp);
2705 offset = rcg_dissect_element_BuildEncryptedAuthDataResp_EncryptedAuthData(tvb, offset, pinfo, tree, di, drep);
2708 proto_item_set_len(item, offset-old_offset);
2711 if (di->call_data->flags & DCERPC_IS_NDR64) {
2712 ALIGN_TO_5_BYTES;
2715 return offset;
2719 /* IDL: struct { */
2720 /* IDL: [ref] KERB_ASN1_DATA *Reply; */
2721 /* IDL: [ref] KERB_ASN1_DATA *ReplyBody; */
2722 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *SessionKey; */
2723 /* IDL: } */
2725 static int
2726 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_)
2728 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);
2730 return offset;
2733 static int
2734 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_)
2736 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_PackApReplyReq_Reply,0);
2738 return offset;
2741 static int
2742 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_)
2744 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);
2746 return offset;
2749 static int
2750 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_)
2752 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_PackApReplyReq_ReplyBody,0);
2754 return offset;
2757 static int
2758 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_)
2760 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);
2762 return offset;
2765 static int
2766 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_)
2768 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_PackApReplyReq_SessionKey,0);
2770 return offset;
2774 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_)
2776 proto_item *item = NULL;
2777 proto_tree *tree = NULL;
2778 int old_offset;
2780 ALIGN_TO_5_BYTES;
2782 old_offset = offset;
2784 if (parent_tree) {
2785 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2786 tree = proto_item_add_subtree(item, ett_rcg_PackApReplyReq);
2789 offset = rcg_dissect_element_PackApReplyReq_Reply(tvb, offset, pinfo, tree, di, drep);
2791 offset = rcg_dissect_element_PackApReplyReq_ReplyBody(tvb, offset, pinfo, tree, di, drep);
2793 offset = rcg_dissect_element_PackApReplyReq_SessionKey(tvb, offset, pinfo, tree, di, drep);
2796 proto_item_set_len(item, offset-old_offset);
2799 if (di->call_data->flags & DCERPC_IS_NDR64) {
2800 ALIGN_TO_5_BYTES;
2803 return offset;
2807 /* IDL: struct { */
2808 /* IDL: uint32 PackedReplySize; */
2809 /* IDL: [ref] [size_is(PackedReplySize)] uint8 *PackedReply; */
2810 /* IDL: } */
2812 static int
2813 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_)
2815 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_PackApReplyResp_PackedReplySize, 0);
2817 return offset;
2820 static int
2821 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_)
2823 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);
2825 return offset;
2828 static int
2829 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_)
2831 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_PackApReplyResp_PackedReply__);
2833 return offset;
2836 static int
2837 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_)
2839 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_PackApReplyResp_PackedReply, 0);
2841 return offset;
2845 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_)
2847 proto_item *item = NULL;
2848 proto_tree *tree = NULL;
2849 int old_offset;
2851 ALIGN_TO_5_BYTES;
2853 old_offset = offset;
2855 if (parent_tree) {
2856 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2857 tree = proto_item_add_subtree(item, ett_rcg_PackApReplyResp);
2860 offset = rcg_dissect_element_PackApReplyResp_PackedReplySize(tvb, offset, pinfo, tree, di, drep);
2862 offset = rcg_dissect_element_PackApReplyResp_PackedReply(tvb, offset, pinfo, tree, di, drep);
2865 proto_item_set_len(item, offset-old_offset);
2868 if (di->call_data->flags & DCERPC_IS_NDR64) {
2869 ALIGN_TO_5_BYTES;
2872 return offset;
2876 /* IDL: struct { */
2877 /* IDL: [ref] KERB_ASN1_DATA *S4UPreauth; */
2878 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
2879 /* IDL: int32 ChecksumType; */
2880 /* IDL: } */
2882 static int
2883 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_)
2885 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);
2887 return offset;
2890 static int
2891 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_)
2893 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_HashS4UPreauthReq_S4UPreauth,0);
2895 return offset;
2898 static int
2899 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_)
2901 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);
2903 return offset;
2906 static int
2907 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_)
2909 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_HashS4UPreauthReq_Key,0);
2911 return offset;
2914 static int
2915 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_)
2917 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_HashS4UPreauthReq_ChecksumType, 0);
2919 return offset;
2923 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_)
2925 proto_item *item = NULL;
2926 proto_tree *tree = NULL;
2927 int old_offset;
2929 ALIGN_TO_5_BYTES;
2931 old_offset = offset;
2933 if (parent_tree) {
2934 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2935 tree = proto_item_add_subtree(item, ett_rcg_HashS4UPreauthReq);
2938 offset = rcg_dissect_element_HashS4UPreauthReq_S4UPreauth(tvb, offset, pinfo, tree, di, drep);
2940 offset = rcg_dissect_element_HashS4UPreauthReq_Key(tvb, offset, pinfo, tree, di, drep);
2942 offset = rcg_dissect_element_HashS4UPreauthReq_ChecksumType(tvb, offset, pinfo, tree, di, drep);
2945 proto_item_set_len(item, offset-old_offset);
2948 if (di->call_data->flags & DCERPC_IS_NDR64) {
2949 ALIGN_TO_5_BYTES;
2952 return offset;
2956 /* IDL: struct { */
2957 /* IDL: [ref] uint32 *ChecksumSize; */
2958 /* IDL: [ref] [size_is(,*ChecksumSize)] uint8 **ChecksumValue; */
2959 /* IDL: } */
2961 static int
2962 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_)
2964 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);
2966 return offset;
2969 static int
2970 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_)
2972 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_HashS4UPreauthResp_ChecksumSize, 0);
2974 return offset;
2977 static int
2978 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_)
2980 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);
2982 return offset;
2985 static int
2986 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_)
2988 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);
2990 return offset;
2993 static int
2994 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_)
2996 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_HashS4UPreauthResp_ChecksumValue___);
2998 return offset;
3001 static int
3002 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_)
3004 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_HashS4UPreauthResp_ChecksumValue, 0);
3006 return offset;
3010 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_)
3012 proto_item *item = NULL;
3013 proto_tree *tree = NULL;
3014 int old_offset;
3016 ALIGN_TO_5_BYTES;
3018 old_offset = offset;
3020 if (parent_tree) {
3021 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3022 tree = proto_item_add_subtree(item, ett_rcg_HashS4UPreauthResp);
3025 offset = rcg_dissect_element_HashS4UPreauthResp_ChecksumSize(tvb, offset, pinfo, tree, di, drep);
3027 offset = rcg_dissect_element_HashS4UPreauthResp_ChecksumValue(tvb, offset, pinfo, tree, di, drep);
3030 proto_item_set_len(item, offset-old_offset);
3033 if (di->call_data->flags & DCERPC_IS_NDR64) {
3034 ALIGN_TO_5_BYTES;
3037 return offset;
3041 /* IDL: struct { */
3042 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
3043 /* IDL: uint32 IsRequest; */
3044 /* IDL: [ref] KERB_ASN1_DATA *UserId; */
3045 /* IDL: [ref] int32 *ChecksumType; */
3046 /* IDL: } */
3048 static int
3049 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_)
3051 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);
3053 return offset;
3056 static int
3057 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_)
3059 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_SignS4UPreauthDataReq_Key,0);
3061 return offset;
3064 static int
3065 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_)
3067 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_SignS4UPreauthDataReq_IsRequest, 0);
3069 return offset;
3072 static int
3073 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_)
3075 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);
3077 return offset;
3080 static int
3081 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_)
3083 offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_SignS4UPreauthDataReq_UserId,0);
3085 return offset;
3088 static int
3089 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_)
3091 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);
3093 return offset;
3096 static int
3097 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_)
3099 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_SignS4UPreauthDataReq_ChecksumType, 0);
3101 return offset;
3105 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_)
3107 proto_item *item = NULL;
3108 proto_tree *tree = NULL;
3109 int old_offset;
3111 ALIGN_TO_5_BYTES;
3113 old_offset = offset;
3115 if (parent_tree) {
3116 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3117 tree = proto_item_add_subtree(item, ett_rcg_SignS4UPreauthDataReq);
3120 offset = rcg_dissect_element_SignS4UPreauthDataReq_Key(tvb, offset, pinfo, tree, di, drep);
3122 offset = rcg_dissect_element_SignS4UPreauthDataReq_IsRequest(tvb, offset, pinfo, tree, di, drep);
3124 offset = rcg_dissect_element_SignS4UPreauthDataReq_UserId(tvb, offset, pinfo, tree, di, drep);
3126 offset = rcg_dissect_element_SignS4UPreauthDataReq_ChecksumType(tvb, offset, pinfo, tree, di, drep);
3129 proto_item_set_len(item, offset-old_offset);
3132 if (di->call_data->flags & DCERPC_IS_NDR64) {
3133 ALIGN_TO_5_BYTES;
3136 return offset;
3140 /* IDL: struct { */
3141 /* IDL: [ref] int32 *ChecksumType; */
3142 /* IDL: [ref] uint32 *ChecksumSize; */
3143 /* IDL: [ref] [size_is(,*ChecksumSize)] uint8 **ChecksumValue; */
3144 /* IDL: } */
3146 static int
3147 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_)
3149 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);
3151 return offset;
3154 static int
3155 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_)
3157 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_SignS4UPreauthDataResp_ChecksumType, 0);
3159 return offset;
3162 static int
3163 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_)
3165 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);
3167 return offset;
3170 static int
3171 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_)
3173 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_SignS4UPreauthDataResp_ChecksumSize, 0);
3175 return offset;
3178 static int
3179 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_)
3181 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);
3183 return offset;
3186 static int
3187 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_)
3189 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);
3191 return offset;
3194 static int
3195 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_)
3197 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_SignS4UPreauthDataResp_ChecksumValue___);
3199 return offset;
3202 static int
3203 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_)
3205 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_SignS4UPreauthDataResp_ChecksumValue, 0);
3207 return offset;
3211 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_)
3213 proto_item *item = NULL;
3214 proto_tree *tree = NULL;
3215 int old_offset;
3217 ALIGN_TO_5_BYTES;
3219 old_offset = offset;
3221 if (parent_tree) {
3222 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3223 tree = proto_item_add_subtree(item, ett_rcg_SignS4UPreauthDataResp);
3226 offset = rcg_dissect_element_SignS4UPreauthDataResp_ChecksumType(tvb, offset, pinfo, tree, di, drep);
3228 offset = rcg_dissect_element_SignS4UPreauthDataResp_ChecksumSize(tvb, offset, pinfo, tree, di, drep);
3230 offset = rcg_dissect_element_SignS4UPreauthDataResp_ChecksumValue(tvb, offset, pinfo, tree, di, drep);
3233 proto_item_set_len(item, offset-old_offset);
3236 if (di->call_data->flags & DCERPC_IS_NDR64) {
3237 ALIGN_TO_5_BYTES;
3240 return offset;
3244 /* IDL: struct { */
3245 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
3246 /* IDL: uint32 ChecksumType; */
3247 /* IDL: uint32 ExpectedChecksumSize; */
3248 /* IDL: [ref] [size_is(ExpectedChecksumSize)] uint8 *ExpectedChecksum; */
3249 /* IDL: uint32 DataToCheckSize; */
3250 /* IDL: [ref] [size_is(DataToCheckSize)] uint8 *DataToCheck; */
3251 /* IDL: } */
3253 static int
3254 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_)
3256 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);
3258 return offset;
3261 static int
3262 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_)
3264 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_VerifyChecksumReq_Key,0);
3266 return offset;
3269 static int
3270 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_)
3272 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyChecksumReq_ChecksumType, 0);
3274 return offset;
3277 static int
3278 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_)
3280 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyChecksumReq_ExpectedChecksumSize, 0);
3282 return offset;
3285 static int
3286 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_)
3288 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);
3290 return offset;
3293 static int
3294 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_)
3296 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_VerifyChecksumReq_ExpectedChecksum__);
3298 return offset;
3301 static int
3302 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_)
3304 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyChecksumReq_ExpectedChecksum, 0);
3306 return offset;
3309 static int
3310 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_)
3312 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyChecksumReq_DataToCheckSize, 0);
3314 return offset;
3317 static int
3318 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_)
3320 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);
3322 return offset;
3325 static int
3326 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_)
3328 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_VerifyChecksumReq_DataToCheck__);
3330 return offset;
3333 static int
3334 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_)
3336 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyChecksumReq_DataToCheck, 0);
3338 return offset;
3342 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_)
3344 proto_item *item = NULL;
3345 proto_tree *tree = NULL;
3346 int old_offset;
3348 ALIGN_TO_5_BYTES;
3350 old_offset = offset;
3352 if (parent_tree) {
3353 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3354 tree = proto_item_add_subtree(item, ett_rcg_VerifyChecksumReq);
3357 offset = rcg_dissect_element_VerifyChecksumReq_Key(tvb, offset, pinfo, tree, di, drep);
3359 offset = rcg_dissect_element_VerifyChecksumReq_ChecksumType(tvb, offset, pinfo, tree, di, drep);
3361 offset = rcg_dissect_element_VerifyChecksumReq_ExpectedChecksumSize(tvb, offset, pinfo, tree, di, drep);
3363 offset = rcg_dissect_element_VerifyChecksumReq_ExpectedChecksum(tvb, offset, pinfo, tree, di, drep);
3365 offset = rcg_dissect_element_VerifyChecksumReq_DataToCheckSize(tvb, offset, pinfo, tree, di, drep);
3367 offset = rcg_dissect_element_VerifyChecksumReq_DataToCheck(tvb, offset, pinfo, tree, di, drep);
3370 proto_item_set_len(item, offset-old_offset);
3373 if (di->call_data->flags & DCERPC_IS_NDR64) {
3374 ALIGN_TO_5_BYTES;
3377 return offset;
3381 /* IDL: struct { */
3382 /* IDL: uint32 IsValid; */
3383 /* IDL: } */
3385 static int
3386 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_)
3388 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyChecksumResp_IsValid, 0);
3390 return offset;
3394 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_)
3396 proto_item *item = NULL;
3397 proto_tree *tree = NULL;
3398 int old_offset;
3400 ALIGN_TO_4_BYTES;
3402 old_offset = offset;
3404 if (parent_tree) {
3405 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3406 tree = proto_item_add_subtree(item, ett_rcg_VerifyChecksumResp);
3409 offset = rcg_dissect_element_VerifyChecksumResp_IsValid(tvb, offset, pinfo, tree, di, drep);
3412 proto_item_set_len(item, offset-old_offset);
3415 if (di->call_data->flags & DCERPC_IS_NDR64) {
3416 ALIGN_TO_4_BYTES;
3419 return offset;
3423 /* IDL: struct { */
3424 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
3425 /* IDL: uint32 Version; */
3426 /* IDL: uint32 EncryptionType; */
3427 /* IDL: uint32 DataSize; */
3428 /* IDL: [ref] [size_is(DataSize)] uint8 *Data; */
3429 /* IDL: } */
3431 static int
3432 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_)
3434 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);
3436 return offset;
3439 static int
3440 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_)
3442 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_DecryptPacCredentialsReq_Key,0);
3444 return offset;
3447 static int
3448 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_)
3450 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_DecryptPacCredentialsReq_Version, 0);
3452 return offset;
3455 static int
3456 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_)
3458 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_DecryptPacCredentialsReq_EncryptionType, 0);
3460 return offset;
3463 static int
3464 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_)
3466 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_DecryptPacCredentialsReq_DataSize, 0);
3468 return offset;
3471 static int
3472 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_)
3474 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);
3476 return offset;
3479 static int
3480 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_)
3482 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_DecryptPacCredentialsReq_Data__);
3484 return offset;
3487 static int
3488 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_)
3490 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_DecryptPacCredentialsReq_Data, 0);
3492 return offset;
3496 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_)
3498 proto_item *item = NULL;
3499 proto_tree *tree = NULL;
3500 int old_offset;
3502 ALIGN_TO_5_BYTES;
3504 old_offset = offset;
3506 if (parent_tree) {
3507 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3508 tree = proto_item_add_subtree(item, ett_rcg_DecryptPacCredentialsReq);
3511 offset = rcg_dissect_element_DecryptPacCredentialsReq_Key(tvb, offset, pinfo, tree, di, drep);
3513 offset = rcg_dissect_element_DecryptPacCredentialsReq_Version(tvb, offset, pinfo, tree, di, drep);
3515 offset = rcg_dissect_element_DecryptPacCredentialsReq_EncryptionType(tvb, offset, pinfo, tree, di, drep);
3517 offset = rcg_dissect_element_DecryptPacCredentialsReq_DataSize(tvb, offset, pinfo, tree, di, drep);
3519 offset = rcg_dissect_element_DecryptPacCredentialsReq_Data(tvb, offset, pinfo, tree, di, drep);
3522 proto_item_set_len(item, offset-old_offset);
3525 if (di->call_data->flags & DCERPC_IS_NDR64) {
3526 ALIGN_TO_5_BYTES;
3529 return offset;
3533 /* IDL: struct { */
3534 /* IDL: PSECPKG_SUPPLEMENTAL_CRED_ARRAY Credentials; */
3535 /* IDL: } */
3537 static int
3538 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_)
3540 offset = rcg_dissect_struct_PSECPKG_SUPPLEMENTAL_CRED_ARRAY(tvb,offset,pinfo,tree,di,drep,hf_rcg_DecryptPacCredentialsResp_Credentials,0);
3542 return offset;
3546 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_)
3548 proto_item *item = NULL;
3549 proto_tree *tree = NULL;
3550 int old_offset;
3552 ALIGN_TO_4_BYTES;
3554 old_offset = offset;
3556 if (parent_tree) {
3557 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3558 tree = proto_item_add_subtree(item, ett_rcg_DecryptPacCredentialsResp);
3561 offset = rcg_dissect_element_DecryptPacCredentialsResp_Credentials(tvb, offset, pinfo, tree, di, drep);
3564 proto_item_set_len(item, offset-old_offset);
3567 if (di->call_data->flags & DCERPC_IS_NDR64) {
3568 ALIGN_TO_4_BYTES;
3571 return offset;
3575 /* IDL: struct { */
3576 /* IDL: uint32 KeyBitLen; */
3577 /* IDL: } */
3579 static int
3580 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_)
3582 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateECDHKeyAgreementReq_KeyBitLen, 0);
3584 return offset;
3588 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_)
3590 proto_item *item = NULL;
3591 proto_tree *tree = NULL;
3592 int old_offset;
3594 ALIGN_TO_4_BYTES;
3596 old_offset = offset;
3598 if (parent_tree) {
3599 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3600 tree = proto_item_add_subtree(item, ett_rcg_CreateECDHKeyAgreementReq);
3603 offset = rcg_dissect_element_CreateECDHKeyAgreementReq_KeyBitLen(tvb, offset, pinfo, tree, di, drep);
3606 proto_item_set_len(item, offset-old_offset);
3609 if (di->call_data->flags & DCERPC_IS_NDR64) {
3610 ALIGN_TO_4_BYTES;
3613 return offset;
3617 /* IDL: struct { */
3618 /* IDL: [ref] int64 *KeyAgreementHandle; */
3619 /* IDL: [ref] int32 *KerbErr; */
3620 /* IDL: [ref] uint32 *EncodedPubKeyLen; */
3621 /* IDL: [ref] [size_is(,*EncodedPubKeyLen)] uint8 **EncodedPubKey; */
3622 /* IDL: } */
3624 static int
3625 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_)
3627 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);
3629 return offset;
3632 static int
3633 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_)
3635 offset = PIDL_dissect_uint64(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateECDHKeyAgreementResp_KeyAgreementHandle, 0);
3637 return offset;
3640 static int
3641 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_)
3643 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);
3645 return offset;
3648 static int
3649 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_)
3651 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateECDHKeyAgreementResp_KerbErr, 0);
3653 return offset;
3656 static int
3657 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_)
3659 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);
3661 return offset;
3664 static int
3665 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_)
3667 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateECDHKeyAgreementResp_EncodedPubKeyLen, 0);
3669 return offset;
3672 static int
3673 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_)
3675 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);
3677 return offset;
3680 static int
3681 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_)
3683 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);
3685 return offset;
3688 static int
3689 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_)
3691 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKey___);
3693 return offset;
3696 static int
3697 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_)
3699 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateECDHKeyAgreementResp_EncodedPubKey, 0);
3701 return offset;
3705 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_)
3707 proto_item *item = NULL;
3708 proto_tree *tree = NULL;
3709 int old_offset;
3711 ALIGN_TO_5_BYTES;
3713 old_offset = offset;
3715 if (parent_tree) {
3716 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3717 tree = proto_item_add_subtree(item, ett_rcg_CreateECDHKeyAgreementResp);
3720 offset = rcg_dissect_element_CreateECDHKeyAgreementResp_KeyAgreementHandle(tvb, offset, pinfo, tree, di, drep);
3722 offset = rcg_dissect_element_CreateECDHKeyAgreementResp_KerbErr(tvb, offset, pinfo, tree, di, drep);
3724 offset = rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKeyLen(tvb, offset, pinfo, tree, di, drep);
3726 offset = rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKey(tvb, offset, pinfo, tree, di, drep);
3729 proto_item_set_len(item, offset-old_offset);
3732 if (di->call_data->flags & DCERPC_IS_NDR64) {
3733 ALIGN_TO_5_BYTES;
3736 return offset;
3740 /* IDL: struct { */
3741 /* IDL: uint8 Ignored; */
3742 /* IDL: } */
3744 static int
3745 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_)
3747 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateDHKeyAgreementReq_Ignored, 0);
3749 return offset;
3753 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_)
3755 proto_item *item = NULL;
3756 proto_tree *tree = NULL;
3757 int old_offset;
3759 old_offset = offset;
3761 if (parent_tree) {
3762 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3763 tree = proto_item_add_subtree(item, ett_rcg_CreateDHKeyAgreementReq);
3766 offset = rcg_dissect_element_CreateDHKeyAgreementReq_Ignored(tvb, offset, pinfo, tree, di, drep);
3769 proto_item_set_len(item, offset-old_offset);
3772 return offset;
3776 /* IDL: struct { */
3777 /* IDL: [ref] KERB_RPC_CRYPTO_API_BLOB *ModulusP; */
3778 /* IDL: [ref] KERB_RPC_CRYPTO_API_BLOB *GeneratorG; */
3779 /* IDL: [ref] KERB_RPC_CRYPTO_API_BLOB *FactorQ; */
3780 /* IDL: [ref] int64 *KeyAgreementHandle; */
3781 /* IDL: [ref] int32 *KerbErr; */
3782 /* IDL: [ref] uint32 *LittleEndianPublicKeyLen; */
3783 /* IDL: [ref] [size_is(,*LittleEndianPublicKeyLen)] uint8 **LittleEndianPublicKey; */
3784 /* IDL: } */
3786 static int
3787 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_)
3789 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);
3791 return offset;
3794 static int
3795 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_)
3797 offset = rcg_dissect_struct_KERB_RPC_CRYPTO_API_BLOB(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateDHKeyAgreementResp_ModulusP,0);
3799 return offset;
3802 static int
3803 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_)
3805 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);
3807 return offset;
3810 static int
3811 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_)
3813 offset = rcg_dissect_struct_KERB_RPC_CRYPTO_API_BLOB(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateDHKeyAgreementResp_GeneratorG,0);
3815 return offset;
3818 static int
3819 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_)
3821 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);
3823 return offset;
3826 static int
3827 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_)
3829 offset = rcg_dissect_struct_KERB_RPC_CRYPTO_API_BLOB(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateDHKeyAgreementResp_FactorQ,0);
3831 return offset;
3834 static int
3835 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_)
3837 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);
3839 return offset;
3842 static int
3843 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_)
3845 offset = PIDL_dissect_uint64(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateDHKeyAgreementResp_KeyAgreementHandle, 0);
3847 return offset;
3850 static int
3851 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_)
3853 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);
3855 return offset;
3858 static int
3859 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_)
3861 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateDHKeyAgreementResp_KerbErr, 0);
3863 return offset;
3866 static int
3867 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_)
3869 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);
3871 return offset;
3874 static int
3875 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_)
3877 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateDHKeyAgreementResp_LittleEndianPublicKeyLen, 0);
3879 return offset;
3882 static int
3883 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_)
3885 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);
3887 return offset;
3890 static int
3891 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_)
3893 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);
3895 return offset;
3898 static int
3899 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_)
3901 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKey___);
3903 return offset;
3906 static int
3907 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_)
3909 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateDHKeyAgreementResp_LittleEndianPublicKey, 0);
3911 return offset;
3915 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_)
3917 proto_item *item = NULL;
3918 proto_tree *tree = NULL;
3919 int old_offset;
3921 ALIGN_TO_5_BYTES;
3923 old_offset = offset;
3925 if (parent_tree) {
3926 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3927 tree = proto_item_add_subtree(item, ett_rcg_CreateDHKeyAgreementResp);
3930 offset = rcg_dissect_element_CreateDHKeyAgreementResp_ModulusP(tvb, offset, pinfo, tree, di, drep);
3932 offset = rcg_dissect_element_CreateDHKeyAgreementResp_GeneratorG(tvb, offset, pinfo, tree, di, drep);
3934 offset = rcg_dissect_element_CreateDHKeyAgreementResp_FactorQ(tvb, offset, pinfo, tree, di, drep);
3936 offset = rcg_dissect_element_CreateDHKeyAgreementResp_KeyAgreementHandle(tvb, offset, pinfo, tree, di, drep);
3938 offset = rcg_dissect_element_CreateDHKeyAgreementResp_KerbErr(tvb, offset, pinfo, tree, di, drep);
3940 offset = rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKeyLen(tvb, offset, pinfo, tree, di, drep);
3942 offset = rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKey(tvb, offset, pinfo, tree, di, drep);
3945 proto_item_set_len(item, offset-old_offset);
3948 if (di->call_data->flags & DCERPC_IS_NDR64) {
3949 ALIGN_TO_5_BYTES;
3952 return offset;
3956 /* IDL: struct { */
3957 /* IDL: int64 KeyAgreementHandle; */
3958 /* IDL: } */
3960 static int
3961 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_)
3963 offset = PIDL_dissect_uint64(tvb, offset, pinfo, tree, di, drep, hf_rcg_DestroyKeyAgreementReq_KeyAgreementHandle, 0);
3965 return offset;
3969 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_)
3971 proto_item *item = NULL;
3972 proto_tree *tree = NULL;
3973 int old_offset;
3975 ALIGN_TO_8_BYTES;
3977 old_offset = offset;
3979 if (parent_tree) {
3980 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3981 tree = proto_item_add_subtree(item, ett_rcg_DestroyKeyAgreementReq);
3984 offset = rcg_dissect_element_DestroyKeyAgreementReq_KeyAgreementHandle(tvb, offset, pinfo, tree, di, drep);
3987 proto_item_set_len(item, offset-old_offset);
3990 if (di->call_data->flags & DCERPC_IS_NDR64) {
3991 ALIGN_TO_8_BYTES;
3994 return offset;
3998 /* IDL: struct { */
3999 /* IDL: uint8 Ignored; */
4000 /* IDL: } */
4002 static int
4003 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_)
4005 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_DestroyKeyAgreementResp_Ignored, 0);
4007 return offset;
4011 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_)
4013 proto_item *item = NULL;
4014 proto_tree *tree = NULL;
4015 int old_offset;
4017 old_offset = offset;
4019 if (parent_tree) {
4020 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4021 tree = proto_item_add_subtree(item, ett_rcg_DestroyKeyAgreementResp);
4024 offset = rcg_dissect_element_DestroyKeyAgreementResp_Ignored(tvb, offset, pinfo, tree, di, drep);
4027 proto_item_set_len(item, offset-old_offset);
4030 return offset;
4034 /* IDL: struct { */
4035 /* IDL: int64 KeyAgreementHandle; */
4036 /* IDL: } */
4038 static int
4039 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_)
4041 offset = PIDL_dissect_uint64(tvb, offset, pinfo, tree, di, drep, hf_rcg_KeyAgreementGenerateNonceReq_KeyAgreementHandle, 0);
4043 return offset;
4047 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_)
4049 proto_item *item = NULL;
4050 proto_tree *tree = NULL;
4051 int old_offset;
4053 ALIGN_TO_8_BYTES;
4055 old_offset = offset;
4057 if (parent_tree) {
4058 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4059 tree = proto_item_add_subtree(item, ett_rcg_KeyAgreementGenerateNonceReq);
4062 offset = rcg_dissect_element_KeyAgreementGenerateNonceReq_KeyAgreementHandle(tvb, offset, pinfo, tree, di, drep);
4065 proto_item_set_len(item, offset-old_offset);
4068 if (di->call_data->flags & DCERPC_IS_NDR64) {
4069 ALIGN_TO_8_BYTES;
4072 return offset;
4076 /* IDL: struct { */
4077 /* IDL: [ref] uint32 *NonceLen; */
4078 /* IDL: [ref] [size_is(,*NonceLen)] uint8 **Nonce; */
4079 /* IDL: } */
4081 static int
4082 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_)
4084 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);
4086 return offset;
4089 static int
4090 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_)
4092 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KeyAgreementGenerateNonceResp_NonceLen, 0);
4094 return offset;
4097 static int
4098 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_)
4100 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);
4102 return offset;
4105 static int
4106 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_)
4108 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);
4110 return offset;
4113 static int
4114 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_)
4116 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_KeyAgreementGenerateNonceResp_Nonce___);
4118 return offset;
4121 static int
4122 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_)
4124 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_KeyAgreementGenerateNonceResp_Nonce, 0);
4126 return offset;
4130 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_)
4132 proto_item *item = NULL;
4133 proto_tree *tree = NULL;
4134 int old_offset;
4136 ALIGN_TO_5_BYTES;
4138 old_offset = offset;
4140 if (parent_tree) {
4141 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4142 tree = proto_item_add_subtree(item, ett_rcg_KeyAgreementGenerateNonceResp);
4145 offset = rcg_dissect_element_KeyAgreementGenerateNonceResp_NonceLen(tvb, offset, pinfo, tree, di, drep);
4147 offset = rcg_dissect_element_KeyAgreementGenerateNonceResp_Nonce(tvb, offset, pinfo, tree, di, drep);
4150 proto_item_set_len(item, offset-old_offset);
4153 if (di->call_data->flags & DCERPC_IS_NDR64) {
4154 ALIGN_TO_5_BYTES;
4157 return offset;
4161 /* IDL: struct { */
4162 /* IDL: [ref] int64 *KeyAgreementHandle; */
4163 /* IDL: [ref] uint32 *KerbEType; */
4164 /* IDL: uint32 RemoteNonceLen; */
4165 /* IDL: [ref] [size_is(RemoteNonceLen)] uint8 *RemoteNonce; */
4166 /* IDL: uint32 X509PublicKeyLen; */
4167 /* IDL: [ref] [size_is(X509PublicKeyLen)] uint8 *X509PublicKey; */
4168 /* IDL: } */
4170 static int
4171 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_)
4173 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);
4175 return offset;
4178 static int
4179 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_)
4181 offset = PIDL_dissect_uint64(tvb, offset, pinfo, tree, di, drep, hf_rcg_FinalizeKeyAgreementReq_KeyAgreementHandle, 0);
4183 return offset;
4186 static int
4187 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_)
4189 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);
4191 return offset;
4194 static int
4195 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_)
4197 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_FinalizeKeyAgreementReq_KerbEType, 0);
4199 return offset;
4202 static int
4203 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_)
4205 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_FinalizeKeyAgreementReq_RemoteNonceLen, 0);
4207 return offset;
4210 static int
4211 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_)
4213 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);
4215 return offset;
4218 static int
4219 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_)
4221 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonce__);
4223 return offset;
4226 static int
4227 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_)
4229 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_FinalizeKeyAgreementReq_RemoteNonce, 0);
4231 return offset;
4234 static int
4235 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_)
4237 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_FinalizeKeyAgreementReq_X509PublicKeyLen, 0);
4239 return offset;
4242 static int
4243 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_)
4245 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);
4247 return offset;
4250 static int
4251 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_)
4253 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_FinalizeKeyAgreementReq_X509PublicKey__);
4255 return offset;
4258 static int
4259 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_)
4261 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_FinalizeKeyAgreementReq_X509PublicKey, 0);
4263 return offset;
4267 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_)
4269 proto_item *item = NULL;
4270 proto_tree *tree = NULL;
4271 int old_offset;
4273 ALIGN_TO_5_BYTES;
4275 old_offset = offset;
4277 if (parent_tree) {
4278 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4279 tree = proto_item_add_subtree(item, ett_rcg_FinalizeKeyAgreementReq);
4282 offset = rcg_dissect_element_FinalizeKeyAgreementReq_KeyAgreementHandle(tvb, offset, pinfo, tree, di, drep);
4284 offset = rcg_dissect_element_FinalizeKeyAgreementReq_KerbEType(tvb, offset, pinfo, tree, di, drep);
4286 offset = rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonceLen(tvb, offset, pinfo, tree, di, drep);
4288 offset = rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonce(tvb, offset, pinfo, tree, di, drep);
4290 offset = rcg_dissect_element_FinalizeKeyAgreementReq_X509PublicKeyLen(tvb, offset, pinfo, tree, di, drep);
4292 offset = rcg_dissect_element_FinalizeKeyAgreementReq_X509PublicKey(tvb, offset, pinfo, tree, di, drep);
4295 proto_item_set_len(item, offset-old_offset);
4298 if (di->call_data->flags & DCERPC_IS_NDR64) {
4299 ALIGN_TO_5_BYTES;
4302 return offset;
4306 /* IDL: struct { */
4307 /* IDL: [ref] KERB_RPC_ENCRYPTION_KEY *SharedKey; */
4308 /* IDL: } */
4310 static int
4311 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_)
4313 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);
4315 return offset;
4318 static int
4319 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_)
4321 offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_FinalizeKeyAgreementResp_SharedKey,0);
4323 return offset;
4327 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_)
4329 proto_item *item = NULL;
4330 proto_tree *tree = NULL;
4331 int old_offset;
4333 ALIGN_TO_5_BYTES;
4335 old_offset = offset;
4337 if (parent_tree) {
4338 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4339 tree = proto_item_add_subtree(item, ett_rcg_FinalizeKeyAgreementResp);
4342 offset = rcg_dissect_element_FinalizeKeyAgreementResp_SharedKey(tvb, offset, pinfo, tree, di, drep);
4345 proto_item_set_len(item, offset-old_offset);
4348 if (di->call_data->flags & DCERPC_IS_NDR64) {
4349 ALIGN_TO_5_BYTES;
4352 return offset;
4356 /* IDL: [flag(LIBNDR_FLAG_ALIGN4)] [switch_type(uint16)] union { */
4357 /* IDL: [case(RemoteCallKerbNegotiateVersion)] [case(RemoteCallKerbNegotiateVersion)] NegotiateVersion negociateVersion; */
4358 /* IDL: [case(RemoteCallKerbBuildAsReqAuthenticator)] [case(RemoteCallKerbBuildAsReqAuthenticator)] BuildAsReqAuthenticatorReq buildAsReqAuthenticator; */
4359 /* IDL: [case(RemoteCallKerbVerifyServiceTicket)] [case(RemoteCallKerbVerifyServiceTicket)] VerifyServiceTicketReq verifyServiceTicket; */
4360 /* IDL: [case(RemoteCallKerbCreateApReqAuthenticator)] [case(RemoteCallKerbCreateApReqAuthenticator)] CreateApReqAuthenticatorReq createApReqAuthenticator; */
4361 /* IDL: [case(RemoteCallKerbDecryptApReply)] [case(RemoteCallKerbDecryptApReply)] DecryptApReplyReq decryptApReply; */
4362 /* IDL: [case(RemoteCallKerbUnpackKdcReplyBody)] [case(RemoteCallKerbUnpackKdcReplyBody)] UnpackKdcReplyBodyReq unpackKdcReplyBody; */
4363 /* IDL: [case(RemoteCallKerbComputeTgsChecksum)] [case(RemoteCallKerbComputeTgsChecksum)] ComputeTgsChecksumReq computeTgsChecksum; */
4364 /* IDL: [case(RemoteCallKerbBuildEncryptedAuthData)] [case(RemoteCallKerbBuildEncryptedAuthData)] BuildEncryptedAuthDataReq buildEncryptedAuthData; */
4365 /* IDL: [case(RemoteCallKerbPackApReply)] [case(RemoteCallKerbPackApReply)] PackApReplyReq packApReply; */
4366 /* IDL: [case(RemoteCallKerbHashS4UPreauth)] [case(RemoteCallKerbHashS4UPreauth)] HashS4UPreauthReq hashS4UPreauth; */
4367 /* IDL: [case(RemoteCallKerbSignS4UPreauthData)] [case(RemoteCallKerbSignS4UPreauthData)] SignS4UPreauthDataReq signS4UPreauthData; */
4368 /* IDL: [case(RemoteCallKerbVerifyChecksum)] [case(RemoteCallKerbVerifyChecksum)] VerifyChecksumReq verifyChecksum; */
4369 /* IDL: [case(RemoteCallKerbDecryptPacCredentials)] [case(RemoteCallKerbDecryptPacCredentials)] DecryptPacCredentialsReq decryptPacCredentials; */
4370 /* IDL: [case(RemoteCallKerbCreateECDHKeyAgreement)] [case(RemoteCallKerbCreateECDHKeyAgreement)] CreateECDHKeyAgreementReq createECDHKeyAgreement; */
4371 /* IDL: [case(RemoteCallKerbCreateDHKeyAgreement)] [case(RemoteCallKerbCreateDHKeyAgreement)] CreateDHKeyAgreementReq createDHKeyAgreement; */
4372 /* IDL: [case(RemoteCallKerbDestroyKeyAgreement)] [case(RemoteCallKerbDestroyKeyAgreement)] DestroyKeyAgreementReq destroyKeyAgreement; */
4373 /* IDL: [case(RemoteCallKerbKeyAgreementGenerateNonce)] [case(RemoteCallKerbKeyAgreementGenerateNonce)] KeyAgreementGenerateNonceReq keyAgreementGenerateNonce; */
4374 /* IDL: [case(RemoteCallKerbFinalizeKeyAgreement)] [case(RemoteCallKerbFinalizeKeyAgreement)] FinalizeKeyAgreementReq finalizeKeyAgreement; */
4375 /* IDL: } */
4377 static int
4378 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_)
4380 offset = rcg_dissect_struct_NegotiateVersion(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_negociateVersion,0);
4382 return offset;
4385 static int
4386 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_)
4388 offset = rcg_dissect_struct_BuildAsReqAuthenticatorReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_buildAsReqAuthenticator,0);
4390 return offset;
4393 static int
4394 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_)
4396 offset = rcg_dissect_struct_VerifyServiceTicketReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_verifyServiceTicket,0);
4398 return offset;
4401 static int
4402 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_)
4404 offset = rcg_dissect_struct_CreateApReqAuthenticatorReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_createApReqAuthenticator,0);
4406 return offset;
4409 static int
4410 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_)
4412 offset = rcg_dissect_struct_DecryptApReplyReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_decryptApReply,0);
4414 return offset;
4417 static int
4418 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_)
4420 offset = rcg_dissect_struct_UnpackKdcReplyBodyReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_unpackKdcReplyBody,0);
4422 return offset;
4425 static int
4426 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_)
4428 offset = rcg_dissect_struct_ComputeTgsChecksumReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_computeTgsChecksum,0);
4430 return offset;
4433 static int
4434 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_)
4436 offset = rcg_dissect_struct_BuildEncryptedAuthDataReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_buildEncryptedAuthData,0);
4438 return offset;
4441 static int
4442 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_)
4444 offset = rcg_dissect_struct_PackApReplyReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_packApReply,0);
4446 return offset;
4449 static int
4450 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_)
4452 offset = rcg_dissect_struct_HashS4UPreauthReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_hashS4UPreauth,0);
4454 return offset;
4457 static int
4458 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_)
4460 offset = rcg_dissect_struct_SignS4UPreauthDataReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_signS4UPreauthData,0);
4462 return offset;
4465 static int
4466 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_)
4468 offset = rcg_dissect_struct_VerifyChecksumReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_verifyChecksum,0);
4470 return offset;
4473 static int
4474 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_)
4476 offset = rcg_dissect_struct_DecryptPacCredentialsReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_decryptPacCredentials,0);
4478 return offset;
4481 static int
4482 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_)
4484 offset = rcg_dissect_struct_CreateECDHKeyAgreementReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_createECDHKeyAgreement,0);
4486 return offset;
4489 static int
4490 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_)
4492 offset = rcg_dissect_struct_CreateDHKeyAgreementReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_createDHKeyAgreement,0);
4494 return offset;
4497 static int
4498 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_)
4500 offset = rcg_dissect_struct_DestroyKeyAgreementReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_destroyKeyAgreement,0);
4502 return offset;
4505 static int
4506 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_)
4508 offset = rcg_dissect_struct_KeyAgreementGenerateNonceReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_keyAgreementGenerateNonce,0);
4510 return offset;
4513 static int
4514 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_)
4516 offset = rcg_dissect_struct_FinalizeKeyAgreementReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_finalizeKeyAgreement,0);
4518 return offset;
4521 static int
4522 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_)
4524 proto_item *item = NULL;
4525 proto_tree *tree = NULL;
4526 int old_offset;
4527 uint16_t level;
4529 old_offset = offset;
4530 if (parent_tree) {
4531 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_rcg_KerbInputUnion, &item, "KerbInputUnion");
4534 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
4535 ALIGN_TO_4_BYTES;
4537 switch(level) {
4538 case RemoteCallKerbNegotiateVersion:
4539 offset = rcg_dissect_element_KerbInputUnion_negociateVersion(tvb, offset, pinfo, tree, di, drep);
4540 break;
4542 case RemoteCallKerbBuildAsReqAuthenticator:
4543 offset = rcg_dissect_element_KerbInputUnion_buildAsReqAuthenticator(tvb, offset, pinfo, tree, di, drep);
4544 break;
4546 case RemoteCallKerbVerifyServiceTicket:
4547 offset = rcg_dissect_element_KerbInputUnion_verifyServiceTicket(tvb, offset, pinfo, tree, di, drep);
4548 break;
4550 case RemoteCallKerbCreateApReqAuthenticator:
4551 offset = rcg_dissect_element_KerbInputUnion_createApReqAuthenticator(tvb, offset, pinfo, tree, di, drep);
4552 break;
4554 case RemoteCallKerbDecryptApReply:
4555 offset = rcg_dissect_element_KerbInputUnion_decryptApReply(tvb, offset, pinfo, tree, di, drep);
4556 break;
4558 case RemoteCallKerbUnpackKdcReplyBody:
4559 offset = rcg_dissect_element_KerbInputUnion_unpackKdcReplyBody(tvb, offset, pinfo, tree, di, drep);
4560 break;
4562 case RemoteCallKerbComputeTgsChecksum:
4563 offset = rcg_dissect_element_KerbInputUnion_computeTgsChecksum(tvb, offset, pinfo, tree, di, drep);
4564 break;
4566 case RemoteCallKerbBuildEncryptedAuthData:
4567 offset = rcg_dissect_element_KerbInputUnion_buildEncryptedAuthData(tvb, offset, pinfo, tree, di, drep);
4568 break;
4570 case RemoteCallKerbPackApReply:
4571 offset = rcg_dissect_element_KerbInputUnion_packApReply(tvb, offset, pinfo, tree, di, drep);
4572 break;
4574 case RemoteCallKerbHashS4UPreauth:
4575 offset = rcg_dissect_element_KerbInputUnion_hashS4UPreauth(tvb, offset, pinfo, tree, di, drep);
4576 break;
4578 case RemoteCallKerbSignS4UPreauthData:
4579 offset = rcg_dissect_element_KerbInputUnion_signS4UPreauthData(tvb, offset, pinfo, tree, di, drep);
4580 break;
4582 case RemoteCallKerbVerifyChecksum:
4583 offset = rcg_dissect_element_KerbInputUnion_verifyChecksum(tvb, offset, pinfo, tree, di, drep);
4584 break;
4586 case RemoteCallKerbDecryptPacCredentials:
4587 offset = rcg_dissect_element_KerbInputUnion_decryptPacCredentials(tvb, offset, pinfo, tree, di, drep);
4588 break;
4590 case RemoteCallKerbCreateECDHKeyAgreement:
4591 offset = rcg_dissect_element_KerbInputUnion_createECDHKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4592 break;
4594 case RemoteCallKerbCreateDHKeyAgreement:
4595 offset = rcg_dissect_element_KerbInputUnion_createDHKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4596 break;
4598 case RemoteCallKerbDestroyKeyAgreement:
4599 offset = rcg_dissect_element_KerbInputUnion_destroyKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4600 break;
4602 case RemoteCallKerbKeyAgreementGenerateNonce:
4603 offset = rcg_dissect_element_KerbInputUnion_keyAgreementGenerateNonce(tvb, offset, pinfo, tree, di, drep);
4604 break;
4606 case RemoteCallKerbFinalizeKeyAgreement:
4607 offset = rcg_dissect_element_KerbInputUnion_finalizeKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4608 break;
4610 proto_item_set_len(item, offset-old_offset);
4613 return offset;
4616 /* IDL: struct { */
4617 /* IDL: RemoteGuardCallId CallId; */
4618 /* IDL: [switch_is(CallId)] [switch_type(uint16)] KerbInputUnion callUnion; */
4619 /* IDL: } */
4621 static int
4622 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)
4624 offset = rcg_dissect_enum_RemoteGuardCallId(tvb, offset, pinfo, tree, di, drep, hf_rcg_KerbCredIsoRemoteInput_CallId, CallId);
4626 return offset;
4629 static int
4630 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)
4632 offset = rcg_dissect_KerbInputUnion(tvb, offset, pinfo, tree, di, drep, hf_rcg_KerbCredIsoRemoteInput_callUnion, *CallId);
4634 return offset;
4638 /* IDL: [flag(LIBNDR_FLAG_ALIGN4)] [switch_type(uint16)] union { */
4639 /* IDL: [case(RemoteCallKerbNegotiateVersion)] [case(RemoteCallKerbNegotiateVersion)] NegotiateVersion negociateVersion; */
4640 /* IDL: [case(RemoteCallKerbBuildAsReqAuthenticator)] [case(RemoteCallKerbBuildAsReqAuthenticator)] BuildAsReqAuthenticatorResp buildAsReqAuthenticator; */
4641 /* IDL: [case(RemoteCallKerbVerifyServiceTicket)] [case(RemoteCallKerbVerifyServiceTicket)] VerifyServiceTicketResp verifyServiceTicket; */
4642 /* IDL: [case(RemoteCallKerbCreateApReqAuthenticator)] [case(RemoteCallKerbCreateApReqAuthenticator)] CreateApReqAuthenticatorResp createApReqAuthenticator; */
4643 /* IDL: [case(RemoteCallKerbDecryptApReply)] [case(RemoteCallKerbDecryptApReply)] DecryptApReplyResp decryptApReply; */
4644 /* IDL: [case(RemoteCallKerbUnpackKdcReplyBody)] [case(RemoteCallKerbUnpackKdcReplyBody)] UnpackKdcReplyBodyResp unpackKdcReplyBody; */
4645 /* IDL: [case(RemoteCallKerbComputeTgsChecksum)] [case(RemoteCallKerbComputeTgsChecksum)] ComputeTgsChecksumResp computeTgsChecksum; */
4646 /* IDL: [case(RemoteCallKerbBuildEncryptedAuthData)] [case(RemoteCallKerbBuildEncryptedAuthData)] BuildEncryptedAuthDataResp buildEncryptedAuthData; */
4647 /* IDL: [case(RemoteCallKerbPackApReply)] [case(RemoteCallKerbPackApReply)] PackApReplyResp packApReply; */
4648 /* IDL: [case(RemoteCallKerbHashS4UPreauth)] [case(RemoteCallKerbHashS4UPreauth)] HashS4UPreauthResp hashS4UPreauth; */
4649 /* IDL: [case(RemoteCallKerbSignS4UPreauthData)] [case(RemoteCallKerbSignS4UPreauthData)] SignS4UPreauthDataResp signS4UPreauthData; */
4650 /* IDL: [case(RemoteCallKerbVerifyChecksum)] [case(RemoteCallKerbVerifyChecksum)] VerifyChecksumResp verifyChecksum; */
4651 /* IDL: [case(RemoteCallKerbDecryptPacCredentials)] [case(RemoteCallKerbDecryptPacCredentials)] DecryptPacCredentialsResp decryptPacCredentials; */
4652 /* IDL: [case(RemoteCallKerbCreateECDHKeyAgreement)] [case(RemoteCallKerbCreateECDHKeyAgreement)] CreateECDHKeyAgreementResp createECDHKeyAgreement; */
4653 /* IDL: [case(RemoteCallKerbCreateDHKeyAgreement)] [case(RemoteCallKerbCreateDHKeyAgreement)] CreateDHKeyAgreementResp createDHKeyAgreement; */
4654 /* IDL: [case(RemoteCallKerbDestroyKeyAgreement)] [case(RemoteCallKerbDestroyKeyAgreement)] DestroyKeyAgreementResp destroyKeyAgreement; */
4655 /* IDL: [case(RemoteCallKerbKeyAgreementGenerateNonce)] [case(RemoteCallKerbKeyAgreementGenerateNonce)] KeyAgreementGenerateNonceResp keyAgreementGenerateNonce; */
4656 /* IDL: [case(RemoteCallKerbFinalizeKeyAgreement)] [case(RemoteCallKerbFinalizeKeyAgreement)] FinalizeKeyAgreementResp finalizeKeyAgreement; */
4657 /* IDL: } */
4659 static int
4660 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_)
4662 offset = rcg_dissect_struct_NegotiateVersion(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_negociateVersion,0);
4664 return offset;
4667 static int
4668 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_)
4670 offset = rcg_dissect_struct_BuildAsReqAuthenticatorResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_buildAsReqAuthenticator,0);
4672 return offset;
4675 static int
4676 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_)
4678 offset = rcg_dissect_struct_VerifyServiceTicketResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_verifyServiceTicket,0);
4680 return offset;
4683 static int
4684 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_)
4686 offset = rcg_dissect_struct_CreateApReqAuthenticatorResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_createApReqAuthenticator,0);
4688 return offset;
4691 static int
4692 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_)
4694 offset = rcg_dissect_struct_DecryptApReplyResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_decryptApReply,0);
4696 return offset;
4699 static int
4700 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_)
4702 offset = rcg_dissect_struct_UnpackKdcReplyBodyResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_unpackKdcReplyBody,0);
4704 return offset;
4707 static int
4708 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_)
4710 offset = rcg_dissect_struct_ComputeTgsChecksumResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_computeTgsChecksum,0);
4712 return offset;
4715 static int
4716 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_)
4718 offset = rcg_dissect_struct_BuildEncryptedAuthDataResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_buildEncryptedAuthData,0);
4720 return offset;
4723 static int
4724 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_)
4726 offset = rcg_dissect_struct_PackApReplyResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_packApReply,0);
4728 return offset;
4731 static int
4732 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_)
4734 offset = rcg_dissect_struct_HashS4UPreauthResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_hashS4UPreauth,0);
4736 return offset;
4739 static int
4740 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_)
4742 offset = rcg_dissect_struct_SignS4UPreauthDataResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_signS4UPreauthData,0);
4744 return offset;
4747 static int
4748 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_)
4750 offset = rcg_dissect_struct_VerifyChecksumResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_verifyChecksum,0);
4752 return offset;
4755 static int
4756 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_)
4758 offset = rcg_dissect_struct_DecryptPacCredentialsResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_decryptPacCredentials,0);
4760 return offset;
4763 static int
4764 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_)
4766 offset = rcg_dissect_struct_CreateECDHKeyAgreementResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_createECDHKeyAgreement,0);
4768 return offset;
4771 static int
4772 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_)
4774 offset = rcg_dissect_struct_CreateDHKeyAgreementResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_createDHKeyAgreement,0);
4776 return offset;
4779 static int
4780 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_)
4782 offset = rcg_dissect_struct_DestroyKeyAgreementResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_destroyKeyAgreement,0);
4784 return offset;
4787 static int
4788 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_)
4790 offset = rcg_dissect_struct_KeyAgreementGenerateNonceResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_keyAgreementGenerateNonce,0);
4792 return offset;
4795 static int
4796 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_)
4798 offset = rcg_dissect_struct_FinalizeKeyAgreementResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_finalizeKeyAgreement,0);
4800 return offset;
4803 static int
4804 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_)
4806 proto_item *item = NULL;
4807 proto_tree *tree = NULL;
4808 int old_offset;
4809 uint16_t level;
4811 old_offset = offset;
4812 if (parent_tree) {
4813 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_rcg_KerbOutputUnion, &item, "KerbOutputUnion");
4816 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
4817 ALIGN_TO_4_BYTES;
4819 switch(level) {
4820 case RemoteCallKerbNegotiateVersion:
4821 offset = rcg_dissect_element_KerbOutputUnion_negociateVersion(tvb, offset, pinfo, tree, di, drep);
4822 break;
4824 case RemoteCallKerbBuildAsReqAuthenticator:
4825 offset = rcg_dissect_element_KerbOutputUnion_buildAsReqAuthenticator(tvb, offset, pinfo, tree, di, drep);
4826 break;
4828 case RemoteCallKerbVerifyServiceTicket:
4829 offset = rcg_dissect_element_KerbOutputUnion_verifyServiceTicket(tvb, offset, pinfo, tree, di, drep);
4830 break;
4832 case RemoteCallKerbCreateApReqAuthenticator:
4833 offset = rcg_dissect_element_KerbOutputUnion_createApReqAuthenticator(tvb, offset, pinfo, tree, di, drep);
4834 break;
4836 case RemoteCallKerbDecryptApReply:
4837 offset = rcg_dissect_element_KerbOutputUnion_decryptApReply(tvb, offset, pinfo, tree, di, drep);
4838 break;
4840 case RemoteCallKerbUnpackKdcReplyBody:
4841 offset = rcg_dissect_element_KerbOutputUnion_unpackKdcReplyBody(tvb, offset, pinfo, tree, di, drep);
4842 break;
4844 case RemoteCallKerbComputeTgsChecksum:
4845 offset = rcg_dissect_element_KerbOutputUnion_computeTgsChecksum(tvb, offset, pinfo, tree, di, drep);
4846 break;
4848 case RemoteCallKerbBuildEncryptedAuthData:
4849 offset = rcg_dissect_element_KerbOutputUnion_buildEncryptedAuthData(tvb, offset, pinfo, tree, di, drep);
4850 break;
4852 case RemoteCallKerbPackApReply:
4853 offset = rcg_dissect_element_KerbOutputUnion_packApReply(tvb, offset, pinfo, tree, di, drep);
4854 break;
4856 case RemoteCallKerbHashS4UPreauth:
4857 offset = rcg_dissect_element_KerbOutputUnion_hashS4UPreauth(tvb, offset, pinfo, tree, di, drep);
4858 break;
4860 case RemoteCallKerbSignS4UPreauthData:
4861 offset = rcg_dissect_element_KerbOutputUnion_signS4UPreauthData(tvb, offset, pinfo, tree, di, drep);
4862 break;
4864 case RemoteCallKerbVerifyChecksum:
4865 offset = rcg_dissect_element_KerbOutputUnion_verifyChecksum(tvb, offset, pinfo, tree, di, drep);
4866 break;
4868 case RemoteCallKerbDecryptPacCredentials:
4869 offset = rcg_dissect_element_KerbOutputUnion_decryptPacCredentials(tvb, offset, pinfo, tree, di, drep);
4870 break;
4872 case RemoteCallKerbCreateECDHKeyAgreement:
4873 offset = rcg_dissect_element_KerbOutputUnion_createECDHKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4874 break;
4876 case RemoteCallKerbCreateDHKeyAgreement:
4877 offset = rcg_dissect_element_KerbOutputUnion_createDHKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4878 break;
4880 case RemoteCallKerbDestroyKeyAgreement:
4881 offset = rcg_dissect_element_KerbOutputUnion_destroyKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4882 break;
4884 case RemoteCallKerbKeyAgreementGenerateNonce:
4885 offset = rcg_dissect_element_KerbOutputUnion_keyAgreementGenerateNonce(tvb, offset, pinfo, tree, di, drep);
4886 break;
4888 case RemoteCallKerbFinalizeKeyAgreement:
4889 offset = rcg_dissect_element_KerbOutputUnion_finalizeKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4890 break;
4892 proto_item_set_len(item, offset-old_offset);
4895 return offset;
4898 /* IDL: struct { */
4899 /* IDL: RemoteGuardCallId CallId; */
4900 /* IDL: NTSTATUS Status; */
4901 /* IDL: [switch_is(CallId)] [switch_type(RemoteGuardCallId)] KerbOutputUnion callUnion; */
4902 /* IDL: } */
4904 static int
4905 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)
4907 offset = rcg_dissect_enum_RemoteGuardCallId(tvb, offset, pinfo, tree, di, drep, hf_rcg_KerbCredIsoRemoteOutput_CallId, CallId);
4909 return offset;
4912 static int
4913 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_)
4915 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KerbCredIsoRemoteOutput_Status, 0);
4917 return offset;
4920 static int
4921 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)
4923 offset = rcg_dissect_KerbOutputUnion(tvb, offset, pinfo, tree, di, drep, hf_rcg_KerbCredIsoRemoteOutput_callUnion, *CallId);
4925 return offset;
4929 /* IDL: struct { */
4930 /* IDL: } */
4933 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_)
4935 proto_item *item = NULL;
4936 int old_offset;
4938 old_offset = offset;
4940 if (parent_tree) {
4941 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4945 proto_item_set_len(item, offset-old_offset);
4948 return offset;
4952 /* IDL: struct _NT_CHALLENGE { */
4953 /* IDL: } */
4956 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_)
4958 proto_item *item = NULL;
4959 int old_offset;
4961 ALIGN_TO_4_BYTES;
4963 old_offset = offset;
4965 if (parent_tree) {
4966 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4970 proto_item_set_len(item, offset-old_offset);
4973 if (di->call_data->flags & DCERPC_IS_NDR64) {
4974 ALIGN_TO_4_BYTES;
4977 return offset;
4981 /* IDL: struct NT_CHALLENGE { */
4982 /* IDL: } */
4985 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_)
4987 proto_item *item = NULL;
4988 int old_offset;
4990 ALIGN_TO_4_BYTES;
4992 old_offset = offset;
4994 if (parent_tree) {
4995 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4999 proto_item_set_len(item, offset-old_offset);
5002 if (di->call_data->flags & DCERPC_IS_NDR64) {
5003 ALIGN_TO_4_BYTES;
5006 return offset;
5013 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_)
5015 proto_item *item = NULL;
5016 int old_offset;
5018 old_offset = offset;
5020 if (parent_tree) {
5021 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5025 proto_item_set_len(item, offset-old_offset);
5028 return offset;
5032 /* IDL: struct { */
5033 /* IDL: } */
5036 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_)
5038 proto_item *item = NULL;
5039 int old_offset;
5041 old_offset = offset;
5043 if (parent_tree) {
5044 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5048 proto_item_set_len(item, offset-old_offset);
5051 return offset;
5055 /* IDL: struct MSV1_0_LM3_RESPONSE { */
5056 /* IDL: } */
5059 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_)
5061 proto_item *item = NULL;
5062 int old_offset;
5064 ALIGN_TO_4_BYTES;
5066 old_offset = offset;
5068 if (parent_tree) {
5069 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5073 proto_item_set_len(item, offset-old_offset);
5076 if (di->call_data->flags & DCERPC_IS_NDR64) {
5077 ALIGN_TO_4_BYTES;
5080 return offset;
5084 /* IDL: struct { */
5085 /* IDL: } */
5088 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_)
5090 proto_item *item = NULL;
5091 int old_offset;
5093 old_offset = offset;
5095 if (parent_tree) {
5096 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5100 proto_item_set_len(item, offset-old_offset);
5103 return offset;
5107 /* IDL: struct PUSER_SESSION_KEY { */
5108 /* IDL: } */
5111 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_)
5113 proto_item *item = NULL;
5114 int old_offset;
5116 ALIGN_TO_4_BYTES;
5118 old_offset = offset;
5120 if (parent_tree) {
5121 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5125 proto_item_set_len(item, offset-old_offset);
5128 if (di->call_data->flags & DCERPC_IS_NDR64) {
5129 ALIGN_TO_4_BYTES;
5132 return offset;
5136 /* IDL: struct { */
5137 /* IDL: } */
5140 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_)
5142 proto_item *item = NULL;
5143 int old_offset;
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 return offset;
5159 /* IDL: struct MSV1_0_CREDENTIAL_KEY { */
5160 /* IDL: } */
5163 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_)
5165 proto_item *item = NULL;
5166 int old_offset;
5168 ALIGN_TO_4_BYTES;
5170 old_offset = offset;
5172 if (parent_tree) {
5173 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5177 proto_item_set_len(item, offset-old_offset);
5180 if (di->call_data->flags & DCERPC_IS_NDR64) {
5181 ALIGN_TO_4_BYTES;
5184 return offset;
5188 /* IDL: struct _MSV1_0_REMOTE_ENCRYPTED_SECRETS { */
5189 /* IDL: uint32 reserved1; */
5190 /* IDL: uint32 reserved2; */
5191 /* IDL: uint32 reserved3; */
5192 /* IDL: MSV1_0_CREDENTIAL_KEY reserved4; */
5193 /* IDL: MSV1_0_CREDENTIAL_KEY reserved5; */
5194 /* IDL: uint32 reservedSize; */
5195 /* IDL: [ref] [size_is(reservedSize)] uint8 *reserved6; */
5196 /* IDL: } */
5198 static int
5199 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_)
5201 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved1, 0);
5203 return offset;
5206 static int
5207 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_)
5209 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved2, 0);
5211 return offset;
5214 static int
5215 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_)
5217 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved3, 0);
5219 return offset;
5222 static int
5223 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_)
5225 offset = rcg_dissect_struct_MSV1_0_CREDENTIAL_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved4,0);
5227 return offset;
5230 static int
5231 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_)
5233 offset = rcg_dissect_struct_MSV1_0_CREDENTIAL_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved5,0);
5235 return offset;
5238 static int
5239 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_)
5241 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reservedSize, 0);
5243 return offset;
5246 static int
5247 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_)
5249 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);
5251 return offset;
5254 static int
5255 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_)
5257 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6__);
5259 return offset;
5262 static int
5263 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_)
5265 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6, 0);
5267 return offset;
5271 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_)
5273 proto_item *item = NULL;
5274 proto_tree *tree = NULL;
5275 int old_offset;
5277 ALIGN_TO_4_BYTES;
5279 old_offset = offset;
5281 if (parent_tree) {
5282 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5283 tree = proto_item_add_subtree(item, ett_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS);
5286 offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved1(tvb, offset, pinfo, tree, di, drep);
5288 offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved2(tvb, offset, pinfo, tree, di, drep);
5290 offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved3(tvb, offset, pinfo, tree, di, drep);
5292 offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved4(tvb, offset, pinfo, tree, di, drep);
5294 offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved5(tvb, offset, pinfo, tree, di, drep);
5296 offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reservedSize(tvb, offset, pinfo, tree, di, drep);
5298 offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6(tvb, offset, pinfo, tree, di, drep);
5301 proto_item_set_len(item, offset-old_offset);
5304 if (di->call_data->flags & DCERPC_IS_NDR64) {
5305 ALIGN_TO_4_BYTES;
5308 return offset;
5312 /* IDL: struct MSV1_0_REMOTE_ENCRYPTED_SECRETS { */
5313 /* IDL: } */
5316 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_)
5318 proto_item *item = NULL;
5319 int old_offset;
5321 ALIGN_TO_4_BYTES;
5323 old_offset = offset;
5325 if (parent_tree) {
5326 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5330 proto_item_set_len(item, offset-old_offset);
5333 if (di->call_data->flags & DCERPC_IS_NDR64) {
5334 ALIGN_TO_4_BYTES;
5337 return offset;
5341 /* IDL: struct { */
5342 /* IDL: PMSV1_0_REMOTE_ENCRYPTED_SECRETS Credential; */
5343 /* IDL: PRPC_UNICODE_STRING UserName; */
5344 /* IDL: PRPC_UNICODE_STRING LogonDomainName; */
5345 /* IDL: PRPC_UNICODE_STRING ServerName; */
5346 /* IDL: } */
5348 static int
5349 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_)
5351 offset = rcg_dissect_struct_PMSV1_0_REMOTE_ENCRYPTED_SECRETS(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseReq_Credential,0);
5353 return offset;
5356 static int
5357 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_)
5359 offset = rcg_dissect_struct_PRPC_UNICODE_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseReq_UserName,0);
5361 return offset;
5364 static int
5365 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_)
5367 offset = rcg_dissect_struct_PRPC_UNICODE_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseReq_LogonDomainName,0);
5369 return offset;
5372 static int
5373 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_)
5375 offset = rcg_dissect_struct_PRPC_UNICODE_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseReq_ServerName,0);
5377 return offset;
5381 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_)
5383 proto_item *item = NULL;
5384 proto_tree *tree = NULL;
5385 int old_offset;
5387 ALIGN_TO_4_BYTES;
5389 old_offset = offset;
5391 if (parent_tree) {
5392 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5393 tree = proto_item_add_subtree(item, ett_rcg_Lm20GetNtlm3ChallengeResponseReq);
5396 offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_Credential(tvb, offset, pinfo, tree, di, drep);
5398 offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_UserName(tvb, offset, pinfo, tree, di, drep);
5400 offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_LogonDomainName(tvb, offset, pinfo, tree, di, drep);
5402 offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_ServerName(tvb, offset, pinfo, tree, di, drep);
5405 proto_item_set_len(item, offset-old_offset);
5408 if (di->call_data->flags & DCERPC_IS_NDR64) {
5409 ALIGN_TO_4_BYTES;
5412 return offset;
5416 /* IDL: struct { */
5417 /* IDL: uint16 Ntlm3ResponseLength; */
5418 /* IDL: [ref] [size_is(Ntlm3ResponseLength)] uint8 *Ntlm3Response; */
5419 /* IDL: MSV1_0_LM3_RESPONSE Lm3Response; */
5420 /* IDL: USER_SESSION_KEY UserSessionKey; */
5421 /* IDL: LM_SESSION_KEY LmSessionKey; */
5422 /* IDL: } */
5424 static int
5425 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_)
5427 offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Ntlm3ResponseLength, 0);
5429 return offset;
5432 static int
5433 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_)
5435 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);
5437 return offset;
5440 static int
5441 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_)
5443 offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response__);
5445 return offset;
5448 static int
5449 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_)
5451 offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response, 0);
5453 return offset;
5456 static int
5457 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_)
5459 offset = rcg_dissect_struct_MSV1_0_LM3_RESPONSE(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Lm3Response,0);
5461 return offset;
5464 static int
5465 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_)
5467 offset = rcg_dissect_struct_USER_SESSION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseResp_UserSessionKey,0);
5469 return offset;
5472 static int
5473 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_)
5475 offset = rcg_dissect_struct_LM_SESSION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseResp_LmSessionKey,0);
5477 return offset;
5481 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_)
5483 proto_item *item = NULL;
5484 proto_tree *tree = NULL;
5485 int old_offset;
5487 ALIGN_TO_5_BYTES;
5489 old_offset = offset;
5491 if (parent_tree) {
5492 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5493 tree = proto_item_add_subtree(item, ett_rcg_Lm20GetNtlm3ChallengeResponseResp);
5496 offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Ntlm3ResponseLength(tvb, offset, pinfo, tree, di, drep);
5498 offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response(tvb, offset, pinfo, tree, di, drep);
5500 offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Lm3Response(tvb, offset, pinfo, tree, di, drep);
5502 offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_UserSessionKey(tvb, offset, pinfo, tree, di, drep);
5504 offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_LmSessionKey(tvb, offset, pinfo, tree, di, drep);
5507 proto_item_set_len(item, offset-old_offset);
5510 if (di->call_data->flags & DCERPC_IS_NDR64) {
5511 ALIGN_TO_5_BYTES;
5514 return offset;
5518 /* IDL: struct { */
5519 /* IDL: PNT_CHALLENGE NtChallenge; */
5520 /* IDL: PMSV1_0_REMOTE_ENCRYPTED_SECRETS Credential; */
5521 /* IDL: } */
5523 static int
5524 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_)
5526 offset = rcg_dissect_struct_PNT_CHALLENGE(tvb,offset,pinfo,tree,di,drep,hf_rcg_CalculateNtResponseReq_NtChallenge,0);
5528 return offset;
5531 static int
5532 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_)
5534 offset = rcg_dissect_struct_PMSV1_0_REMOTE_ENCRYPTED_SECRETS(tvb,offset,pinfo,tree,di,drep,hf_rcg_CalculateNtResponseReq_Credential,0);
5536 return offset;
5540 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_)
5542 proto_item *item = NULL;
5543 proto_tree *tree = NULL;
5544 int old_offset;
5546 ALIGN_TO_4_BYTES;
5548 old_offset = offset;
5550 if (parent_tree) {
5551 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5552 tree = proto_item_add_subtree(item, ett_rcg_CalculateNtResponseReq);
5555 offset = rcg_dissect_element_CalculateNtResponseReq_NtChallenge(tvb, offset, pinfo, tree, di, drep);
5557 offset = rcg_dissect_element_CalculateNtResponseReq_Credential(tvb, offset, pinfo, tree, di, drep);
5560 proto_item_set_len(item, offset-old_offset);
5563 if (di->call_data->flags & DCERPC_IS_NDR64) {
5564 ALIGN_TO_4_BYTES;
5567 return offset;
5571 /* IDL: struct { */
5572 /* IDL: NT_RESPONSE NtResponse; */
5573 /* IDL: } */
5575 static int
5576 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_)
5578 offset = rcg_dissect_struct_NT_RESPONSE(tvb,offset,pinfo,tree,di,drep,hf_rcg_CalculateNtResponseResp_NtResponse,0);
5580 return offset;
5584 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_)
5586 proto_item *item = NULL;
5587 proto_tree *tree = NULL;
5588 int old_offset;
5590 old_offset = offset;
5592 if (parent_tree) {
5593 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5594 tree = proto_item_add_subtree(item, ett_rcg_CalculateNtResponseResp);
5597 offset = rcg_dissect_element_CalculateNtResponseResp_NtResponse(tvb, offset, pinfo, tree, di, drep);
5600 proto_item_set_len(item, offset-old_offset);
5603 return offset;
5607 /* IDL: struct { */
5608 /* IDL: [ref] NT_RESPONSE *NtResponse; */
5609 /* IDL: PMSV1_0_REMOTE_ENCRYPTED_SECRETS Credential; */
5610 /* IDL: } */
5612 static int
5613 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_)
5615 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);
5617 return offset;
5620 static int
5621 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_)
5623 offset = rcg_dissect_struct_NT_RESPONSE(tvb,offset,pinfo,tree,di,drep,hf_rcg_CalculateUserSessionKeyNtReq_NtResponse,0);
5625 return offset;
5628 static int
5629 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_)
5631 offset = rcg_dissect_struct_PMSV1_0_REMOTE_ENCRYPTED_SECRETS(tvb,offset,pinfo,tree,di,drep,hf_rcg_CalculateUserSessionKeyNtReq_Credential,0);
5633 return offset;
5637 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_)
5639 proto_item *item = NULL;
5640 proto_tree *tree = NULL;
5641 int old_offset;
5643 ALIGN_TO_5_BYTES;
5645 old_offset = offset;
5647 if (parent_tree) {
5648 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5649 tree = proto_item_add_subtree(item, ett_rcg_CalculateUserSessionKeyNtReq);
5652 offset = rcg_dissect_element_CalculateUserSessionKeyNtReq_NtResponse(tvb, offset, pinfo, tree, di, drep);
5654 offset = rcg_dissect_element_CalculateUserSessionKeyNtReq_Credential(tvb, offset, pinfo, tree, di, drep);
5657 proto_item_set_len(item, offset-old_offset);
5660 if (di->call_data->flags & DCERPC_IS_NDR64) {
5661 ALIGN_TO_5_BYTES;
5664 return offset;
5668 /* IDL: struct { */
5669 /* IDL: USER_SESSION_KEY UserSessionKey; */
5670 /* IDL: } */
5672 static int
5673 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_)
5675 offset = rcg_dissect_struct_USER_SESSION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_CalculateUserSessionKeyNtResp_UserSessionKey,0);
5677 return offset;
5681 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_)
5683 proto_item *item = NULL;
5684 proto_tree *tree = NULL;
5685 int old_offset;
5687 old_offset = offset;
5689 if (parent_tree) {
5690 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5691 tree = proto_item_add_subtree(item, ett_rcg_CalculateUserSessionKeyNtResp);
5694 offset = rcg_dissect_element_CalculateUserSessionKeyNtResp_UserSessionKey(tvb, offset, pinfo, tree, di, drep);
5697 proto_item_set_len(item, offset-old_offset);
5700 return offset;
5704 /* IDL: struct { */
5705 /* IDL: PMSV1_0_REMOTE_ENCRYPTED_SECRETS LhsCredential; */
5706 /* IDL: PMSV1_0_REMOTE_ENCRYPTED_SECRETS RhsCredential; */
5707 /* IDL: } */
5709 static int
5710 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_)
5712 offset = rcg_dissect_struct_PMSV1_0_REMOTE_ENCRYPTED_SECRETS(tvb,offset,pinfo,tree,di,drep,hf_rcg_CompareCredentialsReq_LhsCredential,0);
5714 return offset;
5717 static int
5718 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_)
5720 offset = rcg_dissect_struct_PMSV1_0_REMOTE_ENCRYPTED_SECRETS(tvb,offset,pinfo,tree,di,drep,hf_rcg_CompareCredentialsReq_RhsCredential,0);
5722 return offset;
5726 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_)
5728 proto_item *item = NULL;
5729 proto_tree *tree = NULL;
5730 int old_offset;
5732 ALIGN_TO_4_BYTES;
5734 old_offset = offset;
5736 if (parent_tree) {
5737 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5738 tree = proto_item_add_subtree(item, ett_rcg_CompareCredentialsReq);
5741 offset = rcg_dissect_element_CompareCredentialsReq_LhsCredential(tvb, offset, pinfo, tree, di, drep);
5743 offset = rcg_dissect_element_CompareCredentialsReq_RhsCredential(tvb, offset, pinfo, tree, di, drep);
5746 proto_item_set_len(item, offset-old_offset);
5749 if (di->call_data->flags & DCERPC_IS_NDR64) {
5750 ALIGN_TO_4_BYTES;
5753 return offset;
5757 /* IDL: struct { */
5758 /* IDL: uint32 AreNtOwfsEqual; */
5759 /* IDL: uint32 AreLmOwfsEqual; */
5760 /* IDL: uint32 AreShaOwfsEqual; */
5761 /* IDL: } */
5763 static int
5764 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_)
5766 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CompareCredentialsResp_AreNtOwfsEqual, 0);
5768 return offset;
5771 static int
5772 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_)
5774 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CompareCredentialsResp_AreLmOwfsEqual, 0);
5776 return offset;
5779 static int
5780 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_)
5782 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CompareCredentialsResp_AreShaOwfsEqual, 0);
5784 return offset;
5788 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_)
5790 proto_item *item = NULL;
5791 proto_tree *tree = NULL;
5792 int old_offset;
5794 ALIGN_TO_4_BYTES;
5796 old_offset = offset;
5798 if (parent_tree) {
5799 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5800 tree = proto_item_add_subtree(item, ett_rcg_CompareCredentialsResp);
5803 offset = rcg_dissect_element_CompareCredentialsResp_AreNtOwfsEqual(tvb, offset, pinfo, tree, di, drep);
5805 offset = rcg_dissect_element_CompareCredentialsResp_AreLmOwfsEqual(tvb, offset, pinfo, tree, di, drep);
5807 offset = rcg_dissect_element_CompareCredentialsResp_AreShaOwfsEqual(tvb, offset, pinfo, tree, di, drep);
5810 proto_item_set_len(item, offset-old_offset);
5813 if (di->call_data->flags & DCERPC_IS_NDR64) {
5814 ALIGN_TO_4_BYTES;
5817 return offset;
5821 /* IDL: [flag(LIBNDR_FLAG_ALIGN4)] [switch_type(uint16)] union { */
5822 /* IDL: [case(RemoteCallNtlmNegotiateVersion)] [case(RemoteCallNtlmNegotiateVersion)] NegotiateVersion negotiateVersion; */
5823 /* IDL: [case(RemoteCallNtlmLm20GetNtlm3ChallengeResponse)] [case(RemoteCallNtlmLm20GetNtlm3ChallengeResponse)] Lm20GetNtlm3ChallengeResponseReq lm20GetNtlm3ChallengeResponse; */
5824 /* IDL: [case(RemoteCallNtlmCalculateNtResponse)] [case(RemoteCallNtlmCalculateNtResponse)] CalculateNtResponseReq calculateNtResponse; */
5825 /* IDL: [case(RemoteCallNtlmCalculateUserSessionKeyNt)] [case(RemoteCallNtlmCalculateUserSessionKeyNt)] CalculateUserSessionKeyNtReq calculateUserSessionKeyNt; */
5826 /* IDL: [case(RemoteCallNtlmCompareCredentials)] [case(RemoteCallNtlmCompareCredentials)] CompareCredentialsReq compareCredentials; */
5827 /* IDL: } */
5829 static int
5830 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_)
5832 offset = rcg_dissect_struct_NegotiateVersion(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredInput_negotiateVersion,0);
5834 return offset;
5837 static int
5838 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_)
5840 offset = rcg_dissect_struct_Lm20GetNtlm3ChallengeResponseReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredInput_lm20GetNtlm3ChallengeResponse,0);
5842 return offset;
5845 static int
5846 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_)
5848 offset = rcg_dissect_struct_CalculateNtResponseReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredInput_calculateNtResponse,0);
5850 return offset;
5853 static int
5854 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_)
5856 offset = rcg_dissect_struct_CalculateUserSessionKeyNtReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredInput_calculateUserSessionKeyNt,0);
5858 return offset;
5861 static int
5862 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_)
5864 offset = rcg_dissect_struct_CompareCredentialsReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredInput_compareCredentials,0);
5866 return offset;
5869 static int
5870 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_)
5872 proto_item *item = NULL;
5873 proto_tree *tree = NULL;
5874 int old_offset;
5875 uint16_t level;
5877 old_offset = offset;
5878 if (parent_tree) {
5879 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_rcg_NtlmCredInput, &item, "NtlmCredInput");
5882 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
5883 ALIGN_TO_4_BYTES;
5885 switch(level) {
5886 case RemoteCallNtlmNegotiateVersion:
5887 offset = rcg_dissect_element_NtlmCredInput_negotiateVersion(tvb, offset, pinfo, tree, di, drep);
5888 break;
5890 case RemoteCallNtlmLm20GetNtlm3ChallengeResponse:
5891 offset = rcg_dissect_element_NtlmCredInput_lm20GetNtlm3ChallengeResponse(tvb, offset, pinfo, tree, di, drep);
5892 break;
5894 case RemoteCallNtlmCalculateNtResponse:
5895 offset = rcg_dissect_element_NtlmCredInput_calculateNtResponse(tvb, offset, pinfo, tree, di, drep);
5896 break;
5898 case RemoteCallNtlmCalculateUserSessionKeyNt:
5899 offset = rcg_dissect_element_NtlmCredInput_calculateUserSessionKeyNt(tvb, offset, pinfo, tree, di, drep);
5900 break;
5902 case RemoteCallNtlmCompareCredentials:
5903 offset = rcg_dissect_element_NtlmCredInput_compareCredentials(tvb, offset, pinfo, tree, di, drep);
5904 break;
5906 proto_item_set_len(item, offset-old_offset);
5909 return offset;
5912 /* IDL: struct { */
5913 /* IDL: RemoteGuardCallId CallId; */
5914 /* IDL: [switch_is(CallId)] [switch_type(RemoteGuardCallId)] NtlmCredInput callUnion; */
5915 /* IDL: } */
5917 static int
5918 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)
5920 offset = rcg_dissect_enum_RemoteGuardCallId(tvb, offset, pinfo, tree, di, drep, hf_rcg_NtlmCredIsoRemoteInput_CallId, CallId);
5922 return offset;
5925 static int
5926 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)
5928 offset = rcg_dissect_NtlmCredInput(tvb, offset, pinfo, tree, di, drep, hf_rcg_NtlmCredIsoRemoteInput_callUnion, *CallId);
5930 return offset;
5934 /* IDL: [flag(LIBNDR_FLAG_ALIGN4)] [switch_type(uint16)] union { */
5935 /* IDL: [case(RemoteCallNtlmNegotiateVersion)] [case(RemoteCallNtlmNegotiateVersion)] NegotiateVersion negotiateVersion; */
5936 /* IDL: [case(RemoteCallNtlmLm20GetNtlm3ChallengeResponse)] [case(RemoteCallNtlmLm20GetNtlm3ChallengeResponse)] Lm20GetNtlm3ChallengeResponseResp lm20GetNtlm3ChallengeResponse; */
5937 /* IDL: [case(RemoteCallNtlmCalculateNtResponse)] [case(RemoteCallNtlmCalculateNtResponse)] CalculateNtResponseResp calculateNtResponse; */
5938 /* IDL: [case(RemoteCallNtlmCalculateUserSessionKeyNt)] [case(RemoteCallNtlmCalculateUserSessionKeyNt)] CalculateUserSessionKeyNtResp calculateUserSessionKeyNt; */
5939 /* IDL: [case(RemoteCallNtlmCompareCredentials)] [case(RemoteCallNtlmCompareCredentials)] CompareCredentialsResp compareCredentials; */
5940 /* IDL: } */
5942 static int
5943 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_)
5945 offset = rcg_dissect_struct_NegotiateVersion(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredOutput_negotiateVersion,0);
5947 return offset;
5950 static int
5951 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_)
5953 offset = rcg_dissect_struct_Lm20GetNtlm3ChallengeResponseResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredOutput_lm20GetNtlm3ChallengeResponse,0);
5955 return offset;
5958 static int
5959 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_)
5961 offset = rcg_dissect_struct_CalculateNtResponseResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredOutput_calculateNtResponse,0);
5963 return offset;
5966 static int
5967 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_)
5969 offset = rcg_dissect_struct_CalculateUserSessionKeyNtResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredOutput_calculateUserSessionKeyNt,0);
5971 return offset;
5974 static int
5975 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_)
5977 offset = rcg_dissect_struct_CompareCredentialsResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredOutput_compareCredentials,0);
5979 return offset;
5982 static int
5983 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_)
5985 proto_item *item = NULL;
5986 proto_tree *tree = NULL;
5987 int old_offset;
5988 uint16_t level;
5990 old_offset = offset;
5991 if (parent_tree) {
5992 tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_rcg_NtlmCredOutput, &item, "NtlmCredOutput");
5995 offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
5996 ALIGN_TO_4_BYTES;
5998 switch(level) {
5999 case RemoteCallNtlmNegotiateVersion:
6000 offset = rcg_dissect_element_NtlmCredOutput_negotiateVersion(tvb, offset, pinfo, tree, di, drep);
6001 break;
6003 case RemoteCallNtlmLm20GetNtlm3ChallengeResponse:
6004 offset = rcg_dissect_element_NtlmCredOutput_lm20GetNtlm3ChallengeResponse(tvb, offset, pinfo, tree, di, drep);
6005 break;
6007 case RemoteCallNtlmCalculateNtResponse:
6008 offset = rcg_dissect_element_NtlmCredOutput_calculateNtResponse(tvb, offset, pinfo, tree, di, drep);
6009 break;
6011 case RemoteCallNtlmCalculateUserSessionKeyNt:
6012 offset = rcg_dissect_element_NtlmCredOutput_calculateUserSessionKeyNt(tvb, offset, pinfo, tree, di, drep);
6013 break;
6015 case RemoteCallNtlmCompareCredentials:
6016 offset = rcg_dissect_element_NtlmCredOutput_compareCredentials(tvb, offset, pinfo, tree, di, drep);
6017 break;
6019 proto_item_set_len(item, offset-old_offset);
6022 return offset;
6025 /* IDL: struct { */
6026 /* IDL: RemoteGuardCallId CallId; */
6027 /* IDL: NTSTATUS Status; */
6028 /* IDL: [switch_is(CallId)] [switch_type(RemoteGuardCallId)] NtlmCredOutput callUnion; */
6029 /* IDL: } */
6031 static int
6032 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)
6034 offset = rcg_dissect_enum_RemoteGuardCallId(tvb, offset, pinfo, tree, di, drep, hf_rcg_NtlmCredIsoRemoteOutput_CallId, CallId);
6036 return offset;
6039 static int
6040 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_)
6042 offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_NtlmCredIsoRemoteOutput_Status, 0);
6044 return offset;
6047 static int
6048 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)
6050 offset = rcg_dissect_NtlmCredOutput(tvb, offset, pinfo, tree, di, drep, hf_rcg_NtlmCredIsoRemoteOutput_callUnion, *CallId);
6052 return offset;
6056 static const dcerpc_sub_dissector rcg_dissectors[] = {
6057 { 0, NULL, NULL, NULL }
6060 void proto_register_dcerpc_rcg(void)
6062 static hf_register_info hf[] = {
6063 { &hf_KERB_RPC_ENCRYPTION_KEY_reserved1,
6064 { "Reserved1", "rcg.KERB_RPC_ENCRYPTION_KEY.reserved1", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
6065 { &hf_KERB_RPC_ENCRYPTION_KEY_reserved2,
6066 { "Encoding type", "rcg.KERB_RPC_ENCRYPTION_KEY.reserved2", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
6067 { &hf_rcg_BuildAsReqAuthenticatorReq_ArmorKey,
6068 { "ArmorKey", "rcg.BuildAsReqAuthenticatorReq.ArmorKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6069 { &hf_rcg_BuildAsReqAuthenticatorReq_EncryptionKey,
6070 { "EncryptionKey", "rcg.BuildAsReqAuthenticatorReq.EncryptionKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6071 { &hf_rcg_BuildAsReqAuthenticatorReq_TimeSkew,
6072 { "TimeSkew", "rcg.BuildAsReqAuthenticatorReq.TimeSkew", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6073 { &hf_rcg_BuildAsReqAuthenticatorResp_PreauthData,
6074 { "PreauthData", "rcg.BuildAsReqAuthenticatorResp.PreauthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6075 { &hf_rcg_BuildAsReqAuthenticatorResp_PreauthDataType,
6076 { "PreauthDataType", "rcg.BuildAsReqAuthenticatorResp.PreauthDataType", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6077 { &hf_rcg_BuildEncryptedAuthDataReq_Key,
6078 { "Key", "rcg.BuildEncryptedAuthDataReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6079 { &hf_rcg_BuildEncryptedAuthDataReq_KeyUsage,
6080 { "KeyUsage", "rcg.BuildEncryptedAuthDataReq.KeyUsage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6081 { &hf_rcg_BuildEncryptedAuthDataReq_PlainAuthData,
6082 { "PlainAuthData", "rcg.BuildEncryptedAuthDataReq.PlainAuthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6083 { &hf_rcg_BuildEncryptedAuthDataResp_EncryptedAuthData,
6084 { "EncryptedAuthData", "rcg.BuildEncryptedAuthDataResp.EncryptedAuthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6085 { &hf_rcg_CalculateNtResponseReq_Credential,
6086 { "Credential", "rcg.CalculateNtResponseReq.Credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6087 { &hf_rcg_CalculateNtResponseReq_NtChallenge,
6088 { "NtChallenge", "rcg.CalculateNtResponseReq.NtChallenge", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6089 { &hf_rcg_CalculateNtResponseResp_NtResponse,
6090 { "NtResponse", "rcg.CalculateNtResponseResp.NtResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6091 { &hf_rcg_CalculateUserSessionKeyNtReq_Credential,
6092 { "Credential", "rcg.CalculateUserSessionKeyNtReq.Credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6093 { &hf_rcg_CalculateUserSessionKeyNtReq_NtResponse,
6094 { "NtResponse", "rcg.CalculateUserSessionKeyNtReq.NtResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6095 { &hf_rcg_CalculateUserSessionKeyNtResp_UserSessionKey,
6096 { "UserSessionKey", "rcg.CalculateUserSessionKeyNtResp.UserSessionKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6097 { &hf_rcg_CompareCredentialsReq_LhsCredential,
6098 { "LhsCredential", "rcg.CompareCredentialsReq.LhsCredential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6099 { &hf_rcg_CompareCredentialsReq_RhsCredential,
6100 { "RhsCredential", "rcg.CompareCredentialsReq.RhsCredential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6101 { &hf_rcg_CompareCredentialsResp_AreLmOwfsEqual,
6102 { "AreLmOwfsEqual", "rcg.CompareCredentialsResp.AreLmOwfsEqual", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6103 { &hf_rcg_CompareCredentialsResp_AreNtOwfsEqual,
6104 { "AreNtOwfsEqual", "rcg.CompareCredentialsResp.AreNtOwfsEqual", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6105 { &hf_rcg_CompareCredentialsResp_AreShaOwfsEqual,
6106 { "AreShaOwfsEqual", "rcg.CompareCredentialsResp.AreShaOwfsEqual", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6107 { &hf_rcg_ComputeTgsChecksumReq_ChecksumType,
6108 { "ChecksumType", "rcg.ComputeTgsChecksumReq.ChecksumType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6109 { &hf_rcg_ComputeTgsChecksumReq_Key,
6110 { "Key", "rcg.ComputeTgsChecksumReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6111 { &hf_rcg_ComputeTgsChecksumReq_RequestBody,
6112 { "RequestBody", "rcg.ComputeTgsChecksumReq.RequestBody", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6113 { &hf_rcg_ComputeTgsChecksumResp_Checksum,
6114 { "Checksum", "rcg.ComputeTgsChecksumResp.Checksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6115 { &hf_rcg_CreateApReqAuthenticatorReq_AuthData,
6116 { "AuthData", "rcg.CreateApReqAuthenticatorReq.AuthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6117 { &hf_rcg_CreateApReqAuthenticatorReq_ClientName,
6118 { "ClientName", "rcg.CreateApReqAuthenticatorReq.ClientName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6119 { &hf_rcg_CreateApReqAuthenticatorReq_ClientRealm,
6120 { "ClientRealm", "rcg.CreateApReqAuthenticatorReq.ClientRealm", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6121 { &hf_rcg_CreateApReqAuthenticatorReq_EncryptionKey,
6122 { "EncryptionKey", "rcg.CreateApReqAuthenticatorReq.EncryptionKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6123 { &hf_rcg_CreateApReqAuthenticatorReq_GssChecksum,
6124 { "GssChecksum", "rcg.CreateApReqAuthenticatorReq.GssChecksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6125 { &hf_rcg_CreateApReqAuthenticatorReq_KeyUsage,
6126 { "KeyUsage", "rcg.CreateApReqAuthenticatorReq.KeyUsage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6127 { &hf_rcg_CreateApReqAuthenticatorReq_SequenceNumber,
6128 { "SequenceNumber", "rcg.CreateApReqAuthenticatorReq.SequenceNumber", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6129 { &hf_rcg_CreateApReqAuthenticatorReq_SkewTime,
6130 { "SkewTime", "rcg.CreateApReqAuthenticatorReq.SkewTime", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6131 { &hf_rcg_CreateApReqAuthenticatorReq_SubKey,
6132 { "SubKey", "rcg.CreateApReqAuthenticatorReq.SubKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6133 { &hf_rcg_CreateApReqAuthenticatorResp_Authenticator,
6134 { "Authenticator", "rcg.CreateApReqAuthenticatorResp.Authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6135 { &hf_rcg_CreateApReqAuthenticatorResp_AuthenticatorTime,
6136 { "AuthenticatorTime", "rcg.CreateApReqAuthenticatorResp.AuthenticatorTime", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6137 { &hf_rcg_CreateApReqAuthenticatorResp_KerbProtocolError,
6138 { "KerbProtocolError", "rcg.CreateApReqAuthenticatorResp.KerbProtocolError", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6139 { &hf_rcg_CreateDHKeyAgreementReq_Ignored,
6140 { "Ignored", "rcg.CreateDHKeyAgreementReq.Ignored", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6141 { &hf_rcg_CreateDHKeyAgreementResp_FactorQ,
6142 { "FactorQ", "rcg.CreateDHKeyAgreementResp.FactorQ", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6143 { &hf_rcg_CreateDHKeyAgreementResp_GeneratorG,
6144 { "GeneratorG", "rcg.CreateDHKeyAgreementResp.GeneratorG", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6145 { &hf_rcg_CreateDHKeyAgreementResp_KerbErr,
6146 { "KerbErr", "rcg.CreateDHKeyAgreementResp.KerbErr", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6147 { &hf_rcg_CreateDHKeyAgreementResp_KeyAgreementHandle,
6148 { "KeyAgreementHandle", "rcg.CreateDHKeyAgreementResp.KeyAgreementHandle", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
6149 { &hf_rcg_CreateDHKeyAgreementResp_LittleEndianPublicKey,
6150 { "LittleEndianPublicKey", "rcg.CreateDHKeyAgreementResp.LittleEndianPublicKey", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6151 { &hf_rcg_CreateDHKeyAgreementResp_LittleEndianPublicKeyLen,
6152 { "LittleEndianPublicKeyLen", "rcg.CreateDHKeyAgreementResp.LittleEndianPublicKeyLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6153 { &hf_rcg_CreateDHKeyAgreementResp_ModulusP,
6154 { "ModulusP", "rcg.CreateDHKeyAgreementResp.ModulusP", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6155 { &hf_rcg_CreateECDHKeyAgreementReq_KeyBitLen,
6156 { "KeyBitLen", "rcg.CreateECDHKeyAgreementReq.KeyBitLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6157 { &hf_rcg_CreateECDHKeyAgreementResp_EncodedPubKey,
6158 { "EncodedPubKey", "rcg.CreateECDHKeyAgreementResp.EncodedPubKey", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6159 { &hf_rcg_CreateECDHKeyAgreementResp_EncodedPubKeyLen,
6160 { "EncodedPubKeyLen", "rcg.CreateECDHKeyAgreementResp.EncodedPubKeyLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6161 { &hf_rcg_CreateECDHKeyAgreementResp_KerbErr,
6162 { "KerbErr", "rcg.CreateECDHKeyAgreementResp.KerbErr", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6163 { &hf_rcg_CreateECDHKeyAgreementResp_KeyAgreementHandle,
6164 { "KeyAgreementHandle", "rcg.CreateECDHKeyAgreementResp.KeyAgreementHandle", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
6165 { &hf_rcg_DecryptApReplyReq_EncryptedReply,
6166 { "EncryptedReply", "rcg.DecryptApReplyReq.EncryptedReply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6167 { &hf_rcg_DecryptApReplyReq_Key,
6168 { "Key", "rcg.DecryptApReplyReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6169 { &hf_rcg_DecryptApReplyResp_ApReply,
6170 { "ApReply", "rcg.DecryptApReplyResp.ApReply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6171 { &hf_rcg_DecryptPacCredentialsReq_Data,
6172 { "Data", "rcg.DecryptPacCredentialsReq.Data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6173 { &hf_rcg_DecryptPacCredentialsReq_DataSize,
6174 { "DataSize", "rcg.DecryptPacCredentialsReq.DataSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6175 { &hf_rcg_DecryptPacCredentialsReq_EncryptionType,
6176 { "EncryptionType", "rcg.DecryptPacCredentialsReq.EncryptionType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6177 { &hf_rcg_DecryptPacCredentialsReq_Key,
6178 { "Key", "rcg.DecryptPacCredentialsReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6179 { &hf_rcg_DecryptPacCredentialsReq_Version,
6180 { "Version", "rcg.DecryptPacCredentialsReq.Version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6181 { &hf_rcg_DecryptPacCredentialsResp_Credentials,
6182 { "Credentials", "rcg.DecryptPacCredentialsResp.Credentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6183 { &hf_rcg_DestroyKeyAgreementReq_KeyAgreementHandle,
6184 { "KeyAgreementHandle", "rcg.DestroyKeyAgreementReq.KeyAgreementHandle", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
6185 { &hf_rcg_DestroyKeyAgreementResp_Ignored,
6186 { "Ignored", "rcg.DestroyKeyAgreementResp.Ignored", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6187 { &hf_rcg_FinalizeKeyAgreementReq_KerbEType,
6188 { "KerbEType", "rcg.FinalizeKeyAgreementReq.KerbEType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6189 { &hf_rcg_FinalizeKeyAgreementReq_KeyAgreementHandle,
6190 { "KeyAgreementHandle", "rcg.FinalizeKeyAgreementReq.KeyAgreementHandle", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
6191 { &hf_rcg_FinalizeKeyAgreementReq_RemoteNonce,
6192 { "RemoteNonce", "rcg.FinalizeKeyAgreementReq.RemoteNonce", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6193 { &hf_rcg_FinalizeKeyAgreementReq_RemoteNonceLen,
6194 { "RemoteNonceLen", "rcg.FinalizeKeyAgreementReq.RemoteNonceLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6195 { &hf_rcg_FinalizeKeyAgreementReq_X509PublicKey,
6196 { "X509PublicKey", "rcg.FinalizeKeyAgreementReq.X509PublicKey", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6197 { &hf_rcg_FinalizeKeyAgreementReq_X509PublicKeyLen,
6198 { "X509PublicKeyLen", "rcg.FinalizeKeyAgreementReq.X509PublicKeyLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6199 { &hf_rcg_FinalizeKeyAgreementResp_SharedKey,
6200 { "SharedKey", "rcg.FinalizeKeyAgreementResp.SharedKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6201 { &hf_rcg_HashS4UPreauthReq_ChecksumType,
6202 { "ChecksumType", "rcg.HashS4UPreauthReq.ChecksumType", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6203 { &hf_rcg_HashS4UPreauthReq_Key,
6204 { "Key", "rcg.HashS4UPreauthReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6205 { &hf_rcg_HashS4UPreauthReq_S4UPreauth,
6206 { "S4UPreauth", "rcg.HashS4UPreauthReq.S4UPreauth", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6207 { &hf_rcg_HashS4UPreauthResp_ChecksumSize,
6208 { "ChecksumSize", "rcg.HashS4UPreauthResp.ChecksumSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6209 { &hf_rcg_HashS4UPreauthResp_ChecksumValue,
6210 { "ChecksumValue", "rcg.HashS4UPreauthResp.ChecksumValue", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6211 { &hf_rcg_KERB_ASN1_DATA_Asn1Buffer,
6212 { "Asn1Buffer", "rcg.KERB_ASN1_DATA.Asn1Buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6213 { &hf_rcg_KERB_ASN1_DATA_CHECKSUM_Length,
6214 { "Length", "rcg.KERB_ASN1_DATA_CHECKSUM.Length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6215 { &hf_rcg_KERB_ASN1_DATA_CHECKSUM_Pdu,
6216 { "Pdu", "rcg.KERB_ASN1_DATA_CHECKSUM.Pdu", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6217 { &hf_rcg_KERB_ASN1_DATA_CHECKSUM_checksum,
6218 { "Checksum", "rcg.KERB_ASN1_DATA_CHECKSUM.checksum", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6219 { &hf_rcg_KERB_ASN1_DATA_Length,
6220 { "Length", "rcg.KERB_ASN1_DATA.Length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6221 { &hf_rcg_KERB_ASN1_DATA_Pdu,
6222 { "Pdu", "rcg.KERB_ASN1_DATA.Pdu", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6223 { &hf_rcg_KERB_RPC_CRYPTO_API_BLOB_cbData,
6224 { "CbData", "rcg.KERB_RPC_CRYPTO_API_BLOB.cbData", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6225 { &hf_rcg_KERB_RPC_CRYPTO_API_BLOB_pbData,
6226 { "PbData", "rcg.KERB_RPC_CRYPTO_API_BLOB.pbData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6227 { &hf_rcg_KERB_RPC_ENCRYPTION_KEY_reserved3,
6228 { "Reserved3", "rcg.KERB_RPC_ENCRYPTION_KEY.reserved3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6229 { &hf_rcg_KERB_RPC_INTERNAL_NAME_NameCount,
6230 { "NameCount", "rcg.KERB_RPC_INTERNAL_NAME.NameCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
6231 { &hf_rcg_KERB_RPC_INTERNAL_NAME_NameType,
6232 { "NameType", "rcg.KERB_RPC_INTERNAL_NAME.NameType", FT_INT16, BASE_DEC, NULL, 0, NULL, HFILL }},
6233 { &hf_rcg_KERB_RPC_INTERNAL_NAME_Names,
6234 { "Names", "rcg.KERB_RPC_INTERNAL_NAME.Names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6235 { &hf_rcg_KERB_RPC_OCTET_STRING_length,
6236 { "Length", "rcg.KERB_RPC_OCTET_STRING.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6237 { &hf_rcg_KERB_RPC_OCTET_STRING_value,
6238 { "Value", "rcg.KERB_RPC_OCTET_STRING.value", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6239 { &hf_rcg_KERB_RPC_PA_DATA_preauth_data,
6240 { "Preauth Data", "rcg.KERB_RPC_PA_DATA.preauth_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6241 { &hf_rcg_KERB_RPC_PA_DATA_preauth_data_type,
6242 { "Preauth Data Type", "rcg.KERB_RPC_PA_DATA.preauth_data_type", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6243 { &hf_rcg_KerbCredIsoRemoteInput_CallId,
6244 { "CallId", "rcg.KerbCredIsoRemoteInput.CallId", FT_UINT16, BASE_DEC, VALS(rcg_RemoteGuardCallId_vals), 0, NULL, HFILL }},
6245 { &hf_rcg_KerbCredIsoRemoteInput_callUnion,
6246 { "CallUnion", "rcg.KerbCredIsoRemoteInput.callUnion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6247 { &hf_rcg_KerbCredIsoRemoteOutput_CallId,
6248 { "CallId", "rcg.KerbCredIsoRemoteOutput.CallId", FT_UINT16, BASE_DEC, VALS(rcg_RemoteGuardCallId_vals), 0, NULL, HFILL }},
6249 { &hf_rcg_KerbCredIsoRemoteOutput_Status,
6250 { "Status", "rcg.KerbCredIsoRemoteOutput.Status", FT_UINT32, BASE_HEX|BASE_EXT_STRING, &NT_errors_ext, 0, NULL, HFILL }},
6251 { &hf_rcg_KerbCredIsoRemoteOutput_callUnion,
6252 { "CallUnion", "rcg.KerbCredIsoRemoteOutput.callUnion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6253 { &hf_rcg_KerbInputUnion_buildAsReqAuthenticator,
6254 { "BuildAsReqAuthenticator", "rcg.KerbInputUnion.buildAsReqAuthenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6255 { &hf_rcg_KerbInputUnion_buildEncryptedAuthData,
6256 { "BuildEncryptedAuthData", "rcg.KerbInputUnion.buildEncryptedAuthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6257 { &hf_rcg_KerbInputUnion_computeTgsChecksum,
6258 { "ComputeTgsChecksum", "rcg.KerbInputUnion.computeTgsChecksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6259 { &hf_rcg_KerbInputUnion_createApReqAuthenticator,
6260 { "CreateApReqAuthenticator", "rcg.KerbInputUnion.createApReqAuthenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6261 { &hf_rcg_KerbInputUnion_createDHKeyAgreement,
6262 { "CreateDHKeyAgreement", "rcg.KerbInputUnion.createDHKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6263 { &hf_rcg_KerbInputUnion_createECDHKeyAgreement,
6264 { "CreateECDHKeyAgreement", "rcg.KerbInputUnion.createECDHKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6265 { &hf_rcg_KerbInputUnion_decryptApReply,
6266 { "DecryptApReply", "rcg.KerbInputUnion.decryptApReply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6267 { &hf_rcg_KerbInputUnion_decryptPacCredentials,
6268 { "DecryptPacCredentials", "rcg.KerbInputUnion.decryptPacCredentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6269 { &hf_rcg_KerbInputUnion_destroyKeyAgreement,
6270 { "DestroyKeyAgreement", "rcg.KerbInputUnion.destroyKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6271 { &hf_rcg_KerbInputUnion_finalizeKeyAgreement,
6272 { "FinalizeKeyAgreement", "rcg.KerbInputUnion.finalizeKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6273 { &hf_rcg_KerbInputUnion_hashS4UPreauth,
6274 { "HashS4UPreauth", "rcg.KerbInputUnion.hashS4UPreauth", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6275 { &hf_rcg_KerbInputUnion_keyAgreementGenerateNonce,
6276 { "KeyAgreementGenerateNonce", "rcg.KerbInputUnion.keyAgreementGenerateNonce", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6277 { &hf_rcg_KerbInputUnion_negociateVersion,
6278 { "NegociateVersion", "rcg.KerbInputUnion.negociateVersion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6279 { &hf_rcg_KerbInputUnion_packApReply,
6280 { "PackApReply", "rcg.KerbInputUnion.packApReply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6281 { &hf_rcg_KerbInputUnion_signS4UPreauthData,
6282 { "SignS4UPreauthData", "rcg.KerbInputUnion.signS4UPreauthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6283 { &hf_rcg_KerbInputUnion_unpackKdcReplyBody,
6284 { "UnpackKdcReplyBody", "rcg.KerbInputUnion.unpackKdcReplyBody", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6285 { &hf_rcg_KerbInputUnion_verifyChecksum,
6286 { "VerifyChecksum", "rcg.KerbInputUnion.verifyChecksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6287 { &hf_rcg_KerbInputUnion_verifyServiceTicket,
6288 { "VerifyServiceTicket", "rcg.KerbInputUnion.verifyServiceTicket", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6289 { &hf_rcg_KerbOutputUnion_buildAsReqAuthenticator,
6290 { "BuildAsReqAuthenticator", "rcg.KerbOutputUnion.buildAsReqAuthenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6291 { &hf_rcg_KerbOutputUnion_buildEncryptedAuthData,
6292 { "BuildEncryptedAuthData", "rcg.KerbOutputUnion.buildEncryptedAuthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6293 { &hf_rcg_KerbOutputUnion_computeTgsChecksum,
6294 { "ComputeTgsChecksum", "rcg.KerbOutputUnion.computeTgsChecksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6295 { &hf_rcg_KerbOutputUnion_createApReqAuthenticator,
6296 { "CreateApReqAuthenticator", "rcg.KerbOutputUnion.createApReqAuthenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6297 { &hf_rcg_KerbOutputUnion_createDHKeyAgreement,
6298 { "CreateDHKeyAgreement", "rcg.KerbOutputUnion.createDHKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6299 { &hf_rcg_KerbOutputUnion_createECDHKeyAgreement,
6300 { "CreateECDHKeyAgreement", "rcg.KerbOutputUnion.createECDHKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6301 { &hf_rcg_KerbOutputUnion_decryptApReply,
6302 { "DecryptApReply", "rcg.KerbOutputUnion.decryptApReply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6303 { &hf_rcg_KerbOutputUnion_decryptPacCredentials,
6304 { "DecryptPacCredentials", "rcg.KerbOutputUnion.decryptPacCredentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6305 { &hf_rcg_KerbOutputUnion_destroyKeyAgreement,
6306 { "DestroyKeyAgreement", "rcg.KerbOutputUnion.destroyKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6307 { &hf_rcg_KerbOutputUnion_finalizeKeyAgreement,
6308 { "FinalizeKeyAgreement", "rcg.KerbOutputUnion.finalizeKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6309 { &hf_rcg_KerbOutputUnion_hashS4UPreauth,
6310 { "HashS4UPreauth", "rcg.KerbOutputUnion.hashS4UPreauth", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6311 { &hf_rcg_KerbOutputUnion_keyAgreementGenerateNonce,
6312 { "KeyAgreementGenerateNonce", "rcg.KerbOutputUnion.keyAgreementGenerateNonce", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6313 { &hf_rcg_KerbOutputUnion_negociateVersion,
6314 { "NegociateVersion", "rcg.KerbOutputUnion.negociateVersion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6315 { &hf_rcg_KerbOutputUnion_packApReply,
6316 { "PackApReply", "rcg.KerbOutputUnion.packApReply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6317 { &hf_rcg_KerbOutputUnion_signS4UPreauthData,
6318 { "SignS4UPreauthData", "rcg.KerbOutputUnion.signS4UPreauthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6319 { &hf_rcg_KerbOutputUnion_unpackKdcReplyBody,
6320 { "UnpackKdcReplyBody", "rcg.KerbOutputUnion.unpackKdcReplyBody", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6321 { &hf_rcg_KerbOutputUnion_verifyChecksum,
6322 { "VerifyChecksum", "rcg.KerbOutputUnion.verifyChecksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6323 { &hf_rcg_KerbOutputUnion_verifyServiceTicket,
6324 { "VerifyServiceTicket", "rcg.KerbOutputUnion.verifyServiceTicket", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6325 { &hf_rcg_KeyAgreementGenerateNonceReq_KeyAgreementHandle,
6326 { "KeyAgreementHandle", "rcg.KeyAgreementGenerateNonceReq.KeyAgreementHandle", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
6327 { &hf_rcg_KeyAgreementGenerateNonceResp_Nonce,
6328 { "Nonce", "rcg.KeyAgreementGenerateNonceResp.Nonce", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6329 { &hf_rcg_KeyAgreementGenerateNonceResp_NonceLen,
6330 { "NonceLen", "rcg.KeyAgreementGenerateNonceResp.NonceLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6331 { &hf_rcg_LARGE_INTEGER_QuadPart,
6332 { "QuadPart", "rcg.LARGE_INTEGER.QuadPart", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
6333 { &hf_rcg_Lm20GetNtlm3ChallengeResponseReq_Credential,
6334 { "Credential", "rcg.Lm20GetNtlm3ChallengeResponseReq.Credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6335 { &hf_rcg_Lm20GetNtlm3ChallengeResponseReq_LogonDomainName,
6336 { "LogonDomainName", "rcg.Lm20GetNtlm3ChallengeResponseReq.LogonDomainName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6337 { &hf_rcg_Lm20GetNtlm3ChallengeResponseReq_ServerName,
6338 { "ServerName", "rcg.Lm20GetNtlm3ChallengeResponseReq.ServerName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6339 { &hf_rcg_Lm20GetNtlm3ChallengeResponseReq_UserName,
6340 { "UserName", "rcg.Lm20GetNtlm3ChallengeResponseReq.UserName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6341 { &hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Lm3Response,
6342 { "Lm3Response", "rcg.Lm20GetNtlm3ChallengeResponseResp.Lm3Response", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6343 { &hf_rcg_Lm20GetNtlm3ChallengeResponseResp_LmSessionKey,
6344 { "LmSessionKey", "rcg.Lm20GetNtlm3ChallengeResponseResp.LmSessionKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6345 { &hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response,
6346 { "Ntlm3Response", "rcg.Lm20GetNtlm3ChallengeResponseResp.Ntlm3Response", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6347 { &hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Ntlm3ResponseLength,
6348 { "Ntlm3ResponseLength", "rcg.Lm20GetNtlm3ChallengeResponseResp.Ntlm3ResponseLength", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
6349 { &hf_rcg_Lm20GetNtlm3ChallengeResponseResp_UserSessionKey,
6350 { "UserSessionKey", "rcg.Lm20GetNtlm3ChallengeResponseResp.UserSessionKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6351 { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved1,
6352 { "Reserved1", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reserved1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6353 { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved2,
6354 { "Reserved2", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6355 { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved3,
6356 { "Reserved3", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reserved3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6357 { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved4,
6358 { "Reserved4", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reserved4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6359 { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved5,
6360 { "Reserved5", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reserved5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6361 { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6,
6362 { "Reserved6", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reserved6", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6363 { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reservedSize,
6364 { "ReservedSize", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reservedSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6365 { &hf_rcg_NegotiateVersion_MaxSupportedVersion,
6366 { "MaxSupportedVersion", "rcg.NegotiateVersion.MaxSupportedVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6367 { &hf_rcg_NtlmCredInput_calculateNtResponse,
6368 { "CalculateNtResponse", "rcg.NtlmCredInput.calculateNtResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6369 { &hf_rcg_NtlmCredInput_calculateUserSessionKeyNt,
6370 { "CalculateUserSessionKeyNt", "rcg.NtlmCredInput.calculateUserSessionKeyNt", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6371 { &hf_rcg_NtlmCredInput_compareCredentials,
6372 { "CompareCredentials", "rcg.NtlmCredInput.compareCredentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6373 { &hf_rcg_NtlmCredInput_lm20GetNtlm3ChallengeResponse,
6374 { "Lm20GetNtlm3ChallengeResponse", "rcg.NtlmCredInput.lm20GetNtlm3ChallengeResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6375 { &hf_rcg_NtlmCredInput_negotiateVersion,
6376 { "NegotiateVersion", "rcg.NtlmCredInput.negotiateVersion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6377 { &hf_rcg_NtlmCredIsoRemoteInput_CallId,
6378 { "CallId", "rcg.NtlmCredIsoRemoteInput.CallId", FT_UINT16, BASE_DEC, VALS(rcg_RemoteGuardCallId_vals), 0, NULL, HFILL }},
6379 { &hf_rcg_NtlmCredIsoRemoteInput_callUnion,
6380 { "CallUnion", "rcg.NtlmCredIsoRemoteInput.callUnion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6381 { &hf_rcg_NtlmCredIsoRemoteOutput_CallId,
6382 { "CallId", "rcg.NtlmCredIsoRemoteOutput.CallId", FT_UINT16, BASE_DEC, VALS(rcg_RemoteGuardCallId_vals), 0, NULL, HFILL }},
6383 { &hf_rcg_NtlmCredIsoRemoteOutput_Status,
6384 { "Status", "rcg.NtlmCredIsoRemoteOutput.Status", FT_UINT32, BASE_HEX|BASE_EXT_STRING, &NT_errors_ext, 0, NULL, HFILL }},
6385 { &hf_rcg_NtlmCredIsoRemoteOutput_callUnion,
6386 { "CallUnion", "rcg.NtlmCredIsoRemoteOutput.callUnion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6387 { &hf_rcg_NtlmCredOutput_calculateNtResponse,
6388 { "CalculateNtResponse", "rcg.NtlmCredOutput.calculateNtResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6389 { &hf_rcg_NtlmCredOutput_calculateUserSessionKeyNt,
6390 { "CalculateUserSessionKeyNt", "rcg.NtlmCredOutput.calculateUserSessionKeyNt", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6391 { &hf_rcg_NtlmCredOutput_compareCredentials,
6392 { "CompareCredentials", "rcg.NtlmCredOutput.compareCredentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6393 { &hf_rcg_NtlmCredOutput_lm20GetNtlm3ChallengeResponse,
6394 { "Lm20GetNtlm3ChallengeResponse", "rcg.NtlmCredOutput.lm20GetNtlm3ChallengeResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6395 { &hf_rcg_NtlmCredOutput_negotiateVersion,
6396 { "NegotiateVersion", "rcg.NtlmCredOutput.negotiateVersion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6397 { &hf_rcg_PackApReplyReq_Reply,
6398 { "Reply", "rcg.PackApReplyReq.Reply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6399 { &hf_rcg_PackApReplyReq_ReplyBody,
6400 { "ReplyBody", "rcg.PackApReplyReq.ReplyBody", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6401 { &hf_rcg_PackApReplyReq_SessionKey,
6402 { "SessionKey", "rcg.PackApReplyReq.SessionKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6403 { &hf_rcg_PackApReplyResp_PackedReply,
6404 { "PackedReply", "rcg.PackApReplyResp.PackedReply", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6405 { &hf_rcg_PackApReplyResp_PackedReplySize,
6406 { "PackedReplySize", "rcg.PackApReplyResp.PackedReplySize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6407 { &hf_rcg_RPC_UNICODE_STRING_Buffer,
6408 { "Buffer", "rcg.RPC_UNICODE_STRING.Buffer", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
6409 { &hf_rcg_RPC_UNICODE_STRING_Length,
6410 { "Length", "rcg.RPC_UNICODE_STRING.Length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
6411 { &hf_rcg_RPC_UNICODE_STRING_MaximumLength,
6412 { "MaximumLength", "rcg.RPC_UNICODE_STRING.MaximumLength", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
6413 { &hf_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY_CredentialCount,
6414 { "CredentialCount", "rcg.SECPKG_SUPPLEMENTAL_CRED_ARRAY.CredentialCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6415 { &hf_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY_Credentials,
6416 { "Credentials", "rcg.SECPKG_SUPPLEMENTAL_CRED_ARRAY.Credentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6417 { &hf_rcg_SECPKG_SUPPLEMENTAL_CRED_CredentialSize,
6418 { "CredentialSize", "rcg.SECPKG_SUPPLEMENTAL_CRED.CredentialSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6419 { &hf_rcg_SECPKG_SUPPLEMENTAL_CRED_Credentials,
6420 { "Credentials", "rcg.SECPKG_SUPPLEMENTAL_CRED.Credentials", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6421 { &hf_rcg_SECPKG_SUPPLEMENTAL_CRED_PackageName,
6422 { "PackageName", "rcg.SECPKG_SUPPLEMENTAL_CRED.PackageName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6423 { &hf_rcg_SignS4UPreauthDataReq_ChecksumType,
6424 { "ChecksumType", "rcg.SignS4UPreauthDataReq.ChecksumType", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6425 { &hf_rcg_SignS4UPreauthDataReq_IsRequest,
6426 { "IsRequest", "rcg.SignS4UPreauthDataReq.IsRequest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6427 { &hf_rcg_SignS4UPreauthDataReq_Key,
6428 { "Key", "rcg.SignS4UPreauthDataReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6429 { &hf_rcg_SignS4UPreauthDataReq_UserId,
6430 { "UserId", "rcg.SignS4UPreauthDataReq.UserId", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6431 { &hf_rcg_SignS4UPreauthDataResp_ChecksumSize,
6432 { "ChecksumSize", "rcg.SignS4UPreauthDataResp.ChecksumSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6433 { &hf_rcg_SignS4UPreauthDataResp_ChecksumType,
6434 { "ChecksumType", "rcg.SignS4UPreauthDataResp.ChecksumType", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6435 { &hf_rcg_SignS4UPreauthDataResp_ChecksumValue,
6436 { "ChecksumValue", "rcg.SignS4UPreauthDataResp.ChecksumValue", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6437 { &hf_rcg_UnpackKdcReplyBodyReq_EncryptedData,
6438 { "EncryptedData", "rcg.UnpackKdcReplyBodyReq.EncryptedData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6439 { &hf_rcg_UnpackKdcReplyBodyReq_Key,
6440 { "Key", "rcg.UnpackKdcReplyBodyReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6441 { &hf_rcg_UnpackKdcReplyBodyReq_KeyUsage,
6442 { "KeyUsage", "rcg.UnpackKdcReplyBodyReq.KeyUsage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6443 { &hf_rcg_UnpackKdcReplyBodyReq_Pdu,
6444 { "Pdu", "rcg.UnpackKdcReplyBodyReq.Pdu", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6445 { &hf_rcg_UnpackKdcReplyBodyReq_StrengthenKey,
6446 { "StrengthenKey", "rcg.UnpackKdcReplyBodyReq.StrengthenKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6447 { &hf_rcg_UnpackKdcReplyBodyResp_KerbProtocolError,
6448 { "KerbProtocolError", "rcg.UnpackKdcReplyBodyResp.KerbProtocolError", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6449 { &hf_rcg_UnpackKdcReplyBodyResp_ReplyBody,
6450 { "ReplyBody", "rcg.UnpackKdcReplyBodyResp.ReplyBody", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6451 { &hf_rcg_VerifyChecksumReq_ChecksumType,
6452 { "ChecksumType", "rcg.VerifyChecksumReq.ChecksumType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6453 { &hf_rcg_VerifyChecksumReq_DataToCheck,
6454 { "DataToCheck", "rcg.VerifyChecksumReq.DataToCheck", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6455 { &hf_rcg_VerifyChecksumReq_DataToCheckSize,
6456 { "DataToCheckSize", "rcg.VerifyChecksumReq.DataToCheckSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6457 { &hf_rcg_VerifyChecksumReq_ExpectedChecksum,
6458 { "ExpectedChecksum", "rcg.VerifyChecksumReq.ExpectedChecksum", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6459 { &hf_rcg_VerifyChecksumReq_ExpectedChecksumSize,
6460 { "ExpectedChecksumSize", "rcg.VerifyChecksumReq.ExpectedChecksumSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6461 { &hf_rcg_VerifyChecksumReq_Key,
6462 { "Key", "rcg.VerifyChecksumReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6463 { &hf_rcg_VerifyChecksumResp_IsValid,
6464 { "IsValid", "rcg.VerifyChecksumResp.IsValid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6465 { &hf_rcg_VerifyServiceTicketReq_PackedTicket,
6466 { "PackedTicket", "rcg.VerifyServiceTicketReq.PackedTicket", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6467 { &hf_rcg_VerifyServiceTicketReq_ServiceKey,
6468 { "ServiceKey", "rcg.VerifyServiceTicketReq.ServiceKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6469 { &hf_rcg_VerifyServiceTicketReq_TimeSkew,
6470 { "TimeSkew", "rcg.VerifyServiceTicketReq.TimeSkew", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6471 { &hf_rcg_VerifyServiceTicketResp_DecryptedTicket,
6472 { "DecryptedTicket", "rcg.VerifyServiceTicketResp.DecryptedTicket", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6473 { &hf_rcg_VerifyServiceTicketResp_KerbProtocolError,
6474 { "KerbProtocolError", "rcg.VerifyServiceTicketResp.KerbProtocolError", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6475 { &hf_rcg_opnum,
6476 { "Operation", "rcg.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
6480 static int *ett[] = {
6481 &ett_dcerpc_rcg,
6482 &ett_rcg_KERB_ASN1_DATA,
6483 &ett_rcg_KERB_ASN1_DATA_CHECKSUM,
6484 &ett_rcg_KERB_RPC_OCTET_STRING,
6485 &ett_rcg_KERB_RPC_PA_DATA,
6486 &ett_rcg_KERB_RPC_ENCRYPTION_KEY,
6487 &ett_rcg_RPC_UNICODE_STRING,
6488 &ett_rcg_KERB_RPC_INTERNAL_NAME,
6489 &ett_rcg_SECPKG_SUPPLEMENTAL_CRED,
6490 &ett_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY,
6491 &ett_rcg_PSECPKG_SUPPLEMENTAL_CRED_ARRAY,
6492 &ett_rcg_KERB_RPC_CRYPTO_API_BLOB,
6493 &ett_rcg_NegotiateVersion,
6494 &ett_rcg_LARGE_INTEGER,
6495 &ett_rcg_PLARGE_INTEGER,
6496 &ett_rcg_BuildAsReqAuthenticatorReq,
6497 &ett_rcg_BuildAsReqAuthenticatorResp,
6498 &ett_rcg_VerifyServiceTicketReq,
6499 &ett_rcg_VerifyServiceTicketResp,
6500 &ett_rcg_PRPC_UNICODE_STRING,
6501 &ett_rcg_CreateApReqAuthenticatorReq,
6502 &ett_rcg_CreateApReqAuthenticatorResp,
6503 &ett_rcg_DecryptApReplyReq,
6504 &ett_rcg_DecryptApReplyResp,
6505 &ett_rcg_UnpackKdcReplyBodyReq,
6506 &ett_rcg_UnpackKdcReplyBodyResp,
6507 &ett_rcg_ComputeTgsChecksumReq,
6508 &ett_rcg_ComputeTgsChecksumResp,
6509 &ett_rcg_BuildEncryptedAuthDataReq,
6510 &ett_rcg_BuildEncryptedAuthDataResp,
6511 &ett_rcg_PackApReplyReq,
6512 &ett_rcg_PackApReplyResp,
6513 &ett_rcg_HashS4UPreauthReq,
6514 &ett_rcg_HashS4UPreauthResp,
6515 &ett_rcg_SignS4UPreauthDataReq,
6516 &ett_rcg_SignS4UPreauthDataResp,
6517 &ett_rcg_VerifyChecksumReq,
6518 &ett_rcg_VerifyChecksumResp,
6519 &ett_rcg_DecryptPacCredentialsReq,
6520 &ett_rcg_DecryptPacCredentialsResp,
6521 &ett_rcg_CreateECDHKeyAgreementReq,
6522 &ett_rcg_CreateECDHKeyAgreementResp,
6523 &ett_rcg_CreateDHKeyAgreementReq,
6524 &ett_rcg_CreateDHKeyAgreementResp,
6525 &ett_rcg_DestroyKeyAgreementReq,
6526 &ett_rcg_DestroyKeyAgreementResp,
6527 &ett_rcg_KeyAgreementGenerateNonceReq,
6528 &ett_rcg_KeyAgreementGenerateNonceResp,
6529 &ett_rcg_FinalizeKeyAgreementReq,
6530 &ett_rcg_FinalizeKeyAgreementResp,
6531 &ett_rcg_KerbInputUnion,
6532 &ett_rcg_KerbCredIsoRemoteInput,
6533 &ett_rcg_KerbOutputUnion,
6534 &ett_rcg_KerbCredIsoRemoteOutput,
6535 &ett_rcg_NT_RESPONSE,
6536 &ett_rcg_NT_CHALLENGE,
6537 &ett_rcg_PNT_CHALLENGE,
6538 &ett_rcg_LM_SESSION_KEY,
6539 &ett_rcg_MSV1_0_LM3_RESPONSE,
6540 &ett_rcg_PMSV1_0_LM3_RESPONSE,
6541 &ett_rcg_USER_SESSION_KEY,
6542 &ett_rcg_PUSER_SESSION_KEY,
6543 &ett_rcg_MSV1_0_CREDENTIAL_KEY,
6544 &ett_rcg_PMSV1_0_CREDENTIAL_KEY,
6545 &ett_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS,
6546 &ett_rcg_PMSV1_0_REMOTE_ENCRYPTED_SECRETS,
6547 &ett_rcg_Lm20GetNtlm3ChallengeResponseReq,
6548 &ett_rcg_Lm20GetNtlm3ChallengeResponseResp,
6549 &ett_rcg_CalculateNtResponseReq,
6550 &ett_rcg_CalculateNtResponseResp,
6551 &ett_rcg_CalculateUserSessionKeyNtReq,
6552 &ett_rcg_CalculateUserSessionKeyNtResp,
6553 &ett_rcg_CompareCredentialsReq,
6554 &ett_rcg_CompareCredentialsResp,
6555 &ett_rcg_NtlmCredInput,
6556 &ett_rcg_NtlmCredIsoRemoteInput,
6557 &ett_rcg_NtlmCredOutput,
6558 &ett_rcg_NtlmCredIsoRemoteOutput,
6561 proto_dcerpc_rcg = proto_register_protocol("RCG (pidl)", "RCG", "rcg");
6562 proto_register_field_array(proto_dcerpc_rcg, hf, array_length (hf));
6563 proto_register_subtree_array(ett, array_length(ett));
6566 void proto_reg_handoff_dcerpc_rcg(void)
6568 dcerpc_init_uuid(proto_dcerpc_rcg, ett_dcerpc_rcg,
6569 &uuid_dcerpc_rcg, ver_dcerpc_rcg,
6570 rcg_dissectors, hf_rcg_opnum);