~zulcss/samba/server-dailies-3.4

« back to all changes in this revision

Viewing changes to librpc/idl/efs.idl

  • Committer: Chuck Short
  • Date: 2010-09-28 20:38:39 UTC
  • Revision ID: zulcss@ubuntu.com-20100928203839-pgjulytsi9ue63x1
Initial version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
}