xref: /reactos/dll/win32/mssign32/mssign32_main.c (revision f3c326b2)
1 /*
2  * MSSIGN32 implementation
3  *
4  * Copyright 2009 Austin English
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19  */
20 
21 #include <stdarg.h>
22 
23 #include "windef.h"
24 #include "winbase.h"
25 #include "wincrypt.h"
26 
27 #include "wine/debug.h"
28 #include "wine/heap.h"
29 
30 #include "mssign32_private.h"
31 
32 WINE_DEFAULT_DEBUG_CHANNEL(mssign);
33 
DllMain(HINSTANCE hinst,DWORD reason,LPVOID lpv)34 BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID lpv )
35 {
36     switch(reason)
37     {
38     case DLL_WINE_PREATTACH:
39         return FALSE;  /* prefer native version */
40     case DLL_PROCESS_ATTACH:
41         DisableThreadLibraryCalls( hinst );
42         break;
43     }
44     return TRUE;
45 }
46 
47 
PvkGetCryptProv(HWND hwnd,LPCWSTR pwszCaption,LPCWSTR pwszCapiProvider,DWORD dwProviderType,LPCWSTR pwszPvkFile,LPCWSTR pwszKeyContainerName,DWORD * pdwKeySpec,LPWSTR * ppwszTmpContainer,HCRYPTPROV * phCryptProv)48 HRESULT WINAPI PvkGetCryptProv(HWND hwnd, LPCWSTR pwszCaption, LPCWSTR pwszCapiProvider,
49                     DWORD dwProviderType, LPCWSTR pwszPvkFile, LPCWSTR pwszKeyContainerName,
50                     DWORD *pdwKeySpec, LPWSTR *ppwszTmpContainer, HCRYPTPROV *phCryptProv)
51 {
52     FIXME("%p %s %s %d %s %s %p %p %p stub\n", hwnd, debugstr_w(pwszCaption), debugstr_w(pwszCapiProvider),
53                     dwProviderType, debugstr_w(pwszPvkFile), debugstr_w(pwszKeyContainerName),
54                     pdwKeySpec, ppwszTmpContainer, phCryptProv);
55 
56     return E_FAIL;
57 }
58 
PvkPrivateKeyAcquireContextFromMemory(LPCWSTR pwszProvName,DWORD dwProvType,BYTE * pbData,DWORD cbData,HWND hwndOwner,LPCWSTR pwszKeyName,DWORD * pdwKeySpec,HCRYPTPROV * phCryptProv,LPWSTR * ppwszTmpContainer)59 BOOL WINAPI PvkPrivateKeyAcquireContextFromMemory(LPCWSTR pwszProvName, DWORD dwProvType,
60                     BYTE *pbData, DWORD cbData, HWND hwndOwner, LPCWSTR pwszKeyName,
61                     DWORD *pdwKeySpec, HCRYPTPROV *phCryptProv, LPWSTR *ppwszTmpContainer)
62 {
63     FIXME("%s %d %p %d %p %s %p %p %p stub\n", debugstr_w(pwszProvName), dwProvType,
64                     pbData, cbData, hwndOwner, debugstr_w(pwszKeyName), pdwKeySpec,
65                     phCryptProv, ppwszTmpContainer);
66 
67     return FALSE;
68 }
69 
PvkFreeCryptProv(HCRYPTPROV hProv,LPCWSTR pwszCapiProvider,DWORD dwProviderType,LPWSTR pwszTmpContainer)70 void WINAPI PvkFreeCryptProv(HCRYPTPROV hProv, LPCWSTR pwszCapiProvider, DWORD dwProviderType,
71                     LPWSTR pwszTmpContainer)
72 {
73     FIXME("%08lx %s %d %s stub\n", hProv, debugstr_w(pwszCapiProvider), dwProviderType,
74                     debugstr_w(pwszTmpContainer));
75 }
76 
SignerSignEx(DWORD flags,SIGNER_SUBJECT_INFO * subject_info,SIGNER_CERT * signer_cert,SIGNER_SIGNATURE_INFO * signature_info,SIGNER_PROVIDER_INFO * provider_info,const WCHAR * http_time_stamp,CRYPT_ATTRIBUTES * request,void * sip_data,SIGNER_CONTEXT ** signer_context)77 HRESULT WINAPI SignerSignEx(DWORD flags, SIGNER_SUBJECT_INFO *subject_info, SIGNER_CERT *signer_cert,
78                             SIGNER_SIGNATURE_INFO *signature_info, SIGNER_PROVIDER_INFO *provider_info,
79                             const WCHAR *http_time_stamp, CRYPT_ATTRIBUTES *request, void *sip_data,
80                             SIGNER_CONTEXT **signer_context)
81 {
82     FIXME("%x %p %p %p %p %s %p %p %p stub\n", flags, subject_info, signer_cert, signature_info, provider_info,
83                     wine_dbgstr_w(http_time_stamp), request, sip_data, signer_cert);
84     return E_NOTIMPL;
85 }
86 
SignerFreeSignerContext(SIGNER_CONTEXT * signer_context)87 HRESULT WINAPI SignerFreeSignerContext(SIGNER_CONTEXT *signer_context)
88 {
89     heap_free(signer_context);
90     return S_OK;
91 }
92