Paul Vriens : wintrust: Register HTTPSPROV_ACTION.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Sep 7 07:12:11 CDT 2006
Module: wine
Branch: master
Commit: e7798305bd4f82071d4100fdfcde8f5e419cc625
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=e7798305bd4f82071d4100fdfcde8f5e419cc625
Author: Paul Vriens <Paul.Vriens at xs4all.nl>
Date: Tue Sep 5 20:38:11 2006 +0200
wintrust: Register HTTPSPROV_ACTION.
---
dlls/wintrust/register.c | 68 +++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 67 insertions(+), 1 deletions(-)
diff --git a/dlls/wintrust/register.c b/dlls/wintrust/register.c
index f98e386..0c7b7a2 100644
--- a/dlls/wintrust/register.c
+++ b/dlls/wintrust/register.c
@@ -47,6 +47,9 @@ static CRYPT_TRUST_REG_ENTRY SoftpubDefC
static CRYPT_TRUST_REG_ENTRY SoftpubDumpStructure;
+static CRYPT_TRUST_REG_ENTRY HTTPSCertificateTrust;
+static CRYPT_TRUST_REG_ENTRY HTTPSFinalProv;
+
static const WCHAR Trust[] = {'S','o','f','t','w','a','r','e','\\',
'M','i','c','r','o','s','o','f','t','\\',
'C','r','y','p','t','o','g','r','a','p','h','y','\\',
@@ -63,6 +66,7 @@ static const WCHAR DiagnosticPolicy[] =
static const WCHAR Cleanup[] = {'C','l','e','a','n','u','p','\\', 0};
static const WCHAR DefaultId[] = {'D','e','f','a','u','l','t','I','d', 0};
+static const WCHAR Dll[] = {'$','D','L','L', 0};
/***********************************************************************
* WINTRUST_InitRegStructs
@@ -88,6 +92,8 @@ #define WINTRUST_INITREGENTRY( action, d
WINTRUST_INITREGENTRY(SoftpubCleanup, SP_POLICY_PROVIDER_DLL_NAME, SP_CLEANUPPOLICY_FUNCTION)
WINTRUST_INITREGENTRY(SoftpubDefCertInit, SP_POLICY_PROVIDER_DLL_NAME, SP_GENERIC_CERT_INIT_FUNCTION)
WINTRUST_INITREGENTRY(SoftpubDumpStructure, SP_POLICY_PROVIDER_DLL_NAME, SP_TESTDUMPPOLICY_FUNCTION_TEST)
+ WINTRUST_INITREGENTRY(HTTPSCertificateTrust, SP_POLICY_PROVIDER_DLL_NAME, HTTPS_CERTTRUST_FUNCTION)
+ WINTRUST_INITREGENTRY(HTTPSFinalProv, SP_POLICY_PROVIDER_DLL_NAME, HTTPS_FINALPOLICY_FUNCTION)
#undef WINTRUST_INITREGENTRY
}
@@ -113,6 +119,8 @@ #define WINTRUST_FREEREGENTRY( action )
WINTRUST_FREEREGENTRY(SoftpubCleanup);
WINTRUST_FREEREGENTRY(SoftpubDefCertInit);
WINTRUST_FREEREGENTRY(SoftpubDumpStructure);
+ WINTRUST_FREEREGENTRY(HTTPSCertificateTrust);
+ WINTRUST_FREEREGENTRY(HTTPSFinalProv);
#undef WINTRUST_FREEREGENTRY
}
@@ -144,7 +152,6 @@ static LONG WINTRUST_WriteProviderToReg(
const WCHAR* FunctionType,
CRYPT_TRUST_REG_ENTRY RegEntry)
{
- static const WCHAR Dll[] = {'$','D','L','L', 0};
static const WCHAR Function[] = {'$','F','u','n','c','t','i','o','n', 0};
WCHAR ProvKey[MAX_PATH];
HKEY Key;
@@ -523,6 +530,64 @@ static void WINTRUST_RegisterTrustProvid
WINTRUST_WriteProviderToReg(GuidString, Cleanup , SoftpubCleanup);
}
+/***************************************************************************
+ * WINTRUST_RegisterHttpsProv
+ *
+ * Register HTTPSPROV_ACTION actions and usages.
+ *
+ * NOTES
+ * HTTPSPROV_ACTION ({573E31F8-AABA-11D0-8CCB-00C04FC295EE})
+ * is defined in softpub.h
+ * We don't care about failures (see comments in DllRegisterServer)
+ */
+static void WINTRUST_RegisterHttpsProv(void)
+{
+ static WCHAR SoftpubLoadUsage[] = {'S','o','f','t','p','u','b','L','o','a','d','D','e','f','U','s','a','g','e','C','a','l','l','D','a','t','a', 0};
+ static WCHAR SoftpubFreeUsage[] = {'S','o','f','t','p','u','b','F','r','e','e','D','e','f','U','s','a','g','e','C','a','l','l','D','a','t','a', 0};
+ static const WCHAR CBAlloc[] = {'C','a','l','l','b','a','c','k','A','l','l','o','c','F','u','n','c','t','i','o','n', 0};
+ static const WCHAR CBFree[] = {'C','a','l','l','b','a','c','k','F','r','e','e','F','u','n','c','t','i','o','n', 0};
+ static const GUID ProvGUID = HTTPSPROV_ACTION;
+ WCHAR GuidString[39];
+ WCHAR ProvDllName[sizeof(SP_POLICY_PROVIDER_DLL_NAME)];
+
+ WINTRUST_Guid2Wstr(&ProvGUID , GuidString);
+
+ TRACE("Going to register HTTPSPROV_ACTION : %s\n", wine_dbgstr_w(GuidString));
+
+ lstrcpyW(ProvDllName, SP_POLICY_PROVIDER_DLL_NAME); \
+
+ /* HKLM\Software\Microsoft\Cryptography\Trust\Usages\1.3.6.1.5.5.7.3.1 */
+ WINTRUST_WriteSingleUsageEntry(szOID_PKIX_KP_SERVER_AUTH, Dll, ProvDllName);
+ WINTRUST_WriteSingleUsageEntry(szOID_PKIX_KP_SERVER_AUTH, CBAlloc, SoftpubLoadUsage );
+ WINTRUST_WriteSingleUsageEntry(szOID_PKIX_KP_SERVER_AUTH, CBFree, SoftpubFreeUsage );
+ WINTRUST_WriteSingleUsageEntry(szOID_PKIX_KP_SERVER_AUTH, DefaultId, GuidString );
+ /* HKLM\Software\Microsoft\Cryptography\Trust\Usages\1.3.6.1.5.5.7.3.2 */
+ WINTRUST_WriteSingleUsageEntry(szOID_PKIX_KP_CLIENT_AUTH, Dll, ProvDllName);
+ WINTRUST_WriteSingleUsageEntry(szOID_PKIX_KP_CLIENT_AUTH, CBAlloc, SoftpubLoadUsage );
+ WINTRUST_WriteSingleUsageEntry(szOID_PKIX_KP_CLIENT_AUTH, CBFree, SoftpubFreeUsage );
+ WINTRUST_WriteSingleUsageEntry(szOID_PKIX_KP_CLIENT_AUTH, DefaultId, GuidString );
+ /* HKLM\Software\Microsoft\Cryptography\Trust\Usages\1.3.6.1.4.1.311.10.3.3 */
+ WINTRUST_WriteSingleUsageEntry(szOID_SERVER_GATED_CRYPTO, Dll, ProvDllName);
+ WINTRUST_WriteSingleUsageEntry(szOID_SERVER_GATED_CRYPTO, CBAlloc, SoftpubLoadUsage );
+ WINTRUST_WriteSingleUsageEntry(szOID_SERVER_GATED_CRYPTO, CBFree, SoftpubFreeUsage );
+ WINTRUST_WriteSingleUsageEntry(szOID_SERVER_GATED_CRYPTO, DefaultId, GuidString );
+ /* HKLM\Software\Microsoft\Cryptography\Trust\Usages\2.16.840.1.113730.4.1 */
+ WINTRUST_WriteSingleUsageEntry(szOID_SGC_NETSCAPE, Dll, ProvDllName);
+ WINTRUST_WriteSingleUsageEntry(szOID_SGC_NETSCAPE, CBAlloc, SoftpubLoadUsage );
+ WINTRUST_WriteSingleUsageEntry(szOID_SGC_NETSCAPE, CBFree, SoftpubFreeUsage );
+ WINTRUST_WriteSingleUsageEntry(szOID_SGC_NETSCAPE, DefaultId, GuidString );
+
+ /* HKLM\Software\Microsoft\Cryptography\Trust\Provider\*\{573E31F8-AABA-11D0-8CCB-00C04FC295EE} */
+ WINTRUST_WriteProviderToReg(GuidString, Initialization, SoftpubInitialization);
+ WINTRUST_WriteProviderToReg(GuidString, Message , SoftpubMessage);
+ WINTRUST_WriteProviderToReg(GuidString, Signature , SoftpubSignature);
+ WINTRUST_WriteProviderToReg(GuidString, Certificate , HTTPSCertificateTrust);
+ WINTRUST_WriteProviderToReg(GuidString, CertCheck , SoftpubCertCheck);
+ WINTRUST_WriteProviderToReg(GuidString, FinalPolicy , HTTPSFinalProv);
+ WINTRUST_WriteProviderToReg(GuidString, Cleanup , SoftpubCleanup);
+}
+
+
/***********************************************************************
* DllRegisterServer (WINTRUST.@)
*/
@@ -565,6 +630,7 @@ HRESULT WINAPI DllRegisterServer(void)
WINTRUST_RegisterPublishedSoftwareNoBadUi();
WINTRUST_RegisterGenCertVerify();
WINTRUST_RegisterTrustProviderTest();
+ WINTRUST_RegisterHttpsProv();
/* Free the registry structures */
WINTRUST_FreeRegStructs();
More information about the wine-cvs
mailing list