[KSECDD]
[reactos.git] / reactos / drivers / crypto / ksecdd / ksecdd.h
index addcd15..b9f571e 100644 (file)
@@ -8,7 +8,31 @@
 
 #define _NO_KSECDD_IMPORT_
 #include <ntifs.h>
-#include <ndk/extypes.h>
+#include <ndk/exfuncs.h>
+#include <pseh/pseh2.h>
+#include <ntstrsafe.h>
+
+#include <md4.h>
+#include <md5.h>
+#include <tomcrypt.h>
+typedef aes_key AES_KEY, *PAES_KEY;
+typedef des3_key DES3_KEY, *PDES3_KEY;
+
+#define STATUS_KSEC_INTERNAL_ERROR ((NTSTATUS)0x80090304)
+
+/* FIXME: this should be in some shared header */
+#define RTL_ENCRYPT_OPTION_SAME_PROCESS   0
+#define RTL_ENCRYPT_OPTION_CROSS_PROCESS  1
+#define RTL_ENCRYPT_OPTION_SAME_LOGON     2
+
+typedef struct _KSEC_CONNECTION_INFO
+{
+    ULONG Unknown0;
+    NTSTATUS Status;
+    ULONG_PTR Information;
+    CHAR ConnectionString[128];
+    ULONG Flags;
+} KSEC_CONNECTION_INFO;
 
 #if defined(_M_IX86) || defined(_M_AMD64)
 typedef struct _KSEC_MACHINE_SPECIFIC_COUNTERS
@@ -41,12 +65,19 @@ typedef struct _KSEC_ENTROPY_DATA
     SYSTEM_PROCESS_INFORMATION SystemProcessInformation;
 } KSEC_ENTROPY_DATA, *PKSEC_ENTROPY_DATA;
 
+extern PEPROCESS KsecLsaProcess;;
+extern HANDLE KsecLsaProcessHandle;
+
 NTSTATUS
 NTAPI
 KsecDdDispatch(
     PDEVICE_OBJECT DeviceObject,
     PIRP Irp);
 
+NTSTATUS
+NTAPI
+KsecGatherEntropyData(
+    PKSEC_ENTROPY_DATA EntropyData);
 
 NTSTATUS
 NTAPI
@@ -54,3 +85,22 @@ KsecGenRandom(
     PVOID Buffer,
     SIZE_T Length);
 
+VOID
+NTAPI
+KsecInitializeEncryptionSupport (
+    VOID);
+
+NTSTATUS
+NTAPI
+KsecEncryptMemory (
+    _Inout_ PVOID Buffer,
+    _In_ ULONG Length,
+    _In_ ULONG OptionFlags);
+
+NTSTATUS
+NTAPI
+KsecDecryptMemory (
+    _Inout_ PVOID Buffer,
+    _In_ ULONG Length,
+    _In_ ULONG OptionFlags);
+