summaryrefslogtreecommitdiff
path: root/source4/librpc/idl/efs.idl
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2005-08-06 01:54:55 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:31:25 -0500
commit97eac1a46a38eb5ae9e9d15caa96d1c3e1fb57dd (patch)
tree500289ea6166dcbc031eb98db6aafcd841d12d70 /source4/librpc/idl/efs.idl
parent8658136f26488d9e9838afc5f2424b9721bc50db (diff)
downloadsamba-97eac1a46a38eb5ae9e9d15caa96d1c3e1fb57dd.tar.gz
samba-97eac1a46a38eb5ae9e9d15caa96d1c3e1fb57dd.tar.bz2
samba-97eac1a46a38eb5ae9e9d15caa96d1c3e1fb57dd.zip
r9161: More etheral parser generator fixes
(This used to be commit b323e83e8df6ba331b3f0b3abe28aa8ddf9127ef)
Diffstat (limited to 'source4/librpc/idl/efs.idl')
-rw-r--r--source4/librpc/idl/efs.idl111
1 files changed, 104 insertions, 7 deletions
diff --git a/source4/librpc/idl/efs.idl b/source4/librpc/idl/efs.idl
index 8ff34c92b9..8559a6f2cd 100644
--- a/source4/librpc/idl/efs.idl
+++ b/source4/librpc/idl/efs.idl
@@ -1,9 +1,106 @@
-[
- uuid("c681d488-d850-11d0-8c52-00c04fd90f7e"),
- version(1.0),
- pointer_default(unique),
- helpstring("Encrypted File System")
-] interface efs
+/*
+ IDL definitions from original packet-dcerpc-efs.c
+ by Jean-Baptiste Marchand
+*/
+
+[
+ uuid("c681d488-d850-11d0-8c52-00c04fd90f7e"),
+ version(1.0),
+ pointer_default(unique)
+] interface efs
{
- void EFS_Dummy();
+
+WERROR EfsRpcOpenFileRaw(
+ [out,ref] policy_handle *pvContext,
+ [in] unistr FileName,
+ [in] long Flags
+ );
+
+WERROR EfsRpcReadFileRaw(
+ [in,ref] policy_handle *pvContext
+/* incomplete */
+);
+
+
+WERROR EfsRpcWriteFileRaw(
+ [in,ref] policy_handle *pvContext
+/* incomplete */
+);
+
+void EfsRpcCloseRaw(
+ [in,out,ref] policy_handle *pvContext
+);
+
+WERROR EfsRpcEncryptFileSrv(
+ [in] unistr Filename
+);
+
+WERROR EfsRpcDecryptFileSrv(
+ [in] unistr FileName,
+ [in] long Reserved
+);
+
+typedef struct {
+ long cbData;
+ [size_is(cbData), unique] uint8 *pbData;
+} EFS_HASH_BLOB;
+
+typedef struct {
+ long cbTotalLength;
+ [unique] SID *pUserSid;
+ [unique] EFS_HASH_BLOB *pHash;
+ [unique] unistr *lpDisplayInformation;
+} ENCRYPTION_CERTIFICATE_HASH;
+
+typedef struct {
+ long nCert_Hash;
+ /* this is a pointer to an array of pointers */
+ [size_is(nCert_Hash)] ENCRYPTION_CERTIFICATE_HASH *pUsers[*];
+} ENCRYPTION_CERTIFICATE_HASH_LIST;
+
+WERROR EfsRpcQueryUsersOnFile(
+ [in] unistr FileName,
+ [out,ref,unique] ENCRYPTION_CERTIFICATE_HASH_LIST **pUsers
+);
+
+WERROR EfsRpcQueryRecoveryAgents(
+ [in] unistr FileName,
+ [out,ref,unique] ENCRYPTION_CERTIFICATE_HASH_LIST **pRecoveryAgents
+);
+
+WERROR EfsRpcRemoveUsersFromFile(
+ [in] unistr FileName
+ /* [in] ENCRYPTION_CERTIFICATE_LIST Hashes*/
+);
+
+WERROR EfsRpcAddUsersToFile(
+ [in] unistr FileName
+ /* [in] ENCRYPTION_CERTIFICATE_LIST Hashes*/
+);
+
+typedef struct {
+ long dwCertEncodingType;
+ long cbData;
+ [size_is(cbData)] [unique] uint8 *pbData;
+} EFS_CERTIFICATE_BLOB;
+
+typedef struct {
+ long TotalLength;
+ [unique] SID *pUserSid;
+ [unique] EFS_CERTIFICATE_BLOB *pCertBlob;
+} ENCRYPTION_CERTIFICATE;
+
+WERROR EfsRpcSetFileEncryptionKey(
+ [in] [unique] ENCRYPTION_CERTIFICATE *pEncryptionCertificate
+);
+
+WERROR EfsRpcNotSupported(
+);
+
+WERROR EfsRpcFileKeyInfo(
+);
+
+WERROR EfsRpcDuplicateEncryptionInfoFile(
+);
+
}