From 97eac1a46a38eb5ae9e9d15caa96d1c3e1fb57dd Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 6 Aug 2005 01:54:55 +0000 Subject: r9161: More etheral parser generator fixes (This used to be commit b323e83e8df6ba331b3f0b3abe28aa8ddf9127ef) --- source4/librpc/idl/efs.idl | 111 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 104 insertions(+), 7 deletions(-) (limited to 'source4/librpc/idl/efs.idl') 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( +); + } -- cgit