Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1996 - 1999
//
// File: emailprv.cpp
//
// Contents: Microsoft Internet Security Authenticode Policy Provider
//
// Functions: EmailRegisterServer
// EmailUnregisterServer
// EmailCertCheckProv
// EmailFinalProv
//
// History: 18-Sep-1997 pberkman created
//
//--------------------------------------------------------------------------
#include "global.hxx"
//////////////////////////////////////////////////////////////////////////////
//
// EmailRegisterServer
//----------------------------------------------------------------------------
// Register the Email provider
//
STDAPI EmailRegisterServer(void) { GUID gProv = EMAIL_ACTIONID_VERIFY; BOOL fRet; CRYPT_REGISTER_ACTIONID sRegAID; CRYPT_PROVIDER_REGDEFUSAGE sDefUsage;
fRet = TRUE;
//
// set the usages we want
//
memset(&sDefUsage, 0x00, sizeof(CRYPT_PROVIDER_REGDEFUSAGE));
sDefUsage.cbStruct = sizeof(CRYPT_PROVIDER_REGDEFUSAGE); sDefUsage.pgActionID = &gProv; sDefUsage.pwszDllName = SP_POLICY_PROVIDER_DLL_NAME; sDefUsage.pwszLoadCallbackDataFunctionName = "SoftpubLoadDefUsageCallData"; sDefUsage.pwszFreeCallbackDataFunctionName = "SoftpubFreeDefUsageCallData";
fRet &= WintrustAddDefaultForUsage(szOID_PKIX_KP_EMAIL_PROTECTION, &sDefUsage);
//
// set our provider
//
memset(&sRegAID, 0x00, sizeof(CRYPT_REGISTER_ACTIONID));
sRegAID.cbStruct = sizeof(CRYPT_REGISTER_ACTIONID);
// Authenticode initialization provider
sRegAID.sInitProvider.cbStruct = sizeof(CRYPT_TRUST_REG_ENTRY); sRegAID.sInitProvider.pwszDLLName = SP_POLICY_PROVIDER_DLL_NAME; sRegAID.sInitProvider.pwszFunctionName = SP_INIT_FUNCTION;
// Authenticode object provider
sRegAID.sObjectProvider.cbStruct = sizeof(CRYPT_TRUST_REG_ENTRY); sRegAID.sObjectProvider.pwszDLLName = SP_POLICY_PROVIDER_DLL_NAME; sRegAID.sObjectProvider.pwszFunctionName = SP_OBJTRUST_FUNCTION;
// Authenticode signature provider
sRegAID.sSignatureProvider.cbStruct = sizeof(CRYPT_TRUST_REG_ENTRY); sRegAID.sSignatureProvider.pwszDLLName = SP_POLICY_PROVIDER_DLL_NAME; sRegAID.sSignatureProvider.pwszFunctionName = SP_SIGTRUST_FUNCTION;
// wintrust's certificate provider
sRegAID.sCertificateProvider.cbStruct = sizeof(CRYPT_TRUST_REG_ENTRY); sRegAID.sCertificateProvider.pwszDLLName = WT_PROVIDER_DLL_NAME; // set to wintrust.dll
sRegAID.sCertificateProvider.pwszFunctionName = WT_PROVIDER_CERTTRUST_FUNCTION; // use wintrust's standard!
// custom cert check due to different CTL usages
sRegAID.sCertificatePolicyProvider.cbStruct = sizeof(CRYPT_TRUST_REG_ENTRY); sRegAID.sCertificatePolicyProvider.pwszDLLName = SP_POLICY_PROVIDER_DLL_NAME; //TBDTBD sRegAID.sCertificatePolicyProvider.pwszFunctionName = HTTPS_CHKCERT_FUNCTION;
// custom final ...
sRegAID.sFinalPolicyProvider.cbStruct = sizeof(CRYPT_TRUST_REG_ENTRY); sRegAID.sFinalPolicyProvider.pwszDLLName = SP_POLICY_PROVIDER_DLL_NAME; //TBDTBD sRegAID.sFinalPolicyProvider.pwszFunctionName = HTTPS_FINALPOLICY_FUNCTION;
// Authenticode cleanup -- we don't store any data.
sRegAID.sCleanupProvider.cbStruct = sizeof(CRYPT_TRUST_REG_ENTRY); sRegAID.sCleanupProvider.pwszDLLName = SP_POLICY_PROVIDER_DLL_NAME; sRegAID.sCleanupProvider.pwszFunctionName = SP_CLEANUPPOLICY_FUNCTION;
fRet &= WintrustAddActionID(&gProv, 0, &sRegAID);
return((fRet) ? S_OK : S_FALSE); }
//////////////////////////////////////////////////////////////////////////////
//
// DllUnregisterServer
//----------------------------------------------------------------------------
// unregisters email provider
//
STDAPI HTTPSUnregisterServer(void) { GUID gProv = EMAIL_ACTIONID_VERIFY;
WintrustRemoveActionID(&gProv);
return(S_OK); }
//////////////////////////////////////////////////////////////////////////////
//
// Exported functions for wintrust
//
BOOL WINAPI EmailCheckCertProv(CRYPT_PROVIDER_DATA *pProvData, DWORD idxSigner, BOOL fCounterSignerChain, DWORD idxCounterSigner) { }
HRESULT WINAPI HTTPSFinalProv(CRYPT_PROVIDER_DATA *pProvData) { }
///////////////////////////////////////////////////////////////////////////////////
//
// Local Functions
//
///////////////////////////////////////////////////////////////////////////////////
|