Coverage Report

Created: 2025-12-27 06:52

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/wireshark/epan/dissectors/packet-dcerpc-rcg.c
Line
Count
Source
1
/* DO NOT EDIT
2
  This file was automatically generated by Pidl
3
  from rcg.idl and rcg.cnf.
4
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
*/
10
11
12
#include "config.h"
13
#include <string.h>
14
#include <wsutil/array.h>
15
#include <epan/packet.h>
16
#include <epan/tfs.h>
17
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);
24
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_KERB_RPC_CRYPTO_API_BLOB;
37
static int ett_rcg_NegotiateVersion;
38
static int ett_rcg_LARGE_INTEGER;
39
static int ett_rcg_PLARGE_INTEGER;
40
static int ett_rcg_BuildAsReqAuthenticatorReq;
41
static int ett_rcg_BuildAsReqAuthenticatorResp;
42
static int ett_rcg_VerifyServiceTicketReq;
43
static int ett_rcg_VerifyServiceTicketResp;
44
static int ett_rcg_CreateApReqAuthenticatorReq;
45
static int ett_rcg_CreateApReqAuthenticatorResp;
46
static int ett_rcg_DecryptApReplyReq;
47
static int ett_rcg_DecryptApReplyResp;
48
static int ett_rcg_UnpackKdcReplyBodyReq;
49
static int ett_rcg_UnpackKdcReplyBodyResp;
50
static int ett_rcg_ComputeTgsChecksumReq;
51
static int ett_rcg_ComputeTgsChecksumResp;
52
static int ett_rcg_BuildEncryptedAuthDataReq;
53
static int ett_rcg_BuildEncryptedAuthDataResp;
54
static int ett_rcg_PackApReplyReq;
55
static int ett_rcg_PackApReplyResp;
56
static int ett_rcg_HashS4UPreauthReq;
57
static int ett_rcg_HashS4UPreauthResp;
58
static int ett_rcg_SignS4UPreauthDataReq;
59
static int ett_rcg_SignS4UPreauthDataResp;
60
static int ett_rcg_VerifyChecksumReq;
61
static int ett_rcg_VerifyChecksumResp;
62
static int ett_rcg_DecryptPacCredentialsReq;
63
static int ett_rcg_DecryptPacCredentialsResp;
64
static int ett_rcg_CreateECDHKeyAgreementReq;
65
static int ett_rcg_CreateECDHKeyAgreementResp;
66
static int ett_rcg_CreateDHKeyAgreementReq;
67
static int ett_rcg_CreateDHKeyAgreementResp;
68
static int ett_rcg_DestroyKeyAgreementReq;
69
static int ett_rcg_DestroyKeyAgreementResp;
70
static int ett_rcg_KeyAgreementGenerateNonceReq;
71
static int ett_rcg_KeyAgreementGenerateNonceResp;
72
static int ett_rcg_FinalizeKeyAgreementReq;
73
static int ett_rcg_FinalizeKeyAgreementResp;
74
static int ett_rcg_KerbInputUnion;
75
static int ett_rcg_KerbCredIsoRemoteInput;
76
static int ett_rcg_KerbOutputUnion;
77
static int ett_rcg_KerbCredIsoRemoteOutput;
78
static int ett_rcg_NT_RESPONSE;
79
static int ett_rcg_NT_CHALLENGE;
80
static int ett_rcg_LM_SESSION_KEY;
81
static int ett_rcg_MSV1_0_LM3_RESPONSE;
82
static int ett_rcg_USER_SESSION_KEY;
83
static int ett_rcg_MSV1_0_CREDENTIAL_KEY;
84
static int ett_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS;
85
static int ett_rcg_Lm20GetNtlm3ChallengeResponseReq;
86
static int ett_rcg_Lm20GetNtlm3ChallengeResponseResp;
87
static int ett_rcg_CalculateNtResponseReq;
88
static int ett_rcg_CalculateNtResponseResp;
89
static int ett_rcg_CalculateUserSessionKeyNtReq;
90
static int ett_rcg_CalculateUserSessionKeyNtResp;
91
static int ett_rcg_CompareCredentialsReq;
92
static int ett_rcg_CompareCredentialsResp;
93
static int ett_rcg_NtlmCredInput;
94
static int ett_rcg_NtlmCredIsoRemoteInput;
95
static int ett_rcg_NtlmCredOutput;
96
static int ett_rcg_NtlmCredIsoRemoteOutput;
97
98
99
/* Header field declarations */
100
static int hf_KERB_RPC_ENCRYPTION_KEY_reserved1;
101
static int hf_KERB_RPC_ENCRYPTION_KEY_reserved2;
102
static int hf_rcg_BuildAsReqAuthenticatorReq_ArmorKey;
103
static int hf_rcg_BuildAsReqAuthenticatorReq_EncryptionKey;
104
static int hf_rcg_BuildAsReqAuthenticatorReq_TimeSkew;
105
static int hf_rcg_BuildAsReqAuthenticatorResp_PreauthData;
106
static int hf_rcg_BuildAsReqAuthenticatorResp_PreauthDataType;
107
static int hf_rcg_BuildEncryptedAuthDataReq_Key;
108
static int hf_rcg_BuildEncryptedAuthDataReq_KeyUsage;
109
static int hf_rcg_BuildEncryptedAuthDataReq_PlainAuthData;
110
static int hf_rcg_BuildEncryptedAuthDataResp_EncryptedAuthData;
111
static int hf_rcg_CalculateNtResponseReq_Credential;
112
static int hf_rcg_CalculateNtResponseReq_NtChallenge;
113
static int hf_rcg_CalculateNtResponseResp_NtResponse;
114
static int hf_rcg_CalculateUserSessionKeyNtReq_Credential;
115
static int hf_rcg_CalculateUserSessionKeyNtReq_NtResponse;
116
static int hf_rcg_CalculateUserSessionKeyNtResp_UserSessionKey;
117
static int hf_rcg_CompareCredentialsReq_LhsCredential;
118
static int hf_rcg_CompareCredentialsReq_RhsCredential;
119
static int hf_rcg_CompareCredentialsResp_AreLmOwfsEqual;
120
static int hf_rcg_CompareCredentialsResp_AreNtOwfsEqual;
121
static int hf_rcg_CompareCredentialsResp_AreShaOwfsEqual;
122
static int hf_rcg_ComputeTgsChecksumReq_ChecksumType;
123
static int hf_rcg_ComputeTgsChecksumReq_Key;
124
static int hf_rcg_ComputeTgsChecksumReq_RequestBody;
125
static int hf_rcg_ComputeTgsChecksumResp_Checksum;
126
static int hf_rcg_CreateApReqAuthenticatorReq_AuthData;
127
static int hf_rcg_CreateApReqAuthenticatorReq_ClientName;
128
static int hf_rcg_CreateApReqAuthenticatorReq_ClientRealm;
129
static int hf_rcg_CreateApReqAuthenticatorReq_EncryptionKey;
130
static int hf_rcg_CreateApReqAuthenticatorReq_GssChecksum;
131
static int hf_rcg_CreateApReqAuthenticatorReq_KeyUsage;
132
static int hf_rcg_CreateApReqAuthenticatorReq_SequenceNumber;
133
static int hf_rcg_CreateApReqAuthenticatorReq_SkewTime;
134
static int hf_rcg_CreateApReqAuthenticatorReq_SubKey;
135
static int hf_rcg_CreateApReqAuthenticatorResp_Authenticator;
136
static int hf_rcg_CreateApReqAuthenticatorResp_AuthenticatorTime;
137
static int hf_rcg_CreateApReqAuthenticatorResp_KerbProtocolError;
138
static int hf_rcg_CreateDHKeyAgreementReq_Ignored;
139
static int hf_rcg_CreateDHKeyAgreementResp_FactorQ;
140
static int hf_rcg_CreateDHKeyAgreementResp_GeneratorG;
141
static int hf_rcg_CreateDHKeyAgreementResp_KerbErr;
142
static int hf_rcg_CreateDHKeyAgreementResp_KeyAgreementHandle;
143
static int hf_rcg_CreateDHKeyAgreementResp_LittleEndianPublicKey;
144
static int hf_rcg_CreateDHKeyAgreementResp_LittleEndianPublicKeyLen;
145
static int hf_rcg_CreateDHKeyAgreementResp_ModulusP;
146
static int hf_rcg_CreateECDHKeyAgreementReq_KeyBitLen;
147
static int hf_rcg_CreateECDHKeyAgreementResp_EncodedPubKey;
148
static int hf_rcg_CreateECDHKeyAgreementResp_EncodedPubKeyLen;
149
static int hf_rcg_CreateECDHKeyAgreementResp_KerbErr;
150
static int hf_rcg_CreateECDHKeyAgreementResp_KeyAgreementHandle;
151
static int hf_rcg_DecryptApReplyReq_EncryptedReply;
152
static int hf_rcg_DecryptApReplyReq_Key;
153
static int hf_rcg_DecryptApReplyResp_ApReply;
154
static int hf_rcg_DecryptPacCredentialsReq_Data;
155
static int hf_rcg_DecryptPacCredentialsReq_DataSize;
156
static int hf_rcg_DecryptPacCredentialsReq_EncryptionType;
157
static int hf_rcg_DecryptPacCredentialsReq_Key;
158
static int hf_rcg_DecryptPacCredentialsReq_Version;
159
static int hf_rcg_DecryptPacCredentialsResp_Credentials;
160
static int hf_rcg_DestroyKeyAgreementReq_KeyAgreementHandle;
161
static int hf_rcg_DestroyKeyAgreementResp_Ignored;
162
static int hf_rcg_FinalizeKeyAgreementReq_KerbEType;
163
static int hf_rcg_FinalizeKeyAgreementReq_KeyAgreementHandle;
164
static int hf_rcg_FinalizeKeyAgreementReq_RemoteNonce;
165
static int hf_rcg_FinalizeKeyAgreementReq_RemoteNonceLen;
166
static int hf_rcg_FinalizeKeyAgreementReq_X509PublicKey;
167
static int hf_rcg_FinalizeKeyAgreementReq_X509PublicKeyLen;
168
static int hf_rcg_FinalizeKeyAgreementResp_SharedKey;
169
static int hf_rcg_HashS4UPreauthReq_ChecksumType;
170
static int hf_rcg_HashS4UPreauthReq_Key;
171
static int hf_rcg_HashS4UPreauthReq_S4UPreauth;
172
static int hf_rcg_HashS4UPreauthResp_ChecksumSize;
173
static int hf_rcg_HashS4UPreauthResp_ChecksumValue;
174
static int hf_rcg_KERB_ASN1_DATA_Asn1Buffer;
175
static int hf_rcg_KERB_ASN1_DATA_CHECKSUM_Length;
176
static int hf_rcg_KERB_ASN1_DATA_CHECKSUM_Pdu;
177
static int hf_rcg_KERB_ASN1_DATA_CHECKSUM_checksum;
178
static int hf_rcg_KERB_ASN1_DATA_Length;
179
static int hf_rcg_KERB_ASN1_DATA_Pdu;
180
static int hf_rcg_KERB_RPC_CRYPTO_API_BLOB_cbData;
181
static int hf_rcg_KERB_RPC_CRYPTO_API_BLOB_pbData;
182
static int hf_rcg_KERB_RPC_ENCRYPTION_KEY_reserved3;
183
static int hf_rcg_KERB_RPC_INTERNAL_NAME_NameCount;
184
static int hf_rcg_KERB_RPC_INTERNAL_NAME_NameType;
185
static int hf_rcg_KERB_RPC_INTERNAL_NAME_Names;
186
static int hf_rcg_KERB_RPC_OCTET_STRING_length;
187
static int hf_rcg_KERB_RPC_OCTET_STRING_value;
188
static int hf_rcg_KERB_RPC_PA_DATA_preauth_data;
189
static int hf_rcg_KERB_RPC_PA_DATA_preauth_data_type;
190
static int hf_rcg_KerbCredIsoRemoteInput_CallId;
191
static int hf_rcg_KerbCredIsoRemoteInput_callUnion;
192
static int hf_rcg_KerbCredIsoRemoteOutput_CallId;
193
static int hf_rcg_KerbCredIsoRemoteOutput_Status;
194
static int hf_rcg_KerbCredIsoRemoteOutput_callUnion;
195
static int hf_rcg_KerbInputUnion_buildAsReqAuthenticator;
196
static int hf_rcg_KerbInputUnion_buildEncryptedAuthData;
197
static int hf_rcg_KerbInputUnion_computeTgsChecksum;
198
static int hf_rcg_KerbInputUnion_createApReqAuthenticator;
199
static int hf_rcg_KerbInputUnion_createDHKeyAgreement;
200
static int hf_rcg_KerbInputUnion_createECDHKeyAgreement;
201
static int hf_rcg_KerbInputUnion_decryptApReply;
202
static int hf_rcg_KerbInputUnion_decryptPacCredentials;
203
static int hf_rcg_KerbInputUnion_destroyKeyAgreement;
204
static int hf_rcg_KerbInputUnion_finalizeKeyAgreement;
205
static int hf_rcg_KerbInputUnion_hashS4UPreauth;
206
static int hf_rcg_KerbInputUnion_keyAgreementGenerateNonce;
207
static int hf_rcg_KerbInputUnion_negociateVersion;
208
static int hf_rcg_KerbInputUnion_packApReply;
209
static int hf_rcg_KerbInputUnion_signS4UPreauthData;
210
static int hf_rcg_KerbInputUnion_unpackKdcReplyBody;
211
static int hf_rcg_KerbInputUnion_verifyChecksum;
212
static int hf_rcg_KerbInputUnion_verifyServiceTicket;
213
static int hf_rcg_KerbOutputUnion_buildAsReqAuthenticator;
214
static int hf_rcg_KerbOutputUnion_buildEncryptedAuthData;
215
static int hf_rcg_KerbOutputUnion_computeTgsChecksum;
216
static int hf_rcg_KerbOutputUnion_createApReqAuthenticator;
217
static int hf_rcg_KerbOutputUnion_createDHKeyAgreement;
218
static int hf_rcg_KerbOutputUnion_createECDHKeyAgreement;
219
static int hf_rcg_KerbOutputUnion_decryptApReply;
220
static int hf_rcg_KerbOutputUnion_decryptPacCredentials;
221
static int hf_rcg_KerbOutputUnion_destroyKeyAgreement;
222
static int hf_rcg_KerbOutputUnion_finalizeKeyAgreement;
223
static int hf_rcg_KerbOutputUnion_hashS4UPreauth;
224
static int hf_rcg_KerbOutputUnion_keyAgreementGenerateNonce;
225
static int hf_rcg_KerbOutputUnion_negociateVersion;
226
static int hf_rcg_KerbOutputUnion_packApReply;
227
static int hf_rcg_KerbOutputUnion_signS4UPreauthData;
228
static int hf_rcg_KerbOutputUnion_unpackKdcReplyBody;
229
static int hf_rcg_KerbOutputUnion_verifyChecksum;
230
static int hf_rcg_KerbOutputUnion_verifyServiceTicket;
231
static int hf_rcg_KeyAgreementGenerateNonceReq_KeyAgreementHandle;
232
static int hf_rcg_KeyAgreementGenerateNonceResp_Nonce;
233
static int hf_rcg_KeyAgreementGenerateNonceResp_NonceLen;
234
static int hf_rcg_LARGE_INTEGER_QuadPart;
235
static int hf_rcg_LM_SESSION_KEY_Data;
236
static int hf_rcg_Lm20GetNtlm3ChallengeResponseReq_ChallengeToClient;
237
static int hf_rcg_Lm20GetNtlm3ChallengeResponseReq_Credential;
238
static int hf_rcg_Lm20GetNtlm3ChallengeResponseReq_LogonDomainName;
239
static int hf_rcg_Lm20GetNtlm3ChallengeResponseReq_ServerName;
240
static int hf_rcg_Lm20GetNtlm3ChallengeResponseReq_UserName;
241
static int hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Lm3Response;
242
static int hf_rcg_Lm20GetNtlm3ChallengeResponseResp_LmSessionKey;
243
static int hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response;
244
static int hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Ntlm3ResponseLength;
245
static int hf_rcg_Lm20GetNtlm3ChallengeResponseResp_UserSessionKey;
246
static int hf_rcg_MSV1_0_CREDENTIAL_KEY_Data;
247
static int hf_rcg_MSV1_0_LM3_RESPONSE_ChallengeFromClient;
248
static int hf_rcg_MSV1_0_LM3_RESPONSE_Response;
249
static int hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved1;
250
static int hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved2;
251
static int hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved3;
252
static int hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved4;
253
static int hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved5;
254
static int hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6;
255
static int hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reservedSize;
256
static int hf_rcg_NT_CHALLENGE_Data;
257
static int hf_rcg_NT_RESPONSE_Data;
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_USER_SESSION_KEY_Data;
295
static int hf_rcg_UnpackKdcReplyBodyReq_EncryptedData;
296
static int hf_rcg_UnpackKdcReplyBodyReq_Key;
297
static int hf_rcg_UnpackKdcReplyBodyReq_KeyUsage;
298
static int hf_rcg_UnpackKdcReplyBodyReq_Pdu;
299
static int hf_rcg_UnpackKdcReplyBodyReq_StrengthenKey;
300
static int hf_rcg_UnpackKdcReplyBodyResp_KerbProtocolError;
301
static int hf_rcg_UnpackKdcReplyBodyResp_ReplyBody;
302
static int hf_rcg_VerifyChecksumReq_ChecksumType;
303
static int hf_rcg_VerifyChecksumReq_DataToCheck;
304
static int hf_rcg_VerifyChecksumReq_DataToCheckSize;
305
static int hf_rcg_VerifyChecksumReq_ExpectedChecksum;
306
static int hf_rcg_VerifyChecksumReq_ExpectedChecksumSize;
307
static int hf_rcg_VerifyChecksumReq_Key;
308
static int hf_rcg_VerifyChecksumResp_IsValid;
309
static int hf_rcg_VerifyServiceTicketReq_PackedTicket;
310
static int hf_rcg_VerifyServiceTicketReq_ServiceKey;
311
static int hf_rcg_VerifyServiceTicketReq_TimeSkew;
312
static int hf_rcg_VerifyServiceTicketResp_DecryptedTicket;
313
static int hf_rcg_VerifyServiceTicketResp_KerbProtocolError;
314
static int hf_rcg_opnum;
315
316
static int proto_dcerpc_rcg;
317
/* Version information */
318
319
320
static e_guid_t uuid_dcerpc_rcg = {
321
  0x00000000, 0x0000, 0x0000,
322
  { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
323
};
324
static uint16_t ver_dcerpc_rcg = 0;
325
326
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_);
327
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_);
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_Asn1Buffer__(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_Pdu(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_Length(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_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_);
335
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_);
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_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_);
339
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_);
340
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_);
341
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_);
342
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_);
343
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_);
344
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_);
345
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_);
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_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_);
348
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_);
349
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_);
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
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_);
353
const value_string rcg_RemoteGuardCallId_vals[] = {
354
  { RemoteCallKerbNegotiateVersion, "RemoteCallKerbNegotiateVersion" },
355
  { RemoteCallKerbBuildAsReqAuthenticator, "RemoteCallKerbBuildAsReqAuthenticator" },
356
  { RemoteCallKerbVerifyServiceTicket, "RemoteCallKerbVerifyServiceTicket" },
357
  { RemoteCallKerbCreateApReqAuthenticator, "RemoteCallKerbCreateApReqAuthenticator" },
358
  { RemoteCallKerbDecryptApReply, "RemoteCallKerbDecryptApReply" },
359
  { RemoteCallKerbUnpackKdcReplyBody, "RemoteCallKerbUnpackKdcReplyBody" },
360
  { RemoteCallKerbComputeTgsChecksum, "RemoteCallKerbComputeTgsChecksum" },
361
  { RemoteCallKerbBuildEncryptedAuthData, "RemoteCallKerbBuildEncryptedAuthData" },
362
  { RemoteCallKerbPackApReply, "RemoteCallKerbPackApReply" },
363
  { RemoteCallKerbHashS4UPreauth, "RemoteCallKerbHashS4UPreauth" },
364
  { RemoteCallKerbSignS4UPreauthData, "RemoteCallKerbSignS4UPreauthData" },
365
  { RemoteCallKerbVerifyChecksum, "RemoteCallKerbVerifyChecksum" },
366
  { RemoteCallKerbDecryptPacCredentials, "RemoteCallKerbDecryptPacCredentials" },
367
  { RemoteCallKerbCreateECDHKeyAgreement, "RemoteCallKerbCreateECDHKeyAgreement" },
368
  { RemoteCallKerbCreateDHKeyAgreement, "RemoteCallKerbCreateDHKeyAgreement" },
369
  { RemoteCallKerbDestroyKeyAgreement, "RemoteCallKerbDestroyKeyAgreement" },
370
  { RemoteCallKerbKeyAgreementGenerateNonce, "RemoteCallKerbKeyAgreementGenerateNonce" },
371
  { RemoteCallKerbFinalizeKeyAgreement, "RemoteCallKerbFinalizeKeyAgreement" },
372
  { RemoteCallNtlmNegotiateVersion, "RemoteCallNtlmNegotiateVersion" },
373
  { RemoteCallNtlmLm20GetNtlm3ChallengeResponse, "RemoteCallNtlmLm20GetNtlm3ChallengeResponse" },
374
  { RemoteCallNtlmCalculateNtResponse, "RemoteCallNtlmCalculateNtResponse" },
375
  { RemoteCallNtlmCalculateUserSessionKeyNt, "RemoteCallNtlmCalculateUserSessionKeyNt" },
376
  { RemoteCallNtlmCompareCredentials, "RemoteCallNtlmCompareCredentials" },
377
{ 0, NULL }
378
};
379
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_);
380
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_);
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_Credentials__(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_CredentialCount(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_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_);
387
static int rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_cbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
388
static int rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_pbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
389
static int rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_pbData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
390
static int rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_pbData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
391
static int rcg_dissect_element_NegotiateVersion_MaxSupportedVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
392
static int rcg_dissect_element_LARGE_INTEGER_QuadPart(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
393
static int rcg_dissect_element_BuildAsReqAuthenticatorReq_EncryptionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
394
static int rcg_dissect_element_BuildAsReqAuthenticatorReq_EncryptionKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
395
static int rcg_dissect_element_BuildAsReqAuthenticatorReq_ArmorKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
396
static int rcg_dissect_element_BuildAsReqAuthenticatorReq_ArmorKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
397
static int rcg_dissect_element_BuildAsReqAuthenticatorReq_TimeSkew(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
398
static int rcg_dissect_element_BuildAsReqAuthenticatorReq_TimeSkew_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
399
static int rcg_dissect_element_BuildAsReqAuthenticatorResp_PreauthDataType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
400
static int rcg_dissect_element_BuildAsReqAuthenticatorResp_PreauthData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
401
static int rcg_dissect_element_VerifyServiceTicketReq_PackedTicket(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
402
static int rcg_dissect_element_VerifyServiceTicketReq_PackedTicket_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
403
static int rcg_dissect_element_VerifyServiceTicketReq_ServiceKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
404
static int rcg_dissect_element_VerifyServiceTicketReq_ServiceKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
405
static int rcg_dissect_element_VerifyServiceTicketReq_TimeSkew(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
406
static int rcg_dissect_element_VerifyServiceTicketReq_TimeSkew_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
407
static int rcg_dissect_element_VerifyServiceTicketResp_DecryptedTicket(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
408
static int rcg_dissect_element_VerifyServiceTicketResp_KerbProtocolError(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
409
static int rcg_dissect_element_CreateApReqAuthenticatorReq_EncryptionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
410
static int rcg_dissect_element_CreateApReqAuthenticatorReq_EncryptionKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
411
static int rcg_dissect_element_CreateApReqAuthenticatorReq_SequenceNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
412
static int rcg_dissect_element_CreateApReqAuthenticatorReq_ClientName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
413
static int rcg_dissect_element_CreateApReqAuthenticatorReq_ClientName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
414
static int rcg_dissect_element_CreateApReqAuthenticatorReq_ClientRealm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
415
static int rcg_dissect_element_CreateApReqAuthenticatorReq_ClientRealm_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
416
static int rcg_dissect_element_CreateApReqAuthenticatorReq_SkewTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
417
static int rcg_dissect_element_CreateApReqAuthenticatorReq_SkewTime_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
418
static int rcg_dissect_element_CreateApReqAuthenticatorReq_SubKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
419
static int rcg_dissect_element_CreateApReqAuthenticatorReq_SubKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
420
static int rcg_dissect_element_CreateApReqAuthenticatorReq_AuthData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
421
static int rcg_dissect_element_CreateApReqAuthenticatorReq_AuthData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
422
static int rcg_dissect_element_CreateApReqAuthenticatorReq_GssChecksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
423
static int rcg_dissect_element_CreateApReqAuthenticatorReq_GssChecksum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
424
static int rcg_dissect_element_CreateApReqAuthenticatorReq_KeyUsage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
425
static int rcg_dissect_element_CreateApReqAuthenticatorResp_AuthenticatorTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
426
static int rcg_dissect_element_CreateApReqAuthenticatorResp_Authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
427
static int rcg_dissect_element_CreateApReqAuthenticatorResp_KerbProtocolError(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
428
static int rcg_dissect_element_DecryptApReplyReq_EncryptedReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
429
static int rcg_dissect_element_DecryptApReplyReq_EncryptedReply_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
430
static int rcg_dissect_element_DecryptApReplyReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
431
static int rcg_dissect_element_DecryptApReplyReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
432
static int rcg_dissect_element_DecryptApReplyResp_ApReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
433
static int rcg_dissect_element_UnpackKdcReplyBodyReq_EncryptedData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
434
static int rcg_dissect_element_UnpackKdcReplyBodyReq_EncryptedData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
435
static int rcg_dissect_element_UnpackKdcReplyBodyReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
436
static int rcg_dissect_element_UnpackKdcReplyBodyReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
437
static int rcg_dissect_element_UnpackKdcReplyBodyReq_StrengthenKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
438
static int rcg_dissect_element_UnpackKdcReplyBodyReq_StrengthenKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
439
static int rcg_dissect_element_UnpackKdcReplyBodyReq_Pdu(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
440
static int rcg_dissect_element_UnpackKdcReplyBodyReq_KeyUsage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
441
static int rcg_dissect_element_UnpackKdcReplyBodyResp_KerbProtocolError(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
442
static int rcg_dissect_element_UnpackKdcReplyBodyResp_ReplyBody(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
443
static int rcg_dissect_element_ComputeTgsChecksumReq_RequestBody(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
444
static int rcg_dissect_element_ComputeTgsChecksumReq_RequestBody_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
445
static int rcg_dissect_element_ComputeTgsChecksumReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
446
static int rcg_dissect_element_ComputeTgsChecksumReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
447
static int rcg_dissect_element_ComputeTgsChecksumReq_ChecksumType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
448
static int rcg_dissect_element_ComputeTgsChecksumResp_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
449
static int rcg_dissect_element_BuildEncryptedAuthDataReq_KeyUsage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
450
static int rcg_dissect_element_BuildEncryptedAuthDataReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
451
static int rcg_dissect_element_BuildEncryptedAuthDataReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
452
static int rcg_dissect_element_BuildEncryptedAuthDataReq_PlainAuthData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
453
static int rcg_dissect_element_BuildEncryptedAuthDataReq_PlainAuthData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
454
static int rcg_dissect_element_BuildEncryptedAuthDataResp_EncryptedAuthData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
455
static int rcg_dissect_element_PackApReplyReq_Reply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
456
static int rcg_dissect_element_PackApReplyReq_Reply_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
457
static int rcg_dissect_element_PackApReplyReq_ReplyBody(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
458
static int rcg_dissect_element_PackApReplyReq_ReplyBody_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
459
static int rcg_dissect_element_PackApReplyReq_SessionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
460
static int rcg_dissect_element_PackApReplyReq_SessionKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
461
static int rcg_dissect_element_PackApReplyResp_PackedReplySize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
462
static int rcg_dissect_element_PackApReplyResp_PackedReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
463
static int rcg_dissect_element_PackApReplyResp_PackedReply_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
464
static int rcg_dissect_element_PackApReplyResp_PackedReply__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
465
static int rcg_dissect_element_HashS4UPreauthReq_S4UPreauth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
466
static int rcg_dissect_element_HashS4UPreauthReq_S4UPreauth_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
467
static int rcg_dissect_element_HashS4UPreauthReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
468
static int rcg_dissect_element_HashS4UPreauthReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
469
static int rcg_dissect_element_HashS4UPreauthReq_ChecksumType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
470
static int rcg_dissect_element_HashS4UPreauthResp_ChecksumSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
471
static int rcg_dissect_element_HashS4UPreauthResp_ChecksumSize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
472
static int rcg_dissect_element_HashS4UPreauthResp_ChecksumValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
473
static int rcg_dissect_element_HashS4UPreauthResp_ChecksumValue_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
474
static int rcg_dissect_element_HashS4UPreauthResp_ChecksumValue__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
475
static int rcg_dissect_element_HashS4UPreauthResp_ChecksumValue___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
476
static int rcg_dissect_element_SignS4UPreauthDataReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
477
static int rcg_dissect_element_SignS4UPreauthDataReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
478
static int rcg_dissect_element_SignS4UPreauthDataReq_IsRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
479
static int rcg_dissect_element_SignS4UPreauthDataReq_UserId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
480
static int rcg_dissect_element_SignS4UPreauthDataReq_UserId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
481
static int rcg_dissect_element_SignS4UPreauthDataReq_ChecksumType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
482
static int rcg_dissect_element_SignS4UPreauthDataReq_ChecksumType_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
483
static int rcg_dissect_element_SignS4UPreauthDataResp_ChecksumType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
484
static int rcg_dissect_element_SignS4UPreauthDataResp_ChecksumType_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
485
static int rcg_dissect_element_SignS4UPreauthDataResp_ChecksumSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
486
static int rcg_dissect_element_SignS4UPreauthDataResp_ChecksumSize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
487
static int rcg_dissect_element_SignS4UPreauthDataResp_ChecksumValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
488
static int rcg_dissect_element_SignS4UPreauthDataResp_ChecksumValue_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
489
static int rcg_dissect_element_SignS4UPreauthDataResp_ChecksumValue__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
490
static int rcg_dissect_element_SignS4UPreauthDataResp_ChecksumValue___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
491
static int rcg_dissect_element_VerifyChecksumReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
492
static int rcg_dissect_element_VerifyChecksumReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
493
static int rcg_dissect_element_VerifyChecksumReq_ChecksumType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
494
static int rcg_dissect_element_VerifyChecksumReq_ExpectedChecksumSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
495
static int rcg_dissect_element_VerifyChecksumReq_ExpectedChecksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
496
static int rcg_dissect_element_VerifyChecksumReq_ExpectedChecksum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
497
static int rcg_dissect_element_VerifyChecksumReq_ExpectedChecksum__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
498
static int rcg_dissect_element_VerifyChecksumReq_DataToCheckSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
499
static int rcg_dissect_element_VerifyChecksumReq_DataToCheck(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
500
static int rcg_dissect_element_VerifyChecksumReq_DataToCheck_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
501
static int rcg_dissect_element_VerifyChecksumReq_DataToCheck__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
502
static int rcg_dissect_element_VerifyChecksumResp_IsValid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
503
static int rcg_dissect_element_DecryptPacCredentialsReq_Key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
504
static int rcg_dissect_element_DecryptPacCredentialsReq_Key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
505
static int rcg_dissect_element_DecryptPacCredentialsReq_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
506
static int rcg_dissect_element_DecryptPacCredentialsReq_EncryptionType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
507
static int rcg_dissect_element_DecryptPacCredentialsReq_DataSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
508
static int rcg_dissect_element_DecryptPacCredentialsReq_Data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
509
static int rcg_dissect_element_DecryptPacCredentialsReq_Data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
510
static int rcg_dissect_element_DecryptPacCredentialsReq_Data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
511
static int rcg_dissect_element_DecryptPacCredentialsResp_Credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
512
static int rcg_dissect_element_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_);
513
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_);
514
static int rcg_dissect_element_CreateECDHKeyAgreementResp_KeyAgreementHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
515
static int rcg_dissect_element_CreateECDHKeyAgreementResp_KeyAgreementHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
516
static int rcg_dissect_element_CreateECDHKeyAgreementResp_KerbErr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
517
static int rcg_dissect_element_CreateECDHKeyAgreementResp_KerbErr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
518
static int rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKeyLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
519
static int rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKeyLen_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
520
static int rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
521
static int rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
522
static int rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKey__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
523
static int rcg_dissect_element_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_);
524
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_);
525
static int rcg_dissect_element_CreateDHKeyAgreementResp_ModulusP(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
526
static int rcg_dissect_element_CreateDHKeyAgreementResp_ModulusP_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
527
static int rcg_dissect_element_CreateDHKeyAgreementResp_GeneratorG(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
528
static int rcg_dissect_element_CreateDHKeyAgreementResp_GeneratorG_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
529
static int rcg_dissect_element_CreateDHKeyAgreementResp_FactorQ(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
530
static int rcg_dissect_element_CreateDHKeyAgreementResp_FactorQ_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
531
static int rcg_dissect_element_CreateDHKeyAgreementResp_KeyAgreementHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
532
static int rcg_dissect_element_CreateDHKeyAgreementResp_KeyAgreementHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
533
static int rcg_dissect_element_CreateDHKeyAgreementResp_KerbErr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
534
static int rcg_dissect_element_CreateDHKeyAgreementResp_KerbErr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
535
static int rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKeyLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
536
static int rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKeyLen_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
537
static int rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
538
static int rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
539
static int rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKey__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
540
static int rcg_dissect_element_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_);
541
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_);
542
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_);
543
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_);
544
static int rcg_dissect_element_KeyAgreementGenerateNonceResp_NonceLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
545
static int rcg_dissect_element_KeyAgreementGenerateNonceResp_NonceLen_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
546
static int rcg_dissect_element_KeyAgreementGenerateNonceResp_Nonce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
547
static int rcg_dissect_element_KeyAgreementGenerateNonceResp_Nonce_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
548
static int rcg_dissect_element_KeyAgreementGenerateNonceResp_Nonce__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
549
static int rcg_dissect_element_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_);
550
static int rcg_dissect_element_FinalizeKeyAgreementReq_KeyAgreementHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
551
static int rcg_dissect_element_FinalizeKeyAgreementReq_KeyAgreementHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
552
static int rcg_dissect_element_FinalizeKeyAgreementReq_KerbEType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
553
static int rcg_dissect_element_FinalizeKeyAgreementReq_KerbEType_(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_RemoteNonceLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
555
static int rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
556
static int rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonce_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
557
static int rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonce__(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_X509PublicKeyLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
559
static int rcg_dissect_element_FinalizeKeyAgreementReq_X509PublicKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
560
static int rcg_dissect_element_FinalizeKeyAgreementReq_X509PublicKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
561
static int rcg_dissect_element_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_);
562
static int rcg_dissect_element_FinalizeKeyAgreementResp_SharedKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
563
static int rcg_dissect_element_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_);
564
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_);
565
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_);
566
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_);
567
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_);
568
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_);
569
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_);
570
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_);
571
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_);
572
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_);
573
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_);
574
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_);
575
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_);
576
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_);
577
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_);
578
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_);
579
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_);
580
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_);
581
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_);
582
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);
583
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);
584
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_);
585
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_);
586
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_);
587
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_);
588
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_);
589
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_);
590
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_);
591
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_);
592
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_);
593
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_);
594
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_);
595
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_);
596
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_);
597
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_);
598
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_);
599
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_);
600
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_);
601
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_);
602
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);
603
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_);
604
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);
605
static int rcg_dissect_element_NT_RESPONSE_Data(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_NT_RESPONSE_Data_(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_NT_CHALLENGE_Data(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_NT_CHALLENGE_Data_(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_LM_SESSION_KEY_Data(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_LM_SESSION_KEY_Data_(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_LM3_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
612
static int rcg_dissect_element_MSV1_0_LM3_RESPONSE_Response_(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_MSV1_0_LM3_RESPONSE_ChallengeFromClient(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_MSV1_0_LM3_RESPONSE_ChallengeFromClient_(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_USER_SESSION_KEY_Data(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_USER_SESSION_KEY_Data_(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_MSV1_0_CREDENTIAL_KEY_Data(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_MSV1_0_CREDENTIAL_KEY_Data_(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_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_);
620
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_);
621
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_);
622
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_);
623
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_);
624
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_);
625
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_);
626
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_);
627
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_);
628
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_);
629
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_);
630
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_);
631
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_);
632
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_);
633
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_);
634
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_);
635
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_);
636
static int rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_ChallengeToClient(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_Lm20GetNtlm3ChallengeResponseReq_ChallengeToClient_(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_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_);
639
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_);
640
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_);
641
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_);
642
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_);
643
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_);
644
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_);
645
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_);
646
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_);
647
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_);
648
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_);
649
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_);
650
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_);
651
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_);
652
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_);
653
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_);
654
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_);
655
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_);
656
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_);
657
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_);
658
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_);
659
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_);
660
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_);
661
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_);
662
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_);
663
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_);
664
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_);
665
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_);
666
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_);
667
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);
668
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);
669
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_);
670
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_);
671
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_);
672
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_);
673
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_);
674
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);
675
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_);
676
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);
677
 #include <epan/asn1.h>
678
 #include "packet-kerberos.h"
679
static int
680
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_)
681
0
{
682
0
        if (di->conformant_run)
683
0
            return offset;
684
0
  asn1_ctx_t asn1_ctx;
685
0
  ALIGN_TO_4_BYTES;
686
0
  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
687
0
  asn1_ctx.private_data = /*&rcg*/NULL;
688
0
  offset = dissect_krb5_Checksum(tree, tvb, offset + 4, &asn1_ctx);
689
0
  return offset;
690
0
}
691
int
692
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_)
693
0
{
694
0
  guint16 CallId = 0;
695
0
  proto_item *item = NULL;
696
0
  proto_tree *tree = NULL;
697
0
  int old_offset;
698
0
  ALIGN_TO_4_BYTES;
699
0
  old_offset = offset;
700
0
  if (parent_tree) {
701
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
702
0
    tree = proto_item_add_subtree(item, ett_rcg_KerbCredIsoRemoteOutput);
703
0
  }
704
0
  offset = rcg_dissect_element_KerbCredIsoRemoteOutput_CallId(tvb, offset, pinfo, tree, di, drep, &CallId);
705
0
  col_set_str(pinfo->cinfo, COL_INFO, val_to_str(pinfo->pool, CallId, rcg_RemoteGuardCallId_vals, "unknown operation (%u)"));
706
0
  offset = rcg_dissect_element_KerbCredIsoRemoteOutput_Status(tvb, offset, pinfo, tree, di, drep);
707
0
  offset = rcg_dissect_element_KerbCredIsoRemoteOutput_callUnion(tvb, offset, pinfo, tree, di, drep, &CallId);
708
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
709
0
  proto_item_set_len(item, offset-old_offset);
710
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
711
0
    ALIGN_TO_4_BYTES;
712
0
  }
713
0
  return offset;
714
0
}
715
int
716
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_)
717
0
{
718
0
  guint16 CallId = 0;
719
0
  proto_item *item = NULL;
720
0
  proto_tree *tree = NULL;
721
0
  int old_offset;
722
0
  ALIGN_TO_4_BYTES;
723
0
  old_offset = offset;
724
0
  if (parent_tree) {
725
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
726
0
    tree = proto_item_add_subtree(item, ett_rcg_KerbCredIsoRemoteInput);
727
0
  }
728
0
  offset = rcg_dissect_element_KerbCredIsoRemoteInput_CallId(tvb, offset, pinfo, tree, di, drep, &CallId);
729
0
  col_set_str(pinfo->cinfo, COL_INFO, val_to_str(pinfo->pool, CallId, rcg_RemoteGuardCallId_vals, "unknown operation (%u)"));
730
0
  offset = rcg_dissect_element_KerbCredIsoRemoteInput_callUnion(tvb, offset, pinfo, tree, di, drep, &CallId);
731
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
732
0
  proto_item_set_len(item, offset-old_offset);
733
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
734
0
    ALIGN_TO_4_BYTES;
735
0
  }
736
0
  return offset;
737
0
}
738
int
739
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_)
740
0
{
741
0
  uint16_t CallId = 0;
742
0
  proto_item *item = NULL;
743
0
  proto_tree *tree = NULL;
744
0
  int old_offset;
745
0
  if (di->conformant_run) return offset;
746
0
  ALIGN_TO_4_BYTES;
747
0
  old_offset = offset;
748
0
  if (parent_tree) {
749
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
750
0
    tree = proto_item_add_subtree(item, ett_rcg_NtlmCredIsoRemoteOutput);
751
0
  }
752
0
  offset = rcg_dissect_element_NtlmCredIsoRemoteOutput_CallId(tvb, offset, pinfo, tree, di, drep, &CallId);
753
0
  col_set_str(pinfo->cinfo, COL_INFO, val_to_str(pinfo->pool, CallId, rcg_RemoteGuardCallId_vals, "unknown operation (%u)"));
754
0
  offset = rcg_dissect_element_NtlmCredIsoRemoteOutput_Status(tvb, offset, pinfo, tree, di, drep);
755
0
  offset = rcg_dissect_element_NtlmCredIsoRemoteOutput_callUnion(tvb, offset, pinfo, tree, di, drep, &CallId);
756
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
757
0
  proto_item_set_len(item, offset-old_offset);
758
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
759
0
    ALIGN_TO_4_BYTES;
760
0
  }
761
0
  return offset;
762
0
}
763
int
764
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_)
765
0
{
766
0
  uint16_t CallId = 0;
767
0
  proto_item *item = NULL;
768
0
  proto_tree *tree = NULL;
769
0
  int old_offset;
770
0
  if (di->conformant_run) return offset;
771
0
  ALIGN_TO_4_BYTES;
772
0
  old_offset = offset;
773
0
  if (parent_tree) {
774
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
775
0
    tree = proto_item_add_subtree(item, ett_rcg_NtlmCredIsoRemoteInput);
776
0
  }
777
0
  offset = rcg_dissect_element_NtlmCredIsoRemoteInput_CallId(tvb, offset, pinfo, tree, di, drep, &CallId);
778
0
  col_set_str(pinfo->cinfo, COL_INFO, val_to_str(pinfo->pool, CallId, rcg_RemoteGuardCallId_vals, "unknown operation (%u)"));
779
0
  offset = rcg_dissect_element_NtlmCredIsoRemoteInput_callUnion(tvb, offset, pinfo, tree, di, drep, &CallId);
780
0
  offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
781
0
  proto_item_set_len(item, offset-old_offset);
782
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
783
0
    ALIGN_TO_4_BYTES;
784
0
  }
785
0
  return offset;
786
0
}
787
788
789
/* IDL: struct { */
790
/* IDL:   uint32 Pdu; */
791
/* IDL:   uint32 Length; */
792
/* IDL:   [ref] [size_is(Length)] uint8 *Asn1Buffer; */
793
/* IDL: } */
794
795
static int
796
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_)
797
0
{
798
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_ASN1_DATA_Pdu, 0);
799
800
0
  return offset;
801
0
}
802
803
static int
804
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_)
805
0
{
806
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_ASN1_DATA_Length, 0);
807
808
0
  return offset;
809
0
}
810
811
static int
812
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_)
813
0
{
814
0
  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);
815
816
0
  return offset;
817
0
}
818
819
static int
820
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_)
821
0
{
822
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_KERB_ASN1_DATA_Asn1Buffer__);
823
824
0
  return offset;
825
0
}
826
827
static int
828
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_)
829
0
{
830
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_ASN1_DATA_Asn1Buffer, 0);
831
832
0
  return offset;
833
0
}
834
835
int
836
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_)
837
0
{
838
0
  proto_item *item = NULL;
839
0
  proto_tree *tree = NULL;
840
0
  int old_offset;
841
842
0
  ALIGN_TO_5_BYTES;
843
844
0
  old_offset = offset;
845
846
0
  if (parent_tree) {
847
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
848
0
    tree = proto_item_add_subtree(item, ett_rcg_KERB_ASN1_DATA);
849
0
  }
850
851
0
  offset = rcg_dissect_element_KERB_ASN1_DATA_Pdu(tvb, offset, pinfo, tree, di, drep);
852
853
0
  offset = rcg_dissect_element_KERB_ASN1_DATA_Length(tvb, offset, pinfo, tree, di, drep);
854
855
0
  offset = rcg_dissect_element_KERB_ASN1_DATA_Asn1Buffer(tvb, offset, pinfo, tree, di, drep);
856
857
858
0
  proto_item_set_len(item, offset-old_offset);
859
860
861
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
862
0
    ALIGN_TO_5_BYTES;
863
0
  }
864
865
0
  return offset;
866
0
}
867
868
869
/* IDL: struct { */
870
/* IDL:   uint32 Pdu; */
871
/* IDL:   uint32 Length; */
872
/* IDL:   [ref] [size_is(Length)] uint8 *checksum; */
873
/* IDL: } */
874
875
static int
876
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_)
877
0
{
878
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_ASN1_DATA_CHECKSUM_Pdu, 0);
879
880
0
  return offset;
881
0
}
882
883
static int
884
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_)
885
0
{
886
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_ASN1_DATA_CHECKSUM_Length, 0);
887
888
0
  return offset;
889
0
}
890
891
static int
892
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_)
893
0
{
894
0
  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);
895
896
0
  return offset;
897
0
}
898
899
int
900
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_)
901
0
{
902
0
  proto_item *item = NULL;
903
0
  proto_tree *tree = NULL;
904
0
  int old_offset;
905
906
0
  ALIGN_TO_5_BYTES;
907
908
0
  old_offset = offset;
909
910
0
  if (parent_tree) {
911
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
912
0
    tree = proto_item_add_subtree(item, ett_rcg_KERB_ASN1_DATA_CHECKSUM);
913
0
  }
914
915
0
  offset = rcg_dissect_element_KERB_ASN1_DATA_CHECKSUM_Pdu(tvb, offset, pinfo, tree, di, drep);
916
917
0
  offset = rcg_dissect_element_KERB_ASN1_DATA_CHECKSUM_Length(tvb, offset, pinfo, tree, di, drep);
918
919
0
  offset = rcg_dissect_element_KERB_ASN1_DATA_CHECKSUM_checksum(tvb, offset, pinfo, tree, di, drep);
920
921
922
0
  proto_item_set_len(item, offset-old_offset);
923
924
925
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
926
0
    ALIGN_TO_5_BYTES;
927
0
  }
928
929
0
  return offset;
930
0
}
931
932
933
/* IDL: struct { */
934
/* IDL:   uint32 length; */
935
/* IDL:   [ref] [size_is(length)] uint8 *value; */
936
/* IDL: } */
937
938
static int
939
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_)
940
0
{
941
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_OCTET_STRING_length, 0);
942
943
0
  return offset;
944
0
}
945
946
static int
947
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_)
948
0
{
949
0
  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);
950
951
0
  return offset;
952
0
}
953
954
static int
955
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_)
956
0
{
957
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_KERB_RPC_OCTET_STRING_value__);
958
959
0
  return offset;
960
0
}
961
962
static int
963
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_)
964
0
{
965
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_OCTET_STRING_value, 0);
966
967
0
  return offset;
968
0
}
969
970
int
971
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_)
972
0
{
973
0
  proto_item *item = NULL;
974
0
  proto_tree *tree = NULL;
975
0
  int old_offset;
976
977
0
  ALIGN_TO_5_BYTES;
978
979
0
  old_offset = offset;
980
981
0
  if (parent_tree) {
982
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
983
0
    tree = proto_item_add_subtree(item, ett_rcg_KERB_RPC_OCTET_STRING);
984
0
  }
985
986
0
  offset = rcg_dissect_element_KERB_RPC_OCTET_STRING_length(tvb, offset, pinfo, tree, di, drep);
987
988
0
  offset = rcg_dissect_element_KERB_RPC_OCTET_STRING_value(tvb, offset, pinfo, tree, di, drep);
989
990
991
0
  proto_item_set_len(item, offset-old_offset);
992
993
994
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
995
0
    ALIGN_TO_5_BYTES;
996
0
  }
997
998
0
  return offset;
999
0
}
1000
1001
1002
/* IDL: struct { */
1003
/* IDL:   int32 preauth_data_type; */
1004
/* IDL:   KERB_RPC_OCTET_STRING preauth_data; */
1005
/* IDL: } */
1006
1007
static int
1008
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_)
1009
0
{
1010
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_PA_DATA_preauth_data_type, 0);
1011
1012
0
  return offset;
1013
0
}
1014
1015
static int
1016
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_)
1017
0
{
1018
0
  offset = rcg_dissect_struct_KERB_RPC_OCTET_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_KERB_RPC_PA_DATA_preauth_data,0);
1019
1020
0
  return offset;
1021
0
}
1022
1023
int
1024
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_)
1025
0
{
1026
0
  proto_item *item = NULL;
1027
0
  proto_tree *tree = NULL;
1028
0
  int old_offset;
1029
1030
0
  ALIGN_TO_5_BYTES;
1031
1032
0
  old_offset = offset;
1033
1034
0
  if (parent_tree) {
1035
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1036
0
    tree = proto_item_add_subtree(item, ett_rcg_KERB_RPC_PA_DATA);
1037
0
  }
1038
1039
0
  offset = rcg_dissect_element_KERB_RPC_PA_DATA_preauth_data_type(tvb, offset, pinfo, tree, di, drep);
1040
1041
0
  offset = rcg_dissect_element_KERB_RPC_PA_DATA_preauth_data(tvb, offset, pinfo, tree, di, drep);
1042
1043
1044
0
  proto_item_set_len(item, offset-old_offset);
1045
1046
1047
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1048
0
    ALIGN_TO_5_BYTES;
1049
0
  }
1050
1051
0
  return offset;
1052
0
}
1053
1054
1055
/* IDL: struct { */
1056
/* IDL:   uint32 reserved1; */
1057
/* IDL:   uint32 reserved2; */
1058
/* IDL:   KERB_RPC_OCTET_STRING reserved3; */
1059
/* IDL: } */
1060
1061
static int
1062
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_)
1063
0
{
1064
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_KERB_RPC_ENCRYPTION_KEY_reserved1, 0);
1065
1066
0
  return offset;
1067
0
}
1068
1069
static int
1070
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_)
1071
0
{
1072
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_KERB_RPC_ENCRYPTION_KEY_reserved2, 0);
1073
1074
0
  return offset;
1075
0
}
1076
1077
static int
1078
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_)
1079
0
{
1080
0
  offset = rcg_dissect_struct_KERB_RPC_OCTET_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_KERB_RPC_ENCRYPTION_KEY_reserved3,0);
1081
1082
0
  return offset;
1083
0
}
1084
1085
int
1086
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_)
1087
0
{
1088
0
  proto_item *item = NULL;
1089
0
  proto_tree *tree = NULL;
1090
0
  int old_offset;
1091
1092
0
  ALIGN_TO_5_BYTES;
1093
1094
0
  old_offset = offset;
1095
1096
0
  if (parent_tree) {
1097
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1098
0
    tree = proto_item_add_subtree(item, ett_rcg_KERB_RPC_ENCRYPTION_KEY);
1099
0
  }
1100
1101
0
  offset = rcg_dissect_element_KERB_RPC_ENCRYPTION_KEY_reserved1(tvb, offset, pinfo, tree, di, drep);
1102
1103
0
  offset = rcg_dissect_element_KERB_RPC_ENCRYPTION_KEY_reserved2(tvb, offset, pinfo, tree, di, drep);
1104
1105
0
  offset = rcg_dissect_element_KERB_RPC_ENCRYPTION_KEY_reserved3(tvb, offset, pinfo, tree, di, drep);
1106
1107
1108
0
  proto_item_set_len(item, offset-old_offset);
1109
1110
1111
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1112
0
    ALIGN_TO_5_BYTES;
1113
0
  }
1114
1115
0
  return offset;
1116
0
}
1117
1118
1119
/* IDL: struct { */
1120
/* IDL:   uint16 Length; */
1121
/* IDL:   uint16 MaximumLength; */
1122
/* IDL:   [charset(UTF16)] [length_is(Length/2)] [ref] [size_is(MaximumLength/2)] uint16 *Buffer; */
1123
/* IDL: } */
1124
1125
static int
1126
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_)
1127
0
{
1128
0
  offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_rcg_RPC_UNICODE_STRING_Length, 0);
1129
1130
0
  return offset;
1131
0
}
1132
1133
static int
1134
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_)
1135
0
{
1136
0
  offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_rcg_RPC_UNICODE_STRING_MaximumLength, 0);
1137
1138
0
  return offset;
1139
0
}
1140
1141
static int
1142
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_)
1143
0
{
1144
0
  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);
1145
1146
0
  return offset;
1147
0
}
1148
1149
static int
1150
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_)
1151
0
{
1152
0
  char *data;
1153
1154
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_rcg_RPC_UNICODE_STRING_Buffer, false, &data);
1155
0
  proto_item_append_text(tree, ": %s", data);
1156
1157
0
  return offset;
1158
0
}
1159
1160
int
1161
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_)
1162
0
{
1163
0
  proto_item *item = NULL;
1164
0
  proto_tree *tree = NULL;
1165
0
  int old_offset;
1166
1167
0
  ALIGN_TO_5_BYTES;
1168
1169
0
  old_offset = offset;
1170
1171
0
  if (parent_tree) {
1172
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1173
0
    tree = proto_item_add_subtree(item, ett_rcg_RPC_UNICODE_STRING);
1174
0
  }
1175
1176
0
  offset = rcg_dissect_element_RPC_UNICODE_STRING_Length(tvb, offset, pinfo, tree, di, drep);
1177
1178
0
  offset = rcg_dissect_element_RPC_UNICODE_STRING_MaximumLength(tvb, offset, pinfo, tree, di, drep);
1179
1180
0
  offset = rcg_dissect_element_RPC_UNICODE_STRING_Buffer(tvb, offset, pinfo, tree, di, drep);
1181
1182
1183
0
  proto_item_set_len(item, offset-old_offset);
1184
1185
1186
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1187
0
    ALIGN_TO_5_BYTES;
1188
0
  }
1189
1190
0
  return offset;
1191
0
}
1192
1193
1194
/* IDL: struct { */
1195
/* IDL:   int16 NameType; */
1196
/* IDL:   uint16 NameCount; */
1197
/* IDL:   [ref] [size_is(NameCount)] RPC_UNICODE_STRING *Names; */
1198
/* IDL: } */
1199
1200
static int
1201
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_)
1202
0
{
1203
0
  offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_INTERNAL_NAME_NameType, 0);
1204
1205
0
  return offset;
1206
0
}
1207
1208
static int
1209
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_)
1210
0
{
1211
0
  offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_INTERNAL_NAME_NameCount, 0);
1212
1213
0
  return offset;
1214
0
}
1215
1216
static int
1217
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_)
1218
0
{
1219
0
  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);
1220
1221
0
  return offset;
1222
0
}
1223
1224
static int
1225
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_)
1226
0
{
1227
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_KERB_RPC_INTERNAL_NAME_Names__);
1228
1229
0
  return offset;
1230
0
}
1231
1232
static int
1233
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_)
1234
0
{
1235
0
  offset = rcg_dissect_struct_RPC_UNICODE_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_KERB_RPC_INTERNAL_NAME_Names,0);
1236
1237
0
  return offset;
1238
0
}
1239
1240
int
1241
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_)
1242
0
{
1243
0
  proto_item *item = NULL;
1244
0
  proto_tree *tree = NULL;
1245
0
  int old_offset;
1246
1247
0
  ALIGN_TO_5_BYTES;
1248
1249
0
  old_offset = offset;
1250
1251
0
  if (parent_tree) {
1252
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1253
0
    tree = proto_item_add_subtree(item, ett_rcg_KERB_RPC_INTERNAL_NAME);
1254
0
  }
1255
1256
0
  offset = rcg_dissect_element_KERB_RPC_INTERNAL_NAME_NameType(tvb, offset, pinfo, tree, di, drep);
1257
1258
0
  offset = rcg_dissect_element_KERB_RPC_INTERNAL_NAME_NameCount(tvb, offset, pinfo, tree, di, drep);
1259
1260
0
  offset = rcg_dissect_element_KERB_RPC_INTERNAL_NAME_Names(tvb, offset, pinfo, tree, di, drep);
1261
1262
1263
0
  proto_item_set_len(item, offset-old_offset);
1264
1265
1266
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1267
0
    ALIGN_TO_5_BYTES;
1268
0
  }
1269
1270
0
  return offset;
1271
0
}
1272
1273
1274
/* IDL: enum { */
1275
/* IDL:   RemoteCallKerbNegotiateVersion=0x100, */
1276
/* IDL:   RemoteCallKerbBuildAsReqAuthenticator=0x101, */
1277
/* IDL:   RemoteCallKerbVerifyServiceTicket=0x102, */
1278
/* IDL:   RemoteCallKerbCreateApReqAuthenticator=0x103, */
1279
/* IDL:   RemoteCallKerbDecryptApReply=0x104, */
1280
/* IDL:   RemoteCallKerbUnpackKdcReplyBody=0x105, */
1281
/* IDL:   RemoteCallKerbComputeTgsChecksum=0x106, */
1282
/* IDL:   RemoteCallKerbBuildEncryptedAuthData=0x107, */
1283
/* IDL:   RemoteCallKerbPackApReply=0x108, */
1284
/* IDL:   RemoteCallKerbHashS4UPreauth=0x109, */
1285
/* IDL:   RemoteCallKerbSignS4UPreauthData=0x10a, */
1286
/* IDL:   RemoteCallKerbVerifyChecksum=0x10b, */
1287
/* IDL:   RemoteCallKerbDecryptPacCredentials=0x113, */
1288
/* IDL:   RemoteCallKerbCreateECDHKeyAgreement=0x114, */
1289
/* IDL:   RemoteCallKerbCreateDHKeyAgreement=0x115, */
1290
/* IDL:   RemoteCallKerbDestroyKeyAgreement=0x116, */
1291
/* IDL:   RemoteCallKerbKeyAgreementGenerateNonce=0x117, */
1292
/* IDL:   RemoteCallKerbFinalizeKeyAgreement=0x118, */
1293
/* IDL:   RemoteCallNtlmNegotiateVersion=0x200, */
1294
/* IDL:   RemoteCallNtlmLm20GetNtlm3ChallengeResponse=0x201, */
1295
/* IDL:   RemoteCallNtlmCalculateNtResponse=0x202, */
1296
/* IDL:   RemoteCallNtlmCalculateUserSessionKeyNt=0x203, */
1297
/* IDL:   RemoteCallNtlmCompareCredentials=0x204, */
1298
/* IDL: } */
1299
1300
int
1301
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_)
1302
0
{
1303
0
  uint16_t parameter=0;
1304
0
  if (param) {
1305
0
    parameter = *param;
1306
0
  }
1307
0
  offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
1308
0
  if (param) {
1309
0
    *param = parameter;
1310
0
  }
1311
0
  return offset;
1312
0
}
1313
1314
1315
/* IDL: struct _SECPKG_SUPPLEMENTAL_CRED { */
1316
/* IDL:   RPC_UNICODE_STRING PackageName; */
1317
/* IDL:   uint32 CredentialSize; */
1318
/* IDL:   [ref] [size_is(CredentialSize)] uint8 *Credentials; */
1319
/* IDL: } */
1320
1321
static int
1322
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_)
1323
0
{
1324
0
  offset = rcg_dissect_struct_RPC_UNICODE_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_SECPKG_SUPPLEMENTAL_CRED_PackageName,0);
1325
1326
0
  return offset;
1327
0
}
1328
1329
static int
1330
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_)
1331
0
{
1332
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_SECPKG_SUPPLEMENTAL_CRED_CredentialSize, 0);
1333
1334
0
  return offset;
1335
0
}
1336
1337
static int
1338
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_)
1339
0
{
1340
0
  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);
1341
1342
0
  return offset;
1343
0
}
1344
1345
static int
1346
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_)
1347
0
{
1348
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_Credentials__);
1349
1350
0
  return offset;
1351
0
}
1352
1353
static int
1354
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_)
1355
0
{
1356
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_SECPKG_SUPPLEMENTAL_CRED_Credentials, 0);
1357
1358
0
  return offset;
1359
0
}
1360
1361
int
1362
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_)
1363
0
{
1364
0
  proto_item *item = NULL;
1365
0
  proto_tree *tree = NULL;
1366
0
  int old_offset;
1367
1368
0
  ALIGN_TO_4_BYTES;
1369
1370
0
  old_offset = offset;
1371
1372
0
  if (parent_tree) {
1373
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1374
0
    tree = proto_item_add_subtree(item, ett_rcg_SECPKG_SUPPLEMENTAL_CRED);
1375
0
  }
1376
1377
0
  offset = rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_PackageName(tvb, offset, pinfo, tree, di, drep);
1378
1379
0
  offset = rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_CredentialSize(tvb, offset, pinfo, tree, di, drep);
1380
1381
0
  offset = rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_Credentials(tvb, offset, pinfo, tree, di, drep);
1382
1383
1384
0
  proto_item_set_len(item, offset-old_offset);
1385
1386
1387
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1388
0
    ALIGN_TO_4_BYTES;
1389
0
  }
1390
1391
0
  return offset;
1392
0
}
1393
1394
1395
/* IDL: struct { */
1396
/* IDL:   uint32 CredentialCount; */
1397
/* IDL:   [size_is(CredentialCount)] SECPKG_SUPPLEMENTAL_CRED Credentials[*]; */
1398
/* IDL: } */
1399
1400
static int
1401
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_)
1402
0
{
1403
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY_CredentialCount, 0);
1404
1405
0
  return offset;
1406
0
}
1407
1408
static int
1409
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_)
1410
0
{
1411
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_ARRAY_Credentials_);
1412
1413
0
  return offset;
1414
0
}
1415
1416
static int
1417
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_)
1418
0
{
1419
0
  offset = rcg_dissect_struct_SECPKG_SUPPLEMENTAL_CRED(tvb,offset,pinfo,tree,di,drep,hf_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY_Credentials,0);
1420
1421
0
  return offset;
1422
0
}
1423
1424
int
1425
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_)
1426
0
{
1427
0
  proto_item *item = NULL;
1428
0
  proto_tree *tree = NULL;
1429
0
  int old_offset;
1430
1431
0
  ALIGN_TO_4_BYTES;
1432
1433
0
  old_offset = offset;
1434
1435
0
  if (parent_tree) {
1436
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1437
0
    tree = proto_item_add_subtree(item, ett_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY);
1438
0
  }
1439
1440
0
  offset = rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_ARRAY_CredentialCount(tvb, offset, pinfo, tree, di, drep);
1441
1442
0
  offset = rcg_dissect_element_SECPKG_SUPPLEMENTAL_CRED_ARRAY_Credentials(tvb, offset, pinfo, tree, di, drep);
1443
1444
1445
0
  proto_item_set_len(item, offset-old_offset);
1446
1447
1448
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1449
0
    ALIGN_TO_4_BYTES;
1450
0
  }
1451
1452
0
  return offset;
1453
0
}
1454
1455
1456
/* IDL: struct { */
1457
/* IDL:   uint32 cbData; */
1458
/* IDL:   [ref] [size_is(cbData)] uint8 *pbData; */
1459
/* IDL: } */
1460
1461
static int
1462
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_)
1463
0
{
1464
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_CRYPTO_API_BLOB_cbData, 0);
1465
1466
0
  return offset;
1467
0
}
1468
1469
static int
1470
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_)
1471
0
{
1472
0
  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);
1473
1474
0
  return offset;
1475
0
}
1476
1477
static int
1478
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_)
1479
0
{
1480
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_pbData__);
1481
1482
0
  return offset;
1483
0
}
1484
1485
static int
1486
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_)
1487
0
{
1488
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_KERB_RPC_CRYPTO_API_BLOB_pbData, 0);
1489
1490
0
  return offset;
1491
0
}
1492
1493
int
1494
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_)
1495
0
{
1496
0
  proto_item *item = NULL;
1497
0
  proto_tree *tree = NULL;
1498
0
  int old_offset;
1499
1500
0
  ALIGN_TO_5_BYTES;
1501
1502
0
  old_offset = offset;
1503
1504
0
  if (parent_tree) {
1505
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1506
0
    tree = proto_item_add_subtree(item, ett_rcg_KERB_RPC_CRYPTO_API_BLOB);
1507
0
  }
1508
1509
0
  offset = rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_cbData(tvb, offset, pinfo, tree, di, drep);
1510
1511
0
  offset = rcg_dissect_element_KERB_RPC_CRYPTO_API_BLOB_pbData(tvb, offset, pinfo, tree, di, drep);
1512
1513
1514
0
  proto_item_set_len(item, offset-old_offset);
1515
1516
1517
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1518
0
    ALIGN_TO_5_BYTES;
1519
0
  }
1520
1521
0
  return offset;
1522
0
}
1523
1524
1525
/* IDL: struct { */
1526
/* IDL:   uint32 MaxSupportedVersion; */
1527
/* IDL: } */
1528
1529
static int
1530
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_)
1531
0
{
1532
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_NegotiateVersion_MaxSupportedVersion, 0);
1533
1534
0
  return offset;
1535
0
}
1536
1537
int
1538
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_)
1539
0
{
1540
0
  proto_item *item = NULL;
1541
0
  proto_tree *tree = NULL;
1542
0
  int old_offset;
1543
1544
0
  ALIGN_TO_4_BYTES;
1545
1546
0
  old_offset = offset;
1547
1548
0
  if (parent_tree) {
1549
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1550
0
    tree = proto_item_add_subtree(item, ett_rcg_NegotiateVersion);
1551
0
  }
1552
1553
0
  offset = rcg_dissect_element_NegotiateVersion_MaxSupportedVersion(tvb, offset, pinfo, tree, di, drep);
1554
1555
1556
0
  proto_item_set_len(item, offset-old_offset);
1557
1558
1559
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1560
0
    ALIGN_TO_4_BYTES;
1561
0
  }
1562
1563
0
  return offset;
1564
0
}
1565
1566
1567
/* IDL: struct { */
1568
/* IDL:   int64 QuadPart; */
1569
/* IDL: } */
1570
1571
static int
1572
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_)
1573
0
{
1574
0
  offset = PIDL_dissect_uint64(tvb, offset, pinfo, tree, di, drep, hf_rcg_LARGE_INTEGER_QuadPart, 0);
1575
1576
0
  return offset;
1577
0
}
1578
1579
int
1580
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_)
1581
0
{
1582
0
  proto_item *item = NULL;
1583
0
  proto_tree *tree = NULL;
1584
0
  int old_offset;
1585
1586
0
  ALIGN_TO_8_BYTES;
1587
1588
0
  old_offset = offset;
1589
1590
0
  if (parent_tree) {
1591
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1592
0
    tree = proto_item_add_subtree(item, ett_rcg_LARGE_INTEGER);
1593
0
  }
1594
1595
0
  offset = rcg_dissect_element_LARGE_INTEGER_QuadPart(tvb, offset, pinfo, tree, di, drep);
1596
1597
1598
0
  proto_item_set_len(item, offset-old_offset);
1599
1600
1601
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1602
0
    ALIGN_TO_8_BYTES;
1603
0
  }
1604
1605
0
  return offset;
1606
0
}
1607
1608
1609
/* IDL: struct LARGE_INTEGER { */
1610
/* IDL: } */
1611
1612
int
1613
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_)
1614
0
{
1615
0
  proto_item *item = NULL;
1616
0
  int old_offset;
1617
1618
0
  ALIGN_TO_4_BYTES;
1619
1620
0
  old_offset = offset;
1621
1622
0
  if (parent_tree) {
1623
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1624
0
  }
1625
1626
1627
0
  proto_item_set_len(item, offset-old_offset);
1628
1629
1630
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1631
0
    ALIGN_TO_4_BYTES;
1632
0
  }
1633
1634
0
  return offset;
1635
0
}
1636
1637
1638
/* IDL: struct { */
1639
/* IDL:   [ref] KERB_RPC_ENCRYPTION_KEY *EncryptionKey; */
1640
/* IDL:   [ptr(1)] KERB_RPC_ENCRYPTION_KEY *ArmorKey; */
1641
/* IDL:   [ref] LARGE_INTEGER *TimeSkew; */
1642
/* IDL: } */
1643
1644
static int
1645
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_)
1646
0
{
1647
0
  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);
1648
1649
0
  return offset;
1650
0
}
1651
1652
static int
1653
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_)
1654
0
{
1655
0
  offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildAsReqAuthenticatorReq_EncryptionKey,0);
1656
1657
0
  return offset;
1658
0
}
1659
1660
static int
1661
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_)
1662
0
{
1663
0
  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);
1664
1665
0
  return offset;
1666
0
}
1667
1668
static int
1669
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_)
1670
0
{
1671
0
  offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildAsReqAuthenticatorReq_ArmorKey,0);
1672
1673
0
  return offset;
1674
0
}
1675
1676
static int
1677
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_)
1678
0
{
1679
0
  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);
1680
1681
0
  return offset;
1682
0
}
1683
1684
static int
1685
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_)
1686
0
{
1687
0
  offset = rcg_dissect_struct_LARGE_INTEGER(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildAsReqAuthenticatorReq_TimeSkew,0);
1688
1689
0
  return offset;
1690
0
}
1691
1692
int
1693
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_)
1694
0
{
1695
0
  proto_item *item = NULL;
1696
0
  proto_tree *tree = NULL;
1697
0
  int old_offset;
1698
1699
0
  ALIGN_TO_5_BYTES;
1700
1701
0
  old_offset = offset;
1702
1703
0
  if (parent_tree) {
1704
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1705
0
    tree = proto_item_add_subtree(item, ett_rcg_BuildAsReqAuthenticatorReq);
1706
0
  }
1707
1708
0
  offset = rcg_dissect_element_BuildAsReqAuthenticatorReq_EncryptionKey(tvb, offset, pinfo, tree, di, drep);
1709
1710
0
  offset = rcg_dissect_element_BuildAsReqAuthenticatorReq_ArmorKey(tvb, offset, pinfo, tree, di, drep);
1711
1712
0
  offset = rcg_dissect_element_BuildAsReqAuthenticatorReq_TimeSkew(tvb, offset, pinfo, tree, di, drep);
1713
1714
1715
0
  proto_item_set_len(item, offset-old_offset);
1716
1717
1718
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1719
0
    ALIGN_TO_5_BYTES;
1720
0
  }
1721
1722
0
  return offset;
1723
0
}
1724
1725
1726
/* IDL: struct { */
1727
/* IDL:   int32 PreauthDataType; */
1728
/* IDL:   KERB_RPC_OCTET_STRING PreauthData; */
1729
/* IDL: } */
1730
1731
static int
1732
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_)
1733
0
{
1734
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_BuildAsReqAuthenticatorResp_PreauthDataType, 0);
1735
1736
0
  return offset;
1737
0
}
1738
1739
static int
1740
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_)
1741
0
{
1742
0
  offset = rcg_dissect_struct_KERB_RPC_OCTET_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildAsReqAuthenticatorResp_PreauthData,0);
1743
1744
0
  return offset;
1745
0
}
1746
1747
int
1748
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_)
1749
0
{
1750
0
  proto_item *item = NULL;
1751
0
  proto_tree *tree = NULL;
1752
0
  int old_offset;
1753
1754
0
  ALIGN_TO_5_BYTES;
1755
1756
0
  old_offset = offset;
1757
1758
0
  if (parent_tree) {
1759
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1760
0
    tree = proto_item_add_subtree(item, ett_rcg_BuildAsReqAuthenticatorResp);
1761
0
  }
1762
1763
0
  offset = rcg_dissect_element_BuildAsReqAuthenticatorResp_PreauthDataType(tvb, offset, pinfo, tree, di, drep);
1764
1765
0
  offset = rcg_dissect_element_BuildAsReqAuthenticatorResp_PreauthData(tvb, offset, pinfo, tree, di, drep);
1766
1767
1768
0
  proto_item_set_len(item, offset-old_offset);
1769
1770
1771
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1772
0
    ALIGN_TO_5_BYTES;
1773
0
  }
1774
1775
0
  return offset;
1776
0
}
1777
1778
1779
/* IDL: struct { */
1780
/* IDL:   [ref] KERB_ASN1_DATA *PackedTicket; */
1781
/* IDL:   [ref] KERB_RPC_ENCRYPTION_KEY *ServiceKey; */
1782
/* IDL:   [ptr(1)] LARGE_INTEGER *TimeSkew; */
1783
/* IDL: } */
1784
1785
static int
1786
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_)
1787
0
{
1788
0
  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);
1789
1790
0
  return offset;
1791
0
}
1792
1793
static int
1794
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_)
1795
0
{
1796
0
  offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_VerifyServiceTicketReq_PackedTicket,0);
1797
1798
0
  return offset;
1799
0
}
1800
1801
static int
1802
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_)
1803
0
{
1804
0
  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);
1805
1806
0
  return offset;
1807
0
}
1808
1809
static int
1810
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_)
1811
0
{
1812
0
  offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_VerifyServiceTicketReq_ServiceKey,0);
1813
1814
0
  return offset;
1815
0
}
1816
1817
static int
1818
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_)
1819
0
{
1820
0
  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);
1821
1822
0
  return offset;
1823
0
}
1824
1825
static int
1826
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_)
1827
0
{
1828
0
  offset = rcg_dissect_struct_LARGE_INTEGER(tvb,offset,pinfo,tree,di,drep,hf_rcg_VerifyServiceTicketReq_TimeSkew,0);
1829
1830
0
  return offset;
1831
0
}
1832
1833
int
1834
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_)
1835
0
{
1836
0
  proto_item *item = NULL;
1837
0
  proto_tree *tree = NULL;
1838
0
  int old_offset;
1839
1840
0
  ALIGN_TO_5_BYTES;
1841
1842
0
  old_offset = offset;
1843
1844
0
  if (parent_tree) {
1845
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1846
0
    tree = proto_item_add_subtree(item, ett_rcg_VerifyServiceTicketReq);
1847
0
  }
1848
1849
0
  offset = rcg_dissect_element_VerifyServiceTicketReq_PackedTicket(tvb, offset, pinfo, tree, di, drep);
1850
1851
0
  offset = rcg_dissect_element_VerifyServiceTicketReq_ServiceKey(tvb, offset, pinfo, tree, di, drep);
1852
1853
0
  offset = rcg_dissect_element_VerifyServiceTicketReq_TimeSkew(tvb, offset, pinfo, tree, di, drep);
1854
1855
1856
0
  proto_item_set_len(item, offset-old_offset);
1857
1858
1859
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1860
0
    ALIGN_TO_5_BYTES;
1861
0
  }
1862
1863
0
  return offset;
1864
0
}
1865
1866
1867
/* IDL: struct { */
1868
/* IDL:   KERB_ASN1_DATA DecryptedTicket; */
1869
/* IDL:   int32 KerbProtocolError; */
1870
/* IDL: } */
1871
1872
static int
1873
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_)
1874
0
{
1875
0
  offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_VerifyServiceTicketResp_DecryptedTicket,0);
1876
1877
0
  return offset;
1878
0
}
1879
1880
static int
1881
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_)
1882
0
{
1883
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyServiceTicketResp_KerbProtocolError, 0);
1884
1885
0
  return offset;
1886
0
}
1887
1888
int
1889
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_)
1890
0
{
1891
0
  proto_item *item = NULL;
1892
0
  proto_tree *tree = NULL;
1893
0
  int old_offset;
1894
1895
0
  ALIGN_TO_5_BYTES;
1896
1897
0
  old_offset = offset;
1898
1899
0
  if (parent_tree) {
1900
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1901
0
    tree = proto_item_add_subtree(item, ett_rcg_VerifyServiceTicketResp);
1902
0
  }
1903
1904
0
  offset = rcg_dissect_element_VerifyServiceTicketResp_DecryptedTicket(tvb, offset, pinfo, tree, di, drep);
1905
1906
0
  offset = rcg_dissect_element_VerifyServiceTicketResp_KerbProtocolError(tvb, offset, pinfo, tree, di, drep);
1907
1908
1909
0
  proto_item_set_len(item, offset-old_offset);
1910
1911
1912
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1913
0
    ALIGN_TO_5_BYTES;
1914
0
  }
1915
1916
0
  return offset;
1917
0
}
1918
1919
1920
/* IDL: struct { */
1921
/* IDL:   [ref] KERB_RPC_ENCRYPTION_KEY *EncryptionKey; */
1922
/* IDL:   uint32 SequenceNumber; */
1923
/* IDL:   [ref] KERB_RPC_INTERNAL_NAME *ClientName; */
1924
/* IDL:   [ref] RPC_UNICODE_STRING *ClientRealm; */
1925
/* IDL:   [ref] LARGE_INTEGER *SkewTime; */
1926
/* IDL:   [ptr(1)] KERB_RPC_ENCRYPTION_KEY *SubKey; */
1927
/* IDL:   [ptr(1)] KERB_ASN1_DATA *AuthData; */
1928
/* IDL:   [ptr(1)] KERB_ASN1_DATA_CHECKSUM *GssChecksum; */
1929
/* IDL:   uint32 KeyUsage; */
1930
/* IDL: } */
1931
1932
static int
1933
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_)
1934
0
{
1935
0
  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);
1936
1937
0
  return offset;
1938
0
}
1939
1940
static int
1941
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_)
1942
0
{
1943
0
  offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_EncryptionKey,0);
1944
1945
0
  return offset;
1946
0
}
1947
1948
static int
1949
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_)
1950
0
{
1951
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateApReqAuthenticatorReq_SequenceNumber, 0);
1952
1953
0
  return offset;
1954
0
}
1955
1956
static int
1957
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_)
1958
0
{
1959
0
  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);
1960
1961
0
  return offset;
1962
0
}
1963
1964
static int
1965
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_)
1966
0
{
1967
0
  offset = rcg_dissect_struct_KERB_RPC_INTERNAL_NAME(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_ClientName,0);
1968
1969
0
  return offset;
1970
0
}
1971
1972
static int
1973
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_)
1974
0
{
1975
0
  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);
1976
1977
0
  return offset;
1978
0
}
1979
1980
static int
1981
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_)
1982
0
{
1983
0
  offset = rcg_dissect_struct_RPC_UNICODE_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_ClientRealm,0);
1984
1985
0
  return offset;
1986
0
}
1987
1988
static int
1989
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_)
1990
0
{
1991
0
  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);
1992
1993
0
  return offset;
1994
0
}
1995
1996
static int
1997
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_)
1998
0
{
1999
0
  offset = rcg_dissect_struct_LARGE_INTEGER(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_SkewTime,0);
2000
2001
0
  return offset;
2002
0
}
2003
2004
static int
2005
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_)
2006
0
{
2007
0
  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);
2008
2009
0
  return offset;
2010
0
}
2011
2012
static int
2013
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_)
2014
0
{
2015
0
  offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_SubKey,0);
2016
2017
0
  return offset;
2018
0
}
2019
2020
static int
2021
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_)
2022
0
{
2023
0
  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);
2024
2025
0
  return offset;
2026
0
}
2027
2028
static int
2029
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_)
2030
0
{
2031
0
  offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_AuthData,0);
2032
2033
0
  return offset;
2034
0
}
2035
2036
static int
2037
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_)
2038
0
{
2039
0
  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);
2040
2041
0
  return offset;
2042
0
}
2043
2044
static int
2045
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_)
2046
0
{
2047
0
  offset = rcg_dissect_struct_KERB_ASN1_DATA_CHECKSUM(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorReq_GssChecksum,0);
2048
2049
0
  return offset;
2050
0
}
2051
2052
static int
2053
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_)
2054
0
{
2055
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateApReqAuthenticatorReq_KeyUsage, 0);
2056
2057
0
  return offset;
2058
0
}
2059
2060
int
2061
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_)
2062
0
{
2063
0
  proto_item *item = NULL;
2064
0
  proto_tree *tree = NULL;
2065
0
  int old_offset;
2066
2067
0
  ALIGN_TO_5_BYTES;
2068
2069
0
  old_offset = offset;
2070
2071
0
  if (parent_tree) {
2072
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2073
0
    tree = proto_item_add_subtree(item, ett_rcg_CreateApReqAuthenticatorReq);
2074
0
  }
2075
2076
0
  offset = rcg_dissect_element_CreateApReqAuthenticatorReq_EncryptionKey(tvb, offset, pinfo, tree, di, drep);
2077
2078
0
  offset = rcg_dissect_element_CreateApReqAuthenticatorReq_SequenceNumber(tvb, offset, pinfo, tree, di, drep);
2079
2080
0
  offset = rcg_dissect_element_CreateApReqAuthenticatorReq_ClientName(tvb, offset, pinfo, tree, di, drep);
2081
2082
0
  offset = rcg_dissect_element_CreateApReqAuthenticatorReq_ClientRealm(tvb, offset, pinfo, tree, di, drep);
2083
2084
0
  offset = rcg_dissect_element_CreateApReqAuthenticatorReq_SkewTime(tvb, offset, pinfo, tree, di, drep);
2085
2086
0
  offset = rcg_dissect_element_CreateApReqAuthenticatorReq_SubKey(tvb, offset, pinfo, tree, di, drep);
2087
2088
0
  offset = rcg_dissect_element_CreateApReqAuthenticatorReq_AuthData(tvb, offset, pinfo, tree, di, drep);
2089
2090
0
  offset = rcg_dissect_element_CreateApReqAuthenticatorReq_GssChecksum(tvb, offset, pinfo, tree, di, drep);
2091
2092
0
  offset = rcg_dissect_element_CreateApReqAuthenticatorReq_KeyUsage(tvb, offset, pinfo, tree, di, drep);
2093
2094
2095
0
  proto_item_set_len(item, offset-old_offset);
2096
2097
2098
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2099
0
    ALIGN_TO_5_BYTES;
2100
0
  }
2101
2102
0
  return offset;
2103
0
}
2104
2105
2106
/* IDL: struct { */
2107
/* IDL:   LARGE_INTEGER AuthenticatorTime; */
2108
/* IDL:   KERB_ASN1_DATA Authenticator; */
2109
/* IDL:   int32 KerbProtocolError; */
2110
/* IDL: } */
2111
2112
static int
2113
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_)
2114
0
{
2115
0
  offset = rcg_dissect_struct_LARGE_INTEGER(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorResp_AuthenticatorTime,0);
2116
2117
0
  return offset;
2118
0
}
2119
2120
static int
2121
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_)
2122
0
{
2123
0
  offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateApReqAuthenticatorResp_Authenticator,0);
2124
2125
0
  return offset;
2126
0
}
2127
2128
static int
2129
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_)
2130
0
{
2131
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateApReqAuthenticatorResp_KerbProtocolError, 0);
2132
2133
0
  return offset;
2134
0
}
2135
2136
int
2137
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_)
2138
0
{
2139
0
  proto_item *item = NULL;
2140
0
  proto_tree *tree = NULL;
2141
0
  int old_offset;
2142
2143
0
  ALIGN_TO_8_BYTES;
2144
2145
0
  old_offset = offset;
2146
2147
0
  if (parent_tree) {
2148
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2149
0
    tree = proto_item_add_subtree(item, ett_rcg_CreateApReqAuthenticatorResp);
2150
0
  }
2151
2152
0
  offset = rcg_dissect_element_CreateApReqAuthenticatorResp_AuthenticatorTime(tvb, offset, pinfo, tree, di, drep);
2153
2154
0
  offset = rcg_dissect_element_CreateApReqAuthenticatorResp_Authenticator(tvb, offset, pinfo, tree, di, drep);
2155
2156
0
  offset = rcg_dissect_element_CreateApReqAuthenticatorResp_KerbProtocolError(tvb, offset, pinfo, tree, di, drep);
2157
2158
2159
0
  proto_item_set_len(item, offset-old_offset);
2160
2161
2162
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2163
0
    ALIGN_TO_8_BYTES;
2164
0
  }
2165
2166
0
  return offset;
2167
0
}
2168
2169
2170
/* IDL: struct { */
2171
/* IDL:   [ref] KERB_ASN1_DATA *EncryptedReply; */
2172
/* IDL:   [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
2173
/* IDL: } */
2174
2175
static int
2176
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_)
2177
0
{
2178
0
  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);
2179
2180
0
  return offset;
2181
0
}
2182
2183
static int
2184
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_)
2185
0
{
2186
0
  offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_DecryptApReplyReq_EncryptedReply,0);
2187
2188
0
  return offset;
2189
0
}
2190
2191
static int
2192
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_)
2193
0
{
2194
0
  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);
2195
2196
0
  return offset;
2197
0
}
2198
2199
static int
2200
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_)
2201
0
{
2202
0
  offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_DecryptApReplyReq_Key,0);
2203
2204
0
  return offset;
2205
0
}
2206
2207
int
2208
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_)
2209
0
{
2210
0
  proto_item *item = NULL;
2211
0
  proto_tree *tree = NULL;
2212
0
  int old_offset;
2213
2214
0
  ALIGN_TO_5_BYTES;
2215
2216
0
  old_offset = offset;
2217
2218
0
  if (parent_tree) {
2219
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2220
0
    tree = proto_item_add_subtree(item, ett_rcg_DecryptApReplyReq);
2221
0
  }
2222
2223
0
  offset = rcg_dissect_element_DecryptApReplyReq_EncryptedReply(tvb, offset, pinfo, tree, di, drep);
2224
2225
0
  offset = rcg_dissect_element_DecryptApReplyReq_Key(tvb, offset, pinfo, tree, di, drep);
2226
2227
2228
0
  proto_item_set_len(item, offset-old_offset);
2229
2230
2231
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2232
0
    ALIGN_TO_5_BYTES;
2233
0
  }
2234
2235
0
  return offset;
2236
0
}
2237
2238
2239
/* IDL: struct { */
2240
/* IDL:   KERB_ASN1_DATA ApReply; */
2241
/* IDL: } */
2242
2243
static int
2244
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_)
2245
0
{
2246
0
  offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_DecryptApReplyResp_ApReply,0);
2247
2248
0
  return offset;
2249
0
}
2250
2251
int
2252
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_)
2253
0
{
2254
0
  proto_item *item = NULL;
2255
0
  proto_tree *tree = NULL;
2256
0
  int old_offset;
2257
2258
0
  ALIGN_TO_5_BYTES;
2259
2260
0
  old_offset = offset;
2261
2262
0
  if (parent_tree) {
2263
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2264
0
    tree = proto_item_add_subtree(item, ett_rcg_DecryptApReplyResp);
2265
0
  }
2266
2267
0
  offset = rcg_dissect_element_DecryptApReplyResp_ApReply(tvb, offset, pinfo, tree, di, drep);
2268
2269
2270
0
  proto_item_set_len(item, offset-old_offset);
2271
2272
2273
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2274
0
    ALIGN_TO_5_BYTES;
2275
0
  }
2276
2277
0
  return offset;
2278
0
}
2279
2280
2281
/* IDL: struct { */
2282
/* IDL:   [ref] KERB_ASN1_DATA *EncryptedData; */
2283
/* IDL:   [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
2284
/* IDL:   [ptr(1)] KERB_RPC_ENCRYPTION_KEY *StrengthenKey; */
2285
/* IDL:   uint32 Pdu; */
2286
/* IDL:   uint32 KeyUsage; */
2287
/* IDL: } */
2288
2289
static int
2290
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_)
2291
0
{
2292
0
  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);
2293
2294
0
  return offset;
2295
0
}
2296
2297
static int
2298
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_)
2299
0
{
2300
0
  offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_UnpackKdcReplyBodyReq_EncryptedData,0);
2301
2302
0
  return offset;
2303
0
}
2304
2305
static int
2306
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_)
2307
0
{
2308
0
  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);
2309
2310
0
  return offset;
2311
0
}
2312
2313
static int
2314
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_)
2315
0
{
2316
0
  offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_UnpackKdcReplyBodyReq_Key,0);
2317
2318
0
  return offset;
2319
0
}
2320
2321
static int
2322
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_)
2323
0
{
2324
0
  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);
2325
2326
0
  return offset;
2327
0
}
2328
2329
static int
2330
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_)
2331
0
{
2332
0
  offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_UnpackKdcReplyBodyReq_StrengthenKey,0);
2333
2334
0
  return offset;
2335
0
}
2336
2337
static int
2338
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_)
2339
0
{
2340
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_UnpackKdcReplyBodyReq_Pdu, 0);
2341
2342
0
  return offset;
2343
0
}
2344
2345
static int
2346
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_)
2347
0
{
2348
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_UnpackKdcReplyBodyReq_KeyUsage, 0);
2349
2350
0
  return offset;
2351
0
}
2352
2353
int
2354
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_)
2355
0
{
2356
0
  proto_item *item = NULL;
2357
0
  proto_tree *tree = NULL;
2358
0
  int old_offset;
2359
2360
0
  ALIGN_TO_5_BYTES;
2361
2362
0
  old_offset = offset;
2363
2364
0
  if (parent_tree) {
2365
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2366
0
    tree = proto_item_add_subtree(item, ett_rcg_UnpackKdcReplyBodyReq);
2367
0
  }
2368
2369
0
  offset = rcg_dissect_element_UnpackKdcReplyBodyReq_EncryptedData(tvb, offset, pinfo, tree, di, drep);
2370
2371
0
  offset = rcg_dissect_element_UnpackKdcReplyBodyReq_Key(tvb, offset, pinfo, tree, di, drep);
2372
2373
0
  offset = rcg_dissect_element_UnpackKdcReplyBodyReq_StrengthenKey(tvb, offset, pinfo, tree, di, drep);
2374
2375
0
  offset = rcg_dissect_element_UnpackKdcReplyBodyReq_Pdu(tvb, offset, pinfo, tree, di, drep);
2376
2377
0
  offset = rcg_dissect_element_UnpackKdcReplyBodyReq_KeyUsage(tvb, offset, pinfo, tree, di, drep);
2378
2379
2380
0
  proto_item_set_len(item, offset-old_offset);
2381
2382
2383
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2384
0
    ALIGN_TO_5_BYTES;
2385
0
  }
2386
2387
0
  return offset;
2388
0
}
2389
2390
2391
/* IDL: struct { */
2392
/* IDL:   int32 KerbProtocolError; */
2393
/* IDL:   KERB_ASN1_DATA ReplyBody; */
2394
/* IDL: } */
2395
2396
static int
2397
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_)
2398
0
{
2399
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_UnpackKdcReplyBodyResp_KerbProtocolError, 0);
2400
2401
0
  return offset;
2402
0
}
2403
2404
static int
2405
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_)
2406
0
{
2407
0
  offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_UnpackKdcReplyBodyResp_ReplyBody,0);
2408
2409
0
  return offset;
2410
0
}
2411
2412
int
2413
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_)
2414
0
{
2415
0
  proto_item *item = NULL;
2416
0
  proto_tree *tree = NULL;
2417
0
  int old_offset;
2418
2419
0
  ALIGN_TO_5_BYTES;
2420
2421
0
  old_offset = offset;
2422
2423
0
  if (parent_tree) {
2424
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2425
0
    tree = proto_item_add_subtree(item, ett_rcg_UnpackKdcReplyBodyResp);
2426
0
  }
2427
2428
0
  offset = rcg_dissect_element_UnpackKdcReplyBodyResp_KerbProtocolError(tvb, offset, pinfo, tree, di, drep);
2429
2430
0
  offset = rcg_dissect_element_UnpackKdcReplyBodyResp_ReplyBody(tvb, offset, pinfo, tree, di, drep);
2431
2432
2433
0
  proto_item_set_len(item, offset-old_offset);
2434
2435
2436
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2437
0
    ALIGN_TO_5_BYTES;
2438
0
  }
2439
2440
0
  return offset;
2441
0
}
2442
2443
2444
/* IDL: struct { */
2445
/* IDL:   [ref] KERB_ASN1_DATA *RequestBody; */
2446
/* IDL:   [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
2447
/* IDL:   uint32 ChecksumType; */
2448
/* IDL: } */
2449
2450
static int
2451
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_)
2452
0
{
2453
0
  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);
2454
2455
0
  return offset;
2456
0
}
2457
2458
static int
2459
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_)
2460
0
{
2461
0
  offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_ComputeTgsChecksumReq_RequestBody,0);
2462
2463
0
  return offset;
2464
0
}
2465
2466
static int
2467
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_)
2468
0
{
2469
0
  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);
2470
2471
0
  return offset;
2472
0
}
2473
2474
static int
2475
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_)
2476
0
{
2477
0
  offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_ComputeTgsChecksumReq_Key,0);
2478
2479
0
  return offset;
2480
0
}
2481
2482
static int
2483
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_)
2484
0
{
2485
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_ComputeTgsChecksumReq_ChecksumType, 0);
2486
2487
0
  return offset;
2488
0
}
2489
2490
int
2491
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_)
2492
0
{
2493
0
  proto_item *item = NULL;
2494
0
  proto_tree *tree = NULL;
2495
0
  int old_offset;
2496
2497
0
  ALIGN_TO_5_BYTES;
2498
2499
0
  old_offset = offset;
2500
2501
0
  if (parent_tree) {
2502
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2503
0
    tree = proto_item_add_subtree(item, ett_rcg_ComputeTgsChecksumReq);
2504
0
  }
2505
2506
0
  offset = rcg_dissect_element_ComputeTgsChecksumReq_RequestBody(tvb, offset, pinfo, tree, di, drep);
2507
2508
0
  offset = rcg_dissect_element_ComputeTgsChecksumReq_Key(tvb, offset, pinfo, tree, di, drep);
2509
2510
0
  offset = rcg_dissect_element_ComputeTgsChecksumReq_ChecksumType(tvb, offset, pinfo, tree, di, drep);
2511
2512
2513
0
  proto_item_set_len(item, offset-old_offset);
2514
2515
2516
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2517
0
    ALIGN_TO_5_BYTES;
2518
0
  }
2519
2520
0
  return offset;
2521
0
}
2522
2523
2524
/* IDL: struct { */
2525
/* IDL:   KERB_ASN1_DATA_CHECKSUM Checksum; */
2526
/* IDL: } */
2527
2528
static int
2529
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_)
2530
0
{
2531
0
  offset = rcg_dissect_struct_KERB_ASN1_DATA_CHECKSUM(tvb,offset,pinfo,tree,di,drep,hf_rcg_ComputeTgsChecksumResp_Checksum,0);
2532
2533
0
  return offset;
2534
0
}
2535
2536
int
2537
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_)
2538
0
{
2539
0
  proto_item *item = NULL;
2540
0
  proto_tree *tree = NULL;
2541
0
  int old_offset;
2542
2543
0
  ALIGN_TO_5_BYTES;
2544
2545
0
  old_offset = offset;
2546
2547
0
  if (parent_tree) {
2548
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2549
0
    tree = proto_item_add_subtree(item, ett_rcg_ComputeTgsChecksumResp);
2550
0
  }
2551
2552
0
  offset = rcg_dissect_element_ComputeTgsChecksumResp_Checksum(tvb, offset, pinfo, tree, di, drep);
2553
2554
2555
0
  proto_item_set_len(item, offset-old_offset);
2556
2557
2558
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2559
0
    ALIGN_TO_5_BYTES;
2560
0
  }
2561
2562
0
  return offset;
2563
0
}
2564
2565
2566
/* IDL: struct { */
2567
/* IDL:   uint32 KeyUsage; */
2568
/* IDL:   [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
2569
/* IDL:   [ref] KERB_ASN1_DATA *PlainAuthData; */
2570
/* IDL: } */
2571
2572
static int
2573
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_)
2574
0
{
2575
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_BuildEncryptedAuthDataReq_KeyUsage, 0);
2576
2577
0
  return offset;
2578
0
}
2579
2580
static int
2581
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_)
2582
0
{
2583
0
  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);
2584
2585
0
  return offset;
2586
0
}
2587
2588
static int
2589
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_)
2590
0
{
2591
0
  offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildEncryptedAuthDataReq_Key,0);
2592
2593
0
  return offset;
2594
0
}
2595
2596
static int
2597
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_)
2598
0
{
2599
0
  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);
2600
2601
0
  return offset;
2602
0
}
2603
2604
static int
2605
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_)
2606
0
{
2607
0
  offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildEncryptedAuthDataReq_PlainAuthData,0);
2608
2609
0
  return offset;
2610
0
}
2611
2612
int
2613
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_)
2614
0
{
2615
0
  proto_item *item = NULL;
2616
0
  proto_tree *tree = NULL;
2617
0
  int old_offset;
2618
2619
0
  ALIGN_TO_5_BYTES;
2620
2621
0
  old_offset = offset;
2622
2623
0
  if (parent_tree) {
2624
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2625
0
    tree = proto_item_add_subtree(item, ett_rcg_BuildEncryptedAuthDataReq);
2626
0
  }
2627
2628
0
  offset = rcg_dissect_element_BuildEncryptedAuthDataReq_KeyUsage(tvb, offset, pinfo, tree, di, drep);
2629
2630
0
  offset = rcg_dissect_element_BuildEncryptedAuthDataReq_Key(tvb, offset, pinfo, tree, di, drep);
2631
2632
0
  offset = rcg_dissect_element_BuildEncryptedAuthDataReq_PlainAuthData(tvb, offset, pinfo, tree, di, drep);
2633
2634
2635
0
  proto_item_set_len(item, offset-old_offset);
2636
2637
2638
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2639
0
    ALIGN_TO_5_BYTES;
2640
0
  }
2641
2642
0
  return offset;
2643
0
}
2644
2645
2646
/* IDL: struct { */
2647
/* IDL:   KERB_ASN1_DATA EncryptedAuthData; */
2648
/* IDL: } */
2649
2650
static int
2651
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_)
2652
0
{
2653
0
  offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_BuildEncryptedAuthDataResp_EncryptedAuthData,0);
2654
2655
0
  return offset;
2656
0
}
2657
2658
int
2659
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_)
2660
0
{
2661
0
  proto_item *item = NULL;
2662
0
  proto_tree *tree = NULL;
2663
0
  int old_offset;
2664
2665
0
  ALIGN_TO_5_BYTES;
2666
2667
0
  old_offset = offset;
2668
2669
0
  if (parent_tree) {
2670
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2671
0
    tree = proto_item_add_subtree(item, ett_rcg_BuildEncryptedAuthDataResp);
2672
0
  }
2673
2674
0
  offset = rcg_dissect_element_BuildEncryptedAuthDataResp_EncryptedAuthData(tvb, offset, pinfo, tree, di, drep);
2675
2676
2677
0
  proto_item_set_len(item, offset-old_offset);
2678
2679
2680
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2681
0
    ALIGN_TO_5_BYTES;
2682
0
  }
2683
2684
0
  return offset;
2685
0
}
2686
2687
2688
/* IDL: struct { */
2689
/* IDL:   [ref] KERB_ASN1_DATA *Reply; */
2690
/* IDL:   [ref] KERB_ASN1_DATA *ReplyBody; */
2691
/* IDL:   [ref] KERB_RPC_ENCRYPTION_KEY *SessionKey; */
2692
/* IDL: } */
2693
2694
static int
2695
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_)
2696
0
{
2697
0
  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);
2698
2699
0
  return offset;
2700
0
}
2701
2702
static int
2703
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_)
2704
0
{
2705
0
  offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_PackApReplyReq_Reply,0);
2706
2707
0
  return offset;
2708
0
}
2709
2710
static int
2711
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_)
2712
0
{
2713
0
  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);
2714
2715
0
  return offset;
2716
0
}
2717
2718
static int
2719
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_)
2720
0
{
2721
0
  offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_PackApReplyReq_ReplyBody,0);
2722
2723
0
  return offset;
2724
0
}
2725
2726
static int
2727
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_)
2728
0
{
2729
0
  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);
2730
2731
0
  return offset;
2732
0
}
2733
2734
static int
2735
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_)
2736
0
{
2737
0
  offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_PackApReplyReq_SessionKey,0);
2738
2739
0
  return offset;
2740
0
}
2741
2742
int
2743
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_)
2744
0
{
2745
0
  proto_item *item = NULL;
2746
0
  proto_tree *tree = NULL;
2747
0
  int old_offset;
2748
2749
0
  ALIGN_TO_5_BYTES;
2750
2751
0
  old_offset = offset;
2752
2753
0
  if (parent_tree) {
2754
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2755
0
    tree = proto_item_add_subtree(item, ett_rcg_PackApReplyReq);
2756
0
  }
2757
2758
0
  offset = rcg_dissect_element_PackApReplyReq_Reply(tvb, offset, pinfo, tree, di, drep);
2759
2760
0
  offset = rcg_dissect_element_PackApReplyReq_ReplyBody(tvb, offset, pinfo, tree, di, drep);
2761
2762
0
  offset = rcg_dissect_element_PackApReplyReq_SessionKey(tvb, offset, pinfo, tree, di, drep);
2763
2764
2765
0
  proto_item_set_len(item, offset-old_offset);
2766
2767
2768
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2769
0
    ALIGN_TO_5_BYTES;
2770
0
  }
2771
2772
0
  return offset;
2773
0
}
2774
2775
2776
/* IDL: struct { */
2777
/* IDL:   uint32 PackedReplySize; */
2778
/* IDL:   [ref] [size_is(PackedReplySize)] uint8 *PackedReply; */
2779
/* IDL: } */
2780
2781
static int
2782
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_)
2783
0
{
2784
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_PackApReplyResp_PackedReplySize, 0);
2785
2786
0
  return offset;
2787
0
}
2788
2789
static int
2790
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_)
2791
0
{
2792
0
  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);
2793
2794
0
  return offset;
2795
0
}
2796
2797
static int
2798
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_)
2799
0
{
2800
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_PackApReplyResp_PackedReply__);
2801
2802
0
  return offset;
2803
0
}
2804
2805
static int
2806
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_)
2807
0
{
2808
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_PackApReplyResp_PackedReply, 0);
2809
2810
0
  return offset;
2811
0
}
2812
2813
int
2814
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_)
2815
0
{
2816
0
  proto_item *item = NULL;
2817
0
  proto_tree *tree = NULL;
2818
0
  int old_offset;
2819
2820
0
  ALIGN_TO_5_BYTES;
2821
2822
0
  old_offset = offset;
2823
2824
0
  if (parent_tree) {
2825
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2826
0
    tree = proto_item_add_subtree(item, ett_rcg_PackApReplyResp);
2827
0
  }
2828
2829
0
  offset = rcg_dissect_element_PackApReplyResp_PackedReplySize(tvb, offset, pinfo, tree, di, drep);
2830
2831
0
  offset = rcg_dissect_element_PackApReplyResp_PackedReply(tvb, offset, pinfo, tree, di, drep);
2832
2833
2834
0
  proto_item_set_len(item, offset-old_offset);
2835
2836
2837
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2838
0
    ALIGN_TO_5_BYTES;
2839
0
  }
2840
2841
0
  return offset;
2842
0
}
2843
2844
2845
/* IDL: struct { */
2846
/* IDL:   [ref] KERB_ASN1_DATA *S4UPreauth; */
2847
/* IDL:   [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
2848
/* IDL:   int32 ChecksumType; */
2849
/* IDL: } */
2850
2851
static int
2852
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_)
2853
0
{
2854
0
  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);
2855
2856
0
  return offset;
2857
0
}
2858
2859
static int
2860
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_)
2861
0
{
2862
0
  offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_HashS4UPreauthReq_S4UPreauth,0);
2863
2864
0
  return offset;
2865
0
}
2866
2867
static int
2868
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_)
2869
0
{
2870
0
  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);
2871
2872
0
  return offset;
2873
0
}
2874
2875
static int
2876
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_)
2877
0
{
2878
0
  offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_HashS4UPreauthReq_Key,0);
2879
2880
0
  return offset;
2881
0
}
2882
2883
static int
2884
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_)
2885
0
{
2886
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_HashS4UPreauthReq_ChecksumType, 0);
2887
2888
0
  return offset;
2889
0
}
2890
2891
int
2892
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_)
2893
0
{
2894
0
  proto_item *item = NULL;
2895
0
  proto_tree *tree = NULL;
2896
0
  int old_offset;
2897
2898
0
  ALIGN_TO_5_BYTES;
2899
2900
0
  old_offset = offset;
2901
2902
0
  if (parent_tree) {
2903
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2904
0
    tree = proto_item_add_subtree(item, ett_rcg_HashS4UPreauthReq);
2905
0
  }
2906
2907
0
  offset = rcg_dissect_element_HashS4UPreauthReq_S4UPreauth(tvb, offset, pinfo, tree, di, drep);
2908
2909
0
  offset = rcg_dissect_element_HashS4UPreauthReq_Key(tvb, offset, pinfo, tree, di, drep);
2910
2911
0
  offset = rcg_dissect_element_HashS4UPreauthReq_ChecksumType(tvb, offset, pinfo, tree, di, drep);
2912
2913
2914
0
  proto_item_set_len(item, offset-old_offset);
2915
2916
2917
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2918
0
    ALIGN_TO_5_BYTES;
2919
0
  }
2920
2921
0
  return offset;
2922
0
}
2923
2924
2925
/* IDL: struct { */
2926
/* IDL:   [ref] uint32 *ChecksumSize; */
2927
/* IDL:   [ref] [size_is(,*ChecksumSize)] uint8 **ChecksumValue; */
2928
/* IDL: } */
2929
2930
static int
2931
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_)
2932
0
{
2933
0
  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);
2934
2935
0
  return offset;
2936
0
}
2937
2938
static int
2939
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_)
2940
0
{
2941
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_HashS4UPreauthResp_ChecksumSize, 0);
2942
2943
0
  return offset;
2944
0
}
2945
2946
static int
2947
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_)
2948
0
{
2949
0
  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);
2950
2951
0
  return offset;
2952
0
}
2953
2954
static int
2955
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_)
2956
0
{
2957
0
  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);
2958
2959
0
  return offset;
2960
0
}
2961
2962
static int
2963
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_)
2964
0
{
2965
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_HashS4UPreauthResp_ChecksumValue___);
2966
2967
0
  return offset;
2968
0
}
2969
2970
static int
2971
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_)
2972
0
{
2973
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_HashS4UPreauthResp_ChecksumValue, 0);
2974
2975
0
  return offset;
2976
0
}
2977
2978
int
2979
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_)
2980
0
{
2981
0
  proto_item *item = NULL;
2982
0
  proto_tree *tree = NULL;
2983
0
  int old_offset;
2984
2985
0
  ALIGN_TO_5_BYTES;
2986
2987
0
  old_offset = offset;
2988
2989
0
  if (parent_tree) {
2990
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2991
0
    tree = proto_item_add_subtree(item, ett_rcg_HashS4UPreauthResp);
2992
0
  }
2993
2994
0
  offset = rcg_dissect_element_HashS4UPreauthResp_ChecksumSize(tvb, offset, pinfo, tree, di, drep);
2995
2996
0
  offset = rcg_dissect_element_HashS4UPreauthResp_ChecksumValue(tvb, offset, pinfo, tree, di, drep);
2997
2998
2999
0
  proto_item_set_len(item, offset-old_offset);
3000
3001
3002
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3003
0
    ALIGN_TO_5_BYTES;
3004
0
  }
3005
3006
0
  return offset;
3007
0
}
3008
3009
3010
/* IDL: struct { */
3011
/* IDL:   [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
3012
/* IDL:   uint32 IsRequest; */
3013
/* IDL:   [ref] KERB_ASN1_DATA *UserId; */
3014
/* IDL:   [ref] int32 *ChecksumType; */
3015
/* IDL: } */
3016
3017
static int
3018
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_)
3019
0
{
3020
0
  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);
3021
3022
0
  return offset;
3023
0
}
3024
3025
static int
3026
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_)
3027
0
{
3028
0
  offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_SignS4UPreauthDataReq_Key,0);
3029
3030
0
  return offset;
3031
0
}
3032
3033
static int
3034
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_)
3035
0
{
3036
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_SignS4UPreauthDataReq_IsRequest, 0);
3037
3038
0
  return offset;
3039
0
}
3040
3041
static int
3042
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_)
3043
0
{
3044
0
  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);
3045
3046
0
  return offset;
3047
0
}
3048
3049
static int
3050
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_)
3051
0
{
3052
0
  offset = rcg_dissect_struct_KERB_ASN1_DATA(tvb,offset,pinfo,tree,di,drep,hf_rcg_SignS4UPreauthDataReq_UserId,0);
3053
3054
0
  return offset;
3055
0
}
3056
3057
static int
3058
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_)
3059
0
{
3060
0
  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);
3061
3062
0
  return offset;
3063
0
}
3064
3065
static int
3066
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_)
3067
0
{
3068
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_SignS4UPreauthDataReq_ChecksumType, 0);
3069
3070
0
  return offset;
3071
0
}
3072
3073
int
3074
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_)
3075
0
{
3076
0
  proto_item *item = NULL;
3077
0
  proto_tree *tree = NULL;
3078
0
  int old_offset;
3079
3080
0
  ALIGN_TO_5_BYTES;
3081
3082
0
  old_offset = offset;
3083
3084
0
  if (parent_tree) {
3085
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3086
0
    tree = proto_item_add_subtree(item, ett_rcg_SignS4UPreauthDataReq);
3087
0
  }
3088
3089
0
  offset = rcg_dissect_element_SignS4UPreauthDataReq_Key(tvb, offset, pinfo, tree, di, drep);
3090
3091
0
  offset = rcg_dissect_element_SignS4UPreauthDataReq_IsRequest(tvb, offset, pinfo, tree, di, drep);
3092
3093
0
  offset = rcg_dissect_element_SignS4UPreauthDataReq_UserId(tvb, offset, pinfo, tree, di, drep);
3094
3095
0
  offset = rcg_dissect_element_SignS4UPreauthDataReq_ChecksumType(tvb, offset, pinfo, tree, di, drep);
3096
3097
3098
0
  proto_item_set_len(item, offset-old_offset);
3099
3100
3101
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3102
0
    ALIGN_TO_5_BYTES;
3103
0
  }
3104
3105
0
  return offset;
3106
0
}
3107
3108
3109
/* IDL: struct { */
3110
/* IDL:   [ref] int32 *ChecksumType; */
3111
/* IDL:   [ref] uint32 *ChecksumSize; */
3112
/* IDL:   [ref] [size_is(,*ChecksumSize)] uint8 **ChecksumValue; */
3113
/* IDL: } */
3114
3115
static int
3116
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_)
3117
0
{
3118
0
  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);
3119
3120
0
  return offset;
3121
0
}
3122
3123
static int
3124
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_)
3125
0
{
3126
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_SignS4UPreauthDataResp_ChecksumType, 0);
3127
3128
0
  return offset;
3129
0
}
3130
3131
static int
3132
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_)
3133
0
{
3134
0
  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);
3135
3136
0
  return offset;
3137
0
}
3138
3139
static int
3140
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_)
3141
0
{
3142
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_SignS4UPreauthDataResp_ChecksumSize, 0);
3143
3144
0
  return offset;
3145
0
}
3146
3147
static int
3148
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_)
3149
0
{
3150
0
  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);
3151
3152
0
  return offset;
3153
0
}
3154
3155
static int
3156
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_)
3157
0
{
3158
0
  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);
3159
3160
0
  return offset;
3161
0
}
3162
3163
static int
3164
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_)
3165
0
{
3166
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_SignS4UPreauthDataResp_ChecksumValue___);
3167
3168
0
  return offset;
3169
0
}
3170
3171
static int
3172
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_)
3173
0
{
3174
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_SignS4UPreauthDataResp_ChecksumValue, 0);
3175
3176
0
  return offset;
3177
0
}
3178
3179
int
3180
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_)
3181
0
{
3182
0
  proto_item *item = NULL;
3183
0
  proto_tree *tree = NULL;
3184
0
  int old_offset;
3185
3186
0
  ALIGN_TO_5_BYTES;
3187
3188
0
  old_offset = offset;
3189
3190
0
  if (parent_tree) {
3191
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3192
0
    tree = proto_item_add_subtree(item, ett_rcg_SignS4UPreauthDataResp);
3193
0
  }
3194
3195
0
  offset = rcg_dissect_element_SignS4UPreauthDataResp_ChecksumType(tvb, offset, pinfo, tree, di, drep);
3196
3197
0
  offset = rcg_dissect_element_SignS4UPreauthDataResp_ChecksumSize(tvb, offset, pinfo, tree, di, drep);
3198
3199
0
  offset = rcg_dissect_element_SignS4UPreauthDataResp_ChecksumValue(tvb, offset, pinfo, tree, di, drep);
3200
3201
3202
0
  proto_item_set_len(item, offset-old_offset);
3203
3204
3205
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3206
0
    ALIGN_TO_5_BYTES;
3207
0
  }
3208
3209
0
  return offset;
3210
0
}
3211
3212
3213
/* IDL: struct { */
3214
/* IDL:   [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
3215
/* IDL:   uint32 ChecksumType; */
3216
/* IDL:   uint32 ExpectedChecksumSize; */
3217
/* IDL:   [ref] [size_is(ExpectedChecksumSize)] uint8 *ExpectedChecksum; */
3218
/* IDL:   uint32 DataToCheckSize; */
3219
/* IDL:   [ref] [size_is(DataToCheckSize)] uint8 *DataToCheck; */
3220
/* IDL: } */
3221
3222
static int
3223
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_)
3224
0
{
3225
0
  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);
3226
3227
0
  return offset;
3228
0
}
3229
3230
static int
3231
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_)
3232
0
{
3233
0
  offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_VerifyChecksumReq_Key,0);
3234
3235
0
  return offset;
3236
0
}
3237
3238
static int
3239
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_)
3240
0
{
3241
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyChecksumReq_ChecksumType, 0);
3242
3243
0
  return offset;
3244
0
}
3245
3246
static int
3247
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_)
3248
0
{
3249
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyChecksumReq_ExpectedChecksumSize, 0);
3250
3251
0
  return offset;
3252
0
}
3253
3254
static int
3255
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_)
3256
0
{
3257
0
  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);
3258
3259
0
  return offset;
3260
0
}
3261
3262
static int
3263
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_)
3264
0
{
3265
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_VerifyChecksumReq_ExpectedChecksum__);
3266
3267
0
  return offset;
3268
0
}
3269
3270
static int
3271
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_)
3272
0
{
3273
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyChecksumReq_ExpectedChecksum, 0);
3274
3275
0
  return offset;
3276
0
}
3277
3278
static int
3279
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_)
3280
0
{
3281
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyChecksumReq_DataToCheckSize, 0);
3282
3283
0
  return offset;
3284
0
}
3285
3286
static int
3287
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_)
3288
0
{
3289
0
  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);
3290
3291
0
  return offset;
3292
0
}
3293
3294
static int
3295
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_)
3296
0
{
3297
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_VerifyChecksumReq_DataToCheck__);
3298
3299
0
  return offset;
3300
0
}
3301
3302
static int
3303
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_)
3304
0
{
3305
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyChecksumReq_DataToCheck, 0);
3306
3307
0
  return offset;
3308
0
}
3309
3310
int
3311
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_)
3312
0
{
3313
0
  proto_item *item = NULL;
3314
0
  proto_tree *tree = NULL;
3315
0
  int old_offset;
3316
3317
0
  ALIGN_TO_5_BYTES;
3318
3319
0
  old_offset = offset;
3320
3321
0
  if (parent_tree) {
3322
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3323
0
    tree = proto_item_add_subtree(item, ett_rcg_VerifyChecksumReq);
3324
0
  }
3325
3326
0
  offset = rcg_dissect_element_VerifyChecksumReq_Key(tvb, offset, pinfo, tree, di, drep);
3327
3328
0
  offset = rcg_dissect_element_VerifyChecksumReq_ChecksumType(tvb, offset, pinfo, tree, di, drep);
3329
3330
0
  offset = rcg_dissect_element_VerifyChecksumReq_ExpectedChecksumSize(tvb, offset, pinfo, tree, di, drep);
3331
3332
0
  offset = rcg_dissect_element_VerifyChecksumReq_ExpectedChecksum(tvb, offset, pinfo, tree, di, drep);
3333
3334
0
  offset = rcg_dissect_element_VerifyChecksumReq_DataToCheckSize(tvb, offset, pinfo, tree, di, drep);
3335
3336
0
  offset = rcg_dissect_element_VerifyChecksumReq_DataToCheck(tvb, offset, pinfo, tree, di, drep);
3337
3338
3339
0
  proto_item_set_len(item, offset-old_offset);
3340
3341
3342
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3343
0
    ALIGN_TO_5_BYTES;
3344
0
  }
3345
3346
0
  return offset;
3347
0
}
3348
3349
3350
/* IDL: struct { */
3351
/* IDL:   uint32 IsValid; */
3352
/* IDL: } */
3353
3354
static int
3355
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_)
3356
0
{
3357
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_VerifyChecksumResp_IsValid, 0);
3358
3359
0
  return offset;
3360
0
}
3361
3362
int
3363
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_)
3364
0
{
3365
0
  proto_item *item = NULL;
3366
0
  proto_tree *tree = NULL;
3367
0
  int old_offset;
3368
3369
0
  ALIGN_TO_4_BYTES;
3370
3371
0
  old_offset = offset;
3372
3373
0
  if (parent_tree) {
3374
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3375
0
    tree = proto_item_add_subtree(item, ett_rcg_VerifyChecksumResp);
3376
0
  }
3377
3378
0
  offset = rcg_dissect_element_VerifyChecksumResp_IsValid(tvb, offset, pinfo, tree, di, drep);
3379
3380
3381
0
  proto_item_set_len(item, offset-old_offset);
3382
3383
3384
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3385
0
    ALIGN_TO_4_BYTES;
3386
0
  }
3387
3388
0
  return offset;
3389
0
}
3390
3391
3392
/* IDL: struct { */
3393
/* IDL:   [ref] KERB_RPC_ENCRYPTION_KEY *Key; */
3394
/* IDL:   uint32 Version; */
3395
/* IDL:   uint32 EncryptionType; */
3396
/* IDL:   uint32 DataSize; */
3397
/* IDL:   [ref] [size_is(DataSize)] uint8 *Data; */
3398
/* IDL: } */
3399
3400
static int
3401
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_)
3402
0
{
3403
0
  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);
3404
3405
0
  return offset;
3406
0
}
3407
3408
static int
3409
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_)
3410
0
{
3411
0
  offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_DecryptPacCredentialsReq_Key,0);
3412
3413
0
  return offset;
3414
0
}
3415
3416
static int
3417
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_)
3418
0
{
3419
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_DecryptPacCredentialsReq_Version, 0);
3420
3421
0
  return offset;
3422
0
}
3423
3424
static int
3425
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_)
3426
0
{
3427
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_DecryptPacCredentialsReq_EncryptionType, 0);
3428
3429
0
  return offset;
3430
0
}
3431
3432
static int
3433
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_)
3434
0
{
3435
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_DecryptPacCredentialsReq_DataSize, 0);
3436
3437
0
  return offset;
3438
0
}
3439
3440
static int
3441
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_)
3442
0
{
3443
0
  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);
3444
3445
0
  return offset;
3446
0
}
3447
3448
static int
3449
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_)
3450
0
{
3451
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_DecryptPacCredentialsReq_Data__);
3452
3453
0
  return offset;
3454
0
}
3455
3456
static int
3457
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_)
3458
0
{
3459
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_DecryptPacCredentialsReq_Data, 0);
3460
3461
0
  return offset;
3462
0
}
3463
3464
int
3465
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_)
3466
0
{
3467
0
  proto_item *item = NULL;
3468
0
  proto_tree *tree = NULL;
3469
0
  int old_offset;
3470
3471
0
  ALIGN_TO_5_BYTES;
3472
3473
0
  old_offset = offset;
3474
3475
0
  if (parent_tree) {
3476
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3477
0
    tree = proto_item_add_subtree(item, ett_rcg_DecryptPacCredentialsReq);
3478
0
  }
3479
3480
0
  offset = rcg_dissect_element_DecryptPacCredentialsReq_Key(tvb, offset, pinfo, tree, di, drep);
3481
3482
0
  offset = rcg_dissect_element_DecryptPacCredentialsReq_Version(tvb, offset, pinfo, tree, di, drep);
3483
3484
0
  offset = rcg_dissect_element_DecryptPacCredentialsReq_EncryptionType(tvb, offset, pinfo, tree, di, drep);
3485
3486
0
  offset = rcg_dissect_element_DecryptPacCredentialsReq_DataSize(tvb, offset, pinfo, tree, di, drep);
3487
3488
0
  offset = rcg_dissect_element_DecryptPacCredentialsReq_Data(tvb, offset, pinfo, tree, di, drep);
3489
3490
3491
0
  proto_item_set_len(item, offset-old_offset);
3492
3493
3494
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3495
0
    ALIGN_TO_5_BYTES;
3496
0
  }
3497
3498
0
  return offset;
3499
0
}
3500
3501
3502
/* IDL: struct { */
3503
/* IDL:   [ref] SECPKG_SUPPLEMENTAL_CRED_ARRAY *Credentials; */
3504
/* IDL: } */
3505
3506
static int
3507
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_)
3508
0
{
3509
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_DecryptPacCredentialsResp_Credentials_, NDR_POINTER_REF, "Pointer to Credentials (SECPKG_SUPPLEMENTAL_CRED_ARRAY)",hf_rcg_DecryptPacCredentialsResp_Credentials);
3510
3511
0
  return offset;
3512
0
}
3513
3514
static int
3515
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_)
3516
0
{
3517
0
  offset = rcg_dissect_struct_SECPKG_SUPPLEMENTAL_CRED_ARRAY(tvb,offset,pinfo,tree,di,drep,hf_rcg_DecryptPacCredentialsResp_Credentials,0);
3518
3519
0
  return offset;
3520
0
}
3521
3522
int
3523
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_)
3524
0
{
3525
0
  proto_item *item = NULL;
3526
0
  proto_tree *tree = NULL;
3527
0
  int old_offset;
3528
3529
0
  ALIGN_TO_5_BYTES;
3530
3531
0
  old_offset = offset;
3532
3533
0
  if (parent_tree) {
3534
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3535
0
    tree = proto_item_add_subtree(item, ett_rcg_DecryptPacCredentialsResp);
3536
0
  }
3537
3538
0
  offset = rcg_dissect_element_DecryptPacCredentialsResp_Credentials(tvb, offset, pinfo, tree, di, drep);
3539
3540
3541
0
  proto_item_set_len(item, offset-old_offset);
3542
3543
3544
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3545
0
    ALIGN_TO_5_BYTES;
3546
0
  }
3547
3548
0
  return offset;
3549
0
}
3550
3551
3552
/* IDL: struct { */
3553
/* IDL:   uint32 KeyBitLen; */
3554
/* IDL: } */
3555
3556
static int
3557
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_)
3558
0
{
3559
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateECDHKeyAgreementReq_KeyBitLen, 0);
3560
3561
0
  return offset;
3562
0
}
3563
3564
int
3565
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_)
3566
0
{
3567
0
  proto_item *item = NULL;
3568
0
  proto_tree *tree = NULL;
3569
0
  int old_offset;
3570
3571
0
  ALIGN_TO_4_BYTES;
3572
3573
0
  old_offset = offset;
3574
3575
0
  if (parent_tree) {
3576
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3577
0
    tree = proto_item_add_subtree(item, ett_rcg_CreateECDHKeyAgreementReq);
3578
0
  }
3579
3580
0
  offset = rcg_dissect_element_CreateECDHKeyAgreementReq_KeyBitLen(tvb, offset, pinfo, tree, di, drep);
3581
3582
3583
0
  proto_item_set_len(item, offset-old_offset);
3584
3585
3586
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3587
0
    ALIGN_TO_4_BYTES;
3588
0
  }
3589
3590
0
  return offset;
3591
0
}
3592
3593
3594
/* IDL: struct { */
3595
/* IDL:   [ref] int64 *KeyAgreementHandle; */
3596
/* IDL:   [ref] int32 *KerbErr; */
3597
/* IDL:   [ref] uint32 *EncodedPubKeyLen; */
3598
/* IDL:   [ref] [size_is(,*EncodedPubKeyLen)] uint8 **EncodedPubKey; */
3599
/* IDL: } */
3600
3601
static int
3602
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_)
3603
0
{
3604
0
  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);
3605
3606
0
  return offset;
3607
0
}
3608
3609
static int
3610
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_)
3611
0
{
3612
0
  offset = PIDL_dissect_uint64(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateECDHKeyAgreementResp_KeyAgreementHandle, 0);
3613
3614
0
  return offset;
3615
0
}
3616
3617
static int
3618
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_)
3619
0
{
3620
0
  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);
3621
3622
0
  return offset;
3623
0
}
3624
3625
static int
3626
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_)
3627
0
{
3628
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateECDHKeyAgreementResp_KerbErr, 0);
3629
3630
0
  return offset;
3631
0
}
3632
3633
static int
3634
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_)
3635
0
{
3636
0
  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);
3637
3638
0
  return offset;
3639
0
}
3640
3641
static int
3642
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_)
3643
0
{
3644
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateECDHKeyAgreementResp_EncodedPubKeyLen, 0);
3645
3646
0
  return offset;
3647
0
}
3648
3649
static int
3650
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_)
3651
0
{
3652
0
  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);
3653
3654
0
  return offset;
3655
0
}
3656
3657
static int
3658
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_)
3659
0
{
3660
0
  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);
3661
3662
0
  return offset;
3663
0
}
3664
3665
static int
3666
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_)
3667
0
{
3668
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKey___);
3669
3670
0
  return offset;
3671
0
}
3672
3673
static int
3674
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
0
{
3676
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateECDHKeyAgreementResp_EncodedPubKey, 0);
3677
3678
0
  return offset;
3679
0
}
3680
3681
int
3682
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_)
3683
0
{
3684
0
  proto_item *item = NULL;
3685
0
  proto_tree *tree = NULL;
3686
0
  int old_offset;
3687
3688
0
  ALIGN_TO_5_BYTES;
3689
3690
0
  old_offset = offset;
3691
3692
0
  if (parent_tree) {
3693
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3694
0
    tree = proto_item_add_subtree(item, ett_rcg_CreateECDHKeyAgreementResp);
3695
0
  }
3696
3697
0
  offset = rcg_dissect_element_CreateECDHKeyAgreementResp_KeyAgreementHandle(tvb, offset, pinfo, tree, di, drep);
3698
3699
0
  offset = rcg_dissect_element_CreateECDHKeyAgreementResp_KerbErr(tvb, offset, pinfo, tree, di, drep);
3700
3701
0
  offset = rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKeyLen(tvb, offset, pinfo, tree, di, drep);
3702
3703
0
  offset = rcg_dissect_element_CreateECDHKeyAgreementResp_EncodedPubKey(tvb, offset, pinfo, tree, di, drep);
3704
3705
3706
0
  proto_item_set_len(item, offset-old_offset);
3707
3708
3709
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3710
0
    ALIGN_TO_5_BYTES;
3711
0
  }
3712
3713
0
  return offset;
3714
0
}
3715
3716
3717
/* IDL: struct { */
3718
/* IDL:   uint8 Ignored; */
3719
/* IDL: } */
3720
3721
static int
3722
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_)
3723
0
{
3724
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateDHKeyAgreementReq_Ignored, 0);
3725
3726
0
  return offset;
3727
0
}
3728
3729
int
3730
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_)
3731
0
{
3732
0
  proto_item *item = NULL;
3733
0
  proto_tree *tree = NULL;
3734
0
  int old_offset;
3735
3736
0
  old_offset = offset;
3737
3738
0
  if (parent_tree) {
3739
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3740
0
    tree = proto_item_add_subtree(item, ett_rcg_CreateDHKeyAgreementReq);
3741
0
  }
3742
3743
0
  offset = rcg_dissect_element_CreateDHKeyAgreementReq_Ignored(tvb, offset, pinfo, tree, di, drep);
3744
3745
3746
0
  proto_item_set_len(item, offset-old_offset);
3747
3748
3749
0
  return offset;
3750
0
}
3751
3752
3753
/* IDL: struct { */
3754
/* IDL:   [ref] KERB_RPC_CRYPTO_API_BLOB *ModulusP; */
3755
/* IDL:   [ref] KERB_RPC_CRYPTO_API_BLOB *GeneratorG; */
3756
/* IDL:   [ref] KERB_RPC_CRYPTO_API_BLOB *FactorQ; */
3757
/* IDL:   [ref] int64 *KeyAgreementHandle; */
3758
/* IDL:   [ref] int32 *KerbErr; */
3759
/* IDL:   [ref] uint32 *LittleEndianPublicKeyLen; */
3760
/* IDL:   [ref] [size_is(,*LittleEndianPublicKeyLen)] uint8 **LittleEndianPublicKey; */
3761
/* IDL: } */
3762
3763
static int
3764
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_)
3765
0
{
3766
0
  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);
3767
3768
0
  return offset;
3769
0
}
3770
3771
static int
3772
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_)
3773
0
{
3774
0
  offset = rcg_dissect_struct_KERB_RPC_CRYPTO_API_BLOB(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateDHKeyAgreementResp_ModulusP,0);
3775
3776
0
  return offset;
3777
0
}
3778
3779
static int
3780
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_)
3781
0
{
3782
0
  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);
3783
3784
0
  return offset;
3785
0
}
3786
3787
static int
3788
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_)
3789
0
{
3790
0
  offset = rcg_dissect_struct_KERB_RPC_CRYPTO_API_BLOB(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateDHKeyAgreementResp_GeneratorG,0);
3791
3792
0
  return offset;
3793
0
}
3794
3795
static int
3796
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_)
3797
0
{
3798
0
  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);
3799
3800
0
  return offset;
3801
0
}
3802
3803
static int
3804
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_)
3805
0
{
3806
0
  offset = rcg_dissect_struct_KERB_RPC_CRYPTO_API_BLOB(tvb,offset,pinfo,tree,di,drep,hf_rcg_CreateDHKeyAgreementResp_FactorQ,0);
3807
3808
0
  return offset;
3809
0
}
3810
3811
static int
3812
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_)
3813
0
{
3814
0
  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);
3815
3816
0
  return offset;
3817
0
}
3818
3819
static int
3820
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_)
3821
0
{
3822
0
  offset = PIDL_dissect_uint64(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateDHKeyAgreementResp_KeyAgreementHandle, 0);
3823
3824
0
  return offset;
3825
0
}
3826
3827
static int
3828
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_)
3829
0
{
3830
0
  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);
3831
3832
0
  return offset;
3833
0
}
3834
3835
static int
3836
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_)
3837
0
{
3838
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateDHKeyAgreementResp_KerbErr, 0);
3839
3840
0
  return offset;
3841
0
}
3842
3843
static int
3844
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_)
3845
0
{
3846
0
  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);
3847
3848
0
  return offset;
3849
0
}
3850
3851
static int
3852
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_)
3853
0
{
3854
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateDHKeyAgreementResp_LittleEndianPublicKeyLen, 0);
3855
3856
0
  return offset;
3857
0
}
3858
3859
static int
3860
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_)
3861
0
{
3862
0
  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);
3863
3864
0
  return offset;
3865
0
}
3866
3867
static int
3868
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_)
3869
0
{
3870
0
  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);
3871
3872
0
  return offset;
3873
0
}
3874
3875
static int
3876
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_)
3877
0
{
3878
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKey___);
3879
3880
0
  return offset;
3881
0
}
3882
3883
static int
3884
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
0
{
3886
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_CreateDHKeyAgreementResp_LittleEndianPublicKey, 0);
3887
3888
0
  return offset;
3889
0
}
3890
3891
int
3892
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_)
3893
0
{
3894
0
  proto_item *item = NULL;
3895
0
  proto_tree *tree = NULL;
3896
0
  int old_offset;
3897
3898
0
  ALIGN_TO_5_BYTES;
3899
3900
0
  old_offset = offset;
3901
3902
0
  if (parent_tree) {
3903
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3904
0
    tree = proto_item_add_subtree(item, ett_rcg_CreateDHKeyAgreementResp);
3905
0
  }
3906
3907
0
  offset = rcg_dissect_element_CreateDHKeyAgreementResp_ModulusP(tvb, offset, pinfo, tree, di, drep);
3908
3909
0
  offset = rcg_dissect_element_CreateDHKeyAgreementResp_GeneratorG(tvb, offset, pinfo, tree, di, drep);
3910
3911
0
  offset = rcg_dissect_element_CreateDHKeyAgreementResp_FactorQ(tvb, offset, pinfo, tree, di, drep);
3912
3913
0
  offset = rcg_dissect_element_CreateDHKeyAgreementResp_KeyAgreementHandle(tvb, offset, pinfo, tree, di, drep);
3914
3915
0
  offset = rcg_dissect_element_CreateDHKeyAgreementResp_KerbErr(tvb, offset, pinfo, tree, di, drep);
3916
3917
0
  offset = rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKeyLen(tvb, offset, pinfo, tree, di, drep);
3918
3919
0
  offset = rcg_dissect_element_CreateDHKeyAgreementResp_LittleEndianPublicKey(tvb, offset, pinfo, tree, di, drep);
3920
3921
3922
0
  proto_item_set_len(item, offset-old_offset);
3923
3924
3925
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3926
0
    ALIGN_TO_5_BYTES;
3927
0
  }
3928
3929
0
  return offset;
3930
0
}
3931
3932
3933
/* IDL: struct { */
3934
/* IDL:   int64 KeyAgreementHandle; */
3935
/* IDL: } */
3936
3937
static int
3938
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_)
3939
0
{
3940
0
  offset = PIDL_dissect_uint64(tvb, offset, pinfo, tree, di, drep, hf_rcg_DestroyKeyAgreementReq_KeyAgreementHandle, 0);
3941
3942
0
  return offset;
3943
0
}
3944
3945
int
3946
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_)
3947
0
{
3948
0
  proto_item *item = NULL;
3949
0
  proto_tree *tree = NULL;
3950
0
  int old_offset;
3951
3952
0
  ALIGN_TO_8_BYTES;
3953
3954
0
  old_offset = offset;
3955
3956
0
  if (parent_tree) {
3957
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3958
0
    tree = proto_item_add_subtree(item, ett_rcg_DestroyKeyAgreementReq);
3959
0
  }
3960
3961
0
  offset = rcg_dissect_element_DestroyKeyAgreementReq_KeyAgreementHandle(tvb, offset, pinfo, tree, di, drep);
3962
3963
3964
0
  proto_item_set_len(item, offset-old_offset);
3965
3966
3967
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3968
0
    ALIGN_TO_8_BYTES;
3969
0
  }
3970
3971
0
  return offset;
3972
0
}
3973
3974
3975
/* IDL: struct { */
3976
/* IDL:   uint8 Ignored; */
3977
/* IDL: } */
3978
3979
static int
3980
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_)
3981
0
{
3982
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_DestroyKeyAgreementResp_Ignored, 0);
3983
3984
0
  return offset;
3985
0
}
3986
3987
int
3988
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_)
3989
0
{
3990
0
  proto_item *item = NULL;
3991
0
  proto_tree *tree = NULL;
3992
0
  int old_offset;
3993
3994
0
  old_offset = offset;
3995
3996
0
  if (parent_tree) {
3997
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3998
0
    tree = proto_item_add_subtree(item, ett_rcg_DestroyKeyAgreementResp);
3999
0
  }
4000
4001
0
  offset = rcg_dissect_element_DestroyKeyAgreementResp_Ignored(tvb, offset, pinfo, tree, di, drep);
4002
4003
4004
0
  proto_item_set_len(item, offset-old_offset);
4005
4006
4007
0
  return offset;
4008
0
}
4009
4010
4011
/* IDL: struct { */
4012
/* IDL:   int64 KeyAgreementHandle; */
4013
/* IDL: } */
4014
4015
static int
4016
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_)
4017
0
{
4018
0
  offset = PIDL_dissect_uint64(tvb, offset, pinfo, tree, di, drep, hf_rcg_KeyAgreementGenerateNonceReq_KeyAgreementHandle, 0);
4019
4020
0
  return offset;
4021
0
}
4022
4023
int
4024
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_)
4025
0
{
4026
0
  proto_item *item = NULL;
4027
0
  proto_tree *tree = NULL;
4028
0
  int old_offset;
4029
4030
0
  ALIGN_TO_8_BYTES;
4031
4032
0
  old_offset = offset;
4033
4034
0
  if (parent_tree) {
4035
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4036
0
    tree = proto_item_add_subtree(item, ett_rcg_KeyAgreementGenerateNonceReq);
4037
0
  }
4038
4039
0
  offset = rcg_dissect_element_KeyAgreementGenerateNonceReq_KeyAgreementHandle(tvb, offset, pinfo, tree, di, drep);
4040
4041
4042
0
  proto_item_set_len(item, offset-old_offset);
4043
4044
4045
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
4046
0
    ALIGN_TO_8_BYTES;
4047
0
  }
4048
4049
0
  return offset;
4050
0
}
4051
4052
4053
/* IDL: struct { */
4054
/* IDL:   [ref] uint32 *NonceLen; */
4055
/* IDL:   [ref] [size_is(,*NonceLen)] uint8 **Nonce; */
4056
/* IDL: } */
4057
4058
static int
4059
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_)
4060
0
{
4061
0
  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);
4062
4063
0
  return offset;
4064
0
}
4065
4066
static int
4067
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_)
4068
0
{
4069
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KeyAgreementGenerateNonceResp_NonceLen, 0);
4070
4071
0
  return offset;
4072
0
}
4073
4074
static int
4075
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_)
4076
0
{
4077
0
  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);
4078
4079
0
  return offset;
4080
0
}
4081
4082
static int
4083
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_)
4084
0
{
4085
0
  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);
4086
4087
0
  return offset;
4088
0
}
4089
4090
static int
4091
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_)
4092
0
{
4093
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_KeyAgreementGenerateNonceResp_Nonce___);
4094
4095
0
  return offset;
4096
0
}
4097
4098
static int
4099
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
0
{
4101
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_KeyAgreementGenerateNonceResp_Nonce, 0);
4102
4103
0
  return offset;
4104
0
}
4105
4106
int
4107
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_)
4108
0
{
4109
0
  proto_item *item = NULL;
4110
0
  proto_tree *tree = NULL;
4111
0
  int old_offset;
4112
4113
0
  ALIGN_TO_5_BYTES;
4114
4115
0
  old_offset = offset;
4116
4117
0
  if (parent_tree) {
4118
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4119
0
    tree = proto_item_add_subtree(item, ett_rcg_KeyAgreementGenerateNonceResp);
4120
0
  }
4121
4122
0
  offset = rcg_dissect_element_KeyAgreementGenerateNonceResp_NonceLen(tvb, offset, pinfo, tree, di, drep);
4123
4124
0
  offset = rcg_dissect_element_KeyAgreementGenerateNonceResp_Nonce(tvb, offset, pinfo, tree, di, drep);
4125
4126
4127
0
  proto_item_set_len(item, offset-old_offset);
4128
4129
4130
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
4131
0
    ALIGN_TO_5_BYTES;
4132
0
  }
4133
4134
0
  return offset;
4135
0
}
4136
4137
4138
/* IDL: struct { */
4139
/* IDL:   [ref] int64 *KeyAgreementHandle; */
4140
/* IDL:   [ref] uint32 *KerbEType; */
4141
/* IDL:   uint32 RemoteNonceLen; */
4142
/* IDL:   [ref] [size_is(RemoteNonceLen)] uint8 *RemoteNonce; */
4143
/* IDL:   uint32 X509PublicKeyLen; */
4144
/* IDL:   [ref] [size_is(X509PublicKeyLen)] uint8 *X509PublicKey; */
4145
/* IDL: } */
4146
4147
static int
4148
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_)
4149
0
{
4150
0
  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);
4151
4152
0
  return offset;
4153
0
}
4154
4155
static int
4156
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_)
4157
0
{
4158
0
  offset = PIDL_dissect_uint64(tvb, offset, pinfo, tree, di, drep, hf_rcg_FinalizeKeyAgreementReq_KeyAgreementHandle, 0);
4159
4160
0
  return offset;
4161
0
}
4162
4163
static int
4164
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_)
4165
0
{
4166
0
  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);
4167
4168
0
  return offset;
4169
0
}
4170
4171
static int
4172
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_)
4173
0
{
4174
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_FinalizeKeyAgreementReq_KerbEType, 0);
4175
4176
0
  return offset;
4177
0
}
4178
4179
static int
4180
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_)
4181
0
{
4182
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_FinalizeKeyAgreementReq_RemoteNonceLen, 0);
4183
4184
0
  return offset;
4185
0
}
4186
4187
static int
4188
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_)
4189
0
{
4190
0
  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);
4191
4192
0
  return offset;
4193
0
}
4194
4195
static int
4196
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_)
4197
0
{
4198
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonce__);
4199
4200
0
  return offset;
4201
0
}
4202
4203
static int
4204
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_)
4205
0
{
4206
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_FinalizeKeyAgreementReq_RemoteNonce, 0);
4207
4208
0
  return offset;
4209
0
}
4210
4211
static int
4212
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_)
4213
0
{
4214
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_FinalizeKeyAgreementReq_X509PublicKeyLen, 0);
4215
4216
0
  return offset;
4217
0
}
4218
4219
static int
4220
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_)
4221
0
{
4222
0
  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);
4223
4224
0
  return offset;
4225
0
}
4226
4227
static int
4228
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_)
4229
0
{
4230
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_FinalizeKeyAgreementReq_X509PublicKey__);
4231
4232
0
  return offset;
4233
0
}
4234
4235
static int
4236
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_)
4237
0
{
4238
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_FinalizeKeyAgreementReq_X509PublicKey, 0);
4239
4240
0
  return offset;
4241
0
}
4242
4243
int
4244
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_)
4245
0
{
4246
0
  proto_item *item = NULL;
4247
0
  proto_tree *tree = NULL;
4248
0
  int old_offset;
4249
4250
0
  ALIGN_TO_5_BYTES;
4251
4252
0
  old_offset = offset;
4253
4254
0
  if (parent_tree) {
4255
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4256
0
    tree = proto_item_add_subtree(item, ett_rcg_FinalizeKeyAgreementReq);
4257
0
  }
4258
4259
0
  offset = rcg_dissect_element_FinalizeKeyAgreementReq_KeyAgreementHandle(tvb, offset, pinfo, tree, di, drep);
4260
4261
0
  offset = rcg_dissect_element_FinalizeKeyAgreementReq_KerbEType(tvb, offset, pinfo, tree, di, drep);
4262
4263
0
  offset = rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonceLen(tvb, offset, pinfo, tree, di, drep);
4264
4265
0
  offset = rcg_dissect_element_FinalizeKeyAgreementReq_RemoteNonce(tvb, offset, pinfo, tree, di, drep);
4266
4267
0
  offset = rcg_dissect_element_FinalizeKeyAgreementReq_X509PublicKeyLen(tvb, offset, pinfo, tree, di, drep);
4268
4269
0
  offset = rcg_dissect_element_FinalizeKeyAgreementReq_X509PublicKey(tvb, offset, pinfo, tree, di, drep);
4270
4271
4272
0
  proto_item_set_len(item, offset-old_offset);
4273
4274
4275
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
4276
0
    ALIGN_TO_5_BYTES;
4277
0
  }
4278
4279
0
  return offset;
4280
0
}
4281
4282
4283
/* IDL: struct { */
4284
/* IDL:   [ref] KERB_RPC_ENCRYPTION_KEY *SharedKey; */
4285
/* IDL: } */
4286
4287
static int
4288
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_)
4289
0
{
4290
0
  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);
4291
4292
0
  return offset;
4293
0
}
4294
4295
static int
4296
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_)
4297
0
{
4298
0
  offset = rcg_dissect_struct_KERB_RPC_ENCRYPTION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_FinalizeKeyAgreementResp_SharedKey,0);
4299
4300
0
  return offset;
4301
0
}
4302
4303
int
4304
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_)
4305
0
{
4306
0
  proto_item *item = NULL;
4307
0
  proto_tree *tree = NULL;
4308
0
  int old_offset;
4309
4310
0
  ALIGN_TO_5_BYTES;
4311
4312
0
  old_offset = offset;
4313
4314
0
  if (parent_tree) {
4315
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4316
0
    tree = proto_item_add_subtree(item, ett_rcg_FinalizeKeyAgreementResp);
4317
0
  }
4318
4319
0
  offset = rcg_dissect_element_FinalizeKeyAgreementResp_SharedKey(tvb, offset, pinfo, tree, di, drep);
4320
4321
4322
0
  proto_item_set_len(item, offset-old_offset);
4323
4324
4325
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
4326
0
    ALIGN_TO_5_BYTES;
4327
0
  }
4328
4329
0
  return offset;
4330
0
}
4331
4332
4333
/* IDL: [flag(LIBNDR_FLAG_ALIGN4)] [switch_type(uint16)] union { */
4334
/* IDL: [case(RemoteCallKerbNegotiateVersion)] [case(RemoteCallKerbNegotiateVersion)] NegotiateVersion negociateVersion; */
4335
/* IDL: [case(RemoteCallKerbBuildAsReqAuthenticator)] [case(RemoteCallKerbBuildAsReqAuthenticator)] BuildAsReqAuthenticatorReq buildAsReqAuthenticator; */
4336
/* IDL: [case(RemoteCallKerbVerifyServiceTicket)] [case(RemoteCallKerbVerifyServiceTicket)] VerifyServiceTicketReq verifyServiceTicket; */
4337
/* IDL: [case(RemoteCallKerbCreateApReqAuthenticator)] [case(RemoteCallKerbCreateApReqAuthenticator)] CreateApReqAuthenticatorReq createApReqAuthenticator; */
4338
/* IDL: [case(RemoteCallKerbDecryptApReply)] [case(RemoteCallKerbDecryptApReply)] DecryptApReplyReq decryptApReply; */
4339
/* IDL: [case(RemoteCallKerbUnpackKdcReplyBody)] [case(RemoteCallKerbUnpackKdcReplyBody)] UnpackKdcReplyBodyReq unpackKdcReplyBody; */
4340
/* IDL: [case(RemoteCallKerbComputeTgsChecksum)] [case(RemoteCallKerbComputeTgsChecksum)] ComputeTgsChecksumReq computeTgsChecksum; */
4341
/* IDL: [case(RemoteCallKerbBuildEncryptedAuthData)] [case(RemoteCallKerbBuildEncryptedAuthData)] BuildEncryptedAuthDataReq buildEncryptedAuthData; */
4342
/* IDL: [case(RemoteCallKerbPackApReply)] [case(RemoteCallKerbPackApReply)] PackApReplyReq packApReply; */
4343
/* IDL: [case(RemoteCallKerbHashS4UPreauth)] [case(RemoteCallKerbHashS4UPreauth)] HashS4UPreauthReq hashS4UPreauth; */
4344
/* IDL: [case(RemoteCallKerbSignS4UPreauthData)] [case(RemoteCallKerbSignS4UPreauthData)] SignS4UPreauthDataReq signS4UPreauthData; */
4345
/* IDL: [case(RemoteCallKerbVerifyChecksum)] [case(RemoteCallKerbVerifyChecksum)] VerifyChecksumReq verifyChecksum; */
4346
/* IDL: [case(RemoteCallKerbDecryptPacCredentials)] [case(RemoteCallKerbDecryptPacCredentials)] DecryptPacCredentialsReq decryptPacCredentials; */
4347
/* IDL: [case(RemoteCallKerbCreateECDHKeyAgreement)] [case(RemoteCallKerbCreateECDHKeyAgreement)] CreateECDHKeyAgreementReq createECDHKeyAgreement; */
4348
/* IDL: [case(RemoteCallKerbCreateDHKeyAgreement)] [case(RemoteCallKerbCreateDHKeyAgreement)] CreateDHKeyAgreementReq createDHKeyAgreement; */
4349
/* IDL: [case(RemoteCallKerbDestroyKeyAgreement)] [case(RemoteCallKerbDestroyKeyAgreement)] DestroyKeyAgreementReq destroyKeyAgreement; */
4350
/* IDL: [case(RemoteCallKerbKeyAgreementGenerateNonce)] [case(RemoteCallKerbKeyAgreementGenerateNonce)] KeyAgreementGenerateNonceReq keyAgreementGenerateNonce; */
4351
/* IDL: [case(RemoteCallKerbFinalizeKeyAgreement)] [case(RemoteCallKerbFinalizeKeyAgreement)] FinalizeKeyAgreementReq finalizeKeyAgreement; */
4352
/* IDL: } */
4353
4354
static int
4355
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_)
4356
0
{
4357
0
  offset = rcg_dissect_struct_NegotiateVersion(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_negociateVersion,0);
4358
4359
0
  return offset;
4360
0
}
4361
4362
static int
4363
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_)
4364
0
{
4365
0
  offset = rcg_dissect_struct_BuildAsReqAuthenticatorReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_buildAsReqAuthenticator,0);
4366
4367
0
  return offset;
4368
0
}
4369
4370
static int
4371
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_)
4372
0
{
4373
0
  offset = rcg_dissect_struct_VerifyServiceTicketReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_verifyServiceTicket,0);
4374
4375
0
  return offset;
4376
0
}
4377
4378
static int
4379
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_)
4380
0
{
4381
0
  offset = rcg_dissect_struct_CreateApReqAuthenticatorReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_createApReqAuthenticator,0);
4382
4383
0
  return offset;
4384
0
}
4385
4386
static int
4387
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_)
4388
0
{
4389
0
  offset = rcg_dissect_struct_DecryptApReplyReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_decryptApReply,0);
4390
4391
0
  return offset;
4392
0
}
4393
4394
static int
4395
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_)
4396
0
{
4397
0
  offset = rcg_dissect_struct_UnpackKdcReplyBodyReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_unpackKdcReplyBody,0);
4398
4399
0
  return offset;
4400
0
}
4401
4402
static int
4403
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_)
4404
0
{
4405
0
  offset = rcg_dissect_struct_ComputeTgsChecksumReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_computeTgsChecksum,0);
4406
4407
0
  return offset;
4408
0
}
4409
4410
static int
4411
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_)
4412
0
{
4413
0
  offset = rcg_dissect_struct_BuildEncryptedAuthDataReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_buildEncryptedAuthData,0);
4414
4415
0
  return offset;
4416
0
}
4417
4418
static int
4419
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_)
4420
0
{
4421
0
  offset = rcg_dissect_struct_PackApReplyReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_packApReply,0);
4422
4423
0
  return offset;
4424
0
}
4425
4426
static int
4427
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_)
4428
0
{
4429
0
  offset = rcg_dissect_struct_HashS4UPreauthReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_hashS4UPreauth,0);
4430
4431
0
  return offset;
4432
0
}
4433
4434
static int
4435
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_)
4436
0
{
4437
0
  offset = rcg_dissect_struct_SignS4UPreauthDataReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_signS4UPreauthData,0);
4438
4439
0
  return offset;
4440
0
}
4441
4442
static int
4443
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_)
4444
0
{
4445
0
  offset = rcg_dissect_struct_VerifyChecksumReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_verifyChecksum,0);
4446
4447
0
  return offset;
4448
0
}
4449
4450
static int
4451
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_)
4452
0
{
4453
0
  offset = rcg_dissect_struct_DecryptPacCredentialsReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_decryptPacCredentials,0);
4454
4455
0
  return offset;
4456
0
}
4457
4458
static int
4459
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_)
4460
0
{
4461
0
  offset = rcg_dissect_struct_CreateECDHKeyAgreementReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_createECDHKeyAgreement,0);
4462
4463
0
  return offset;
4464
0
}
4465
4466
static int
4467
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_)
4468
0
{
4469
0
  offset = rcg_dissect_struct_CreateDHKeyAgreementReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_createDHKeyAgreement,0);
4470
4471
0
  return offset;
4472
0
}
4473
4474
static int
4475
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_)
4476
0
{
4477
0
  offset = rcg_dissect_struct_DestroyKeyAgreementReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_destroyKeyAgreement,0);
4478
4479
0
  return offset;
4480
0
}
4481
4482
static int
4483
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_)
4484
0
{
4485
0
  offset = rcg_dissect_struct_KeyAgreementGenerateNonceReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_keyAgreementGenerateNonce,0);
4486
4487
0
  return offset;
4488
0
}
4489
4490
static int
4491
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_)
4492
0
{
4493
0
  offset = rcg_dissect_struct_FinalizeKeyAgreementReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbInputUnion_finalizeKeyAgreement,0);
4494
4495
0
  return offset;
4496
0
}
4497
4498
static int
4499
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_)
4500
0
{
4501
0
  proto_item *item = NULL;
4502
0
  proto_tree *tree = NULL;
4503
0
  int old_offset;
4504
0
  uint16_t level;
4505
4506
0
  old_offset = offset;
4507
0
  if (parent_tree) {
4508
0
    tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_rcg_KerbInputUnion, &item, "KerbInputUnion");
4509
0
  }
4510
4511
0
  offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
4512
0
  ALIGN_TO_4_BYTES;
4513
4514
0
  switch(level) {
4515
0
    case RemoteCallKerbNegotiateVersion:
4516
0
      offset = rcg_dissect_element_KerbInputUnion_negociateVersion(tvb, offset, pinfo, tree, di, drep);
4517
0
    break;
4518
4519
0
    case RemoteCallKerbBuildAsReqAuthenticator:
4520
0
      offset = rcg_dissect_element_KerbInputUnion_buildAsReqAuthenticator(tvb, offset, pinfo, tree, di, drep);
4521
0
    break;
4522
4523
0
    case RemoteCallKerbVerifyServiceTicket:
4524
0
      offset = rcg_dissect_element_KerbInputUnion_verifyServiceTicket(tvb, offset, pinfo, tree, di, drep);
4525
0
    break;
4526
4527
0
    case RemoteCallKerbCreateApReqAuthenticator:
4528
0
      offset = rcg_dissect_element_KerbInputUnion_createApReqAuthenticator(tvb, offset, pinfo, tree, di, drep);
4529
0
    break;
4530
4531
0
    case RemoteCallKerbDecryptApReply:
4532
0
      offset = rcg_dissect_element_KerbInputUnion_decryptApReply(tvb, offset, pinfo, tree, di, drep);
4533
0
    break;
4534
4535
0
    case RemoteCallKerbUnpackKdcReplyBody:
4536
0
      offset = rcg_dissect_element_KerbInputUnion_unpackKdcReplyBody(tvb, offset, pinfo, tree, di, drep);
4537
0
    break;
4538
4539
0
    case RemoteCallKerbComputeTgsChecksum:
4540
0
      offset = rcg_dissect_element_KerbInputUnion_computeTgsChecksum(tvb, offset, pinfo, tree, di, drep);
4541
0
    break;
4542
4543
0
    case RemoteCallKerbBuildEncryptedAuthData:
4544
0
      offset = rcg_dissect_element_KerbInputUnion_buildEncryptedAuthData(tvb, offset, pinfo, tree, di, drep);
4545
0
    break;
4546
4547
0
    case RemoteCallKerbPackApReply:
4548
0
      offset = rcg_dissect_element_KerbInputUnion_packApReply(tvb, offset, pinfo, tree, di, drep);
4549
0
    break;
4550
4551
0
    case RemoteCallKerbHashS4UPreauth:
4552
0
      offset = rcg_dissect_element_KerbInputUnion_hashS4UPreauth(tvb, offset, pinfo, tree, di, drep);
4553
0
    break;
4554
4555
0
    case RemoteCallKerbSignS4UPreauthData:
4556
0
      offset = rcg_dissect_element_KerbInputUnion_signS4UPreauthData(tvb, offset, pinfo, tree, di, drep);
4557
0
    break;
4558
4559
0
    case RemoteCallKerbVerifyChecksum:
4560
0
      offset = rcg_dissect_element_KerbInputUnion_verifyChecksum(tvb, offset, pinfo, tree, di, drep);
4561
0
    break;
4562
4563
0
    case RemoteCallKerbDecryptPacCredentials:
4564
0
      offset = rcg_dissect_element_KerbInputUnion_decryptPacCredentials(tvb, offset, pinfo, tree, di, drep);
4565
0
    break;
4566
4567
0
    case RemoteCallKerbCreateECDHKeyAgreement:
4568
0
      offset = rcg_dissect_element_KerbInputUnion_createECDHKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4569
0
    break;
4570
4571
0
    case RemoteCallKerbCreateDHKeyAgreement:
4572
0
      offset = rcg_dissect_element_KerbInputUnion_createDHKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4573
0
    break;
4574
4575
0
    case RemoteCallKerbDestroyKeyAgreement:
4576
0
      offset = rcg_dissect_element_KerbInputUnion_destroyKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4577
0
    break;
4578
4579
0
    case RemoteCallKerbKeyAgreementGenerateNonce:
4580
0
      offset = rcg_dissect_element_KerbInputUnion_keyAgreementGenerateNonce(tvb, offset, pinfo, tree, di, drep);
4581
0
    break;
4582
4583
0
    case RemoteCallKerbFinalizeKeyAgreement:
4584
0
      offset = rcg_dissect_element_KerbInputUnion_finalizeKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4585
0
    break;
4586
0
  }
4587
0
  proto_item_set_len(item, offset-old_offset);
4588
4589
4590
0
  return offset;
4591
0
}
4592
4593
/* IDL: struct { */
4594
/* IDL:   RemoteGuardCallId CallId; */
4595
/* IDL:   [switch_is(CallId)] [switch_type(uint16)] KerbInputUnion callUnion; */
4596
/* IDL: } */
4597
4598
static int
4599
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)
4600
0
{
4601
0
  offset = rcg_dissect_enum_RemoteGuardCallId(tvb, offset, pinfo, tree, di, drep, hf_rcg_KerbCredIsoRemoteInput_CallId, CallId);
4602
4603
0
  return offset;
4604
0
}
4605
4606
static int
4607
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)
4608
0
{
4609
0
  offset = rcg_dissect_KerbInputUnion(tvb, offset, pinfo, tree, di, drep, hf_rcg_KerbCredIsoRemoteInput_callUnion, *CallId);
4610
4611
0
  return offset;
4612
0
}
4613
4614
4615
/* IDL: [flag(LIBNDR_FLAG_ALIGN4)] [switch_type(uint16)] union { */
4616
/* IDL: [case(RemoteCallKerbNegotiateVersion)] [case(RemoteCallKerbNegotiateVersion)] NegotiateVersion negociateVersion; */
4617
/* IDL: [case(RemoteCallKerbBuildAsReqAuthenticator)] [case(RemoteCallKerbBuildAsReqAuthenticator)] BuildAsReqAuthenticatorResp buildAsReqAuthenticator; */
4618
/* IDL: [case(RemoteCallKerbVerifyServiceTicket)] [case(RemoteCallKerbVerifyServiceTicket)] VerifyServiceTicketResp verifyServiceTicket; */
4619
/* IDL: [case(RemoteCallKerbCreateApReqAuthenticator)] [case(RemoteCallKerbCreateApReqAuthenticator)] CreateApReqAuthenticatorResp createApReqAuthenticator; */
4620
/* IDL: [case(RemoteCallKerbDecryptApReply)] [case(RemoteCallKerbDecryptApReply)] DecryptApReplyResp decryptApReply; */
4621
/* IDL: [case(RemoteCallKerbUnpackKdcReplyBody)] [case(RemoteCallKerbUnpackKdcReplyBody)] UnpackKdcReplyBodyResp unpackKdcReplyBody; */
4622
/* IDL: [case(RemoteCallKerbComputeTgsChecksum)] [case(RemoteCallKerbComputeTgsChecksum)] ComputeTgsChecksumResp computeTgsChecksum; */
4623
/* IDL: [case(RemoteCallKerbBuildEncryptedAuthData)] [case(RemoteCallKerbBuildEncryptedAuthData)] BuildEncryptedAuthDataResp buildEncryptedAuthData; */
4624
/* IDL: [case(RemoteCallKerbPackApReply)] [case(RemoteCallKerbPackApReply)] PackApReplyResp packApReply; */
4625
/* IDL: [case(RemoteCallKerbHashS4UPreauth)] [case(RemoteCallKerbHashS4UPreauth)] HashS4UPreauthResp hashS4UPreauth; */
4626
/* IDL: [case(RemoteCallKerbSignS4UPreauthData)] [case(RemoteCallKerbSignS4UPreauthData)] SignS4UPreauthDataResp signS4UPreauthData; */
4627
/* IDL: [case(RemoteCallKerbVerifyChecksum)] [case(RemoteCallKerbVerifyChecksum)] VerifyChecksumResp verifyChecksum; */
4628
/* IDL: [case(RemoteCallKerbDecryptPacCredentials)] [case(RemoteCallKerbDecryptPacCredentials)] DecryptPacCredentialsResp decryptPacCredentials; */
4629
/* IDL: [case(RemoteCallKerbCreateECDHKeyAgreement)] [case(RemoteCallKerbCreateECDHKeyAgreement)] CreateECDHKeyAgreementResp createECDHKeyAgreement; */
4630
/* IDL: [case(RemoteCallKerbCreateDHKeyAgreement)] [case(RemoteCallKerbCreateDHKeyAgreement)] CreateDHKeyAgreementResp createDHKeyAgreement; */
4631
/* IDL: [case(RemoteCallKerbDestroyKeyAgreement)] [case(RemoteCallKerbDestroyKeyAgreement)] DestroyKeyAgreementResp destroyKeyAgreement; */
4632
/* IDL: [case(RemoteCallKerbKeyAgreementGenerateNonce)] [case(RemoteCallKerbKeyAgreementGenerateNonce)] KeyAgreementGenerateNonceResp keyAgreementGenerateNonce; */
4633
/* IDL: [case(RemoteCallKerbFinalizeKeyAgreement)] [case(RemoteCallKerbFinalizeKeyAgreement)] FinalizeKeyAgreementResp finalizeKeyAgreement; */
4634
/* IDL: } */
4635
4636
static int
4637
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_)
4638
0
{
4639
0
  offset = rcg_dissect_struct_NegotiateVersion(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_negociateVersion,0);
4640
4641
0
  return offset;
4642
0
}
4643
4644
static int
4645
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_)
4646
0
{
4647
0
  offset = rcg_dissect_struct_BuildAsReqAuthenticatorResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_buildAsReqAuthenticator,0);
4648
4649
0
  return offset;
4650
0
}
4651
4652
static int
4653
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_)
4654
0
{
4655
0
  offset = rcg_dissect_struct_VerifyServiceTicketResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_verifyServiceTicket,0);
4656
4657
0
  return offset;
4658
0
}
4659
4660
static int
4661
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_)
4662
0
{
4663
0
  offset = rcg_dissect_struct_CreateApReqAuthenticatorResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_createApReqAuthenticator,0);
4664
4665
0
  return offset;
4666
0
}
4667
4668
static int
4669
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_)
4670
0
{
4671
0
  offset = rcg_dissect_struct_DecryptApReplyResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_decryptApReply,0);
4672
4673
0
  return offset;
4674
0
}
4675
4676
static int
4677
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_)
4678
0
{
4679
0
  offset = rcg_dissect_struct_UnpackKdcReplyBodyResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_unpackKdcReplyBody,0);
4680
4681
0
  return offset;
4682
0
}
4683
4684
static int
4685
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_)
4686
0
{
4687
0
  offset = rcg_dissect_struct_ComputeTgsChecksumResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_computeTgsChecksum,0);
4688
4689
0
  return offset;
4690
0
}
4691
4692
static int
4693
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_)
4694
0
{
4695
0
  offset = rcg_dissect_struct_BuildEncryptedAuthDataResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_buildEncryptedAuthData,0);
4696
4697
0
  return offset;
4698
0
}
4699
4700
static int
4701
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_)
4702
0
{
4703
0
  offset = rcg_dissect_struct_PackApReplyResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_packApReply,0);
4704
4705
0
  return offset;
4706
0
}
4707
4708
static int
4709
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_)
4710
0
{
4711
0
  offset = rcg_dissect_struct_HashS4UPreauthResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_hashS4UPreauth,0);
4712
4713
0
  return offset;
4714
0
}
4715
4716
static int
4717
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_)
4718
0
{
4719
0
  offset = rcg_dissect_struct_SignS4UPreauthDataResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_signS4UPreauthData,0);
4720
4721
0
  return offset;
4722
0
}
4723
4724
static int
4725
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_)
4726
0
{
4727
0
  offset = rcg_dissect_struct_VerifyChecksumResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_verifyChecksum,0);
4728
4729
0
  return offset;
4730
0
}
4731
4732
static int
4733
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_)
4734
0
{
4735
0
  offset = rcg_dissect_struct_DecryptPacCredentialsResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_decryptPacCredentials,0);
4736
4737
0
  return offset;
4738
0
}
4739
4740
static int
4741
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_)
4742
0
{
4743
0
  offset = rcg_dissect_struct_CreateECDHKeyAgreementResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_createECDHKeyAgreement,0);
4744
4745
0
  return offset;
4746
0
}
4747
4748
static int
4749
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_)
4750
0
{
4751
0
  offset = rcg_dissect_struct_CreateDHKeyAgreementResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_createDHKeyAgreement,0);
4752
4753
0
  return offset;
4754
0
}
4755
4756
static int
4757
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_)
4758
0
{
4759
0
  offset = rcg_dissect_struct_DestroyKeyAgreementResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_destroyKeyAgreement,0);
4760
4761
0
  return offset;
4762
0
}
4763
4764
static int
4765
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_)
4766
0
{
4767
0
  offset = rcg_dissect_struct_KeyAgreementGenerateNonceResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_keyAgreementGenerateNonce,0);
4768
4769
0
  return offset;
4770
0
}
4771
4772
static int
4773
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_)
4774
0
{
4775
0
  offset = rcg_dissect_struct_FinalizeKeyAgreementResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_KerbOutputUnion_finalizeKeyAgreement,0);
4776
4777
0
  return offset;
4778
0
}
4779
4780
static int
4781
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_)
4782
0
{
4783
0
  proto_item *item = NULL;
4784
0
  proto_tree *tree = NULL;
4785
0
  int old_offset;
4786
0
  uint16_t level;
4787
4788
0
  old_offset = offset;
4789
0
  if (parent_tree) {
4790
0
    tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_rcg_KerbOutputUnion, &item, "KerbOutputUnion");
4791
0
  }
4792
4793
0
  offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
4794
0
  ALIGN_TO_4_BYTES;
4795
4796
0
  switch(level) {
4797
0
    case RemoteCallKerbNegotiateVersion:
4798
0
      offset = rcg_dissect_element_KerbOutputUnion_negociateVersion(tvb, offset, pinfo, tree, di, drep);
4799
0
    break;
4800
4801
0
    case RemoteCallKerbBuildAsReqAuthenticator:
4802
0
      offset = rcg_dissect_element_KerbOutputUnion_buildAsReqAuthenticator(tvb, offset, pinfo, tree, di, drep);
4803
0
    break;
4804
4805
0
    case RemoteCallKerbVerifyServiceTicket:
4806
0
      offset = rcg_dissect_element_KerbOutputUnion_verifyServiceTicket(tvb, offset, pinfo, tree, di, drep);
4807
0
    break;
4808
4809
0
    case RemoteCallKerbCreateApReqAuthenticator:
4810
0
      offset = rcg_dissect_element_KerbOutputUnion_createApReqAuthenticator(tvb, offset, pinfo, tree, di, drep);
4811
0
    break;
4812
4813
0
    case RemoteCallKerbDecryptApReply:
4814
0
      offset = rcg_dissect_element_KerbOutputUnion_decryptApReply(tvb, offset, pinfo, tree, di, drep);
4815
0
    break;
4816
4817
0
    case RemoteCallKerbUnpackKdcReplyBody:
4818
0
      offset = rcg_dissect_element_KerbOutputUnion_unpackKdcReplyBody(tvb, offset, pinfo, tree, di, drep);
4819
0
    break;
4820
4821
0
    case RemoteCallKerbComputeTgsChecksum:
4822
0
      offset = rcg_dissect_element_KerbOutputUnion_computeTgsChecksum(tvb, offset, pinfo, tree, di, drep);
4823
0
    break;
4824
4825
0
    case RemoteCallKerbBuildEncryptedAuthData:
4826
0
      offset = rcg_dissect_element_KerbOutputUnion_buildEncryptedAuthData(tvb, offset, pinfo, tree, di, drep);
4827
0
    break;
4828
4829
0
    case RemoteCallKerbPackApReply:
4830
0
      offset = rcg_dissect_element_KerbOutputUnion_packApReply(tvb, offset, pinfo, tree, di, drep);
4831
0
    break;
4832
4833
0
    case RemoteCallKerbHashS4UPreauth:
4834
0
      offset = rcg_dissect_element_KerbOutputUnion_hashS4UPreauth(tvb, offset, pinfo, tree, di, drep);
4835
0
    break;
4836
4837
0
    case RemoteCallKerbSignS4UPreauthData:
4838
0
      offset = rcg_dissect_element_KerbOutputUnion_signS4UPreauthData(tvb, offset, pinfo, tree, di, drep);
4839
0
    break;
4840
4841
0
    case RemoteCallKerbVerifyChecksum:
4842
0
      offset = rcg_dissect_element_KerbOutputUnion_verifyChecksum(tvb, offset, pinfo, tree, di, drep);
4843
0
    break;
4844
4845
0
    case RemoteCallKerbDecryptPacCredentials:
4846
0
      offset = rcg_dissect_element_KerbOutputUnion_decryptPacCredentials(tvb, offset, pinfo, tree, di, drep);
4847
0
    break;
4848
4849
0
    case RemoteCallKerbCreateECDHKeyAgreement:
4850
0
      offset = rcg_dissect_element_KerbOutputUnion_createECDHKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4851
0
    break;
4852
4853
0
    case RemoteCallKerbCreateDHKeyAgreement:
4854
0
      offset = rcg_dissect_element_KerbOutputUnion_createDHKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4855
0
    break;
4856
4857
0
    case RemoteCallKerbDestroyKeyAgreement:
4858
0
      offset = rcg_dissect_element_KerbOutputUnion_destroyKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4859
0
    break;
4860
4861
0
    case RemoteCallKerbKeyAgreementGenerateNonce:
4862
0
      offset = rcg_dissect_element_KerbOutputUnion_keyAgreementGenerateNonce(tvb, offset, pinfo, tree, di, drep);
4863
0
    break;
4864
4865
0
    case RemoteCallKerbFinalizeKeyAgreement:
4866
0
      offset = rcg_dissect_element_KerbOutputUnion_finalizeKeyAgreement(tvb, offset, pinfo, tree, di, drep);
4867
0
    break;
4868
0
  }
4869
0
  proto_item_set_len(item, offset-old_offset);
4870
4871
4872
0
  return offset;
4873
0
}
4874
4875
/* IDL: struct { */
4876
/* IDL:   RemoteGuardCallId CallId; */
4877
/* IDL:   NTSTATUS Status; */
4878
/* IDL:   [switch_is(CallId)] [switch_type(RemoteGuardCallId)] KerbOutputUnion callUnion; */
4879
/* IDL: } */
4880
4881
static int
4882
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)
4883
0
{
4884
0
  offset = rcg_dissect_enum_RemoteGuardCallId(tvb, offset, pinfo, tree, di, drep, hf_rcg_KerbCredIsoRemoteOutput_CallId, CallId);
4885
4886
0
  return offset;
4887
0
}
4888
4889
static int
4890
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_)
4891
0
{
4892
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_KerbCredIsoRemoteOutput_Status, 0);
4893
4894
0
  return offset;
4895
0
}
4896
4897
static int
4898
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)
4899
0
{
4900
0
  offset = rcg_dissect_KerbOutputUnion(tvb, offset, pinfo, tree, di, drep, hf_rcg_KerbCredIsoRemoteOutput_callUnion, *CallId);
4901
4902
0
  return offset;
4903
0
}
4904
4905
4906
/* IDL: struct { */
4907
/* IDL:   uint8 Data[24]; */
4908
/* IDL: } */
4909
4910
static int
4911
rcg_dissect_element_NT_RESPONSE_Data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4912
0
{
4913
0
  int i;
4914
0
  for (i = 0; i < 24; i++)
4915
0
    offset = rcg_dissect_element_NT_RESPONSE_Data_(tvb, offset, pinfo, tree, di, drep);
4916
4917
0
  return offset;
4918
0
}
4919
4920
static int
4921
rcg_dissect_element_NT_RESPONSE_Data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4922
0
{
4923
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_NT_RESPONSE_Data, 0);
4924
4925
0
  return offset;
4926
0
}
4927
4928
int
4929
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_)
4930
0
{
4931
0
  proto_item *item = NULL;
4932
0
  proto_tree *tree = NULL;
4933
0
  int old_offset;
4934
4935
0
  old_offset = offset;
4936
4937
0
  if (parent_tree) {
4938
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4939
0
    tree = proto_item_add_subtree(item, ett_rcg_NT_RESPONSE);
4940
0
  }
4941
4942
0
  offset = rcg_dissect_element_NT_RESPONSE_Data(tvb, offset, pinfo, tree, di, drep);
4943
4944
4945
0
  proto_item_set_len(item, offset-old_offset);
4946
4947
4948
0
  return offset;
4949
0
}
4950
4951
4952
/* IDL: struct _NT_CHALLENGE { */
4953
/* IDL:   uint8 Data[8]; */
4954
/* IDL: } */
4955
4956
static int
4957
rcg_dissect_element_NT_CHALLENGE_Data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4958
0
{
4959
0
  int i;
4960
0
  for (i = 0; i < 8; i++)
4961
0
    offset = rcg_dissect_element_NT_CHALLENGE_Data_(tvb, offset, pinfo, tree, di, drep);
4962
4963
0
  return offset;
4964
0
}
4965
4966
static int
4967
rcg_dissect_element_NT_CHALLENGE_Data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4968
0
{
4969
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_NT_CHALLENGE_Data, 0);
4970
4971
0
  return offset;
4972
0
}
4973
4974
int
4975
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_)
4976
0
{
4977
0
  proto_item *item = NULL;
4978
0
  proto_tree *tree = NULL;
4979
0
  int old_offset;
4980
4981
0
  ALIGN_TO_4_BYTES;
4982
4983
0
  old_offset = offset;
4984
4985
0
  if (parent_tree) {
4986
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4987
0
    tree = proto_item_add_subtree(item, ett_rcg_NT_CHALLENGE);
4988
0
  }
4989
4990
0
  offset = rcg_dissect_element_NT_CHALLENGE_Data(tvb, offset, pinfo, tree, di, drep);
4991
4992
4993
0
  proto_item_set_len(item, offset-old_offset);
4994
4995
4996
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
4997
0
    ALIGN_TO_4_BYTES;
4998
0
  }
4999
5000
0
  return offset;
5001
0
}
5002
5003
5004
/* IDL: struct _LM_SESSION_KEY { */
5005
/* IDL:   uint8 Data[8]; */
5006
/* IDL: } */
5007
5008
static int
5009
rcg_dissect_element_LM_SESSION_KEY_Data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5010
0
{
5011
0
  int i;
5012
0
  for (i = 0; i < 8; i++)
5013
0
    offset = rcg_dissect_element_LM_SESSION_KEY_Data_(tvb, offset, pinfo, tree, di, drep);
5014
5015
0
  return offset;
5016
0
}
5017
5018
static int
5019
rcg_dissect_element_LM_SESSION_KEY_Data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5020
0
{
5021
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_LM_SESSION_KEY_Data, 0);
5022
5023
0
  return offset;
5024
0
}
5025
5026
int
5027
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_)
5028
0
{
5029
0
  proto_item *item = NULL;
5030
0
  proto_tree *tree = NULL;
5031
0
  int old_offset;
5032
5033
0
  ALIGN_TO_4_BYTES;
5034
5035
0
  old_offset = offset;
5036
5037
0
  if (parent_tree) {
5038
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5039
0
    tree = proto_item_add_subtree(item, ett_rcg_LM_SESSION_KEY);
5040
0
  }
5041
5042
0
  offset = rcg_dissect_element_LM_SESSION_KEY_Data(tvb, offset, pinfo, tree, di, drep);
5043
5044
5045
0
  proto_item_set_len(item, offset-old_offset);
5046
5047
5048
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
5049
0
    ALIGN_TO_4_BYTES;
5050
0
  }
5051
5052
0
  return offset;
5053
0
}
5054
5055
5056
/* IDL: struct { */
5057
/* IDL:   uint8 Response[16]; */
5058
/* IDL:   uint8 ChallengeFromClient[8]; */
5059
/* IDL: } */
5060
5061
static int
5062
rcg_dissect_element_MSV1_0_LM3_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5063
0
{
5064
0
  int i;
5065
0
  for (i = 0; i < 16; i++)
5066
0
    offset = rcg_dissect_element_MSV1_0_LM3_RESPONSE_Response_(tvb, offset, pinfo, tree, di, drep);
5067
5068
0
  return offset;
5069
0
}
5070
5071
static int
5072
rcg_dissect_element_MSV1_0_LM3_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5073
0
{
5074
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_MSV1_0_LM3_RESPONSE_Response, 0);
5075
5076
0
  return offset;
5077
0
}
5078
5079
static int
5080
rcg_dissect_element_MSV1_0_LM3_RESPONSE_ChallengeFromClient(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5081
0
{
5082
0
  int i;
5083
0
  for (i = 0; i < 8; i++)
5084
0
    offset = rcg_dissect_element_MSV1_0_LM3_RESPONSE_ChallengeFromClient_(tvb, offset, pinfo, tree, di, drep);
5085
5086
0
  return offset;
5087
0
}
5088
5089
static int
5090
rcg_dissect_element_MSV1_0_LM3_RESPONSE_ChallengeFromClient_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5091
0
{
5092
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_MSV1_0_LM3_RESPONSE_ChallengeFromClient, 0);
5093
5094
0
  return offset;
5095
0
}
5096
5097
int
5098
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_)
5099
0
{
5100
0
  proto_item *item = NULL;
5101
0
  proto_tree *tree = NULL;
5102
0
  int old_offset;
5103
5104
0
  old_offset = offset;
5105
5106
0
  if (parent_tree) {
5107
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5108
0
    tree = proto_item_add_subtree(item, ett_rcg_MSV1_0_LM3_RESPONSE);
5109
0
  }
5110
5111
0
  offset = rcg_dissect_element_MSV1_0_LM3_RESPONSE_Response(tvb, offset, pinfo, tree, di, drep);
5112
5113
0
  offset = rcg_dissect_element_MSV1_0_LM3_RESPONSE_ChallengeFromClient(tvb, offset, pinfo, tree, di, drep);
5114
5115
5116
0
  proto_item_set_len(item, offset-old_offset);
5117
5118
5119
0
  return offset;
5120
0
}
5121
5122
5123
/* IDL: struct { */
5124
/* IDL:   uint8 Data[16]; */
5125
/* IDL: } */
5126
5127
static int
5128
rcg_dissect_element_USER_SESSION_KEY_Data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5129
0
{
5130
0
  int i;
5131
0
  for (i = 0; i < 16; i++)
5132
0
    offset = rcg_dissect_element_USER_SESSION_KEY_Data_(tvb, offset, pinfo, tree, di, drep);
5133
5134
0
  return offset;
5135
0
}
5136
5137
static int
5138
rcg_dissect_element_USER_SESSION_KEY_Data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5139
0
{
5140
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_USER_SESSION_KEY_Data, 0);
5141
5142
0
  return offset;
5143
0
}
5144
5145
int
5146
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_)
5147
0
{
5148
0
  proto_item *item = NULL;
5149
0
  proto_tree *tree = NULL;
5150
0
  int old_offset;
5151
5152
0
  old_offset = offset;
5153
5154
0
  if (parent_tree) {
5155
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5156
0
    tree = proto_item_add_subtree(item, ett_rcg_USER_SESSION_KEY);
5157
0
  }
5158
5159
0
  offset = rcg_dissect_element_USER_SESSION_KEY_Data(tvb, offset, pinfo, tree, di, drep);
5160
5161
5162
0
  proto_item_set_len(item, offset-old_offset);
5163
5164
5165
0
  return offset;
5166
0
}
5167
5168
5169
/* IDL: struct { */
5170
/* IDL:   uint8 Data[20]; */
5171
/* IDL: } */
5172
5173
static int
5174
rcg_dissect_element_MSV1_0_CREDENTIAL_KEY_Data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5175
0
{
5176
0
  int i;
5177
0
  for (i = 0; i < 20; i++)
5178
0
    offset = rcg_dissect_element_MSV1_0_CREDENTIAL_KEY_Data_(tvb, offset, pinfo, tree, di, drep);
5179
5180
0
  return offset;
5181
0
}
5182
5183
static int
5184
rcg_dissect_element_MSV1_0_CREDENTIAL_KEY_Data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5185
0
{
5186
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_MSV1_0_CREDENTIAL_KEY_Data, 0);
5187
5188
0
  return offset;
5189
0
}
5190
5191
int
5192
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_)
5193
0
{
5194
0
  proto_item *item = NULL;
5195
0
  proto_tree *tree = NULL;
5196
0
  int old_offset;
5197
5198
0
  old_offset = offset;
5199
5200
0
  if (parent_tree) {
5201
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5202
0
    tree = proto_item_add_subtree(item, ett_rcg_MSV1_0_CREDENTIAL_KEY);
5203
0
  }
5204
5205
0
  offset = rcg_dissect_element_MSV1_0_CREDENTIAL_KEY_Data(tvb, offset, pinfo, tree, di, drep);
5206
5207
5208
0
  proto_item_set_len(item, offset-old_offset);
5209
5210
5211
0
  return offset;
5212
0
}
5213
5214
5215
/* IDL: struct _MSV1_0_REMOTE_ENCRYPTED_SECRETS { */
5216
/* IDL:   uint32 reserved1; */
5217
/* IDL:   uint32 reserved2; */
5218
/* IDL:   uint32 reserved3; */
5219
/* IDL:   MSV1_0_CREDENTIAL_KEY reserved4; */
5220
/* IDL:   MSV1_0_CREDENTIAL_KEY reserved5; */
5221
/* IDL:   uint32 reservedSize; */
5222
/* IDL:   [ref] [size_is(reservedSize)] uint8 *reserved6; */
5223
/* IDL: } */
5224
5225
static int
5226
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_)
5227
0
{
5228
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved1, 0);
5229
5230
0
  return offset;
5231
0
}
5232
5233
static int
5234
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_)
5235
0
{
5236
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved2, 0);
5237
5238
0
  return offset;
5239
0
}
5240
5241
static int
5242
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_)
5243
0
{
5244
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved3, 0);
5245
5246
0
  return offset;
5247
0
}
5248
5249
static int
5250
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_)
5251
0
{
5252
0
  offset = rcg_dissect_struct_MSV1_0_CREDENTIAL_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved4,0);
5253
5254
0
  return offset;
5255
0
}
5256
5257
static int
5258
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_)
5259
0
{
5260
0
  offset = rcg_dissect_struct_MSV1_0_CREDENTIAL_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved5,0);
5261
5262
0
  return offset;
5263
0
}
5264
5265
static int
5266
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_)
5267
0
{
5268
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reservedSize, 0);
5269
5270
0
  return offset;
5271
0
}
5272
5273
static int
5274
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_)
5275
0
{
5276
0
  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);
5277
5278
0
  return offset;
5279
0
}
5280
5281
static int
5282
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_)
5283
0
{
5284
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6__);
5285
5286
0
  return offset;
5287
0
}
5288
5289
static int
5290
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_)
5291
0
{
5292
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6, 0);
5293
5294
0
  return offset;
5295
0
}
5296
5297
int
5298
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_)
5299
0
{
5300
0
  proto_item *item = NULL;
5301
0
  proto_tree *tree = NULL;
5302
0
  int old_offset;
5303
5304
0
  ALIGN_TO_4_BYTES;
5305
5306
0
  old_offset = offset;
5307
5308
0
  if (parent_tree) {
5309
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5310
0
    tree = proto_item_add_subtree(item, ett_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS);
5311
0
  }
5312
5313
0
  offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved1(tvb, offset, pinfo, tree, di, drep);
5314
5315
0
  offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved2(tvb, offset, pinfo, tree, di, drep);
5316
5317
0
  offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved3(tvb, offset, pinfo, tree, di, drep);
5318
5319
0
  offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved4(tvb, offset, pinfo, tree, di, drep);
5320
5321
0
  offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved5(tvb, offset, pinfo, tree, di, drep);
5322
5323
0
  offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reservedSize(tvb, offset, pinfo, tree, di, drep);
5324
5325
0
  offset = rcg_dissect_element_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6(tvb, offset, pinfo, tree, di, drep);
5326
5327
5328
0
  proto_item_set_len(item, offset-old_offset);
5329
5330
5331
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
5332
0
    ALIGN_TO_4_BYTES;
5333
0
  }
5334
5335
0
  return offset;
5336
0
}
5337
5338
5339
/* IDL: struct { */
5340
/* IDL:   [ref] MSV1_0_REMOTE_ENCRYPTED_SECRETS *Credential; */
5341
/* IDL:   [ref] RPC_UNICODE_STRING *UserName; */
5342
/* IDL:   [ref] RPC_UNICODE_STRING *LogonDomainName; */
5343
/* IDL:   [ref] RPC_UNICODE_STRING *ServerName; */
5344
/* IDL:   uint8 ChallengeToClient[8]; */
5345
/* IDL: } */
5346
5347
static int
5348
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_)
5349
0
{
5350
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_Credential_, NDR_POINTER_REF, "Pointer to Credential (MSV1_0_REMOTE_ENCRYPTED_SECRETS)",hf_rcg_Lm20GetNtlm3ChallengeResponseReq_Credential);
5351
5352
0
  return offset;
5353
0
}
5354
5355
static int
5356
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_)
5357
0
{
5358
0
  offset = rcg_dissect_struct_MSV1_0_REMOTE_ENCRYPTED_SECRETS(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseReq_Credential,0);
5359
5360
0
  return offset;
5361
0
}
5362
5363
static int
5364
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_)
5365
0
{
5366
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_UserName_, NDR_POINTER_REF, "Pointer to UserName (RPC_UNICODE_STRING)",hf_rcg_Lm20GetNtlm3ChallengeResponseReq_UserName);
5367
5368
0
  return offset;
5369
0
}
5370
5371
static int
5372
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_)
5373
0
{
5374
0
  offset = rcg_dissect_struct_RPC_UNICODE_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseReq_UserName,0);
5375
5376
0
  return offset;
5377
0
}
5378
5379
static int
5380
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_)
5381
0
{
5382
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_LogonDomainName_, NDR_POINTER_REF, "Pointer to LogonDomainName (RPC_UNICODE_STRING)",hf_rcg_Lm20GetNtlm3ChallengeResponseReq_LogonDomainName);
5383
5384
0
  return offset;
5385
0
}
5386
5387
static int
5388
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_)
5389
0
{
5390
0
  offset = rcg_dissect_struct_RPC_UNICODE_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseReq_LogonDomainName,0);
5391
5392
0
  return offset;
5393
0
}
5394
5395
static int
5396
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_)
5397
0
{
5398
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_ServerName_, NDR_POINTER_REF, "Pointer to ServerName (RPC_UNICODE_STRING)",hf_rcg_Lm20GetNtlm3ChallengeResponseReq_ServerName);
5399
5400
0
  return offset;
5401
0
}
5402
5403
static int
5404
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_)
5405
0
{
5406
0
  offset = rcg_dissect_struct_RPC_UNICODE_STRING(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseReq_ServerName,0);
5407
5408
0
  return offset;
5409
0
}
5410
5411
static int
5412
rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_ChallengeToClient(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5413
0
{
5414
0
  int i;
5415
0
  for (i = 0; i < 8; i++)
5416
0
    offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_ChallengeToClient_(tvb, offset, pinfo, tree, di, drep);
5417
5418
0
  return offset;
5419
0
}
5420
5421
static int
5422
rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_ChallengeToClient_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5423
0
{
5424
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_Lm20GetNtlm3ChallengeResponseReq_ChallengeToClient, 0);
5425
5426
0
  return offset;
5427
0
}
5428
5429
int
5430
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_)
5431
0
{
5432
0
  proto_item *item = NULL;
5433
0
  proto_tree *tree = NULL;
5434
0
  int old_offset;
5435
5436
0
  ALIGN_TO_5_BYTES;
5437
5438
0
  old_offset = offset;
5439
5440
0
  if (parent_tree) {
5441
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5442
0
    tree = proto_item_add_subtree(item, ett_rcg_Lm20GetNtlm3ChallengeResponseReq);
5443
0
  }
5444
5445
0
  offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_Credential(tvb, offset, pinfo, tree, di, drep);
5446
5447
0
  offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_UserName(tvb, offset, pinfo, tree, di, drep);
5448
5449
0
  offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_LogonDomainName(tvb, offset, pinfo, tree, di, drep);
5450
5451
0
  offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_ServerName(tvb, offset, pinfo, tree, di, drep);
5452
5453
0
  offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseReq_ChallengeToClient(tvb, offset, pinfo, tree, di, drep);
5454
5455
5456
0
  proto_item_set_len(item, offset-old_offset);
5457
5458
5459
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
5460
0
    ALIGN_TO_5_BYTES;
5461
0
  }
5462
5463
0
  return offset;
5464
0
}
5465
5466
5467
/* IDL: struct { */
5468
/* IDL:   uint16 Ntlm3ResponseLength; */
5469
/* IDL:   [ref] [size_is(Ntlm3ResponseLength)] uint8 *Ntlm3Response; */
5470
/* IDL:   MSV1_0_LM3_RESPONSE Lm3Response; */
5471
/* IDL:   USER_SESSION_KEY UserSessionKey; */
5472
/* IDL:   LM_SESSION_KEY LmSessionKey; */
5473
/* IDL: } */
5474
5475
static int
5476
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_)
5477
0
{
5478
0
  offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Ntlm3ResponseLength, 0);
5479
5480
0
  return offset;
5481
0
}
5482
5483
static int
5484
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_)
5485
0
{
5486
0
  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);
5487
5488
0
  return offset;
5489
0
}
5490
5491
static int
5492
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_)
5493
0
{
5494
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response__);
5495
5496
0
  return offset;
5497
0
}
5498
5499
static int
5500
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_)
5501
0
{
5502
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response, 0);
5503
5504
0
  return offset;
5505
0
}
5506
5507
static int
5508
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_)
5509
0
{
5510
0
  offset = rcg_dissect_struct_MSV1_0_LM3_RESPONSE(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Lm3Response,0);
5511
5512
0
  return offset;
5513
0
}
5514
5515
static int
5516
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_)
5517
0
{
5518
0
  offset = rcg_dissect_struct_USER_SESSION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseResp_UserSessionKey,0);
5519
5520
0
  return offset;
5521
0
}
5522
5523
static int
5524
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_)
5525
0
{
5526
0
  offset = rcg_dissect_struct_LM_SESSION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_Lm20GetNtlm3ChallengeResponseResp_LmSessionKey,0);
5527
5528
0
  return offset;
5529
0
}
5530
5531
int
5532
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_)
5533
0
{
5534
0
  proto_item *item = NULL;
5535
0
  proto_tree *tree = NULL;
5536
0
  int old_offset;
5537
5538
0
  ALIGN_TO_5_BYTES;
5539
5540
0
  old_offset = offset;
5541
5542
0
  if (parent_tree) {
5543
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5544
0
    tree = proto_item_add_subtree(item, ett_rcg_Lm20GetNtlm3ChallengeResponseResp);
5545
0
  }
5546
5547
0
  offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Ntlm3ResponseLength(tvb, offset, pinfo, tree, di, drep);
5548
5549
0
  offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response(tvb, offset, pinfo, tree, di, drep);
5550
5551
0
  offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_Lm3Response(tvb, offset, pinfo, tree, di, drep);
5552
5553
0
  offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_UserSessionKey(tvb, offset, pinfo, tree, di, drep);
5554
5555
0
  offset = rcg_dissect_element_Lm20GetNtlm3ChallengeResponseResp_LmSessionKey(tvb, offset, pinfo, tree, di, drep);
5556
5557
5558
0
  proto_item_set_len(item, offset-old_offset);
5559
5560
5561
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
5562
0
    ALIGN_TO_5_BYTES;
5563
0
  }
5564
5565
0
  return offset;
5566
0
}
5567
5568
5569
/* IDL: struct { */
5570
/* IDL:   [ref] NT_CHALLENGE *NtChallenge; */
5571
/* IDL:   [ref] MSV1_0_REMOTE_ENCRYPTED_SECRETS *Credential; */
5572
/* IDL: } */
5573
5574
static int
5575
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_)
5576
0
{
5577
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CalculateNtResponseReq_NtChallenge_, NDR_POINTER_REF, "Pointer to NtChallenge (NT_CHALLENGE)",hf_rcg_CalculateNtResponseReq_NtChallenge);
5578
5579
0
  return offset;
5580
0
}
5581
5582
static int
5583
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_)
5584
0
{
5585
0
  offset = rcg_dissect_struct_NT_CHALLENGE(tvb,offset,pinfo,tree,di,drep,hf_rcg_CalculateNtResponseReq_NtChallenge,0);
5586
5587
0
  return offset;
5588
0
}
5589
5590
static int
5591
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_)
5592
0
{
5593
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CalculateNtResponseReq_Credential_, NDR_POINTER_REF, "Pointer to Credential (MSV1_0_REMOTE_ENCRYPTED_SECRETS)",hf_rcg_CalculateNtResponseReq_Credential);
5594
5595
0
  return offset;
5596
0
}
5597
5598
static int
5599
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_)
5600
0
{
5601
0
  offset = rcg_dissect_struct_MSV1_0_REMOTE_ENCRYPTED_SECRETS(tvb,offset,pinfo,tree,di,drep,hf_rcg_CalculateNtResponseReq_Credential,0);
5602
5603
0
  return offset;
5604
0
}
5605
5606
int
5607
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_)
5608
0
{
5609
0
  proto_item *item = NULL;
5610
0
  proto_tree *tree = NULL;
5611
0
  int old_offset;
5612
5613
0
  ALIGN_TO_5_BYTES;
5614
5615
0
  old_offset = offset;
5616
5617
0
  if (parent_tree) {
5618
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5619
0
    tree = proto_item_add_subtree(item, ett_rcg_CalculateNtResponseReq);
5620
0
  }
5621
5622
0
  offset = rcg_dissect_element_CalculateNtResponseReq_NtChallenge(tvb, offset, pinfo, tree, di, drep);
5623
5624
0
  offset = rcg_dissect_element_CalculateNtResponseReq_Credential(tvb, offset, pinfo, tree, di, drep);
5625
5626
5627
0
  proto_item_set_len(item, offset-old_offset);
5628
5629
5630
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
5631
0
    ALIGN_TO_5_BYTES;
5632
0
  }
5633
5634
0
  return offset;
5635
0
}
5636
5637
5638
/* IDL: struct { */
5639
/* IDL:   NT_RESPONSE NtResponse; */
5640
/* IDL: } */
5641
5642
static int
5643
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_)
5644
0
{
5645
0
  offset = rcg_dissect_struct_NT_RESPONSE(tvb,offset,pinfo,tree,di,drep,hf_rcg_CalculateNtResponseResp_NtResponse,0);
5646
5647
0
  return offset;
5648
0
}
5649
5650
int
5651
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_)
5652
0
{
5653
0
  proto_item *item = NULL;
5654
0
  proto_tree *tree = NULL;
5655
0
  int old_offset;
5656
5657
0
  old_offset = offset;
5658
5659
0
  if (parent_tree) {
5660
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5661
0
    tree = proto_item_add_subtree(item, ett_rcg_CalculateNtResponseResp);
5662
0
  }
5663
5664
0
  offset = rcg_dissect_element_CalculateNtResponseResp_NtResponse(tvb, offset, pinfo, tree, di, drep);
5665
5666
5667
0
  proto_item_set_len(item, offset-old_offset);
5668
5669
5670
0
  return offset;
5671
0
}
5672
5673
5674
/* IDL: struct { */
5675
/* IDL:   [ref] NT_RESPONSE *NtResponse; */
5676
/* IDL:   [ref] MSV1_0_REMOTE_ENCRYPTED_SECRETS *Credential; */
5677
/* IDL: } */
5678
5679
static int
5680
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_)
5681
0
{
5682
0
  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);
5683
5684
0
  return offset;
5685
0
}
5686
5687
static int
5688
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_)
5689
0
{
5690
0
  offset = rcg_dissect_struct_NT_RESPONSE(tvb,offset,pinfo,tree,di,drep,hf_rcg_CalculateUserSessionKeyNtReq_NtResponse,0);
5691
5692
0
  return offset;
5693
0
}
5694
5695
static int
5696
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_)
5697
0
{
5698
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CalculateUserSessionKeyNtReq_Credential_, NDR_POINTER_REF, "Pointer to Credential (MSV1_0_REMOTE_ENCRYPTED_SECRETS)",hf_rcg_CalculateUserSessionKeyNtReq_Credential);
5699
5700
0
  return offset;
5701
0
}
5702
5703
static int
5704
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_)
5705
0
{
5706
0
  offset = rcg_dissect_struct_MSV1_0_REMOTE_ENCRYPTED_SECRETS(tvb,offset,pinfo,tree,di,drep,hf_rcg_CalculateUserSessionKeyNtReq_Credential,0);
5707
5708
0
  return offset;
5709
0
}
5710
5711
int
5712
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_)
5713
0
{
5714
0
  proto_item *item = NULL;
5715
0
  proto_tree *tree = NULL;
5716
0
  int old_offset;
5717
5718
0
  ALIGN_TO_5_BYTES;
5719
5720
0
  old_offset = offset;
5721
5722
0
  if (parent_tree) {
5723
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5724
0
    tree = proto_item_add_subtree(item, ett_rcg_CalculateUserSessionKeyNtReq);
5725
0
  }
5726
5727
0
  offset = rcg_dissect_element_CalculateUserSessionKeyNtReq_NtResponse(tvb, offset, pinfo, tree, di, drep);
5728
5729
0
  offset = rcg_dissect_element_CalculateUserSessionKeyNtReq_Credential(tvb, offset, pinfo, tree, di, drep);
5730
5731
5732
0
  proto_item_set_len(item, offset-old_offset);
5733
5734
5735
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
5736
0
    ALIGN_TO_5_BYTES;
5737
0
  }
5738
5739
0
  return offset;
5740
0
}
5741
5742
5743
/* IDL: struct { */
5744
/* IDL:   USER_SESSION_KEY UserSessionKey; */
5745
/* IDL: } */
5746
5747
static int
5748
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_)
5749
0
{
5750
0
  offset = rcg_dissect_struct_USER_SESSION_KEY(tvb,offset,pinfo,tree,di,drep,hf_rcg_CalculateUserSessionKeyNtResp_UserSessionKey,0);
5751
5752
0
  return offset;
5753
0
}
5754
5755
int
5756
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_)
5757
0
{
5758
0
  proto_item *item = NULL;
5759
0
  proto_tree *tree = NULL;
5760
0
  int old_offset;
5761
5762
0
  old_offset = offset;
5763
5764
0
  if (parent_tree) {
5765
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5766
0
    tree = proto_item_add_subtree(item, ett_rcg_CalculateUserSessionKeyNtResp);
5767
0
  }
5768
5769
0
  offset = rcg_dissect_element_CalculateUserSessionKeyNtResp_UserSessionKey(tvb, offset, pinfo, tree, di, drep);
5770
5771
5772
0
  proto_item_set_len(item, offset-old_offset);
5773
5774
5775
0
  return offset;
5776
0
}
5777
5778
5779
/* IDL: struct { */
5780
/* IDL:   [ref] MSV1_0_REMOTE_ENCRYPTED_SECRETS *LhsCredential; */
5781
/* IDL:   [ref] MSV1_0_REMOTE_ENCRYPTED_SECRETS *RhsCredential; */
5782
/* IDL: } */
5783
5784
static int
5785
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_)
5786
0
{
5787
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CompareCredentialsReq_LhsCredential_, NDR_POINTER_REF, "Pointer to LhsCredential (MSV1_0_REMOTE_ENCRYPTED_SECRETS)",hf_rcg_CompareCredentialsReq_LhsCredential);
5788
5789
0
  return offset;
5790
0
}
5791
5792
static int
5793
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_)
5794
0
{
5795
0
  offset = rcg_dissect_struct_MSV1_0_REMOTE_ENCRYPTED_SECRETS(tvb,offset,pinfo,tree,di,drep,hf_rcg_CompareCredentialsReq_LhsCredential,0);
5796
5797
0
  return offset;
5798
0
}
5799
5800
static int
5801
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_)
5802
0
{
5803
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, rcg_dissect_element_CompareCredentialsReq_RhsCredential_, NDR_POINTER_REF, "Pointer to RhsCredential (MSV1_0_REMOTE_ENCRYPTED_SECRETS)",hf_rcg_CompareCredentialsReq_RhsCredential);
5804
5805
0
  return offset;
5806
0
}
5807
5808
static int
5809
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_)
5810
0
{
5811
0
  offset = rcg_dissect_struct_MSV1_0_REMOTE_ENCRYPTED_SECRETS(tvb,offset,pinfo,tree,di,drep,hf_rcg_CompareCredentialsReq_RhsCredential,0);
5812
5813
0
  return offset;
5814
0
}
5815
5816
int
5817
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_)
5818
0
{
5819
0
  proto_item *item = NULL;
5820
0
  proto_tree *tree = NULL;
5821
0
  int old_offset;
5822
5823
0
  ALIGN_TO_5_BYTES;
5824
5825
0
  old_offset = offset;
5826
5827
0
  if (parent_tree) {
5828
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5829
0
    tree = proto_item_add_subtree(item, ett_rcg_CompareCredentialsReq);
5830
0
  }
5831
5832
0
  offset = rcg_dissect_element_CompareCredentialsReq_LhsCredential(tvb, offset, pinfo, tree, di, drep);
5833
5834
0
  offset = rcg_dissect_element_CompareCredentialsReq_RhsCredential(tvb, offset, pinfo, tree, di, drep);
5835
5836
5837
0
  proto_item_set_len(item, offset-old_offset);
5838
5839
5840
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
5841
0
    ALIGN_TO_5_BYTES;
5842
0
  }
5843
5844
0
  return offset;
5845
0
}
5846
5847
5848
/* IDL: struct { */
5849
/* IDL:   uint32 AreNtOwfsEqual; */
5850
/* IDL:   uint32 AreLmOwfsEqual; */
5851
/* IDL:   uint32 AreShaOwfsEqual; */
5852
/* IDL: } */
5853
5854
static int
5855
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_)
5856
0
{
5857
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CompareCredentialsResp_AreNtOwfsEqual, 0);
5858
5859
0
  return offset;
5860
0
}
5861
5862
static int
5863
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_)
5864
0
{
5865
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CompareCredentialsResp_AreLmOwfsEqual, 0);
5866
5867
0
  return offset;
5868
0
}
5869
5870
static int
5871
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_)
5872
0
{
5873
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_CompareCredentialsResp_AreShaOwfsEqual, 0);
5874
5875
0
  return offset;
5876
0
}
5877
5878
int
5879
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_)
5880
0
{
5881
0
  proto_item *item = NULL;
5882
0
  proto_tree *tree = NULL;
5883
0
  int old_offset;
5884
5885
0
  ALIGN_TO_4_BYTES;
5886
5887
0
  old_offset = offset;
5888
5889
0
  if (parent_tree) {
5890
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5891
0
    tree = proto_item_add_subtree(item, ett_rcg_CompareCredentialsResp);
5892
0
  }
5893
5894
0
  offset = rcg_dissect_element_CompareCredentialsResp_AreNtOwfsEqual(tvb, offset, pinfo, tree, di, drep);
5895
5896
0
  offset = rcg_dissect_element_CompareCredentialsResp_AreLmOwfsEqual(tvb, offset, pinfo, tree, di, drep);
5897
5898
0
  offset = rcg_dissect_element_CompareCredentialsResp_AreShaOwfsEqual(tvb, offset, pinfo, tree, di, drep);
5899
5900
5901
0
  proto_item_set_len(item, offset-old_offset);
5902
5903
5904
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
5905
0
    ALIGN_TO_4_BYTES;
5906
0
  }
5907
5908
0
  return offset;
5909
0
}
5910
5911
5912
/* IDL: [flag(LIBNDR_FLAG_ALIGN4)] [switch_type(uint16)] union { */
5913
/* IDL: [case(RemoteCallNtlmNegotiateVersion)] [case(RemoteCallNtlmNegotiateVersion)] NegotiateVersion negotiateVersion; */
5914
/* IDL: [case(RemoteCallNtlmLm20GetNtlm3ChallengeResponse)] [case(RemoteCallNtlmLm20GetNtlm3ChallengeResponse)] Lm20GetNtlm3ChallengeResponseReq lm20GetNtlm3ChallengeResponse; */
5915
/* IDL: [case(RemoteCallNtlmCalculateNtResponse)] [case(RemoteCallNtlmCalculateNtResponse)] CalculateNtResponseReq calculateNtResponse; */
5916
/* IDL: [case(RemoteCallNtlmCalculateUserSessionKeyNt)] [case(RemoteCallNtlmCalculateUserSessionKeyNt)] CalculateUserSessionKeyNtReq calculateUserSessionKeyNt; */
5917
/* IDL: [case(RemoteCallNtlmCompareCredentials)] [case(RemoteCallNtlmCompareCredentials)] CompareCredentialsReq compareCredentials; */
5918
/* IDL: } */
5919
5920
static int
5921
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_)
5922
0
{
5923
0
  offset = rcg_dissect_struct_NegotiateVersion(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredInput_negotiateVersion,0);
5924
5925
0
  return offset;
5926
0
}
5927
5928
static int
5929
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_)
5930
0
{
5931
0
  offset = rcg_dissect_struct_Lm20GetNtlm3ChallengeResponseReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredInput_lm20GetNtlm3ChallengeResponse,0);
5932
5933
0
  return offset;
5934
0
}
5935
5936
static int
5937
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_)
5938
0
{
5939
0
  offset = rcg_dissect_struct_CalculateNtResponseReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredInput_calculateNtResponse,0);
5940
5941
0
  return offset;
5942
0
}
5943
5944
static int
5945
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_)
5946
0
{
5947
0
  offset = rcg_dissect_struct_CalculateUserSessionKeyNtReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredInput_calculateUserSessionKeyNt,0);
5948
5949
0
  return offset;
5950
0
}
5951
5952
static int
5953
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_)
5954
0
{
5955
0
  offset = rcg_dissect_struct_CompareCredentialsReq(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredInput_compareCredentials,0);
5956
5957
0
  return offset;
5958
0
}
5959
5960
static int
5961
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_)
5962
0
{
5963
0
  proto_item *item = NULL;
5964
0
  proto_tree *tree = NULL;
5965
0
  int old_offset;
5966
0
  uint16_t level;
5967
5968
0
  old_offset = offset;
5969
0
  if (parent_tree) {
5970
0
    tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_rcg_NtlmCredInput, &item, "NtlmCredInput");
5971
0
  }
5972
5973
0
  offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
5974
0
  ALIGN_TO_4_BYTES;
5975
5976
0
  switch(level) {
5977
0
    case RemoteCallNtlmNegotiateVersion:
5978
0
      offset = rcg_dissect_element_NtlmCredInput_negotiateVersion(tvb, offset, pinfo, tree, di, drep);
5979
0
    break;
5980
5981
0
    case RemoteCallNtlmLm20GetNtlm3ChallengeResponse:
5982
0
      offset = rcg_dissect_element_NtlmCredInput_lm20GetNtlm3ChallengeResponse(tvb, offset, pinfo, tree, di, drep);
5983
0
    break;
5984
5985
0
    case RemoteCallNtlmCalculateNtResponse:
5986
0
      offset = rcg_dissect_element_NtlmCredInput_calculateNtResponse(tvb, offset, pinfo, tree, di, drep);
5987
0
    break;
5988
5989
0
    case RemoteCallNtlmCalculateUserSessionKeyNt:
5990
0
      offset = rcg_dissect_element_NtlmCredInput_calculateUserSessionKeyNt(tvb, offset, pinfo, tree, di, drep);
5991
0
    break;
5992
5993
0
    case RemoteCallNtlmCompareCredentials:
5994
0
      offset = rcg_dissect_element_NtlmCredInput_compareCredentials(tvb, offset, pinfo, tree, di, drep);
5995
0
    break;
5996
0
  }
5997
0
  proto_item_set_len(item, offset-old_offset);
5998
5999
6000
0
  return offset;
6001
0
}
6002
6003
/* IDL: struct { */
6004
/* IDL:   RemoteGuardCallId CallId; */
6005
/* IDL:   [switch_is(CallId)] [switch_type(RemoteGuardCallId)] NtlmCredInput callUnion; */
6006
/* IDL: } */
6007
6008
static int
6009
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)
6010
0
{
6011
0
  offset = rcg_dissect_enum_RemoteGuardCallId(tvb, offset, pinfo, tree, di, drep, hf_rcg_NtlmCredIsoRemoteInput_CallId, CallId);
6012
6013
0
  return offset;
6014
0
}
6015
6016
static int
6017
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)
6018
0
{
6019
0
  offset = rcg_dissect_NtlmCredInput(tvb, offset, pinfo, tree, di, drep, hf_rcg_NtlmCredIsoRemoteInput_callUnion, *CallId);
6020
6021
0
  return offset;
6022
0
}
6023
6024
6025
/* IDL: [flag(LIBNDR_FLAG_ALIGN4)] [switch_type(uint16)] union { */
6026
/* IDL: [case(RemoteCallNtlmNegotiateVersion)] [case(RemoteCallNtlmNegotiateVersion)] NegotiateVersion negotiateVersion; */
6027
/* IDL: [case(RemoteCallNtlmLm20GetNtlm3ChallengeResponse)] [case(RemoteCallNtlmLm20GetNtlm3ChallengeResponse)] Lm20GetNtlm3ChallengeResponseResp lm20GetNtlm3ChallengeResponse; */
6028
/* IDL: [case(RemoteCallNtlmCalculateNtResponse)] [case(RemoteCallNtlmCalculateNtResponse)] CalculateNtResponseResp calculateNtResponse; */
6029
/* IDL: [case(RemoteCallNtlmCalculateUserSessionKeyNt)] [case(RemoteCallNtlmCalculateUserSessionKeyNt)] CalculateUserSessionKeyNtResp calculateUserSessionKeyNt; */
6030
/* IDL: [case(RemoteCallNtlmCompareCredentials)] [case(RemoteCallNtlmCompareCredentials)] CompareCredentialsResp compareCredentials; */
6031
/* IDL: } */
6032
6033
static int
6034
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_)
6035
0
{
6036
0
  offset = rcg_dissect_struct_NegotiateVersion(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredOutput_negotiateVersion,0);
6037
6038
0
  return offset;
6039
0
}
6040
6041
static int
6042
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_)
6043
0
{
6044
0
  offset = rcg_dissect_struct_Lm20GetNtlm3ChallengeResponseResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredOutput_lm20GetNtlm3ChallengeResponse,0);
6045
6046
0
  return offset;
6047
0
}
6048
6049
static int
6050
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_)
6051
0
{
6052
0
  offset = rcg_dissect_struct_CalculateNtResponseResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredOutput_calculateNtResponse,0);
6053
6054
0
  return offset;
6055
0
}
6056
6057
static int
6058
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_)
6059
0
{
6060
0
  offset = rcg_dissect_struct_CalculateUserSessionKeyNtResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredOutput_calculateUserSessionKeyNt,0);
6061
6062
0
  return offset;
6063
0
}
6064
6065
static int
6066
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_)
6067
0
{
6068
0
  offset = rcg_dissect_struct_CompareCredentialsResp(tvb,offset,pinfo,tree,di,drep,hf_rcg_NtlmCredOutput_compareCredentials,0);
6069
6070
0
  return offset;
6071
0
}
6072
6073
static int
6074
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_)
6075
0
{
6076
0
  proto_item *item = NULL;
6077
0
  proto_tree *tree = NULL;
6078
0
  int old_offset;
6079
0
  uint16_t level;
6080
6081
0
  old_offset = offset;
6082
0
  if (parent_tree) {
6083
0
    tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_rcg_NtlmCredOutput, &item, "NtlmCredOutput");
6084
0
  }
6085
6086
0
  offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
6087
0
  ALIGN_TO_4_BYTES;
6088
6089
0
  switch(level) {
6090
0
    case RemoteCallNtlmNegotiateVersion:
6091
0
      offset = rcg_dissect_element_NtlmCredOutput_negotiateVersion(tvb, offset, pinfo, tree, di, drep);
6092
0
    break;
6093
6094
0
    case RemoteCallNtlmLm20GetNtlm3ChallengeResponse:
6095
0
      offset = rcg_dissect_element_NtlmCredOutput_lm20GetNtlm3ChallengeResponse(tvb, offset, pinfo, tree, di, drep);
6096
0
    break;
6097
6098
0
    case RemoteCallNtlmCalculateNtResponse:
6099
0
      offset = rcg_dissect_element_NtlmCredOutput_calculateNtResponse(tvb, offset, pinfo, tree, di, drep);
6100
0
    break;
6101
6102
0
    case RemoteCallNtlmCalculateUserSessionKeyNt:
6103
0
      offset = rcg_dissect_element_NtlmCredOutput_calculateUserSessionKeyNt(tvb, offset, pinfo, tree, di, drep);
6104
0
    break;
6105
6106
0
    case RemoteCallNtlmCompareCredentials:
6107
0
      offset = rcg_dissect_element_NtlmCredOutput_compareCredentials(tvb, offset, pinfo, tree, di, drep);
6108
0
    break;
6109
0
  }
6110
0
  proto_item_set_len(item, offset-old_offset);
6111
6112
6113
0
  return offset;
6114
0
}
6115
6116
/* IDL: struct { */
6117
/* IDL:   RemoteGuardCallId CallId; */
6118
/* IDL:   NTSTATUS Status; */
6119
/* IDL:   [switch_is(CallId)] [switch_type(RemoteGuardCallId)] NtlmCredOutput callUnion; */
6120
/* IDL: } */
6121
6122
static int
6123
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)
6124
0
{
6125
0
  offset = rcg_dissect_enum_RemoteGuardCallId(tvb, offset, pinfo, tree, di, drep, hf_rcg_NtlmCredIsoRemoteOutput_CallId, CallId);
6126
6127
0
  return offset;
6128
0
}
6129
6130
static int
6131
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_)
6132
0
{
6133
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_rcg_NtlmCredIsoRemoteOutput_Status, 0);
6134
6135
0
  return offset;
6136
0
}
6137
6138
static int
6139
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)
6140
0
{
6141
0
  offset = rcg_dissect_NtlmCredOutput(tvb, offset, pinfo, tree, di, drep, hf_rcg_NtlmCredIsoRemoteOutput_callUnion, *CallId);
6142
6143
0
  return offset;
6144
0
}
6145
6146
6147
static const dcerpc_sub_dissector rcg_dissectors[] = {
6148
  { 0, NULL, NULL, NULL }
6149
};
6150
6151
void proto_register_dcerpc_rcg(void)
6152
14
{
6153
14
  static hf_register_info hf[] = {
6154
14
  { &hf_KERB_RPC_ENCRYPTION_KEY_reserved1,
6155
14
    { "Reserved1", "rcg.KERB_RPC_ENCRYPTION_KEY.reserved1", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
6156
14
  { &hf_KERB_RPC_ENCRYPTION_KEY_reserved2,
6157
14
    { "Encoding type", "rcg.KERB_RPC_ENCRYPTION_KEY.EncodingType", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
6158
14
  { &hf_rcg_BuildAsReqAuthenticatorReq_ArmorKey,
6159
14
    { "ArmorKey", "rcg.BuildAsReqAuthenticatorReq.ArmorKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6160
14
  { &hf_rcg_BuildAsReqAuthenticatorReq_EncryptionKey,
6161
14
    { "EncryptionKey", "rcg.BuildAsReqAuthenticatorReq.EncryptionKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6162
14
  { &hf_rcg_BuildAsReqAuthenticatorReq_TimeSkew,
6163
14
    { "TimeSkew", "rcg.BuildAsReqAuthenticatorReq.TimeSkew", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6164
14
  { &hf_rcg_BuildAsReqAuthenticatorResp_PreauthData,
6165
14
    { "PreauthData", "rcg.BuildAsReqAuthenticatorResp.PreauthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6166
14
  { &hf_rcg_BuildAsReqAuthenticatorResp_PreauthDataType,
6167
14
    { "PreauthDataType", "rcg.BuildAsReqAuthenticatorResp.PreauthDataType", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6168
14
  { &hf_rcg_BuildEncryptedAuthDataReq_Key,
6169
14
    { "Key", "rcg.BuildEncryptedAuthDataReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6170
14
  { &hf_rcg_BuildEncryptedAuthDataReq_KeyUsage,
6171
14
    { "KeyUsage", "rcg.BuildEncryptedAuthDataReq.KeyUsage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6172
14
  { &hf_rcg_BuildEncryptedAuthDataReq_PlainAuthData,
6173
14
    { "PlainAuthData", "rcg.BuildEncryptedAuthDataReq.PlainAuthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6174
14
  { &hf_rcg_BuildEncryptedAuthDataResp_EncryptedAuthData,
6175
14
    { "EncryptedAuthData", "rcg.BuildEncryptedAuthDataResp.EncryptedAuthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6176
14
  { &hf_rcg_CalculateNtResponseReq_Credential,
6177
14
    { "Credential", "rcg.CalculateNtResponseReq.Credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6178
14
  { &hf_rcg_CalculateNtResponseReq_NtChallenge,
6179
14
    { "NtChallenge", "rcg.CalculateNtResponseReq.NtChallenge", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6180
14
  { &hf_rcg_CalculateNtResponseResp_NtResponse,
6181
14
    { "NtResponse", "rcg.CalculateNtResponseResp.NtResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6182
14
  { &hf_rcg_CalculateUserSessionKeyNtReq_Credential,
6183
14
    { "Credential", "rcg.CalculateUserSessionKeyNtReq.Credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6184
14
  { &hf_rcg_CalculateUserSessionKeyNtReq_NtResponse,
6185
14
    { "NtResponse", "rcg.CalculateUserSessionKeyNtReq.NtResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6186
14
  { &hf_rcg_CalculateUserSessionKeyNtResp_UserSessionKey,
6187
14
    { "UserSessionKey", "rcg.CalculateUserSessionKeyNtResp.UserSessionKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6188
14
  { &hf_rcg_CompareCredentialsReq_LhsCredential,
6189
14
    { "LhsCredential", "rcg.CompareCredentialsReq.LhsCredential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6190
14
  { &hf_rcg_CompareCredentialsReq_RhsCredential,
6191
14
    { "RhsCredential", "rcg.CompareCredentialsReq.RhsCredential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6192
14
  { &hf_rcg_CompareCredentialsResp_AreLmOwfsEqual,
6193
14
    { "AreLmOwfsEqual", "rcg.CompareCredentialsResp.AreLmOwfsEqual", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6194
14
  { &hf_rcg_CompareCredentialsResp_AreNtOwfsEqual,
6195
14
    { "AreNtOwfsEqual", "rcg.CompareCredentialsResp.AreNtOwfsEqual", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6196
14
  { &hf_rcg_CompareCredentialsResp_AreShaOwfsEqual,
6197
14
    { "AreShaOwfsEqual", "rcg.CompareCredentialsResp.AreShaOwfsEqual", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6198
14
  { &hf_rcg_ComputeTgsChecksumReq_ChecksumType,
6199
14
    { "ChecksumType", "rcg.ComputeTgsChecksumReq.ChecksumType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6200
14
  { &hf_rcg_ComputeTgsChecksumReq_Key,
6201
14
    { "Key", "rcg.ComputeTgsChecksumReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6202
14
  { &hf_rcg_ComputeTgsChecksumReq_RequestBody,
6203
14
    { "RequestBody", "rcg.ComputeTgsChecksumReq.RequestBody", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6204
14
  { &hf_rcg_ComputeTgsChecksumResp_Checksum,
6205
14
    { "Checksum", "rcg.ComputeTgsChecksumResp.Checksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6206
14
  { &hf_rcg_CreateApReqAuthenticatorReq_AuthData,
6207
14
    { "AuthData", "rcg.CreateApReqAuthenticatorReq.AuthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6208
14
  { &hf_rcg_CreateApReqAuthenticatorReq_ClientName,
6209
14
    { "ClientName", "rcg.CreateApReqAuthenticatorReq.ClientName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6210
14
  { &hf_rcg_CreateApReqAuthenticatorReq_ClientRealm,
6211
14
    { "ClientRealm", "rcg.CreateApReqAuthenticatorReq.ClientRealm", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6212
14
  { &hf_rcg_CreateApReqAuthenticatorReq_EncryptionKey,
6213
14
    { "EncryptionKey", "rcg.CreateApReqAuthenticatorReq.EncryptionKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6214
14
  { &hf_rcg_CreateApReqAuthenticatorReq_GssChecksum,
6215
14
    { "GssChecksum", "rcg.CreateApReqAuthenticatorReq.GssChecksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6216
14
  { &hf_rcg_CreateApReqAuthenticatorReq_KeyUsage,
6217
14
    { "KeyUsage", "rcg.CreateApReqAuthenticatorReq.KeyUsage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6218
14
  { &hf_rcg_CreateApReqAuthenticatorReq_SequenceNumber,
6219
14
    { "SequenceNumber", "rcg.CreateApReqAuthenticatorReq.SequenceNumber", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6220
14
  { &hf_rcg_CreateApReqAuthenticatorReq_SkewTime,
6221
14
    { "SkewTime", "rcg.CreateApReqAuthenticatorReq.SkewTime", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6222
14
  { &hf_rcg_CreateApReqAuthenticatorReq_SubKey,
6223
14
    { "SubKey", "rcg.CreateApReqAuthenticatorReq.SubKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6224
14
  { &hf_rcg_CreateApReqAuthenticatorResp_Authenticator,
6225
14
    { "Authenticator", "rcg.CreateApReqAuthenticatorResp.Authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6226
14
  { &hf_rcg_CreateApReqAuthenticatorResp_AuthenticatorTime,
6227
14
    { "AuthenticatorTime", "rcg.CreateApReqAuthenticatorResp.AuthenticatorTime", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6228
14
  { &hf_rcg_CreateApReqAuthenticatorResp_KerbProtocolError,
6229
14
    { "KerbProtocolError", "rcg.CreateApReqAuthenticatorResp.KerbProtocolError", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6230
14
  { &hf_rcg_CreateDHKeyAgreementReq_Ignored,
6231
14
    { "Ignored", "rcg.CreateDHKeyAgreementReq.Ignored", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6232
14
  { &hf_rcg_CreateDHKeyAgreementResp_FactorQ,
6233
14
    { "FactorQ", "rcg.CreateDHKeyAgreementResp.FactorQ", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6234
14
  { &hf_rcg_CreateDHKeyAgreementResp_GeneratorG,
6235
14
    { "GeneratorG", "rcg.CreateDHKeyAgreementResp.GeneratorG", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6236
14
  { &hf_rcg_CreateDHKeyAgreementResp_KerbErr,
6237
14
    { "KerbErr", "rcg.CreateDHKeyAgreementResp.KerbErr", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6238
14
  { &hf_rcg_CreateDHKeyAgreementResp_KeyAgreementHandle,
6239
14
    { "KeyAgreementHandle", "rcg.CreateDHKeyAgreementResp.KeyAgreementHandle", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
6240
14
  { &hf_rcg_CreateDHKeyAgreementResp_LittleEndianPublicKey,
6241
14
    { "LittleEndianPublicKey", "rcg.CreateDHKeyAgreementResp.LittleEndianPublicKey", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6242
14
  { &hf_rcg_CreateDHKeyAgreementResp_LittleEndianPublicKeyLen,
6243
14
    { "LittleEndianPublicKeyLen", "rcg.CreateDHKeyAgreementResp.LittleEndianPublicKeyLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6244
14
  { &hf_rcg_CreateDHKeyAgreementResp_ModulusP,
6245
14
    { "ModulusP", "rcg.CreateDHKeyAgreementResp.ModulusP", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6246
14
  { &hf_rcg_CreateECDHKeyAgreementReq_KeyBitLen,
6247
14
    { "KeyBitLen", "rcg.CreateECDHKeyAgreementReq.KeyBitLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6248
14
  { &hf_rcg_CreateECDHKeyAgreementResp_EncodedPubKey,
6249
14
    { "EncodedPubKey", "rcg.CreateECDHKeyAgreementResp.EncodedPubKey", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6250
14
  { &hf_rcg_CreateECDHKeyAgreementResp_EncodedPubKeyLen,
6251
14
    { "EncodedPubKeyLen", "rcg.CreateECDHKeyAgreementResp.EncodedPubKeyLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6252
14
  { &hf_rcg_CreateECDHKeyAgreementResp_KerbErr,
6253
14
    { "KerbErr", "rcg.CreateECDHKeyAgreementResp.KerbErr", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6254
14
  { &hf_rcg_CreateECDHKeyAgreementResp_KeyAgreementHandle,
6255
14
    { "KeyAgreementHandle", "rcg.CreateECDHKeyAgreementResp.KeyAgreementHandle", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
6256
14
  { &hf_rcg_DecryptApReplyReq_EncryptedReply,
6257
14
    { "EncryptedReply", "rcg.DecryptApReplyReq.EncryptedReply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6258
14
  { &hf_rcg_DecryptApReplyReq_Key,
6259
14
    { "Key", "rcg.DecryptApReplyReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6260
14
  { &hf_rcg_DecryptApReplyResp_ApReply,
6261
14
    { "ApReply", "rcg.DecryptApReplyResp.ApReply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6262
14
  { &hf_rcg_DecryptPacCredentialsReq_Data,
6263
14
    { "Data", "rcg.DecryptPacCredentialsReq.Data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6264
14
  { &hf_rcg_DecryptPacCredentialsReq_DataSize,
6265
14
    { "DataSize", "rcg.DecryptPacCredentialsReq.DataSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6266
14
  { &hf_rcg_DecryptPacCredentialsReq_EncryptionType,
6267
14
    { "EncryptionType", "rcg.DecryptPacCredentialsReq.EncryptionType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6268
14
  { &hf_rcg_DecryptPacCredentialsReq_Key,
6269
14
    { "Key", "rcg.DecryptPacCredentialsReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6270
14
  { &hf_rcg_DecryptPacCredentialsReq_Version,
6271
14
    { "Version", "rcg.DecryptPacCredentialsReq.Version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6272
14
  { &hf_rcg_DecryptPacCredentialsResp_Credentials,
6273
14
    { "Credentials", "rcg.DecryptPacCredentialsResp.Credentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6274
14
  { &hf_rcg_DestroyKeyAgreementReq_KeyAgreementHandle,
6275
14
    { "KeyAgreementHandle", "rcg.DestroyKeyAgreementReq.KeyAgreementHandle", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
6276
14
  { &hf_rcg_DestroyKeyAgreementResp_Ignored,
6277
14
    { "Ignored", "rcg.DestroyKeyAgreementResp.Ignored", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6278
14
  { &hf_rcg_FinalizeKeyAgreementReq_KerbEType,
6279
14
    { "KerbEType", "rcg.FinalizeKeyAgreementReq.KerbEType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6280
14
  { &hf_rcg_FinalizeKeyAgreementReq_KeyAgreementHandle,
6281
14
    { "KeyAgreementHandle", "rcg.FinalizeKeyAgreementReq.KeyAgreementHandle", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
6282
14
  { &hf_rcg_FinalizeKeyAgreementReq_RemoteNonce,
6283
14
    { "RemoteNonce", "rcg.FinalizeKeyAgreementReq.RemoteNonce", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6284
14
  { &hf_rcg_FinalizeKeyAgreementReq_RemoteNonceLen,
6285
14
    { "RemoteNonceLen", "rcg.FinalizeKeyAgreementReq.RemoteNonceLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6286
14
  { &hf_rcg_FinalizeKeyAgreementReq_X509PublicKey,
6287
14
    { "X509PublicKey", "rcg.FinalizeKeyAgreementReq.X509PublicKey", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6288
14
  { &hf_rcg_FinalizeKeyAgreementReq_X509PublicKeyLen,
6289
14
    { "X509PublicKeyLen", "rcg.FinalizeKeyAgreementReq.X509PublicKeyLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6290
14
  { &hf_rcg_FinalizeKeyAgreementResp_SharedKey,
6291
14
    { "SharedKey", "rcg.FinalizeKeyAgreementResp.SharedKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6292
14
  { &hf_rcg_HashS4UPreauthReq_ChecksumType,
6293
14
    { "ChecksumType", "rcg.HashS4UPreauthReq.ChecksumType", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6294
14
  { &hf_rcg_HashS4UPreauthReq_Key,
6295
14
    { "Key", "rcg.HashS4UPreauthReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6296
14
  { &hf_rcg_HashS4UPreauthReq_S4UPreauth,
6297
14
    { "S4UPreauth", "rcg.HashS4UPreauthReq.S4UPreauth", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6298
14
  { &hf_rcg_HashS4UPreauthResp_ChecksumSize,
6299
14
    { "ChecksumSize", "rcg.HashS4UPreauthResp.ChecksumSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6300
14
  { &hf_rcg_HashS4UPreauthResp_ChecksumValue,
6301
14
    { "ChecksumValue", "rcg.HashS4UPreauthResp.ChecksumValue", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6302
14
  { &hf_rcg_KERB_ASN1_DATA_Asn1Buffer,
6303
14
    { "Asn1Buffer", "rcg.KERB_ASN1_DATA.Asn1Buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6304
14
  { &hf_rcg_KERB_ASN1_DATA_CHECKSUM_Length,
6305
14
    { "Length", "rcg.KERB_ASN1_DATA_CHECKSUM.Length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6306
14
  { &hf_rcg_KERB_ASN1_DATA_CHECKSUM_Pdu,
6307
14
    { "Pdu", "rcg.KERB_ASN1_DATA_CHECKSUM.Pdu", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6308
14
  { &hf_rcg_KERB_ASN1_DATA_CHECKSUM_checksum,
6309
14
    { "Checksum", "rcg.KERB_ASN1_DATA_CHECKSUM.checksum", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6310
14
  { &hf_rcg_KERB_ASN1_DATA_Length,
6311
14
    { "Length", "rcg.KERB_ASN1_DATA.Length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6312
14
  { &hf_rcg_KERB_ASN1_DATA_Pdu,
6313
14
    { "Pdu", "rcg.KERB_ASN1_DATA.Pdu", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6314
14
  { &hf_rcg_KERB_RPC_CRYPTO_API_BLOB_cbData,
6315
14
    { "CbData", "rcg.KERB_RPC_CRYPTO_API_BLOB.cbData", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6316
14
  { &hf_rcg_KERB_RPC_CRYPTO_API_BLOB_pbData,
6317
14
    { "PbData", "rcg.KERB_RPC_CRYPTO_API_BLOB.pbData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6318
14
  { &hf_rcg_KERB_RPC_ENCRYPTION_KEY_reserved3,
6319
14
    { "Reserved3", "rcg.KERB_RPC_ENCRYPTION_KEY.reserved3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6320
14
  { &hf_rcg_KERB_RPC_INTERNAL_NAME_NameCount,
6321
14
    { "NameCount", "rcg.KERB_RPC_INTERNAL_NAME.NameCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
6322
14
  { &hf_rcg_KERB_RPC_INTERNAL_NAME_NameType,
6323
14
    { "NameType", "rcg.KERB_RPC_INTERNAL_NAME.NameType", FT_INT16, BASE_DEC, NULL, 0, NULL, HFILL }},
6324
14
  { &hf_rcg_KERB_RPC_INTERNAL_NAME_Names,
6325
14
    { "Names", "rcg.KERB_RPC_INTERNAL_NAME.Names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6326
14
  { &hf_rcg_KERB_RPC_OCTET_STRING_length,
6327
14
    { "Length", "rcg.KERB_RPC_OCTET_STRING.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6328
14
  { &hf_rcg_KERB_RPC_OCTET_STRING_value,
6329
14
    { "Value", "rcg.KERB_RPC_OCTET_STRING.value", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6330
14
  { &hf_rcg_KERB_RPC_PA_DATA_preauth_data,
6331
14
    { "Preauth Data", "rcg.KERB_RPC_PA_DATA.preauth_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6332
14
  { &hf_rcg_KERB_RPC_PA_DATA_preauth_data_type,
6333
14
    { "Preauth Data Type", "rcg.KERB_RPC_PA_DATA.preauth_data_type", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6334
14
  { &hf_rcg_KerbCredIsoRemoteInput_CallId,
6335
14
    { "CallId", "rcg.KerbCredIsoRemoteInput.CallId", FT_UINT16, BASE_DEC, VALS(rcg_RemoteGuardCallId_vals), 0, NULL, HFILL }},
6336
14
  { &hf_rcg_KerbCredIsoRemoteInput_callUnion,
6337
14
    { "CallUnion", "rcg.KerbCredIsoRemoteInput.callUnion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6338
14
  { &hf_rcg_KerbCredIsoRemoteOutput_CallId,
6339
14
    { "CallId", "rcg.KerbCredIsoRemoteOutput.CallId", FT_UINT16, BASE_DEC, VALS(rcg_RemoteGuardCallId_vals), 0, NULL, HFILL }},
6340
14
  { &hf_rcg_KerbCredIsoRemoteOutput_Status,
6341
14
    { "Status", "rcg.KerbCredIsoRemoteOutput.Status", FT_UINT32, BASE_HEX|BASE_EXT_STRING, &NT_errors_ext, 0, NULL, HFILL }},
6342
14
  { &hf_rcg_KerbCredIsoRemoteOutput_callUnion,
6343
14
    { "CallUnion", "rcg.KerbCredIsoRemoteOutput.callUnion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6344
14
  { &hf_rcg_KerbInputUnion_buildAsReqAuthenticator,
6345
14
    { "BuildAsReqAuthenticator", "rcg.KerbInputUnion.buildAsReqAuthenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6346
14
  { &hf_rcg_KerbInputUnion_buildEncryptedAuthData,
6347
14
    { "BuildEncryptedAuthData", "rcg.KerbInputUnion.buildEncryptedAuthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6348
14
  { &hf_rcg_KerbInputUnion_computeTgsChecksum,
6349
14
    { "ComputeTgsChecksum", "rcg.KerbInputUnion.computeTgsChecksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6350
14
  { &hf_rcg_KerbInputUnion_createApReqAuthenticator,
6351
14
    { "CreateApReqAuthenticator", "rcg.KerbInputUnion.createApReqAuthenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6352
14
  { &hf_rcg_KerbInputUnion_createDHKeyAgreement,
6353
14
    { "CreateDHKeyAgreement", "rcg.KerbInputUnion.createDHKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6354
14
  { &hf_rcg_KerbInputUnion_createECDHKeyAgreement,
6355
14
    { "CreateECDHKeyAgreement", "rcg.KerbInputUnion.createECDHKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6356
14
  { &hf_rcg_KerbInputUnion_decryptApReply,
6357
14
    { "DecryptApReply", "rcg.KerbInputUnion.decryptApReply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6358
14
  { &hf_rcg_KerbInputUnion_decryptPacCredentials,
6359
14
    { "DecryptPacCredentials", "rcg.KerbInputUnion.decryptPacCredentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6360
14
  { &hf_rcg_KerbInputUnion_destroyKeyAgreement,
6361
14
    { "DestroyKeyAgreement", "rcg.KerbInputUnion.destroyKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6362
14
  { &hf_rcg_KerbInputUnion_finalizeKeyAgreement,
6363
14
    { "FinalizeKeyAgreement", "rcg.KerbInputUnion.finalizeKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6364
14
  { &hf_rcg_KerbInputUnion_hashS4UPreauth,
6365
14
    { "HashS4UPreauth", "rcg.KerbInputUnion.hashS4UPreauth", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6366
14
  { &hf_rcg_KerbInputUnion_keyAgreementGenerateNonce,
6367
14
    { "KeyAgreementGenerateNonce", "rcg.KerbInputUnion.keyAgreementGenerateNonce", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6368
14
  { &hf_rcg_KerbInputUnion_negociateVersion,
6369
14
    { "NegociateVersion", "rcg.KerbInputUnion.negociateVersion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6370
14
  { &hf_rcg_KerbInputUnion_packApReply,
6371
14
    { "PackApReply", "rcg.KerbInputUnion.packApReply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6372
14
  { &hf_rcg_KerbInputUnion_signS4UPreauthData,
6373
14
    { "SignS4UPreauthData", "rcg.KerbInputUnion.signS4UPreauthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6374
14
  { &hf_rcg_KerbInputUnion_unpackKdcReplyBody,
6375
14
    { "UnpackKdcReplyBody", "rcg.KerbInputUnion.unpackKdcReplyBody", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6376
14
  { &hf_rcg_KerbInputUnion_verifyChecksum,
6377
14
    { "VerifyChecksum", "rcg.KerbInputUnion.verifyChecksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6378
14
  { &hf_rcg_KerbInputUnion_verifyServiceTicket,
6379
14
    { "VerifyServiceTicket", "rcg.KerbInputUnion.verifyServiceTicket", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6380
14
  { &hf_rcg_KerbOutputUnion_buildAsReqAuthenticator,
6381
14
    { "BuildAsReqAuthenticator", "rcg.KerbOutputUnion.buildAsReqAuthenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6382
14
  { &hf_rcg_KerbOutputUnion_buildEncryptedAuthData,
6383
14
    { "BuildEncryptedAuthData", "rcg.KerbOutputUnion.buildEncryptedAuthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6384
14
  { &hf_rcg_KerbOutputUnion_computeTgsChecksum,
6385
14
    { "ComputeTgsChecksum", "rcg.KerbOutputUnion.computeTgsChecksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6386
14
  { &hf_rcg_KerbOutputUnion_createApReqAuthenticator,
6387
14
    { "CreateApReqAuthenticator", "rcg.KerbOutputUnion.createApReqAuthenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6388
14
  { &hf_rcg_KerbOutputUnion_createDHKeyAgreement,
6389
14
    { "CreateDHKeyAgreement", "rcg.KerbOutputUnion.createDHKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6390
14
  { &hf_rcg_KerbOutputUnion_createECDHKeyAgreement,
6391
14
    { "CreateECDHKeyAgreement", "rcg.KerbOutputUnion.createECDHKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6392
14
  { &hf_rcg_KerbOutputUnion_decryptApReply,
6393
14
    { "DecryptApReply", "rcg.KerbOutputUnion.decryptApReply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6394
14
  { &hf_rcg_KerbOutputUnion_decryptPacCredentials,
6395
14
    { "DecryptPacCredentials", "rcg.KerbOutputUnion.decryptPacCredentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6396
14
  { &hf_rcg_KerbOutputUnion_destroyKeyAgreement,
6397
14
    { "DestroyKeyAgreement", "rcg.KerbOutputUnion.destroyKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6398
14
  { &hf_rcg_KerbOutputUnion_finalizeKeyAgreement,
6399
14
    { "FinalizeKeyAgreement", "rcg.KerbOutputUnion.finalizeKeyAgreement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6400
14
  { &hf_rcg_KerbOutputUnion_hashS4UPreauth,
6401
14
    { "HashS4UPreauth", "rcg.KerbOutputUnion.hashS4UPreauth", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6402
14
  { &hf_rcg_KerbOutputUnion_keyAgreementGenerateNonce,
6403
14
    { "KeyAgreementGenerateNonce", "rcg.KerbOutputUnion.keyAgreementGenerateNonce", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6404
14
  { &hf_rcg_KerbOutputUnion_negociateVersion,
6405
14
    { "NegociateVersion", "rcg.KerbOutputUnion.negociateVersion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6406
14
  { &hf_rcg_KerbOutputUnion_packApReply,
6407
14
    { "PackApReply", "rcg.KerbOutputUnion.packApReply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6408
14
  { &hf_rcg_KerbOutputUnion_signS4UPreauthData,
6409
14
    { "SignS4UPreauthData", "rcg.KerbOutputUnion.signS4UPreauthData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6410
14
  { &hf_rcg_KerbOutputUnion_unpackKdcReplyBody,
6411
14
    { "UnpackKdcReplyBody", "rcg.KerbOutputUnion.unpackKdcReplyBody", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6412
14
  { &hf_rcg_KerbOutputUnion_verifyChecksum,
6413
14
    { "VerifyChecksum", "rcg.KerbOutputUnion.verifyChecksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6414
14
  { &hf_rcg_KerbOutputUnion_verifyServiceTicket,
6415
14
    { "VerifyServiceTicket", "rcg.KerbOutputUnion.verifyServiceTicket", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6416
14
  { &hf_rcg_KeyAgreementGenerateNonceReq_KeyAgreementHandle,
6417
14
    { "KeyAgreementHandle", "rcg.KeyAgreementGenerateNonceReq.KeyAgreementHandle", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
6418
14
  { &hf_rcg_KeyAgreementGenerateNonceResp_Nonce,
6419
14
    { "Nonce", "rcg.KeyAgreementGenerateNonceResp.Nonce", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6420
14
  { &hf_rcg_KeyAgreementGenerateNonceResp_NonceLen,
6421
14
    { "NonceLen", "rcg.KeyAgreementGenerateNonceResp.NonceLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6422
14
  { &hf_rcg_LARGE_INTEGER_QuadPart,
6423
14
    { "QuadPart", "rcg.LARGE_INTEGER.QuadPart", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
6424
14
  { &hf_rcg_LM_SESSION_KEY_Data,
6425
14
    { "Data", "rcg.LM_SESSION_KEY.Data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6426
14
  { &hf_rcg_Lm20GetNtlm3ChallengeResponseReq_ChallengeToClient,
6427
14
    { "ChallengeToClient", "rcg.Lm20GetNtlm3ChallengeResponseReq.ChallengeToClient", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6428
14
  { &hf_rcg_Lm20GetNtlm3ChallengeResponseReq_Credential,
6429
14
    { "Credential", "rcg.Lm20GetNtlm3ChallengeResponseReq.Credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6430
14
  { &hf_rcg_Lm20GetNtlm3ChallengeResponseReq_LogonDomainName,
6431
14
    { "LogonDomainName", "rcg.Lm20GetNtlm3ChallengeResponseReq.LogonDomainName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6432
14
  { &hf_rcg_Lm20GetNtlm3ChallengeResponseReq_ServerName,
6433
14
    { "ServerName", "rcg.Lm20GetNtlm3ChallengeResponseReq.ServerName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6434
14
  { &hf_rcg_Lm20GetNtlm3ChallengeResponseReq_UserName,
6435
14
    { "UserName", "rcg.Lm20GetNtlm3ChallengeResponseReq.UserName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6436
14
  { &hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Lm3Response,
6437
14
    { "Lm3Response", "rcg.Lm20GetNtlm3ChallengeResponseResp.Lm3Response", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6438
14
  { &hf_rcg_Lm20GetNtlm3ChallengeResponseResp_LmSessionKey,
6439
14
    { "LmSessionKey", "rcg.Lm20GetNtlm3ChallengeResponseResp.LmSessionKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6440
14
  { &hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Ntlm3Response,
6441
14
    { "Ntlm3Response", "rcg.Lm20GetNtlm3ChallengeResponseResp.Ntlm3Response", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6442
14
  { &hf_rcg_Lm20GetNtlm3ChallengeResponseResp_Ntlm3ResponseLength,
6443
14
    { "Ntlm3ResponseLength", "rcg.Lm20GetNtlm3ChallengeResponseResp.Ntlm3ResponseLength", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
6444
14
  { &hf_rcg_Lm20GetNtlm3ChallengeResponseResp_UserSessionKey,
6445
14
    { "UserSessionKey", "rcg.Lm20GetNtlm3ChallengeResponseResp.UserSessionKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6446
14
  { &hf_rcg_MSV1_0_CREDENTIAL_KEY_Data,
6447
14
    { "Data", "rcg.MSV1_0_CREDENTIAL_KEY.Data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6448
14
  { &hf_rcg_MSV1_0_LM3_RESPONSE_ChallengeFromClient,
6449
14
    { "ChallengeFromClient", "rcg.MSV1_0_LM3_RESPONSE.ChallengeFromClient", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6450
14
  { &hf_rcg_MSV1_0_LM3_RESPONSE_Response,
6451
14
    { "Response", "rcg.MSV1_0_LM3_RESPONSE.Response", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6452
14
  { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved1,
6453
14
    { "Reserved1", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reserved1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6454
14
  { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved2,
6455
14
    { "Reserved2", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6456
14
  { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved3,
6457
14
    { "Reserved3", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reserved3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6458
14
  { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved4,
6459
14
    { "Reserved4", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reserved4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6460
14
  { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved5,
6461
14
    { "Reserved5", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reserved5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6462
14
  { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reserved6,
6463
14
    { "Reserved6", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reserved6", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6464
14
  { &hf_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS_reservedSize,
6465
14
    { "ReservedSize", "rcg.MSV1_0_REMOTE_ENCRYPTED_SECRETS.reservedSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6466
14
  { &hf_rcg_NT_CHALLENGE_Data,
6467
14
    { "Data", "rcg.NT_CHALLENGE.Data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6468
14
  { &hf_rcg_NT_RESPONSE_Data,
6469
14
    { "Data", "rcg.NT_RESPONSE.Data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6470
14
  { &hf_rcg_NegotiateVersion_MaxSupportedVersion,
6471
14
    { "MaxSupportedVersion", "rcg.NegotiateVersion.MaxSupportedVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6472
14
  { &hf_rcg_NtlmCredInput_calculateNtResponse,
6473
14
    { "CalculateNtResponse", "rcg.NtlmCredInput.calculateNtResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6474
14
  { &hf_rcg_NtlmCredInput_calculateUserSessionKeyNt,
6475
14
    { "CalculateUserSessionKeyNt", "rcg.NtlmCredInput.calculateUserSessionKeyNt", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6476
14
  { &hf_rcg_NtlmCredInput_compareCredentials,
6477
14
    { "CompareCredentials", "rcg.NtlmCredInput.compareCredentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6478
14
  { &hf_rcg_NtlmCredInput_lm20GetNtlm3ChallengeResponse,
6479
14
    { "Lm20GetNtlm3ChallengeResponse", "rcg.NtlmCredInput.lm20GetNtlm3ChallengeResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6480
14
  { &hf_rcg_NtlmCredInput_negotiateVersion,
6481
14
    { "NegotiateVersion", "rcg.NtlmCredInput.negotiateVersion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6482
14
  { &hf_rcg_NtlmCredIsoRemoteInput_CallId,
6483
14
    { "CallId", "rcg.NtlmCredIsoRemoteInput.CallId", FT_UINT16, BASE_DEC, VALS(rcg_RemoteGuardCallId_vals), 0, NULL, HFILL }},
6484
14
  { &hf_rcg_NtlmCredIsoRemoteInput_callUnion,
6485
14
    { "CallUnion", "rcg.NtlmCredIsoRemoteInput.callUnion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6486
14
  { &hf_rcg_NtlmCredIsoRemoteOutput_CallId,
6487
14
    { "CallId", "rcg.NtlmCredIsoRemoteOutput.CallId", FT_UINT16, BASE_DEC, VALS(rcg_RemoteGuardCallId_vals), 0, NULL, HFILL }},
6488
14
  { &hf_rcg_NtlmCredIsoRemoteOutput_Status,
6489
14
    { "Status", "rcg.NtlmCredIsoRemoteOutput.Status", FT_UINT32, BASE_HEX|BASE_EXT_STRING, &NT_errors_ext, 0, NULL, HFILL }},
6490
14
  { &hf_rcg_NtlmCredIsoRemoteOutput_callUnion,
6491
14
    { "CallUnion", "rcg.NtlmCredIsoRemoteOutput.callUnion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6492
14
  { &hf_rcg_NtlmCredOutput_calculateNtResponse,
6493
14
    { "CalculateNtResponse", "rcg.NtlmCredOutput.calculateNtResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6494
14
  { &hf_rcg_NtlmCredOutput_calculateUserSessionKeyNt,
6495
14
    { "CalculateUserSessionKeyNt", "rcg.NtlmCredOutput.calculateUserSessionKeyNt", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6496
14
  { &hf_rcg_NtlmCredOutput_compareCredentials,
6497
14
    { "CompareCredentials", "rcg.NtlmCredOutput.compareCredentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6498
14
  { &hf_rcg_NtlmCredOutput_lm20GetNtlm3ChallengeResponse,
6499
14
    { "Lm20GetNtlm3ChallengeResponse", "rcg.NtlmCredOutput.lm20GetNtlm3ChallengeResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6500
14
  { &hf_rcg_NtlmCredOutput_negotiateVersion,
6501
14
    { "NegotiateVersion", "rcg.NtlmCredOutput.negotiateVersion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6502
14
  { &hf_rcg_PackApReplyReq_Reply,
6503
14
    { "Reply", "rcg.PackApReplyReq.Reply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6504
14
  { &hf_rcg_PackApReplyReq_ReplyBody,
6505
14
    { "ReplyBody", "rcg.PackApReplyReq.ReplyBody", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6506
14
  { &hf_rcg_PackApReplyReq_SessionKey,
6507
14
    { "SessionKey", "rcg.PackApReplyReq.SessionKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6508
14
  { &hf_rcg_PackApReplyResp_PackedReply,
6509
14
    { "PackedReply", "rcg.PackApReplyResp.PackedReply", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6510
14
  { &hf_rcg_PackApReplyResp_PackedReplySize,
6511
14
    { "PackedReplySize", "rcg.PackApReplyResp.PackedReplySize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6512
14
  { &hf_rcg_RPC_UNICODE_STRING_Buffer,
6513
14
    { "Buffer", "rcg.RPC_UNICODE_STRING.Buffer", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
6514
14
  { &hf_rcg_RPC_UNICODE_STRING_Length,
6515
14
    { "Length", "rcg.RPC_UNICODE_STRING.Length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
6516
14
  { &hf_rcg_RPC_UNICODE_STRING_MaximumLength,
6517
14
    { "MaximumLength", "rcg.RPC_UNICODE_STRING.MaximumLength", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
6518
14
  { &hf_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY_CredentialCount,
6519
14
    { "CredentialCount", "rcg.SECPKG_SUPPLEMENTAL_CRED_ARRAY.CredentialCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6520
14
  { &hf_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY_Credentials,
6521
14
    { "Credentials", "rcg.SECPKG_SUPPLEMENTAL_CRED_ARRAY.Credentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6522
14
  { &hf_rcg_SECPKG_SUPPLEMENTAL_CRED_CredentialSize,
6523
14
    { "CredentialSize", "rcg.SECPKG_SUPPLEMENTAL_CRED.CredentialSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6524
14
  { &hf_rcg_SECPKG_SUPPLEMENTAL_CRED_Credentials,
6525
14
    { "Credentials", "rcg.SECPKG_SUPPLEMENTAL_CRED.Credentials", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6526
14
  { &hf_rcg_SECPKG_SUPPLEMENTAL_CRED_PackageName,
6527
14
    { "PackageName", "rcg.SECPKG_SUPPLEMENTAL_CRED.PackageName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6528
14
  { &hf_rcg_SignS4UPreauthDataReq_ChecksumType,
6529
14
    { "ChecksumType", "rcg.SignS4UPreauthDataReq.ChecksumType", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6530
14
  { &hf_rcg_SignS4UPreauthDataReq_IsRequest,
6531
14
    { "IsRequest", "rcg.SignS4UPreauthDataReq.IsRequest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6532
14
  { &hf_rcg_SignS4UPreauthDataReq_Key,
6533
14
    { "Key", "rcg.SignS4UPreauthDataReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6534
14
  { &hf_rcg_SignS4UPreauthDataReq_UserId,
6535
14
    { "UserId", "rcg.SignS4UPreauthDataReq.UserId", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6536
14
  { &hf_rcg_SignS4UPreauthDataResp_ChecksumSize,
6537
14
    { "ChecksumSize", "rcg.SignS4UPreauthDataResp.ChecksumSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6538
14
  { &hf_rcg_SignS4UPreauthDataResp_ChecksumType,
6539
14
    { "ChecksumType", "rcg.SignS4UPreauthDataResp.ChecksumType", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6540
14
  { &hf_rcg_SignS4UPreauthDataResp_ChecksumValue,
6541
14
    { "ChecksumValue", "rcg.SignS4UPreauthDataResp.ChecksumValue", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6542
14
  { &hf_rcg_USER_SESSION_KEY_Data,
6543
14
    { "Data", "rcg.USER_SESSION_KEY.Data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6544
14
  { &hf_rcg_UnpackKdcReplyBodyReq_EncryptedData,
6545
14
    { "EncryptedData", "rcg.UnpackKdcReplyBodyReq.EncryptedData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6546
14
  { &hf_rcg_UnpackKdcReplyBodyReq_Key,
6547
14
    { "Key", "rcg.UnpackKdcReplyBodyReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6548
14
  { &hf_rcg_UnpackKdcReplyBodyReq_KeyUsage,
6549
14
    { "KeyUsage", "rcg.UnpackKdcReplyBodyReq.KeyUsage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6550
14
  { &hf_rcg_UnpackKdcReplyBodyReq_Pdu,
6551
14
    { "Pdu", "rcg.UnpackKdcReplyBodyReq.Pdu", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6552
14
  { &hf_rcg_UnpackKdcReplyBodyReq_StrengthenKey,
6553
14
    { "StrengthenKey", "rcg.UnpackKdcReplyBodyReq.StrengthenKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6554
14
  { &hf_rcg_UnpackKdcReplyBodyResp_KerbProtocolError,
6555
14
    { "KerbProtocolError", "rcg.UnpackKdcReplyBodyResp.KerbProtocolError", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6556
14
  { &hf_rcg_UnpackKdcReplyBodyResp_ReplyBody,
6557
14
    { "ReplyBody", "rcg.UnpackKdcReplyBodyResp.ReplyBody", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6558
14
  { &hf_rcg_VerifyChecksumReq_ChecksumType,
6559
14
    { "ChecksumType", "rcg.VerifyChecksumReq.ChecksumType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6560
14
  { &hf_rcg_VerifyChecksumReq_DataToCheck,
6561
14
    { "DataToCheck", "rcg.VerifyChecksumReq.DataToCheck", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6562
14
  { &hf_rcg_VerifyChecksumReq_DataToCheckSize,
6563
14
    { "DataToCheckSize", "rcg.VerifyChecksumReq.DataToCheckSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6564
14
  { &hf_rcg_VerifyChecksumReq_ExpectedChecksum,
6565
14
    { "ExpectedChecksum", "rcg.VerifyChecksumReq.ExpectedChecksum", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
6566
14
  { &hf_rcg_VerifyChecksumReq_ExpectedChecksumSize,
6567
14
    { "ExpectedChecksumSize", "rcg.VerifyChecksumReq.ExpectedChecksumSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6568
14
  { &hf_rcg_VerifyChecksumReq_Key,
6569
14
    { "Key", "rcg.VerifyChecksumReq.Key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6570
14
  { &hf_rcg_VerifyChecksumResp_IsValid,
6571
14
    { "IsValid", "rcg.VerifyChecksumResp.IsValid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6572
14
  { &hf_rcg_VerifyServiceTicketReq_PackedTicket,
6573
14
    { "PackedTicket", "rcg.VerifyServiceTicketReq.PackedTicket", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6574
14
  { &hf_rcg_VerifyServiceTicketReq_ServiceKey,
6575
14
    { "ServiceKey", "rcg.VerifyServiceTicketReq.ServiceKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6576
14
  { &hf_rcg_VerifyServiceTicketReq_TimeSkew,
6577
14
    { "TimeSkew", "rcg.VerifyServiceTicketReq.TimeSkew", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6578
14
  { &hf_rcg_VerifyServiceTicketResp_DecryptedTicket,
6579
14
    { "DecryptedTicket", "rcg.VerifyServiceTicketResp.DecryptedTicket", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
6580
14
  { &hf_rcg_VerifyServiceTicketResp_KerbProtocolError,
6581
14
    { "KerbProtocolError", "rcg.VerifyServiceTicketResp.KerbProtocolError", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
6582
14
  { &hf_rcg_opnum,
6583
14
    { "Operation", "rcg.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
6584
14
  };
6585
6586
6587
14
  static int *ett[] = {
6588
14
    &ett_dcerpc_rcg,
6589
14
    &ett_rcg_KERB_ASN1_DATA,
6590
14
    &ett_rcg_KERB_ASN1_DATA_CHECKSUM,
6591
14
    &ett_rcg_KERB_RPC_OCTET_STRING,
6592
14
    &ett_rcg_KERB_RPC_PA_DATA,
6593
14
    &ett_rcg_KERB_RPC_ENCRYPTION_KEY,
6594
14
    &ett_rcg_RPC_UNICODE_STRING,
6595
14
    &ett_rcg_KERB_RPC_INTERNAL_NAME,
6596
14
    &ett_rcg_SECPKG_SUPPLEMENTAL_CRED,
6597
14
    &ett_rcg_SECPKG_SUPPLEMENTAL_CRED_ARRAY,
6598
14
    &ett_rcg_KERB_RPC_CRYPTO_API_BLOB,
6599
14
    &ett_rcg_NegotiateVersion,
6600
14
    &ett_rcg_LARGE_INTEGER,
6601
14
    &ett_rcg_PLARGE_INTEGER,
6602
14
    &ett_rcg_BuildAsReqAuthenticatorReq,
6603
14
    &ett_rcg_BuildAsReqAuthenticatorResp,
6604
14
    &ett_rcg_VerifyServiceTicketReq,
6605
14
    &ett_rcg_VerifyServiceTicketResp,
6606
14
    &ett_rcg_CreateApReqAuthenticatorReq,
6607
14
    &ett_rcg_CreateApReqAuthenticatorResp,
6608
14
    &ett_rcg_DecryptApReplyReq,
6609
14
    &ett_rcg_DecryptApReplyResp,
6610
14
    &ett_rcg_UnpackKdcReplyBodyReq,
6611
14
    &ett_rcg_UnpackKdcReplyBodyResp,
6612
14
    &ett_rcg_ComputeTgsChecksumReq,
6613
14
    &ett_rcg_ComputeTgsChecksumResp,
6614
14
    &ett_rcg_BuildEncryptedAuthDataReq,
6615
14
    &ett_rcg_BuildEncryptedAuthDataResp,
6616
14
    &ett_rcg_PackApReplyReq,
6617
14
    &ett_rcg_PackApReplyResp,
6618
14
    &ett_rcg_HashS4UPreauthReq,
6619
14
    &ett_rcg_HashS4UPreauthResp,
6620
14
    &ett_rcg_SignS4UPreauthDataReq,
6621
14
    &ett_rcg_SignS4UPreauthDataResp,
6622
14
    &ett_rcg_VerifyChecksumReq,
6623
14
    &ett_rcg_VerifyChecksumResp,
6624
14
    &ett_rcg_DecryptPacCredentialsReq,
6625
14
    &ett_rcg_DecryptPacCredentialsResp,
6626
14
    &ett_rcg_CreateECDHKeyAgreementReq,
6627
14
    &ett_rcg_CreateECDHKeyAgreementResp,
6628
14
    &ett_rcg_CreateDHKeyAgreementReq,
6629
14
    &ett_rcg_CreateDHKeyAgreementResp,
6630
14
    &ett_rcg_DestroyKeyAgreementReq,
6631
14
    &ett_rcg_DestroyKeyAgreementResp,
6632
14
    &ett_rcg_KeyAgreementGenerateNonceReq,
6633
14
    &ett_rcg_KeyAgreementGenerateNonceResp,
6634
14
    &ett_rcg_FinalizeKeyAgreementReq,
6635
14
    &ett_rcg_FinalizeKeyAgreementResp,
6636
14
    &ett_rcg_KerbInputUnion,
6637
14
    &ett_rcg_KerbCredIsoRemoteInput,
6638
14
    &ett_rcg_KerbOutputUnion,
6639
14
    &ett_rcg_KerbCredIsoRemoteOutput,
6640
14
    &ett_rcg_NT_RESPONSE,
6641
14
    &ett_rcg_NT_CHALLENGE,
6642
14
    &ett_rcg_LM_SESSION_KEY,
6643
14
    &ett_rcg_MSV1_0_LM3_RESPONSE,
6644
14
    &ett_rcg_USER_SESSION_KEY,
6645
14
    &ett_rcg_MSV1_0_CREDENTIAL_KEY,
6646
14
    &ett_rcg_MSV1_0_REMOTE_ENCRYPTED_SECRETS,
6647
14
    &ett_rcg_Lm20GetNtlm3ChallengeResponseReq,
6648
14
    &ett_rcg_Lm20GetNtlm3ChallengeResponseResp,
6649
14
    &ett_rcg_CalculateNtResponseReq,
6650
14
    &ett_rcg_CalculateNtResponseResp,
6651
14
    &ett_rcg_CalculateUserSessionKeyNtReq,
6652
14
    &ett_rcg_CalculateUserSessionKeyNtResp,
6653
14
    &ett_rcg_CompareCredentialsReq,
6654
14
    &ett_rcg_CompareCredentialsResp,
6655
14
    &ett_rcg_NtlmCredInput,
6656
14
    &ett_rcg_NtlmCredIsoRemoteInput,
6657
14
    &ett_rcg_NtlmCredOutput,
6658
14
    &ett_rcg_NtlmCredIsoRemoteOutput,
6659
14
  };
6660
6661
14
  proto_dcerpc_rcg = proto_register_protocol("RCG (pidl)", "RCG", "rcg");
6662
14
  proto_register_field_array(proto_dcerpc_rcg, hf, array_length (hf));
6663
14
  proto_register_subtree_array(ett, array_length(ett));
6664
14
}
6665
6666
void proto_reg_handoff_dcerpc_rcg(void)
6667
14
{
6668
14
  dcerpc_init_uuid(proto_dcerpc_rcg, ett_dcerpc_rcg,
6669
14
    &uuid_dcerpc_rcg, ver_dcerpc_rcg,
6670
14
    rcg_dissectors, hf_rcg_opnum);
6671
14
}