2 This file was automatically generated by Pidl
3 from efs.idl and efs.cnf.
5 Pidl is a perl based IDL compiler for DCE/RPC idl files.
6 It is maintained by the Samba team, not the Wireshark team.
7 Instructions on how to download and install Pidl can be
8 found at https://wiki.wireshark.org/Pidl
14 #include <wsutil/array.h>
15 #include <epan/packet.h>
18 #include "packet-dcerpc.h"
19 #include "packet-dcerpc-nt.h"
20 #include "packet-windows-common.h"
21 #include "packet-dcerpc-efs.h"
22 void proto_register_dcerpc_efs(void);
23 void proto_reg_handoff_dcerpc_efs(void);
25 /* Ett declarations */
26 static int ett_dcerpc_efs
;
27 static int ett_efs_EFS_HASH_BLOB
;
28 static int ett_efs_ENCRYPTION_CERTIFICATE_HASH
;
29 static int ett_efs_ENCRYPTION_CERTIFICATE_HASH_LIST
;
30 static int ett_efs_EFS_CERTIFICATE_BLOB
;
31 static int ett_efs_ENCRYPTION_CERTIFICATE
;
34 /* Header field declarations */
35 static int hf_efs_EFS_CERTIFICATE_BLOB_cbData
;
36 static int hf_efs_EFS_CERTIFICATE_BLOB_dwCertEncodingType
;
37 static int hf_efs_EFS_CERTIFICATE_BLOB_pbData
;
38 static int hf_efs_EFS_HASH_BLOB_cbData
;
39 static int hf_efs_EFS_HASH_BLOB_pbData
;
40 static int hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_nCert_Hash
;
41 static int hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers
;
42 static int hf_efs_ENCRYPTION_CERTIFICATE_HASH_cbTotalLength
;
43 static int hf_efs_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation
;
44 static int hf_efs_ENCRYPTION_CERTIFICATE_HASH_pHash
;
45 static int hf_efs_ENCRYPTION_CERTIFICATE_HASH_pUserSid
;
46 static int hf_efs_ENCRYPTION_CERTIFICATE_TotalLength
;
47 static int hf_efs_ENCRYPTION_CERTIFICATE_pCertBlob
;
48 static int hf_efs_ENCRYPTION_CERTIFICATE_pUserSid
;
49 static int hf_efs_EfsRpcAddUsersToFile_FileName
;
50 static int hf_efs_EfsRpcCloseRaw_pvContext
;
51 static int hf_efs_EfsRpcDecryptFileSrv_FileName
;
52 static int hf_efs_EfsRpcDecryptFileSrv_Reserved
;
53 static int hf_efs_EfsRpcEncryptFileSrv_Filename
;
54 static int hf_efs_EfsRpcOpenFileRaw_FileName
;
55 static int hf_efs_EfsRpcOpenFileRaw_Flags
;
56 static int hf_efs_EfsRpcOpenFileRaw_pvContext
;
57 static int hf_efs_EfsRpcQueryRecoveryAgents_FileName
;
58 static int hf_efs_EfsRpcQueryRecoveryAgents_pRecoveryAgents
;
59 static int hf_efs_EfsRpcQueryUsersOnFile_FileName
;
60 static int hf_efs_EfsRpcQueryUsersOnFile_pUsers
;
61 static int hf_efs_EfsRpcReadFileRaw_pvContext
;
62 static int hf_efs_EfsRpcRemoveUsersFromFile_FileName
;
63 static int hf_efs_EfsRpcSetFileEncryptionKey_pEncryptionCertificate
;
64 static int hf_efs_EfsRpcWriteFileRaw_pvContext
;
65 static int hf_efs_opnum
;
66 static int hf_efs_werror
;
68 static int proto_dcerpc_efs
;
69 /* Version information */
72 static e_guid_t uuid_dcerpc_efs
= {
73 0xc681d488, 0xd850, 0x11d0,
74 { 0x8c, 0x52, 0x00, 0xc0, 0x4f, 0xd9, 0x0f, 0x7e }
76 static uint16_t ver_dcerpc_efs
= 1;
78 static int efs_dissect_element_EFS_HASH_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_
);
79 static int efs_dissect_element_EFS_HASH_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_
);
80 static int efs_dissect_element_EFS_HASH_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_
);
81 static int efs_dissect_element_EFS_HASH_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_
);
82 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_cbTotalLength(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
83 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pUserSid(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
84 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pUserSid_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
85 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pHash(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
86 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pHash_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
87 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
88 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
89 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_nCert_Hash(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
90 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
91 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
92 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers__(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
93 static int efs_dissect_element_EFS_CERTIFICATE_BLOB_dwCertEncodingType(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
94 static int efs_dissect_element_EFS_CERTIFICATE_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_
);
95 static int efs_dissect_element_EFS_CERTIFICATE_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_
);
96 static int efs_dissect_element_EFS_CERTIFICATE_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_
);
97 static int efs_dissect_element_EFS_CERTIFICATE_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_
);
98 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_TotalLength(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
99 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_pUserSid(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
100 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_pUserSid_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
101 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_pCertBlob(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
102 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_pCertBlob_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
103 static int efs_dissect_element_EfsRpcOpenFileRaw_pvContext(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
104 static int efs_dissect_element_EfsRpcOpenFileRaw_pvContext_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
105 static int efs_dissect_element_EfsRpcOpenFileRaw_FileName(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
106 static int efs_dissect_element_EfsRpcOpenFileRaw_Flags(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
107 static int efs_dissect_element_EfsRpcReadFileRaw_pvContext(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
108 static int efs_dissect_element_EfsRpcReadFileRaw_pvContext_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
109 static int efs_dissect_element_EfsRpcWriteFileRaw_pvContext(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
110 static int efs_dissect_element_EfsRpcWriteFileRaw_pvContext_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
111 static int efs_dissect_element_EfsRpcCloseRaw_pvContext(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
112 static int efs_dissect_element_EfsRpcCloseRaw_pvContext_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
113 static int efs_dissect_element_EfsRpcEncryptFileSrv_Filename(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
114 static int efs_dissect_element_EfsRpcDecryptFileSrv_FileName(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
115 static int efs_dissect_element_EfsRpcDecryptFileSrv_Reserved(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
116 static int efs_dissect_element_EfsRpcQueryUsersOnFile_FileName(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
117 static int efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
118 static int efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
119 static int efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers__(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
120 static int efs_dissect_element_EfsRpcQueryRecoveryAgents_FileName(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
121 static int efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
122 static int efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
123 static int efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents__(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
124 static int efs_dissect_element_EfsRpcRemoveUsersFromFile_FileName(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
125 static int efs_dissect_element_EfsRpcAddUsersToFile_FileName(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
126 static int efs_dissect_element_EfsRpcSetFileEncryptionKey_pEncryptionCertificate(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
127 static int efs_dissect_element_EfsRpcSetFileEncryptionKey_pEncryptionCertificate_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
);
129 efs_dissect_struct_dom_sid(tvbuff_t
*tvb
, int offset
, packet_info
*pinfo _U_
, proto_tree
*tree
, dcerpc_info
* di
, uint8_t *drep _U_
, int hf_index _U_
, uint32_t param _U_
)
131 if(di
->conformant_run
){
132 /* just a run to handle conformant arrays, no scalars to dissect */
135 offset
=dissect_nt_sid(tvb
, offset
, tree
, "SID", NULL
, -1);
141 /* IDL: uint32 cbData; */
142 /* IDL: [size_is(cbData)] [unique(1)] uint8 *pbData; */
146 efs_dissect_element_EFS_HASH_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_
)
148 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_EFS_HASH_BLOB_cbData
, 0);
154 efs_dissect_element_EFS_HASH_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_
)
156 offset
= dissect_ndr_embedded_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, efs_dissect_element_EFS_HASH_BLOB_pbData_
, NDR_POINTER_UNIQUE
, "Pointer to PbData (uint8)",hf_efs_EFS_HASH_BLOB_pbData
);
162 efs_dissect_element_EFS_HASH_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_
)
164 offset
= dissect_ndr_ucarray(tvb
, offset
, pinfo
, tree
, di
, drep
, efs_dissect_element_EFS_HASH_BLOB_pbData__
);
170 efs_dissect_element_EFS_HASH_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_
)
172 offset
= PIDL_dissect_uint8(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_EFS_HASH_BLOB_pbData
, 0);
178 efs_dissect_struct_EFS_HASH_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_
)
180 proto_item
*item
= NULL
;
181 proto_tree
*tree
= NULL
;
189 item
= proto_tree_add_item(parent_tree
, hf_index
, tvb
, offset
, -1, ENC_NA
);
190 tree
= proto_item_add_subtree(item
, ett_efs_EFS_HASH_BLOB
);
193 offset
= efs_dissect_element_EFS_HASH_BLOB_cbData(tvb
, offset
, pinfo
, tree
, di
, drep
);
195 offset
= efs_dissect_element_EFS_HASH_BLOB_pbData(tvb
, offset
, pinfo
, tree
, di
, drep
);
198 proto_item_set_len(item
, offset
-old_offset
);
201 if (di
->call_data
->flags
& DCERPC_IS_NDR64
) {
210 /* IDL: uint32 cbTotalLength; */
211 /* IDL: [unique(1)] dom_sid *pUserSid; */
212 /* IDL: [unique(1)] EFS_HASH_BLOB *pHash; */
213 /* IDL: [charset(UTF16)] [unique(1)] uint16 *lpDisplayInformation; */
217 efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_cbTotalLength(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
219 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_ENCRYPTION_CERTIFICATE_HASH_cbTotalLength
, 0);
225 efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pUserSid(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
227 offset
= dissect_ndr_embedded_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pUserSid_
, NDR_POINTER_UNIQUE
, "Pointer to PUserSid (dom_sid)",hf_efs_ENCRYPTION_CERTIFICATE_HASH_pUserSid
);
233 efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pUserSid_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
235 offset
= efs_dissect_struct_dom_sid(tvb
,offset
,pinfo
,tree
,di
,drep
,hf_efs_ENCRYPTION_CERTIFICATE_HASH_pUserSid
,0);
241 efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pHash(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
243 offset
= dissect_ndr_embedded_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pHash_
, NDR_POINTER_UNIQUE
, "Pointer to PHash (EFS_HASH_BLOB)",hf_efs_ENCRYPTION_CERTIFICATE_HASH_pHash
);
249 efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pHash_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
251 offset
= efs_dissect_struct_EFS_HASH_BLOB(tvb
,offset
,pinfo
,tree
,di
,drep
,hf_efs_ENCRYPTION_CERTIFICATE_HASH_pHash
,0);
257 efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
259 offset
= dissect_ndr_embedded_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation_
, NDR_POINTER_UNIQUE
, "Pointer to LpDisplayInformation (uint16)",hf_efs_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation
);
265 efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
269 offset
= dissect_ndr_cvstring(tvb
, offset
, pinfo
, tree
, di
, drep
, sizeof(uint16_t), hf_efs_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation
, false, &data
);
270 proto_item_append_text(tree
, ": %s", data
);
276 efs_dissect_struct_ENCRYPTION_CERTIFICATE_HASH(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_
)
278 proto_item
*item
= NULL
;
279 proto_tree
*tree
= NULL
;
287 item
= proto_tree_add_item(parent_tree
, hf_index
, tvb
, offset
, -1, ENC_NA
);
288 tree
= proto_item_add_subtree(item
, ett_efs_ENCRYPTION_CERTIFICATE_HASH
);
291 offset
= efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_cbTotalLength(tvb
, offset
, pinfo
, tree
, di
, drep
);
293 offset
= efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pUserSid(tvb
, offset
, pinfo
, tree
, di
, drep
);
295 offset
= efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pHash(tvb
, offset
, pinfo
, tree
, di
, drep
);
297 offset
= efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation(tvb
, offset
, pinfo
, tree
, di
, drep
);
300 proto_item_set_len(item
, offset
-old_offset
);
303 if (di
->call_data
->flags
& DCERPC_IS_NDR64
) {
312 /* IDL: uint32 nCert_Hash; */
313 /* IDL: [size_is(nCert_Hash)] [unique(1)] ENCRYPTION_CERTIFICATE_HASH *pUsers[*]; */
317 efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_nCert_Hash(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
319 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_nCert_Hash
, 0);
325 efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
327 offset
= dissect_ndr_ucarray(tvb
, offset
, pinfo
, tree
, di
, drep
, efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers_
);
333 efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
335 offset
= dissect_ndr_embedded_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers__
, NDR_POINTER_UNIQUE
, "Pointer to PUsers (ENCRYPTION_CERTIFICATE_HASH)",hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers
);
341 efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers__(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
343 offset
= efs_dissect_struct_ENCRYPTION_CERTIFICATE_HASH(tvb
,offset
,pinfo
,tree
,di
,drep
,hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers
,0);
349 efs_dissect_struct_ENCRYPTION_CERTIFICATE_HASH_LIST(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_
)
351 proto_item
*item
= NULL
;
352 proto_tree
*tree
= NULL
;
360 item
= proto_tree_add_item(parent_tree
, hf_index
, tvb
, offset
, -1, ENC_NA
);
361 tree
= proto_item_add_subtree(item
, ett_efs_ENCRYPTION_CERTIFICATE_HASH_LIST
);
364 offset
= efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_nCert_Hash(tvb
, offset
, pinfo
, tree
, di
, drep
);
366 offset
= efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers(tvb
, offset
, pinfo
, tree
, di
, drep
);
369 proto_item_set_len(item
, offset
-old_offset
);
372 if (di
->call_data
->flags
& DCERPC_IS_NDR64
) {
381 /* IDL: uint32 dwCertEncodingType; */
382 /* IDL: uint32 cbData; */
383 /* IDL: [size_is(cbData)] [unique(1)] uint8 *pbData; */
387 efs_dissect_element_EFS_CERTIFICATE_BLOB_dwCertEncodingType(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
389 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_EFS_CERTIFICATE_BLOB_dwCertEncodingType
, 0);
395 efs_dissect_element_EFS_CERTIFICATE_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_
)
397 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_EFS_CERTIFICATE_BLOB_cbData
, 0);
403 efs_dissect_element_EFS_CERTIFICATE_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_
)
405 offset
= dissect_ndr_embedded_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData_
, NDR_POINTER_UNIQUE
, "Pointer to PbData (uint8)",hf_efs_EFS_CERTIFICATE_BLOB_pbData
);
411 efs_dissect_element_EFS_CERTIFICATE_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_
)
413 offset
= dissect_ndr_ucarray(tvb
, offset
, pinfo
, tree
, di
, drep
, efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData__
);
419 efs_dissect_element_EFS_CERTIFICATE_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_
)
421 offset
= PIDL_dissect_uint8(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_EFS_CERTIFICATE_BLOB_pbData
, 0);
427 efs_dissect_struct_EFS_CERTIFICATE_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_
)
429 proto_item
*item
= NULL
;
430 proto_tree
*tree
= NULL
;
438 item
= proto_tree_add_item(parent_tree
, hf_index
, tvb
, offset
, -1, ENC_NA
);
439 tree
= proto_item_add_subtree(item
, ett_efs_EFS_CERTIFICATE_BLOB
);
442 offset
= efs_dissect_element_EFS_CERTIFICATE_BLOB_dwCertEncodingType(tvb
, offset
, pinfo
, tree
, di
, drep
);
444 offset
= efs_dissect_element_EFS_CERTIFICATE_BLOB_cbData(tvb
, offset
, pinfo
, tree
, di
, drep
);
446 offset
= efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData(tvb
, offset
, pinfo
, tree
, di
, drep
);
449 proto_item_set_len(item
, offset
-old_offset
);
452 if (di
->call_data
->flags
& DCERPC_IS_NDR64
) {
461 /* IDL: uint32 TotalLength; */
462 /* IDL: [unique(1)] dom_sid *pUserSid; */
463 /* IDL: [unique(1)] EFS_CERTIFICATE_BLOB *pCertBlob; */
467 efs_dissect_element_ENCRYPTION_CERTIFICATE_TotalLength(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
469 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_ENCRYPTION_CERTIFICATE_TotalLength
, 0);
475 efs_dissect_element_ENCRYPTION_CERTIFICATE_pUserSid(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
477 offset
= dissect_ndr_embedded_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, efs_dissect_element_ENCRYPTION_CERTIFICATE_pUserSid_
, NDR_POINTER_UNIQUE
, "Pointer to PUserSid (dom_sid)",hf_efs_ENCRYPTION_CERTIFICATE_pUserSid
);
483 efs_dissect_element_ENCRYPTION_CERTIFICATE_pUserSid_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
485 offset
= efs_dissect_struct_dom_sid(tvb
,offset
,pinfo
,tree
,di
,drep
,hf_efs_ENCRYPTION_CERTIFICATE_pUserSid
,0);
491 efs_dissect_element_ENCRYPTION_CERTIFICATE_pCertBlob(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
493 offset
= dissect_ndr_embedded_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, efs_dissect_element_ENCRYPTION_CERTIFICATE_pCertBlob_
, NDR_POINTER_UNIQUE
, "Pointer to PCertBlob (EFS_CERTIFICATE_BLOB)",hf_efs_ENCRYPTION_CERTIFICATE_pCertBlob
);
499 efs_dissect_element_ENCRYPTION_CERTIFICATE_pCertBlob_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
501 offset
= efs_dissect_struct_EFS_CERTIFICATE_BLOB(tvb
,offset
,pinfo
,tree
,di
,drep
,hf_efs_ENCRYPTION_CERTIFICATE_pCertBlob
,0);
507 efs_dissect_struct_ENCRYPTION_CERTIFICATE(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_
)
509 proto_item
*item
= NULL
;
510 proto_tree
*tree
= NULL
;
518 item
= proto_tree_add_item(parent_tree
, hf_index
, tvb
, offset
, -1, ENC_NA
);
519 tree
= proto_item_add_subtree(item
, ett_efs_ENCRYPTION_CERTIFICATE
);
522 offset
= efs_dissect_element_ENCRYPTION_CERTIFICATE_TotalLength(tvb
, offset
, pinfo
, tree
, di
, drep
);
524 offset
= efs_dissect_element_ENCRYPTION_CERTIFICATE_pUserSid(tvb
, offset
, pinfo
, tree
, di
, drep
);
526 offset
= efs_dissect_element_ENCRYPTION_CERTIFICATE_pCertBlob(tvb
, offset
, pinfo
, tree
, di
, drep
);
529 proto_item_set_len(item
, offset
-old_offset
);
532 if (di
->call_data
->flags
& DCERPC_IS_NDR64
) {
540 efs_dissect_element_EfsRpcOpenFileRaw_pvContext(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
542 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, efs_dissect_element_EfsRpcOpenFileRaw_pvContext_
, NDR_POINTER_REF
, "Pointer to PvContext (policy_handle)",hf_efs_EfsRpcOpenFileRaw_pvContext
);
548 efs_dissect_element_EfsRpcOpenFileRaw_pvContext_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
550 offset
= PIDL_dissect_policy_hnd(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_EfsRpcOpenFileRaw_pvContext
, PIDL_POLHND_OPEN
);
556 efs_dissect_element_EfsRpcOpenFileRaw_FileName(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
560 offset
= dissect_ndr_cvstring(tvb
, offset
, pinfo
, tree
, di
, drep
, sizeof(uint16_t), hf_efs_EfsRpcOpenFileRaw_FileName
, false, &data
);
561 proto_item_append_text(tree
, ": %s", data
);
567 efs_dissect_element_EfsRpcOpenFileRaw_Flags(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
569 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_EfsRpcOpenFileRaw_Flags
, 0);
574 /* IDL: WERROR EfsRpcOpenFileRaw( */
575 /* IDL: [out] [ref] policy_handle *pvContext, */
576 /* IDL: [charset(UTF16)] [in] uint16 FileName[*], */
577 /* IDL: [in] uint32 Flags */
581 efs_dissect_EfsRpcOpenFileRaw_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
585 di
->dcerpc_procedure_name
="EfsRpcOpenFileRaw";
586 offset
= efs_dissect_element_EfsRpcOpenFileRaw_pvContext(tvb
, offset
, pinfo
, tree
, di
, drep
);
587 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
589 offset
= dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_werror
, &status
);
592 col_append_fstr(pinfo
->cinfo
, COL_INFO
, ", Error: %s", val_to_str_ext(status
, &WERR_errors_ext
, "Unknown DOS error 0x%08x"));
598 efs_dissect_EfsRpcOpenFileRaw_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
600 di
->dcerpc_procedure_name
="EfsRpcOpenFileRaw";
601 offset
= efs_dissect_element_EfsRpcOpenFileRaw_FileName(tvb
, offset
, pinfo
, tree
, di
, drep
);
602 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
603 offset
= efs_dissect_element_EfsRpcOpenFileRaw_Flags(tvb
, offset
, pinfo
, tree
, di
, drep
);
604 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
609 efs_dissect_element_EfsRpcReadFileRaw_pvContext(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
611 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, efs_dissect_element_EfsRpcReadFileRaw_pvContext_
, NDR_POINTER_REF
, "Pointer to PvContext (policy_handle)",hf_efs_EfsRpcReadFileRaw_pvContext
);
617 efs_dissect_element_EfsRpcReadFileRaw_pvContext_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
619 offset
= PIDL_dissect_policy_hnd(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_EfsRpcReadFileRaw_pvContext
, 0);
624 /* IDL: WERROR EfsRpcReadFileRaw( */
625 /* IDL: [in] [ref] policy_handle *pvContext */
629 efs_dissect_EfsRpcReadFileRaw_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
633 di
->dcerpc_procedure_name
="EfsRpcReadFileRaw";
634 offset
= dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_werror
, &status
);
637 col_append_fstr(pinfo
->cinfo
, COL_INFO
, ", Error: %s", val_to_str_ext(status
, &WERR_errors_ext
, "Unknown DOS error 0x%08x"));
643 efs_dissect_EfsRpcReadFileRaw_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
645 di
->dcerpc_procedure_name
="EfsRpcReadFileRaw";
646 offset
= efs_dissect_element_EfsRpcReadFileRaw_pvContext(tvb
, offset
, pinfo
, tree
, di
, drep
);
647 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
652 efs_dissect_element_EfsRpcWriteFileRaw_pvContext(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
654 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, efs_dissect_element_EfsRpcWriteFileRaw_pvContext_
, NDR_POINTER_REF
, "Pointer to PvContext (policy_handle)",hf_efs_EfsRpcWriteFileRaw_pvContext
);
660 efs_dissect_element_EfsRpcWriteFileRaw_pvContext_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
662 offset
= PIDL_dissect_policy_hnd(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_EfsRpcWriteFileRaw_pvContext
, 0);
667 /* IDL: WERROR EfsRpcWriteFileRaw( */
668 /* IDL: [in] [ref] policy_handle *pvContext */
672 efs_dissect_EfsRpcWriteFileRaw_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
676 di
->dcerpc_procedure_name
="EfsRpcWriteFileRaw";
677 offset
= dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_werror
, &status
);
680 col_append_fstr(pinfo
->cinfo
, COL_INFO
, ", Error: %s", val_to_str_ext(status
, &WERR_errors_ext
, "Unknown DOS error 0x%08x"));
686 efs_dissect_EfsRpcWriteFileRaw_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
688 di
->dcerpc_procedure_name
="EfsRpcWriteFileRaw";
689 offset
= efs_dissect_element_EfsRpcWriteFileRaw_pvContext(tvb
, offset
, pinfo
, tree
, di
, drep
);
690 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
695 efs_dissect_element_EfsRpcCloseRaw_pvContext(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
697 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, efs_dissect_element_EfsRpcCloseRaw_pvContext_
, NDR_POINTER_REF
, "Pointer to PvContext (policy_handle)",hf_efs_EfsRpcCloseRaw_pvContext
);
703 efs_dissect_element_EfsRpcCloseRaw_pvContext_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
705 offset
= PIDL_dissect_policy_hnd(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_EfsRpcCloseRaw_pvContext
, PIDL_POLHND_CLOSE
);
710 /* IDL: void EfsRpcCloseRaw( */
711 /* IDL: [in] [out] [ref] policy_handle *pvContext */
715 efs_dissect_EfsRpcCloseRaw_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
717 di
->dcerpc_procedure_name
="EfsRpcCloseRaw";
718 offset
= efs_dissect_element_EfsRpcCloseRaw_pvContext(tvb
, offset
, pinfo
, tree
, di
, drep
);
719 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
725 efs_dissect_EfsRpcCloseRaw_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
727 di
->dcerpc_procedure_name
="EfsRpcCloseRaw";
728 offset
= efs_dissect_element_EfsRpcCloseRaw_pvContext(tvb
, offset
, pinfo
, tree
, di
, drep
);
729 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
734 efs_dissect_element_EfsRpcEncryptFileSrv_Filename(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
738 offset
= dissect_ndr_cvstring(tvb
, offset
, pinfo
, tree
, di
, drep
, sizeof(uint16_t), hf_efs_EfsRpcEncryptFileSrv_Filename
, false, &data
);
739 proto_item_append_text(tree
, ": %s", data
);
744 /* IDL: WERROR EfsRpcEncryptFileSrv( */
745 /* IDL: [charset(UTF16)] [in] uint16 Filename[*] */
749 efs_dissect_EfsRpcEncryptFileSrv_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
753 di
->dcerpc_procedure_name
="EfsRpcEncryptFileSrv";
754 offset
= dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_werror
, &status
);
757 col_append_fstr(pinfo
->cinfo
, COL_INFO
, ", Error: %s", val_to_str_ext(status
, &WERR_errors_ext
, "Unknown DOS error 0x%08x"));
763 efs_dissect_EfsRpcEncryptFileSrv_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
765 di
->dcerpc_procedure_name
="EfsRpcEncryptFileSrv";
766 offset
= efs_dissect_element_EfsRpcEncryptFileSrv_Filename(tvb
, offset
, pinfo
, tree
, di
, drep
);
767 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
772 efs_dissect_element_EfsRpcDecryptFileSrv_FileName(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
776 offset
= dissect_ndr_cvstring(tvb
, offset
, pinfo
, tree
, di
, drep
, sizeof(uint16_t), hf_efs_EfsRpcDecryptFileSrv_FileName
, false, &data
);
777 proto_item_append_text(tree
, ": %s", data
);
783 efs_dissect_element_EfsRpcDecryptFileSrv_Reserved(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
785 offset
= PIDL_dissect_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_EfsRpcDecryptFileSrv_Reserved
, 0);
790 /* IDL: WERROR EfsRpcDecryptFileSrv( */
791 /* IDL: [charset(UTF16)] [in] uint16 FileName[*], */
792 /* IDL: [in] uint32 Reserved */
796 efs_dissect_EfsRpcDecryptFileSrv_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
800 di
->dcerpc_procedure_name
="EfsRpcDecryptFileSrv";
801 offset
= dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_werror
, &status
);
804 col_append_fstr(pinfo
->cinfo
, COL_INFO
, ", Error: %s", val_to_str_ext(status
, &WERR_errors_ext
, "Unknown DOS error 0x%08x"));
810 efs_dissect_EfsRpcDecryptFileSrv_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
812 di
->dcerpc_procedure_name
="EfsRpcDecryptFileSrv";
813 offset
= efs_dissect_element_EfsRpcDecryptFileSrv_FileName(tvb
, offset
, pinfo
, tree
, di
, drep
);
814 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
815 offset
= efs_dissect_element_EfsRpcDecryptFileSrv_Reserved(tvb
, offset
, pinfo
, tree
, di
, drep
);
816 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
821 efs_dissect_element_EfsRpcQueryUsersOnFile_FileName(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
825 offset
= dissect_ndr_cvstring(tvb
, offset
, pinfo
, tree
, di
, drep
, sizeof(uint16_t), hf_efs_EfsRpcQueryUsersOnFile_FileName
, false, &data
);
826 proto_item_append_text(tree
, ": %s", data
);
832 efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
834 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers_
, NDR_POINTER_REF
, "Pointer to PUsers (ENCRYPTION_CERTIFICATE_HASH_LIST)",hf_efs_EfsRpcQueryUsersOnFile_pUsers
);
840 efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
842 offset
= dissect_ndr_embedded_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers__
, NDR_POINTER_UNIQUE
, "Pointer to PUsers (ENCRYPTION_CERTIFICATE_HASH_LIST)",hf_efs_EfsRpcQueryUsersOnFile_pUsers
);
848 efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers__(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
850 offset
= efs_dissect_struct_ENCRYPTION_CERTIFICATE_HASH_LIST(tvb
,offset
,pinfo
,tree
,di
,drep
,hf_efs_EfsRpcQueryUsersOnFile_pUsers
,0);
855 /* IDL: WERROR EfsRpcQueryUsersOnFile( */
856 /* IDL: [charset(UTF16)] [in] uint16 FileName[*], */
857 /* IDL: [out] [ref] [unique(1)] ENCRYPTION_CERTIFICATE_HASH_LIST **pUsers */
861 efs_dissect_EfsRpcQueryUsersOnFile_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
865 di
->dcerpc_procedure_name
="EfsRpcQueryUsersOnFile";
866 offset
= efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers(tvb
, offset
, pinfo
, tree
, di
, drep
);
867 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
869 offset
= dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_werror
, &status
);
872 col_append_fstr(pinfo
->cinfo
, COL_INFO
, ", Error: %s", val_to_str_ext(status
, &WERR_errors_ext
, "Unknown DOS error 0x%08x"));
878 efs_dissect_EfsRpcQueryUsersOnFile_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
880 di
->dcerpc_procedure_name
="EfsRpcQueryUsersOnFile";
881 offset
= efs_dissect_element_EfsRpcQueryUsersOnFile_FileName(tvb
, offset
, pinfo
, tree
, di
, drep
);
882 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
887 efs_dissect_element_EfsRpcQueryRecoveryAgents_FileName(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
891 offset
= dissect_ndr_cvstring(tvb
, offset
, pinfo
, tree
, di
, drep
, sizeof(uint16_t), hf_efs_EfsRpcQueryRecoveryAgents_FileName
, false, &data
);
892 proto_item_append_text(tree
, ": %s", data
);
898 efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
900 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents_
, NDR_POINTER_REF
, "Pointer to PRecoveryAgents (ENCRYPTION_CERTIFICATE_HASH_LIST)",hf_efs_EfsRpcQueryRecoveryAgents_pRecoveryAgents
);
906 efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
908 offset
= dissect_ndr_embedded_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents__
, NDR_POINTER_UNIQUE
, "Pointer to PRecoveryAgents (ENCRYPTION_CERTIFICATE_HASH_LIST)",hf_efs_EfsRpcQueryRecoveryAgents_pRecoveryAgents
);
914 efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents__(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
916 offset
= efs_dissect_struct_ENCRYPTION_CERTIFICATE_HASH_LIST(tvb
,offset
,pinfo
,tree
,di
,drep
,hf_efs_EfsRpcQueryRecoveryAgents_pRecoveryAgents
,0);
921 /* IDL: WERROR EfsRpcQueryRecoveryAgents( */
922 /* IDL: [charset(UTF16)] [in] uint16 FileName[*], */
923 /* IDL: [out] [ref] [unique(1)] ENCRYPTION_CERTIFICATE_HASH_LIST **pRecoveryAgents */
927 efs_dissect_EfsRpcQueryRecoveryAgents_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
931 di
->dcerpc_procedure_name
="EfsRpcQueryRecoveryAgents";
932 offset
= efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents(tvb
, offset
, pinfo
, tree
, di
, drep
);
933 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
935 offset
= dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_werror
, &status
);
938 col_append_fstr(pinfo
->cinfo
, COL_INFO
, ", Error: %s", val_to_str_ext(status
, &WERR_errors_ext
, "Unknown DOS error 0x%08x"));
944 efs_dissect_EfsRpcQueryRecoveryAgents_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
946 di
->dcerpc_procedure_name
="EfsRpcQueryRecoveryAgents";
947 offset
= efs_dissect_element_EfsRpcQueryRecoveryAgents_FileName(tvb
, offset
, pinfo
, tree
, di
, drep
);
948 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
953 efs_dissect_element_EfsRpcRemoveUsersFromFile_FileName(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
957 offset
= dissect_ndr_cvstring(tvb
, offset
, pinfo
, tree
, di
, drep
, sizeof(uint16_t), hf_efs_EfsRpcRemoveUsersFromFile_FileName
, false, &data
);
958 proto_item_append_text(tree
, ": %s", data
);
963 /* IDL: WERROR EfsRpcRemoveUsersFromFile( */
964 /* IDL: [charset(UTF16)] [in] uint16 FileName[*] */
968 efs_dissect_EfsRpcRemoveUsersFromFile_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
972 di
->dcerpc_procedure_name
="EfsRpcRemoveUsersFromFile";
973 offset
= dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_werror
, &status
);
976 col_append_fstr(pinfo
->cinfo
, COL_INFO
, ", Error: %s", val_to_str_ext(status
, &WERR_errors_ext
, "Unknown DOS error 0x%08x"));
982 efs_dissect_EfsRpcRemoveUsersFromFile_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
984 di
->dcerpc_procedure_name
="EfsRpcRemoveUsersFromFile";
985 offset
= efs_dissect_element_EfsRpcRemoveUsersFromFile_FileName(tvb
, offset
, pinfo
, tree
, di
, drep
);
986 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
991 efs_dissect_element_EfsRpcAddUsersToFile_FileName(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
995 offset
= dissect_ndr_cvstring(tvb
, offset
, pinfo
, tree
, di
, drep
, sizeof(uint16_t), hf_efs_EfsRpcAddUsersToFile_FileName
, false, &data
);
996 proto_item_append_text(tree
, ": %s", data
);
1001 /* IDL: WERROR EfsRpcAddUsersToFile( */
1002 /* IDL: [charset(UTF16)] [in] uint16 FileName[*] */
1006 efs_dissect_EfsRpcAddUsersToFile_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
1010 di
->dcerpc_procedure_name
="EfsRpcAddUsersToFile";
1011 offset
= dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_werror
, &status
);
1014 col_append_fstr(pinfo
->cinfo
, COL_INFO
, ", Error: %s", val_to_str_ext(status
, &WERR_errors_ext
, "Unknown DOS error 0x%08x"));
1020 efs_dissect_EfsRpcAddUsersToFile_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
1022 di
->dcerpc_procedure_name
="EfsRpcAddUsersToFile";
1023 offset
= efs_dissect_element_EfsRpcAddUsersToFile_FileName(tvb
, offset
, pinfo
, tree
, di
, drep
);
1024 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
1029 efs_dissect_element_EfsRpcSetFileEncryptionKey_pEncryptionCertificate(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
1031 offset
= dissect_ndr_toplevel_pointer(tvb
, offset
, pinfo
, tree
, di
, drep
, efs_dissect_element_EfsRpcSetFileEncryptionKey_pEncryptionCertificate_
, NDR_POINTER_UNIQUE
, "Pointer to PEncryptionCertificate (ENCRYPTION_CERTIFICATE)",hf_efs_EfsRpcSetFileEncryptionKey_pEncryptionCertificate
);
1037 efs_dissect_element_EfsRpcSetFileEncryptionKey_pEncryptionCertificate_(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
1039 offset
= efs_dissect_struct_ENCRYPTION_CERTIFICATE(tvb
,offset
,pinfo
,tree
,di
,drep
,hf_efs_EfsRpcSetFileEncryptionKey_pEncryptionCertificate
,0);
1044 /* IDL: WERROR EfsRpcSetFileEncryptionKey( */
1045 /* IDL: [in] [unique(1)] ENCRYPTION_CERTIFICATE *pEncryptionCertificate */
1049 efs_dissect_EfsRpcSetFileEncryptionKey_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
1053 di
->dcerpc_procedure_name
="EfsRpcSetFileEncryptionKey";
1054 offset
= dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_werror
, &status
);
1057 col_append_fstr(pinfo
->cinfo
, COL_INFO
, ", Error: %s", val_to_str_ext(status
, &WERR_errors_ext
, "Unknown DOS error 0x%08x"));
1063 efs_dissect_EfsRpcSetFileEncryptionKey_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
1065 di
->dcerpc_procedure_name
="EfsRpcSetFileEncryptionKey";
1066 offset
= efs_dissect_element_EfsRpcSetFileEncryptionKey_pEncryptionCertificate(tvb
, offset
, pinfo
, tree
, di
, drep
);
1067 offset
= dissect_deferred_pointers(pinfo
, tvb
, offset
, di
, drep
);
1071 /* IDL: WERROR EfsRpcNotSupported( */
1076 efs_dissect_EfsRpcNotSupported_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
1080 di
->dcerpc_procedure_name
="EfsRpcNotSupported";
1081 offset
= dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_werror
, &status
);
1084 col_append_fstr(pinfo
->cinfo
, COL_INFO
, ", Error: %s", val_to_str_ext(status
, &WERR_errors_ext
, "Unknown DOS error 0x%08x"));
1090 efs_dissect_EfsRpcNotSupported_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
1092 di
->dcerpc_procedure_name
="EfsRpcNotSupported";
1096 /* IDL: WERROR EfsRpcFileKeyInfo( */
1101 efs_dissect_EfsRpcFileKeyInfo_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
1105 di
->dcerpc_procedure_name
="EfsRpcFileKeyInfo";
1106 offset
= dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_werror
, &status
);
1109 col_append_fstr(pinfo
->cinfo
, COL_INFO
, ", Error: %s", val_to_str_ext(status
, &WERR_errors_ext
, "Unknown DOS error 0x%08x"));
1115 efs_dissect_EfsRpcFileKeyInfo_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
1117 di
->dcerpc_procedure_name
="EfsRpcFileKeyInfo";
1121 /* IDL: WERROR EfsRpcDuplicateEncryptionInfoFile( */
1126 efs_dissect_EfsRpcDuplicateEncryptionInfoFile_response(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
1130 di
->dcerpc_procedure_name
="EfsRpcDuplicateEncryptionInfoFile";
1131 offset
= dissect_ndr_uint32(tvb
, offset
, pinfo
, tree
, di
, drep
, hf_efs_werror
, &status
);
1134 col_append_fstr(pinfo
->cinfo
, COL_INFO
, ", Error: %s", val_to_str_ext(status
, &WERR_errors_ext
, "Unknown DOS error 0x%08x"));
1140 efs_dissect_EfsRpcDuplicateEncryptionInfoFile_request(tvbuff_t
*tvb _U_
, int offset _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, dcerpc_info
* di _U_
, uint8_t *drep _U_
)
1142 di
->dcerpc_procedure_name
="EfsRpcDuplicateEncryptionInfoFile";
1147 static const dcerpc_sub_dissector efs_dissectors
[] = {
1148 { 0, "EfsRpcOpenFileRaw",
1149 efs_dissect_EfsRpcOpenFileRaw_request
, efs_dissect_EfsRpcOpenFileRaw_response
},
1150 { 1, "EfsRpcReadFileRaw",
1151 efs_dissect_EfsRpcReadFileRaw_request
, efs_dissect_EfsRpcReadFileRaw_response
},
1152 { 2, "EfsRpcWriteFileRaw",
1153 efs_dissect_EfsRpcWriteFileRaw_request
, efs_dissect_EfsRpcWriteFileRaw_response
},
1154 { 3, "EfsRpcCloseRaw",
1155 efs_dissect_EfsRpcCloseRaw_request
, efs_dissect_EfsRpcCloseRaw_response
},
1156 { 4, "EfsRpcEncryptFileSrv",
1157 efs_dissect_EfsRpcEncryptFileSrv_request
, efs_dissect_EfsRpcEncryptFileSrv_response
},
1158 { 5, "EfsRpcDecryptFileSrv",
1159 efs_dissect_EfsRpcDecryptFileSrv_request
, efs_dissect_EfsRpcDecryptFileSrv_response
},
1160 { 6, "EfsRpcQueryUsersOnFile",
1161 efs_dissect_EfsRpcQueryUsersOnFile_request
, efs_dissect_EfsRpcQueryUsersOnFile_response
},
1162 { 7, "EfsRpcQueryRecoveryAgents",
1163 efs_dissect_EfsRpcQueryRecoveryAgents_request
, efs_dissect_EfsRpcQueryRecoveryAgents_response
},
1164 { 8, "EfsRpcRemoveUsersFromFile",
1165 efs_dissect_EfsRpcRemoveUsersFromFile_request
, efs_dissect_EfsRpcRemoveUsersFromFile_response
},
1166 { 9, "EfsRpcAddUsersToFile",
1167 efs_dissect_EfsRpcAddUsersToFile_request
, efs_dissect_EfsRpcAddUsersToFile_response
},
1168 { 10, "EfsRpcSetFileEncryptionKey",
1169 efs_dissect_EfsRpcSetFileEncryptionKey_request
, efs_dissect_EfsRpcSetFileEncryptionKey_response
},
1170 { 11, "EfsRpcNotSupported",
1171 efs_dissect_EfsRpcNotSupported_request
, efs_dissect_EfsRpcNotSupported_response
},
1172 { 12, "EfsRpcFileKeyInfo",
1173 efs_dissect_EfsRpcFileKeyInfo_request
, efs_dissect_EfsRpcFileKeyInfo_response
},
1174 { 13, "EfsRpcDuplicateEncryptionInfoFile",
1175 efs_dissect_EfsRpcDuplicateEncryptionInfoFile_request
, efs_dissect_EfsRpcDuplicateEncryptionInfoFile_response
},
1176 { 0, NULL
, NULL
, NULL
}
1179 void proto_register_dcerpc_efs(void)
1181 static hf_register_info hf
[] = {
1182 { &hf_efs_EFS_CERTIFICATE_BLOB_cbData
,
1183 { "CbData", "efs.EFS_CERTIFICATE_BLOB.cbData", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
1184 { &hf_efs_EFS_CERTIFICATE_BLOB_dwCertEncodingType
,
1185 { "DwCertEncodingType", "efs.EFS_CERTIFICATE_BLOB.dwCertEncodingType", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
1186 { &hf_efs_EFS_CERTIFICATE_BLOB_pbData
,
1187 { "PbData", "efs.EFS_CERTIFICATE_BLOB.pbData", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
1188 { &hf_efs_EFS_HASH_BLOB_cbData
,
1189 { "CbData", "efs.EFS_HASH_BLOB.cbData", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
1190 { &hf_efs_EFS_HASH_BLOB_pbData
,
1191 { "PbData", "efs.EFS_HASH_BLOB.pbData", FT_UINT8
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
1192 { &hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_nCert_Hash
,
1193 { "NCert Hash", "efs.ENCRYPTION_CERTIFICATE_HASH_LIST.nCert_Hash", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
1194 { &hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers
,
1195 { "PUsers", "efs.ENCRYPTION_CERTIFICATE_HASH_LIST.pUsers", FT_NONE
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
1196 { &hf_efs_ENCRYPTION_CERTIFICATE_HASH_cbTotalLength
,
1197 { "CbTotalLength", "efs.ENCRYPTION_CERTIFICATE_HASH.cbTotalLength", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
1198 { &hf_efs_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation
,
1199 { "LpDisplayInformation", "efs.ENCRYPTION_CERTIFICATE_HASH.lpDisplayInformation", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
1200 { &hf_efs_ENCRYPTION_CERTIFICATE_HASH_pHash
,
1201 { "PHash", "efs.ENCRYPTION_CERTIFICATE_HASH.pHash", FT_NONE
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
1202 { &hf_efs_ENCRYPTION_CERTIFICATE_HASH_pUserSid
,
1203 { "PUserSid", "efs.ENCRYPTION_CERTIFICATE_HASH.pUserSid", FT_NONE
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
1204 { &hf_efs_ENCRYPTION_CERTIFICATE_TotalLength
,
1205 { "TotalLength", "efs.ENCRYPTION_CERTIFICATE.TotalLength", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
1206 { &hf_efs_ENCRYPTION_CERTIFICATE_pCertBlob
,
1207 { "PCertBlob", "efs.ENCRYPTION_CERTIFICATE.pCertBlob", FT_NONE
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
1208 { &hf_efs_ENCRYPTION_CERTIFICATE_pUserSid
,
1209 { "PUserSid", "efs.ENCRYPTION_CERTIFICATE.pUserSid", FT_NONE
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
1210 { &hf_efs_EfsRpcAddUsersToFile_FileName
,
1211 { "FileName", "efs.EfsRpcAddUsersToFile.FileName", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
1212 { &hf_efs_EfsRpcCloseRaw_pvContext
,
1213 { "PvContext", "efs.EfsRpcCloseRaw.pvContext", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
1214 { &hf_efs_EfsRpcDecryptFileSrv_FileName
,
1215 { "FileName", "efs.EfsRpcDecryptFileSrv.FileName", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
1216 { &hf_efs_EfsRpcDecryptFileSrv_Reserved
,
1217 { "Reserved", "efs.EfsRpcDecryptFileSrv.Reserved", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
1218 { &hf_efs_EfsRpcEncryptFileSrv_Filename
,
1219 { "Filename", "efs.EfsRpcEncryptFileSrv.Filename", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
1220 { &hf_efs_EfsRpcOpenFileRaw_FileName
,
1221 { "FileName", "efs.EfsRpcOpenFileRaw.FileName", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
1222 { &hf_efs_EfsRpcOpenFileRaw_Flags
,
1223 { "Flags", "efs.EfsRpcOpenFileRaw.Flags", FT_UINT32
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
1224 { &hf_efs_EfsRpcOpenFileRaw_pvContext
,
1225 { "PvContext", "efs.EfsRpcOpenFileRaw.pvContext", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
1226 { &hf_efs_EfsRpcQueryRecoveryAgents_FileName
,
1227 { "FileName", "efs.EfsRpcQueryRecoveryAgents.FileName", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
1228 { &hf_efs_EfsRpcQueryRecoveryAgents_pRecoveryAgents
,
1229 { "PRecoveryAgents", "efs.EfsRpcQueryRecoveryAgents.pRecoveryAgents", FT_NONE
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
1230 { &hf_efs_EfsRpcQueryUsersOnFile_FileName
,
1231 { "FileName", "efs.EfsRpcQueryUsersOnFile.FileName", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
1232 { &hf_efs_EfsRpcQueryUsersOnFile_pUsers
,
1233 { "PUsers", "efs.EfsRpcQueryUsersOnFile.pUsers", FT_NONE
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
1234 { &hf_efs_EfsRpcReadFileRaw_pvContext
,
1235 { "PvContext", "efs.EfsRpcReadFileRaw.pvContext", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
1236 { &hf_efs_EfsRpcRemoveUsersFromFile_FileName
,
1237 { "FileName", "efs.EfsRpcRemoveUsersFromFile.FileName", FT_STRING
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
1238 { &hf_efs_EfsRpcSetFileEncryptionKey_pEncryptionCertificate
,
1239 { "PEncryptionCertificate", "efs.EfsRpcSetFileEncryptionKey.pEncryptionCertificate", FT_NONE
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
1240 { &hf_efs_EfsRpcWriteFileRaw_pvContext
,
1241 { "PvContext", "efs.EfsRpcWriteFileRaw.pvContext", FT_BYTES
, BASE_NONE
, NULL
, 0, NULL
, HFILL
}},
1243 { "Operation", "efs.opnum", FT_UINT16
, BASE_DEC
, NULL
, 0, NULL
, HFILL
}},
1245 { "Windows Error", "efs.werror", FT_UINT32
, BASE_HEX
|BASE_EXT_STRING
, &WERR_errors_ext
, 0, NULL
, HFILL
}},
1249 static int *ett
[] = {
1251 &ett_efs_EFS_HASH_BLOB
,
1252 &ett_efs_ENCRYPTION_CERTIFICATE_HASH
,
1253 &ett_efs_ENCRYPTION_CERTIFICATE_HASH_LIST
,
1254 &ett_efs_EFS_CERTIFICATE_BLOB
,
1255 &ett_efs_ENCRYPTION_CERTIFICATE
,
1258 proto_dcerpc_efs
= proto_register_protocol("EFS (pidl)", "EFS", "efs");
1259 proto_register_field_array(proto_dcerpc_efs
, hf
, array_length (hf
));
1260 proto_register_subtree_array(ett
, array_length(ett
));
1263 void proto_reg_handoff_dcerpc_efs(void)
1265 dcerpc_init_uuid(proto_dcerpc_efs
, ett_dcerpc_efs
,
1266 &uuid_dcerpc_efs
, ver_dcerpc_efs
,
1267 efs_dissectors
, hf_efs_opnum
);