[REACTOS]
[reactos.git] / reactos / dll / win32 / advapi32 / misc / efs.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS system libraries
4 * FILE: dlls/win32/advapi32/misc/efs.c
5 * PURPOSE: Encrypted File System support
6 * PROGRAMMER: Christoph_vW
7 */
8
9 #include <advapi32.h>
10 WINE_DEFAULT_DEBUG_CHANNEL(advapi);
11
12
13 /*
14 * @unimplemented
15 */
16 DWORD WINAPI
17 AddUsersToEncryptedFile(LPCWSTR lpcwstr,
18 PENCRYPTION_CERTIFICATE_LIST pencryption_certificate_list)
19 {
20 FIXME("%s() not implemented!\n", __FUNCTION__);
21 return ERROR_CALL_NOT_IMPLEMENTED;
22 }
23
24
25 /*
26 * @implemented
27 */
28 BOOL WINAPI
29 DecryptFileA(LPCSTR lpFileName,
30 DWORD dwReserved)
31 {
32 UNICODE_STRING FileName;
33 BOOL ret;
34
35 if (!RtlCreateUnicodeStringFromAsciiz(&FileName, lpFileName))
36 {
37 SetLastError(ERROR_NOT_ENOUGH_MEMORY);
38 return FALSE;
39 }
40
41 ret = DecryptFileW(FileName.Buffer, dwReserved);
42
43 if (FileName.Buffer != NULL)
44 RtlFreeUnicodeString(&FileName);
45 return ret;
46 }
47
48
49 /*
50 * @unimplemented
51 */
52 BOOL WINAPI
53 DecryptFileW(LPCWSTR lpFileName,
54 DWORD dwReserved)
55 {
56 FIXME("%s(%S) not implemented!\n", __FUNCTION__, lpFileName);
57 return TRUE;
58 }
59
60
61 /*
62 * @implemented
63 */
64 BOOL WINAPI
65 EncryptFileA(LPCSTR lpFileName)
66 {
67 UNICODE_STRING FileName;
68 BOOL ret;
69
70 if (!RtlCreateUnicodeStringFromAsciiz(&FileName, lpFileName))
71 {
72 SetLastError(ERROR_NOT_ENOUGH_MEMORY);
73 return FALSE;
74 }
75
76 ret = EncryptFileW(FileName.Buffer);
77
78 if (FileName.Buffer != NULL)
79 RtlFreeUnicodeString(&FileName);
80 return ret;
81 }
82
83
84 /*
85 * @unimplemented
86 */
87 BOOL WINAPI
88 EncryptFileW(LPCWSTR lpFileName)
89 {
90 FIXME("%s() not implemented!\n", __FUNCTION__);
91 return TRUE;
92 }
93
94
95 /*
96 * @unimplemented
97 */
98 BOOL WINAPI
99 EncryptionDisable(LPCWSTR DirPath,
100 BOOL Disable)
101 {
102 FIXME("%s() not implemented!\n", __FUNCTION__);
103 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
104 return FALSE;
105 }
106
107
108 /*
109 * @implemented
110 */
111 BOOL WINAPI
112 FileEncryptionStatusA(LPCSTR lpFileName,
113 LPDWORD lpStatus)
114 {
115 UNICODE_STRING FileName;
116 BOOL ret = FALSE;
117
118 TRACE("(%s, %p)\n", lpFileName, lpStatus);
119
120 FileName.Buffer = NULL;
121
122 if (!RtlCreateUnicodeStringFromAsciiz(&FileName, lpFileName))
123 {
124 SetLastError(ERROR_NOT_ENOUGH_MEMORY);
125 goto cleanup;
126 }
127
128 ret = FileEncryptionStatusW(FileName.Buffer, lpStatus);
129
130 cleanup:
131 if (FileName.Buffer != NULL)
132 RtlFreeUnicodeString(&FileName);
133
134 return ret;
135 }
136
137 /*
138 * @unimplemented
139 */
140 BOOL WINAPI
141 FileEncryptionStatusW(LPCWSTR lpFileName,
142 LPDWORD lpStatus)
143 {
144 FIXME("%s(%S) not implemented!\n", __FUNCTION__, lpFileName);
145
146 if (!lpStatus)
147 return FALSE;
148
149 *lpStatus = FILE_SYSTEM_NOT_SUPPORT;
150
151 return TRUE;
152 }
153
154
155 /*
156 * @unimplemented
157 */
158 VOID WINAPI
159 FreeEncryptionCertificateHashList(PENCRYPTION_CERTIFICATE_HASH_LIST pencryption_certificate_hash_list)
160 {
161 FIXME("%s() not implemented!\n", __FUNCTION__);
162 return;
163 }
164
165
166 /*
167 * @unimplemented
168 */
169 DWORD WINAPI
170 QueryRecoveryAgentsOnEncryptedFile(LPCWSTR lpctstr,
171 PENCRYPTION_CERTIFICATE_HASH_LIST* pencryption_certificate_hash_list)
172 {
173 FIXME("%s() not implemented!\n", __FUNCTION__);
174 return ERROR_CALL_NOT_IMPLEMENTED;
175 }
176
177
178 /*
179 * @unimplemented
180 */
181 DWORD WINAPI
182 QueryUsersOnEncryptedFile(LPCWSTR lpctstr,
183 PENCRYPTION_CERTIFICATE_HASH_LIST* pencryption_certificate_hash_list)
184 {
185 FIXME("%s() not implemented!\n", __FUNCTION__);
186 return ERROR_CALL_NOT_IMPLEMENTED;
187 }
188
189
190 /*
191 * @unimplemented
192 */
193 DWORD WINAPI
194 RemoveUsersFromEncryptedFile(LPCWSTR lpcwstr,
195 PENCRYPTION_CERTIFICATE_HASH_LIST pencryption_certificate_hash_list)
196 {
197 FIXME("%s() not implemented!\n", __FUNCTION__);
198 return ERROR_CALL_NOT_IMPLEMENTED;
199 }
200
201 /* EOF */