1 | /*
|
---|
2 | IDL definitions from original packet-dcerpc-efs.c
|
---|
3 | by Jean-Baptiste Marchand
|
---|
4 | */
|
---|
5 |
|
---|
6 | import "security.idl";
|
---|
7 |
|
---|
8 | [
|
---|
9 | uuid("c681d488-d850-11d0-8c52-00c04fd90f7e"),
|
---|
10 | version(1.0),
|
---|
11 | pointer_default(unique)
|
---|
12 | ] interface efs
|
---|
13 | {
|
---|
14 |
|
---|
15 | WERROR EfsRpcOpenFileRaw(
|
---|
16 | [out,ref] policy_handle *pvContext,
|
---|
17 | [in] [charset(UTF16),string] uint16 FileName[],
|
---|
18 | [in] uint32 Flags
|
---|
19 | );
|
---|
20 |
|
---|
21 | [todo] WERROR EfsRpcReadFileRaw(
|
---|
22 | [in,ref] policy_handle *pvContext
|
---|
23 | /* incomplete */
|
---|
24 | );
|
---|
25 |
|
---|
26 |
|
---|
27 | [todo] WERROR EfsRpcWriteFileRaw(
|
---|
28 | [in,ref] policy_handle *pvContext
|
---|
29 | /* incomplete */
|
---|
30 | );
|
---|
31 |
|
---|
32 | void EfsRpcCloseRaw(
|
---|
33 | [in,out,ref] policy_handle *pvContext
|
---|
34 | );
|
---|
35 |
|
---|
36 | WERROR EfsRpcEncryptFileSrv(
|
---|
37 | [in] [charset(UTF16),string] uint16 Filename[]
|
---|
38 | );
|
---|
39 |
|
---|
40 | WERROR EfsRpcDecryptFileSrv(
|
---|
41 | [in] [charset(UTF16),string] uint16 FileName[],
|
---|
42 | [in] uint32 Reserved
|
---|
43 | );
|
---|
44 |
|
---|
45 | typedef struct {
|
---|
46 | uint32 cbData;
|
---|
47 | [size_is(cbData), unique] uint8 *pbData;
|
---|
48 | } EFS_HASH_BLOB;
|
---|
49 |
|
---|
50 | typedef struct {
|
---|
51 | uint32 cbTotalLength;
|
---|
52 | [unique] dom_sid *pUserSid;
|
---|
53 | [unique] EFS_HASH_BLOB *pHash;
|
---|
54 | [unique] [charset(UTF16),string] uint16 *lpDisplayInformation;
|
---|
55 | } ENCRYPTION_CERTIFICATE_HASH;
|
---|
56 |
|
---|
57 | typedef struct {
|
---|
58 | uint32 nCert_Hash;
|
---|
59 | /* this is a pointer to an array of pointers */
|
---|
60 | [size_is(nCert_Hash)] ENCRYPTION_CERTIFICATE_HASH *pUsers[*];
|
---|
61 | } ENCRYPTION_CERTIFICATE_HASH_LIST;
|
---|
62 |
|
---|
63 | WERROR EfsRpcQueryUsersOnFile(
|
---|
64 | [in] [charset(UTF16),string] uint16 FileName[],
|
---|
65 | [out,ref,unique] ENCRYPTION_CERTIFICATE_HASH_LIST **pUsers
|
---|
66 | );
|
---|
67 |
|
---|
68 | WERROR EfsRpcQueryRecoveryAgents(
|
---|
69 | [in] [charset(UTF16),string] uint16 FileName[],
|
---|
70 | [out,ref,unique] ENCRYPTION_CERTIFICATE_HASH_LIST **pRecoveryAgents
|
---|
71 | );
|
---|
72 |
|
---|
73 | [todo] WERROR EfsRpcRemoveUsersFromFile(
|
---|
74 | [in] [charset(UTF16),string] uint16 FileName[]
|
---|
75 | /* [in] ENCRYPTION_CERTIFICATE_LIST Hashes*/
|
---|
76 | );
|
---|
77 |
|
---|
78 | [todo] WERROR EfsRpcAddUsersToFile(
|
---|
79 | [in] [charset(UTF16),string] uint16 FileName[]
|
---|
80 | /* [in] ENCRYPTION_CERTIFICATE_LIST Hashes*/
|
---|
81 | );
|
---|
82 |
|
---|
83 | typedef struct {
|
---|
84 | uint32 dwCertEncodingType;
|
---|
85 | uint32 cbData;
|
---|
86 | [size_is(cbData)] [unique] uint8 *pbData;
|
---|
87 | } EFS_CERTIFICATE_BLOB;
|
---|
88 |
|
---|
89 | typedef struct {
|
---|
90 | uint32 TotalLength;
|
---|
91 | [unique] dom_sid *pUserSid;
|
---|
92 | [unique] EFS_CERTIFICATE_BLOB *pCertBlob;
|
---|
93 | } ENCRYPTION_CERTIFICATE;
|
---|
94 |
|
---|
95 | WERROR EfsRpcSetFileEncryptionKey(
|
---|
96 | [in] [unique] ENCRYPTION_CERTIFICATE *pEncryptionCertificate
|
---|
97 | );
|
---|
98 |
|
---|
99 | [todo] WERROR EfsRpcNotSupported(
|
---|
100 | );
|
---|
101 |
|
---|
102 | [todo] WERROR EfsRpcFileKeyInfo(
|
---|
103 | );
|
---|
104 |
|
---|
105 | [todo] WERROR EfsRpcDuplicateEncryptionInfoFile(
|
---|
106 | );
|
---|
107 |
|
---|
108 | }
|
---|