findlanabyname-20040228
[openafs.git] / src / WINNT / win9xpanel / encript.h
1 /* Copyright 2000, International Business Machines Corporation and others.
2         All Rights Reserved.
3  
4         This software has been released under the terms of the IBM Public
5         License.  For details, see the LICENSE file in the top-level source
6         directory or online at http://www.openafs.org/dl/license10.html
7 */
8 #ifndef __ENCRIPT__
9 #define __ENCRIPT__
10 #include <wincrypt.h>
11 typedef BOOL (WINAPI * PCRYPTACQUIRECONTEXT)(HCRYPTPROV *,LPCTSTR,LPCTSTR,DWORD,DWORD);
12 typedef BOOL (WINAPI * PCRYPTCREATEHASH)(HCRYPTPROV,ALG_ID,HCRYPTKEY,DWORD,HCRYPTHASH *);
13 typedef BOOL (WINAPI * PCRYPTHASHDATA)(HCRYPTHASH,BYTE *,DWORD,DWORD);
14 typedef BOOL (WINAPI * PCRYPTDERIVEKEY)(HCRYPTPROV,ALG_ID,HCRYPTHASH,DWORD,HCRYPTKEY *);
15 typedef BOOL (WINAPI * PCRYPTENCRYPT)(HCRYPTKEY,HCRYPTHASH,BOOL,DWORD,BYTE *,DWORD *,DWORD);
16 typedef BOOL (WINAPI * PCRYPTDECRYPT)(HCRYPTKEY,HCRYPTHASH,BOOL,DWORD,BYTE *,DWORD *);
17 typedef BOOL (WINAPI * PCRYPTDESTROYHASH)(HCRYPTHASH);
18 typedef BOOL (WINAPI * PCRYPTDESTROYKEY)(HCRYPTKEY);
19 typedef BOOL (WINAPI * PCRYPTRELEASECONTEXT)(HCRYPTPROV,DWORD);
20
21
22 class CEncript
23 {
24 public:
25         CEncript(CWinAfsLoadDlg *pParent);
26         ~CEncript();
27         CWinAfsLoadDlg *m_pParent;
28         BOOL Encript(LPCSTR pMachinename,LPCSTR pLoginName,LPCSTR pUsername,PBYTE pPassword,DWORD &dwSize,BOOL doEncript);
29         BOOL IsValid(){return (m_hLibrary!=NULL);}
30 private:
31         HMODULE m_hLibrary;
32         PCRYPTACQUIRECONTEXT m_pCryptAcquireContext;
33         PCRYPTCREATEHASH m_pCryptCreateHash;
34         PCRYPTHASHDATA m_pCryptHashData;
35         PCRYPTDERIVEKEY m_pCryptDeriveKey;
36         PCRYPTENCRYPT m_pCryptEncrypt;
37         PCRYPTDECRYPT m_pCryptDecrypt;
38         PCRYPTDESTROYHASH m_pCryptDestroyHash;
39         PCRYPTDESTROYKEY m_pCryptDestroyKey;
40         PCRYPTRELEASECONTEXT m_pCryptReleaseContext;
41 };
42
43 #endif