2 * PROJECT: ReactOS Drivers
3 * COPYRIGHT: See COPYING in the top level directory
4 * PURPOSE: Kernel Security Support Provider Interface Driver
6 * PROGRAMMERS: Timo Kreuzer (timo.kreuzer@reactos.org)
9 #define _NO_KSECDD_IMPORT_
11 #include <ndk/exfuncs.h>
12 #include <pseh/pseh2.h>
13 #include <ntstrsafe.h>
18 typedef aes_key AES_KEY
, *PAES_KEY
;
19 typedef des3_key DES3_KEY
, *PDES3_KEY
;
21 #define STATUS_KSEC_INTERNAL_ERROR ((NTSTATUS)0x80090304)
23 /* FIXME: this should be in some shared header */
24 #define RTL_ENCRYPT_OPTION_SAME_PROCESS 0
25 #define RTL_ENCRYPT_OPTION_CROSS_PROCESS 1
26 #define RTL_ENCRYPT_OPTION_SAME_LOGON 2
28 typedef struct _KSEC_CONNECTION_INFO
32 ULONG_PTR Information
;
33 CHAR ConnectionString
[128];
35 } KSEC_CONNECTION_INFO
;
37 #if defined(_M_IX86) || defined(_M_AMD64)
38 typedef struct _KSEC_MACHINE_SPECIFIC_COUNTERS
45 } KSEC_MACHINE_SPECIFIC_COUNTERS
, *PKSEC_MACHINE_SPECIFIC_COUNTERS
;
47 typedef ULONG KSEC_MACHINE_SPECIFIC_COUNTERS
;
50 typedef struct _KSEC_ENTROPY_DATA
52 HANDLE CurrentProcessId
;
53 HANDLE CurrentThreadId
;
54 LARGE_INTEGER TickCount
;
55 LARGE_INTEGER SystemTime
;
56 LARGE_INTEGER PerformanceCounter
;
57 LARGE_INTEGER PerformanceFrequency
;
58 UCHAR EnvironmentHash
[16];
59 KSEC_MACHINE_SPECIFIC_COUNTERS MachineSpecificCounters
;
60 SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION SystemProcessorPerformanceInformation
;
61 SYSTEM_PERFORMANCE_INFORMATION SystemPerformanceInformation
;
62 SYSTEM_EXCEPTION_INFORMATION SystemExceptionInformation
;
63 SYSTEM_LOOKASIDE_INFORMATION SystemLookasideInformation
;
64 SYSTEM_INTERRUPT_INFORMATION SystemInterruptInformation
;
65 SYSTEM_PROCESS_INFORMATION SystemProcessInformation
;
66 } KSEC_ENTROPY_DATA
, *PKSEC_ENTROPY_DATA
;
68 extern PEPROCESS KsecLsaProcess
;;
69 extern HANDLE KsecLsaProcessHandle
;
74 PDEVICE_OBJECT DeviceObject
,
79 KsecGatherEntropyData(
80 PKSEC_ENTROPY_DATA EntropyData
);
90 KsecInitializeEncryptionSupport (
98 _In_ ULONG OptionFlags
);
103 _Inout_ PVOID Buffer
,
105 _In_ ULONG OptionFlags
);