diff options
Diffstat (limited to 'source4/librpc/idl')
-rw-r--r-- | source4/librpc/idl/atsvc.idl | 4 | ||||
-rw-r--r-- | source4/librpc/idl/efs.idl | 111 |
2 files changed, 106 insertions, 9 deletions
diff --git a/source4/librpc/idl/atsvc.idl b/source4/librpc/idl/atsvc.idl index d2e06b0e42..5c5b377a90 100644 --- a/source4/librpc/idl/atsvc.idl +++ b/source4/librpc/idl/atsvc.idl @@ -68,7 +68,7 @@ uint32 job_time; atsvc_DaysOfMonth days_of_month; atsvc_DaysOfWeek days_of_week; - uint8 flags; + atsvc_Flags flags; unistr *command; } atsvc_JobInfo; @@ -93,7 +93,7 @@ uint32 job_time; atsvc_DaysOfMonth days_of_month; atsvc_DaysOfWeek days_of_week; - uint8 flags; + atsvc_Flags flags; unistr *command; } atsvc_JobEnumInfo; 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( +); + } |