ReactOS  0.4.12-dev-36-g472787f
register.c File Reference
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
#include "winuser.h"
#include "winreg.h"
#include "winnls.h"
#include "objbase.h"
#include "guiddef.h"
#include "wintrust.h"
#include "softpub.h"
#include "mssip.h"
#include "wintrust_priv.h"
#include "wine/debug.h"
Include dependency graph for register.c:

Go to the source code of this file.

Macros

#define WINTRUST_INITREGENTRY(action, dllname, functionname)
 
#define WINTRUST_FREEREGENTRY(action)
 
#define WIN_SPUB_ACTION_PUBLISHED_SOFTWARE_NOBADUI   { 0xc6b2e8d0, 0xe005, 0x11cf, { 0xa1,0x34,0x00,0xc0,0x4f,0xd7,0xbf,0x43 }}
 
#define WINTRUST_REGISTEROID(oid, encode_funcname, decode_funcname)
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (wintrust)
 
static void WINTRUST_InitRegStructs (void)
 
static void WINTRUST_FreeRegStructs (void)
 
static void WINTRUST_Guid2Wstr (const GUID *pgActionID, WCHAR *GuidString)
 
static LONG WINTRUST_WriteProviderToReg (WCHAR *GuidString, const WCHAR *FunctionType, CRYPT_TRUST_REG_ENTRY RegEntry)
 
BOOL WINAPI WintrustAddActionID (GUID *pgActionID, DWORD fdwFlags, CRYPT_REGISTER_ACTIONID *psProvInfo)
 
static void WINTRUST_RemoveProviderFromReg (WCHAR *GuidString, const WCHAR *FunctionType)
 
BOOL WINAPI WintrustRemoveActionID (GUID *pgActionID)
 
static LONG WINTRUST_WriteSingleUsageEntry (LPCSTR OID, const WCHAR *Value, WCHAR *Data)
 
static BOOL WINTRUST_RegisterGenVerifyV2 (void)
 
static BOOL WINTRUST_RegisterPublishedSoftware (void)
 
static BOOL WINTRUST_RegisterPublishedSoftwareNoBadUi (void)
 
static BOOL WINTRUST_RegisterGenCertVerify (void)
 
static BOOL WINTRUST_RegisterTrustProviderTest (void)
 
static BOOL WINTRUST_RegisterHttpsProv (void)
 
static BOOL WINTRUST_RegisterOfficeSignVerify (void)
 
static BOOL WINTRUST_RegisterDriverVerify (void)
 
static BOOL WINTRUST_RegisterGenChainVerify (void)
 
BOOL WINAPI WintrustAddDefaultForUsage (const char *pszUsageOID, CRYPT_PROVIDER_REGDEFUSAGE *psDefUsage)
 
static FARPROC WINTRUST_ReadProviderFromReg (WCHAR *GuidString, const WCHAR *FunctionType)
 
BOOL WINAPI WintrustLoadFunctionPointers (GUID *pgActionID, CRYPT_PROVIDER_FUNCTIONS *pPfns)
 
static BOOL WINTRUST_SIPPAddProvider (GUID *Subject, WCHAR *MagicNumber)
 
HRESULT WINAPI DllRegisterServer (void)
 
HRESULT WINAPI DllUnregisterServer (void)
 
HRESULT WINAPI SoftpubDllRegisterServer (void)
 
HRESULT WINAPI SoftpubDllUnregisterServer (void)
 
HRESULT WINAPI mscat32DllRegisterServer (void)
 
HRESULT WINAPI mscat32DllUnregisterServer (void)
 
HRESULT WINAPI mssip32DllRegisterServer (void)
 
HRESULT WINAPI mssip32DllUnregisterServer (void)
 

Variables

static CRYPT_TRUST_REG_ENTRY SoftpubInitialization
 
static CRYPT_TRUST_REG_ENTRY SoftpubMessage
 
static CRYPT_TRUST_REG_ENTRY SoftpubSignature
 
static CRYPT_TRUST_REG_ENTRY SoftpubCertificate
 
static CRYPT_TRUST_REG_ENTRY SoftpubCertCheck
 
static CRYPT_TRUST_REG_ENTRY SoftpubFinalPolicy
 
static CRYPT_TRUST_REG_ENTRY SoftpubCleanup
 
static CRYPT_TRUST_REG_ENTRY SoftpubDefCertInit
 
static CRYPT_TRUST_REG_ENTRY SoftpubDumpStructure
 
static CRYPT_TRUST_REG_ENTRY HTTPSCertificateTrust
 
static CRYPT_TRUST_REG_ENTRY HTTPSFinalProv
 
static CRYPT_TRUST_REG_ENTRY OfficeInitializePolicy
 
static CRYPT_TRUST_REG_ENTRY OfficeCleanupPolicy
 
static CRYPT_TRUST_REG_ENTRY DriverInitializePolicy
 
static CRYPT_TRUST_REG_ENTRY DriverFinalPolicy
 
static CRYPT_TRUST_REG_ENTRY DriverCleanupPolicy
 
static CRYPT_TRUST_REG_ENTRY GenericChainCertificateTrust
 
static CRYPT_TRUST_REG_ENTRY GenericChainFinalProv
 
static const CRYPT_TRUST_REG_ENTRY NullCTRE = { 0, NULL, NULL }
 
static const WCHAR Trust []
 
static const WCHAR Initialization [] = {'I','n','i','t','i','a','l','i','z','a','t','i','o','n','\\', 0}
 
static const WCHAR Message [] = {'M','e','s','s','a','g','e','\\', 0}
 
static const WCHAR Signature [] = {'S','i','g','n','a','t','u','r','e','\\', 0}
 
static const WCHAR Certificate [] = {'C','e','r','t','i','f','i','c','a','t','e','\\', 0}
 
static const WCHAR CertCheck [] = {'C','e','r','t','C','h','e','c','k','\\', 0}
 
static const WCHAR FinalPolicy [] = {'F','i','n','a','l','P','o','l','i','c','y','\\', 0}
 
static const WCHAR DiagnosticPolicy [] = {'D','i','a','g','n','o','s','t','i','c','P','o','l','i','c','y','\\', 0}
 
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}
 

Macro Definition Documentation

◆ WIN_SPUB_ACTION_PUBLISHED_SOFTWARE_NOBADUI

#define WIN_SPUB_ACTION_PUBLISHED_SOFTWARE_NOBADUI   { 0xc6b2e8d0, 0xe005, 0x11cf, { 0xa1,0x34,0x00,0xc0,0x4f,0xd7,0xbf,0x43 }}

Definition at line 480 of file register.c.

Referenced by WINTRUST_RegisterPublishedSoftwareNoBadUi().

◆ WINTRUST_FREEREGENTRY

#define WINTRUST_FREEREGENTRY (   action)
Value:
WINTRUST_Free(action.pwszDLLName); \
WINTRUST_Free(action.pwszFunctionName);
void WINAPI WINTRUST_Free(void *p)
Definition: wintrust_main.c:56
const WCHAR * action
Definition: action.c:7779

Referenced by WINTRUST_FreeRegStructs().

◆ WINTRUST_INITREGENTRY

#define WINTRUST_INITREGENTRY (   action,
  dllname,
  functionname 
)
Value:
action.cbStruct = sizeof(CRYPT_TRUST_REG_ENTRY); \
action.pwszDLLName = WINTRUST_Alloc(sizeof(dllname)); \
lstrcpyW(action.pwszDLLName, dllname); \
action.pwszFunctionName = WINTRUST_Alloc(sizeof(functionname)); \
lstrcpyW(action.pwszFunctionName, functionname);
void *WINAPI WINTRUST_Alloc(DWORD cb)
Definition: wintrust_main.c:45
struct _CRYPT_TRUST_REG_ENTRY CRYPT_TRUST_REG_ENTRY
const WCHAR * action
Definition: action.c:7779

Referenced by WINTRUST_InitRegStructs().

◆ WINTRUST_REGISTEROID

#define WINTRUST_REGISTEROID (   oid,
  encode_funcname,
  decode_funcname 
)
Value:
do { \
{ \
CryptRegisterRes = HRESULT_FROM_WIN32(GetLastError()); \
goto add_trust_providers; \
} \
{ \
CryptRegisterRes = HRESULT_FROM_WIN32(GetLastError()); \
goto add_trust_providers; \
} \
} while (0)
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
BOOL WINAPI CryptRegisterOIDFunction(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID, LPCWSTR pwszDll, LPCSTR pszOverrideFuncName)
Definition: oid.c:597
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
#define X509_ASN_ENCODING
Definition: wincrypt.h:2297
static const WCHAR SP_POLICY_PROVIDER_DLL_NAME[]
Definition: softpub.h:104
#define CRYPT_OID_DECODE_OBJECT_FUNC
Definition: wincrypt.h:2493
#define CRYPT_OID_ENCODE_OBJECT_FUNC
Definition: wincrypt.h:2492

Referenced by DllRegisterServer().

Function Documentation

◆ DllRegisterServer()

HRESULT WINAPI DllRegisterServer ( void  )

Definition at line 926 of file register.c.

927 {
928  static const CHAR SpcPeImageDataEncode[] = "WVTAsn1SpcPeImageDataEncode";
929  static const CHAR SpcPeImageDataDecode[] = "WVTAsn1SpcPeImageDataDecode";
930  static const CHAR SpcLinkEncode[] = "WVTAsn1SpcLinkEncode";
931  static const CHAR SpcLinkDecode[] = "WVTAsn1SpcLinkDecode";
932  static const CHAR SpcSigInfoEncode[] = "WVTAsn1SpcSigInfoEncode";
933  static const CHAR SpcSigInfoDecode[] = "WVTAsn1SpcSigInfoDecode";
934  static const CHAR SpcIndirectDataContentEncode[] = "WVTAsn1SpcIndirectDataContentEncode";
935  static const CHAR SpcIndirectDataContentDecode[] = "WVTAsn1SpcIndirectDataContentDecode";
936  static const CHAR SpcSpAgencyInfoEncode[] = "WVTAsn1SpcSpAgencyInfoEncode";
937  static const CHAR SpcSpAgencyInfoDecode[] = "WVTAsn1SpcSpAgencyInfoDecode";
938  static const CHAR SpcMinimalCriteriaInfoEncode[] = "WVTAsn1SpcMinimalCriteriaInfoEncode";
939  static const CHAR SpcMinimalCriteriaInfoDecode[] = "WVTAsn1SpcMinimalCriteriaInfoDecode";
940  static const CHAR SpcFinancialCriteriaInfoEncode[] = "WVTAsn1SpcFinancialCriteriaInfoEncode";
941  static const CHAR SpcFinancialCriteriaInfoDecode[] = "WVTAsn1SpcFinancialCriteriaInfoDecode";
942  static const CHAR SpcStatementTypeEncode[] = "WVTAsn1SpcStatementTypeEncode";
943  static const CHAR SpcStatementTypeDecode[] = "WVTAsn1SpcStatementTypeDecode";
944  static const CHAR CatNameValueEncode[] = "WVTAsn1CatNameValueEncode";
945  static const CHAR CatNameValueDecode[] = "WVTAsn1CatNameValueDecode";
946  static const CHAR CatMemberInfoEncode[] = "WVTAsn1CatMemberInfoEncode";
947  static const CHAR CatMemberInfoDecode[] = "WVTAsn1CatMemberInfoDecode";
948  static const CHAR SpcSpOpusInfoEncode[] = "WVTAsn1SpcSpOpusInfoEncode";
949  static const CHAR SpcSpOpusInfoDecode[] = "WVTAsn1SpcSpOpusInfoDecode";
950  static GUID Unknown1 = { 0xDE351A42, 0x8E59, 0x11D0, { 0x8C,0x47,0x00,0xC0,0x4F,0xC2,0x95,0xEE }};
951  static GUID Unknown2 = { 0xC689AABA, 0x8E78, 0x11D0, { 0x8C,0x47,0x00,0xC0,0x4F,0xC2,0x95,0xEE }};
952  static GUID Unknown3 = { 0xC689AAB8, 0x8E78, 0x11D0, { 0x8C,0x47,0x00,0xC0,0x4F,0xC2,0x95,0xEE }};
953  static GUID Unknown4 = { 0xC689AAB9, 0x8E78, 0x11D0, { 0x8C,0x47,0x00,0xC0,0x4F,0xC2,0x95,0xEE }};
954  static GUID Unknown5 = { 0xDE351A43, 0x8E59, 0x11D0, { 0x8C,0x47,0x00,0xC0,0x4F,0xC2,0x95,0xEE }};
955  static GUID Unknown6 = { 0x9BA61D3F, 0xE73A, 0x11D0, { 0x8C,0xD2,0x00,0xC0,0x4F,0xC2,0x95,0xEE }};
956  static WCHAR MagicNumber2[] = {'M','S','C','F', 0};
957  static WCHAR MagicNumber3[] = {'0','x','0','0','0','0','4','5','5','0', 0};
958  static WCHAR CafeBabe[] = {'0','x','c','a','f','e','b','a','b','e', 0};
959 
960  HRESULT CryptRegisterRes = S_OK;
961  HRESULT TrustProviderRes = S_OK;
962  HRESULT SIPAddProviderRes = S_OK;
963  HCRYPTPROV crypt_provider;
964  BOOL ret;
965 
966  TRACE("\n");
967 
968  /* Testing on native shows that when an error is encountered in one of the CryptRegisterOIDFunction calls
969  * the rest of these calls are skipped. Registering is however continued for the trust providers.
970  *
971  * We are not totally in line with native as all decoding functions are registered after all encoding
972  * functions there.
973  */
974 #define WINTRUST_REGISTEROID( oid, encode_funcname, decode_funcname ) \
975  do { \
976  if (!CryptRegisterOIDFunction(X509_ASN_ENCODING, CRYPT_OID_ENCODE_OBJECT_FUNC, oid, SP_POLICY_PROVIDER_DLL_NAME, encode_funcname)) \
977  { \
978  CryptRegisterRes = HRESULT_FROM_WIN32(GetLastError()); \
979  goto add_trust_providers; \
980  } \
981  if (!CryptRegisterOIDFunction(X509_ASN_ENCODING, CRYPT_OID_DECODE_OBJECT_FUNC, oid, SP_POLICY_PROVIDER_DLL_NAME, decode_funcname)) \
982  { \
983  CryptRegisterRes = HRESULT_FROM_WIN32(GetLastError()); \
984  goto add_trust_providers; \
985  } \
986  } while (0)
987 
988  WINTRUST_REGISTEROID(SPC_PE_IMAGE_DATA_OBJID, SpcPeImageDataEncode, SpcPeImageDataDecode);
989  WINTRUST_REGISTEROID(SPC_PE_IMAGE_DATA_STRUCT, SpcPeImageDataEncode, SpcPeImageDataDecode);
990  WINTRUST_REGISTEROID(SPC_CAB_DATA_OBJID, SpcLinkEncode, SpcLinkDecode);
991  WINTRUST_REGISTEROID(SPC_CAB_DATA_STRUCT, SpcLinkEncode, SpcLinkDecode);
992  WINTRUST_REGISTEROID(SPC_JAVA_CLASS_DATA_OBJID, SpcLinkEncode, SpcLinkDecode);
993  WINTRUST_REGISTEROID(SPC_JAVA_CLASS_DATA_STRUCT, SpcLinkEncode, SpcLinkDecode);
994  WINTRUST_REGISTEROID(SPC_LINK_OBJID, SpcLinkEncode, SpcLinkDecode);
995  WINTRUST_REGISTEROID(SPC_LINK_STRUCT, SpcLinkEncode, SpcLinkDecode);
996  WINTRUST_REGISTEROID(SPC_SIGINFO_OBJID, SpcSigInfoEncode, SpcSigInfoDecode);
997  WINTRUST_REGISTEROID(SPC_SIGINFO_STRUCT, SpcSigInfoEncode, SpcSigInfoDecode);
998  WINTRUST_REGISTEROID(SPC_INDIRECT_DATA_OBJID, SpcIndirectDataContentEncode, SpcIndirectDataContentDecode);
999  WINTRUST_REGISTEROID(SPC_INDIRECT_DATA_CONTENT_STRUCT, SpcIndirectDataContentEncode, SpcIndirectDataContentDecode);
1000  WINTRUST_REGISTEROID(SPC_SP_AGENCY_INFO_OBJID, SpcSpAgencyInfoEncode, SpcSpAgencyInfoDecode);
1001  WINTRUST_REGISTEROID(SPC_SP_AGENCY_INFO_STRUCT, SpcSpAgencyInfoEncode, SpcSpAgencyInfoDecode);
1002  WINTRUST_REGISTEROID(SPC_MINIMAL_CRITERIA_OBJID, SpcMinimalCriteriaInfoEncode, SpcMinimalCriteriaInfoDecode);
1003  WINTRUST_REGISTEROID(SPC_MINIMAL_CRITERIA_STRUCT, SpcMinimalCriteriaInfoEncode, SpcMinimalCriteriaInfoDecode);
1004  WINTRUST_REGISTEROID(SPC_FINANCIAL_CRITERIA_OBJID, SpcFinancialCriteriaInfoEncode, SpcFinancialCriteriaInfoDecode);
1005  WINTRUST_REGISTEROID(SPC_FINANCIAL_CRITERIA_STRUCT, SpcFinancialCriteriaInfoEncode, SpcFinancialCriteriaInfoDecode);
1006  WINTRUST_REGISTEROID(SPC_STATEMENT_TYPE_OBJID, SpcStatementTypeEncode, SpcStatementTypeDecode);
1007  WINTRUST_REGISTEROID(SPC_STATEMENT_TYPE_STRUCT, SpcStatementTypeEncode, SpcStatementTypeDecode);
1008  WINTRUST_REGISTEROID(CAT_NAMEVALUE_OBJID, CatNameValueEncode, CatNameValueDecode);
1009  WINTRUST_REGISTEROID(CAT_NAMEVALUE_STRUCT, CatNameValueEncode, CatNameValueDecode);
1010  WINTRUST_REGISTEROID(CAT_MEMBERINFO_OBJID, CatMemberInfoEncode, CatMemberInfoDecode);
1011  WINTRUST_REGISTEROID(CAT_MEMBERINFO_STRUCT, CatMemberInfoEncode, CatMemberInfoDecode);
1012  WINTRUST_REGISTEROID(SPC_SP_OPUS_INFO_OBJID, SpcSpOpusInfoEncode, SpcSpOpusInfoDecode);
1013  WINTRUST_REGISTEROID(SPC_SP_OPUS_INFO_STRUCT, SpcSpOpusInfoEncode, SpcSpOpusInfoDecode);
1014 
1015 #undef WINTRUST_REGISTEROID
1016 
1017 add_trust_providers:
1018 
1019  /* Testing on W2K3 shows:
1020  * All registry writes are tried. If one fails this part will return S_FALSE.
1021  *
1022  * Last error is set to the last error encountered, regardless if the first
1023  * part failed or not.
1024  */
1025 
1026  /* Create the necessary action registry structures */
1028 
1029  /* Register several Trust Provider actions */
1031  TrustProviderRes = S_FALSE;
1033  TrustProviderRes = S_FALSE;
1035  TrustProviderRes = S_FALSE;
1037  TrustProviderRes = S_FALSE;
1039  TrustProviderRes = S_FALSE;
1041  TrustProviderRes = S_FALSE;
1043  TrustProviderRes = S_FALSE;
1045  TrustProviderRes = S_FALSE;
1047  TrustProviderRes = S_FALSE;
1048 
1049  /* Free the registry structures */
1051 
1052  /* Testing on W2K3 shows:
1053  * All registry writes are tried. If one fails this part will return S_FALSE.
1054  *
1055  * Last error is set to the last error encountered, regardless if the previous
1056  * parts failed or not.
1057  */
1058 
1059  if (!WINTRUST_SIPPAddProvider(&Unknown1, NULL))
1060  SIPAddProviderRes = S_FALSE;
1061  if (!WINTRUST_SIPPAddProvider(&Unknown2, MagicNumber2))
1062  SIPAddProviderRes = S_FALSE;
1063  if (!WINTRUST_SIPPAddProvider(&Unknown3, MagicNumber3))
1064  SIPAddProviderRes = S_FALSE;
1065  if (!WINTRUST_SIPPAddProvider(&Unknown4, CafeBabe))
1066  SIPAddProviderRes = S_FALSE;
1067  if (!WINTRUST_SIPPAddProvider(&Unknown5, CafeBabe))
1068  SIPAddProviderRes = S_FALSE;
1069  if (!WINTRUST_SIPPAddProvider(&Unknown6, CafeBabe))
1070  SIPAddProviderRes = S_FALSE;
1071 
1072  /* Native does a CryptSIPRemoveProvider here for {941C2937-1292-11D1-85BE-00C04FC295EE}.
1073  * This SIP Provider is however not found on up-to-date window install and native will
1074  * set the last error to ERROR_FILE_NOT_FOUND.
1075  * Wine has the last error set to ERROR_INVALID_PARAMETER. There shouldn't be an app
1076  * depending on this last error though so there is no need to imitate native to the full extent.
1077  *
1078  * (The ERROR_INVALID_PARAMETER for Wine it totally valid as we (and native) do register
1079  * a trust provider without a diagnostic policy).
1080  */
1081 
1082  /* Create a dummy context to force creation of the MachineGuid registry key. */
1083  ret = CryptAcquireContextW(&crypt_provider, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT);
1084  if (ret) CryptReleaseContext(crypt_provider, 0);
1085  else ERR("Failed to acquire cryptographic context: %u\n", GetLastError());
1086 
1087  /* If CryptRegisterRes is not S_OK it will always overrule the return value. */
1088  if (CryptRegisterRes != S_OK)
1089  return CryptRegisterRes;
1090  else if (SIPAddProviderRes == S_OK)
1091  return TrustProviderRes;
1092  else
1093  return SIPAddProviderRes;
1094 }
#define SPC_FINANCIAL_CRITERIA_OBJID
Definition: wintrust.h:495
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD Unknown3
Definition: conport.c:35
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define SPC_CAB_DATA_OBJID
Definition: wintrust.h:492
char CHAR
Definition: xmlstorage.h:175
#define SPC_LINK_STRUCT
Definition: wintrust.h:506
#define SPC_SP_AGENCY_INFO_OBJID
Definition: wintrust.h:482
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD IN DWORD IN DWORD IN DWORD Unknown6
Definition: conport.c:35
static BOOL WINTRUST_RegisterGenCertVerify(void)
Definition: register.c:521
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
static BOOL WINTRUST_RegisterPublishedSoftwareNoBadUi(void)
Definition: register.c:491
#define SPC_MINIMAL_CRITERIA_STRUCT
Definition: wintrust.h:502
#define CAT_MEMBERINFO_STRUCT
Definition: wintrust.h:513
#define SPC_LINK_OBJID
Definition: wintrust.h:496
static BOOL WINTRUST_RegisterGenVerifyV2(void)
Definition: register.c:420
#define CAT_NAMEVALUE_OBJID
Definition: wintrust.h:498
BOOL WINAPI CryptAcquireContextW(HCRYPTPROV *phProv, LPCWSTR pszContainer, LPCWSTR pszProvider, DWORD dwProvType, DWORD dwFlags)
Definition: crypt.c:358
#define SPC_SP_OPUS_INFO_OBJID
Definition: wintrust.h:484
#define SPC_CAB_DATA_STRUCT
Definition: wintrust.h:509
static BOOL WINTRUST_RegisterTrustProviderTest(void)
Definition: register.c:551
#define CAT_NAMEVALUE_STRUCT
Definition: wintrust.h:512
PRTL_UNICODE_STRING_BUFFER PULONG PULONG Unknown4
#define SPC_SP_OPUS_INFO_STRUCT
Definition: wintrust.h:508
static BOOL WINTRUST_RegisterOfficeSignVerify(void)
Definition: register.c:633
#define S_FALSE
Definition: winerror.h:2357
smooth NULL
Definition: ftsmooth.c:416
#define SPC_SP_AGENCY_INFO_STRUCT
Definition: wintrust.h:501
#define SPC_STATEMENT_TYPE_OBJID
Definition: wintrust.h:483
#define SPC_PE_IMAGE_DATA_OBJID
Definition: wintrust.h:486
#define TRACE(s)
Definition: solgame.cpp:4
unsigned int BOOL
Definition: ntddk_ex.h:94
LONG HRESULT
Definition: typedefs.h:77
static BOOL WINTRUST_RegisterPublishedSoftware(void)
Definition: register.c:459
static BOOL WINTRUST_SIPPAddProvider(GUID *Subject, WCHAR *MagicNumber)
Definition: register.c:884
int ret
#define SPC_STATEMENT_TYPE_STRUCT
Definition: wintrust.h:507
static void WINTRUST_InitRegStructs(void)
Definition: register.c:91
#define SPC_INDIRECT_DATA_CONTENT_STRUCT
Definition: wintrust.h:504
#define SPC_MINIMAL_CRITERIA_OBJID
Definition: wintrust.h:494
#define CRYPT_VERIFYCONTEXT
Definition: wincrypt.h:2069
#define ERR(fmt,...)
Definition: debug.h:109
static BOOL WINTRUST_RegisterGenChainVerify(void)
Definition: register.c:695
#define S_OK
Definition: intsafe.h:59
static BOOL WINTRUST_RegisterDriverVerify(void)
Definition: register.c:664
ULONG_PTR HCRYPTPROV
Definition: wincrypt.h:46
static BOOL WINTRUST_RegisterHttpsProv(void)
Definition: register.c:581
#define SPC_SIGINFO_OBJID
Definition: wintrust.h:497
#define CAT_MEMBERINFO_OBJID
Definition: wintrust.h:499
BOOL WINAPI CryptReleaseContext(HCRYPTPROV hProv, ULONG_PTR dwFlags)
Definition: crypt.c:651
static void WINTRUST_FreeRegStructs(void)
Definition: register.c:128
#define SPC_FINANCIAL_CRITERIA_STRUCT
Definition: wintrust.h:503
#define SPC_INDIRECT_DATA_OBJID
Definition: wintrust.h:481
#define SPC_SIGINFO_STRUCT
Definition: wintrust.h:511
#define SPC_PE_IMAGE_DATA_STRUCT
Definition: wintrust.h:505
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD IN DWORD IN DWORD Unknown5
Definition: conport.c:35
#define SPC_JAVA_CLASS_DATA_OBJID
Definition: wintrust.h:489
#define SPC_JAVA_CLASS_DATA_STRUCT
Definition: wintrust.h:510
#define WINTRUST_REGISTEROID(oid, encode_funcname, decode_funcname)
#define PROV_RSA_FULL
Definition: wincrypt.h:2039

◆ DllUnregisterServer()

HRESULT WINAPI DllUnregisterServer ( void  )

Definition at line 1099 of file register.c.

1100 {
1101  FIXME("stub\n");
1102  return S_OK;
1103 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define S_OK
Definition: intsafe.h:59

◆ mscat32DllRegisterServer()

HRESULT WINAPI mscat32DllRegisterServer ( void  )

Definition at line 1167 of file register.c.

1168 {
1169  FIXME("stub\n");
1170  return S_OK;
1171 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define S_OK
Definition: intsafe.h:59

◆ mscat32DllUnregisterServer()

HRESULT WINAPI mscat32DllUnregisterServer ( void  )

Definition at line 1176 of file register.c.

1177 {
1178  FIXME("stub\n");
1179  return S_OK;
1180 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define S_OK
Definition: intsafe.h:59

◆ mssip32DllRegisterServer()

HRESULT WINAPI mssip32DllRegisterServer ( void  )

Definition at line 1185 of file register.c.

1186 {
1187  FIXME("stub\n");
1188  return S_OK;
1189 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define S_OK
Definition: intsafe.h:59

◆ mssip32DllUnregisterServer()

HRESULT WINAPI mssip32DllUnregisterServer ( void  )

Definition at line 1194 of file register.c.

1195 {
1196  FIXME("stub\n");
1197  return S_OK;
1198 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define S_OK
Definition: intsafe.h:59

◆ SoftpubDllRegisterServer()

HRESULT WINAPI SoftpubDllRegisterServer ( void  )

Definition at line 1120 of file register.c.

1121 {
1122  HRESULT TrustProviderRes = S_OK;
1123 
1124  TRACE("\n");
1125 
1126  /* Create the necessary action registry structures */
1128 
1129  /* Register several Trust Provider actions */
1131  TrustProviderRes = S_FALSE;
1133  TrustProviderRes = S_FALSE;
1135  TrustProviderRes = S_FALSE;
1137  TrustProviderRes = S_FALSE;
1139  TrustProviderRes = S_FALSE;
1141  TrustProviderRes = S_FALSE;
1143  TrustProviderRes = S_FALSE;
1145  TrustProviderRes = S_FALSE;
1147  TrustProviderRes = S_FALSE;
1148 
1149  /* Free the registry structures */
1151 
1152  return TrustProviderRes;
1153 }
static BOOL WINTRUST_RegisterGenCertVerify(void)
Definition: register.c:521
static BOOL WINTRUST_RegisterPublishedSoftwareNoBadUi(void)
Definition: register.c:491
static BOOL WINTRUST_RegisterGenVerifyV2(void)
Definition: register.c:420
static BOOL WINTRUST_RegisterTrustProviderTest(void)
Definition: register.c:551
static BOOL WINTRUST_RegisterOfficeSignVerify(void)
Definition: register.c:633
#define S_FALSE
Definition: winerror.h:2357
#define TRACE(s)
Definition: solgame.cpp:4
LONG HRESULT
Definition: typedefs.h:77
static BOOL WINTRUST_RegisterPublishedSoftware(void)
Definition: register.c:459
static void WINTRUST_InitRegStructs(void)
Definition: register.c:91
static BOOL WINTRUST_RegisterGenChainVerify(void)
Definition: register.c:695
#define S_OK
Definition: intsafe.h:59
static BOOL WINTRUST_RegisterDriverVerify(void)
Definition: register.c:664
static BOOL WINTRUST_RegisterHttpsProv(void)
Definition: register.c:581
static void WINTRUST_FreeRegStructs(void)
Definition: register.c:128

◆ SoftpubDllUnregisterServer()

HRESULT WINAPI SoftpubDllUnregisterServer ( void  )

Definition at line 1158 of file register.c.

1159 {
1160  FIXME("stub\n");
1161  return S_OK;
1162 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define S_OK
Definition: intsafe.h:59

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( wintrust  )

◆ WINTRUST_FreeRegStructs()

static void WINTRUST_FreeRegStructs ( void  )
static

Definition at line 128 of file register.c.

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

129 {
130 #define WINTRUST_FREEREGENTRY( action ) \
131  WINTRUST_Free(action.pwszDLLName); \
132  WINTRUST_Free(action.pwszFunctionName);
133 
152 
153 #undef WINTRUST_FREEREGENTRY
154 }
static CRYPT_TRUST_REG_ENTRY SoftpubSignature
Definition: register.c:42
static CRYPT_TRUST_REG_ENTRY HTTPSCertificateTrust
Definition: register.c:52
static CRYPT_TRUST_REG_ENTRY OfficeCleanupPolicy
Definition: register.c:56
static CRYPT_TRUST_REG_ENTRY GenericChainFinalProv
Definition: register.c:63
static CRYPT_TRUST_REG_ENTRY DriverFinalPolicy
Definition: register.c:59
static CRYPT_TRUST_REG_ENTRY SoftpubInitialization
Definition: register.c:40
static CRYPT_TRUST_REG_ENTRY OfficeInitializePolicy
Definition: register.c:55
static CRYPT_TRUST_REG_ENTRY DriverInitializePolicy
Definition: register.c:58
static CRYPT_TRUST_REG_ENTRY GenericChainCertificateTrust
Definition: register.c:62
#define WINTRUST_FREEREGENTRY(action)
static CRYPT_TRUST_REG_ENTRY SoftpubCertificate
Definition: register.c:43
static CRYPT_TRUST_REG_ENTRY SoftpubDefCertInit
Definition: register.c:48
static CRYPT_TRUST_REG_ENTRY SoftpubCertCheck
Definition: register.c:44
static CRYPT_TRUST_REG_ENTRY SoftpubCleanup
Definition: register.c:46
static CRYPT_TRUST_REG_ENTRY SoftpubMessage
Definition: register.c:41
static CRYPT_TRUST_REG_ENTRY HTTPSFinalProv
Definition: register.c:53
static CRYPT_TRUST_REG_ENTRY SoftpubDumpStructure
Definition: register.c:50
static CRYPT_TRUST_REG_ENTRY SoftpubFinalPolicy
Definition: register.c:45
static CRYPT_TRUST_REG_ENTRY DriverCleanupPolicy
Definition: register.c:60

◆ WINTRUST_Guid2Wstr()

static void WINTRUST_Guid2Wstr ( const GUID pgActionID,
WCHAR GuidString 
)
static

Definition at line 162 of file register.c.

Referenced by WintrustAddActionID(), WintrustAddDefaultForUsage(), WintrustLoadFunctionPointers(), and WintrustRemoveActionID().

163 {
164  static const WCHAR wszFormat[] = {'{','%','0','8','l','X','-','%','0','4','X','-','%','0','4','X','-',
165  '%','0','2','X','%','0','2','X','-','%','0','2','X','%','0','2','X','%','0','2','X','%','0','2',
166  'X','%','0','2','X','%','0','2','X','}', 0};
167 
168  wsprintfW(GuidString, wszFormat, pgActionID->Data1, pgActionID->Data2, pgActionID->Data3,
169  pgActionID->Data4[0], pgActionID->Data4[1], pgActionID->Data4[2], pgActionID->Data4[3],
170  pgActionID->Data4[4], pgActionID->Data4[5], pgActionID->Data4[6], pgActionID->Data4[7]);
171 }
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
static PWSTR GuidString
Definition: apphelp.c:91
__wchar_t WCHAR
Definition: xmlstorage.h:180

◆ WINTRUST_InitRegStructs()

static void WINTRUST_InitRegStructs ( void  )
static

Definition at line 91 of file register.c.

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

92 {
93 #define WINTRUST_INITREGENTRY( action, dllname, functionname ) \
94  action.cbStruct = sizeof(CRYPT_TRUST_REG_ENTRY); \
95  action.pwszDLLName = WINTRUST_Alloc(sizeof(dllname)); \
96  lstrcpyW(action.pwszDLLName, dllname); \
97  action.pwszFunctionName = WINTRUST_Alloc(sizeof(functionname)); \
98  lstrcpyW(action.pwszFunctionName, functionname);
99 
118 
119 #undef WINTRUST_INITREGENTRY
120 }
static const WCHAR DRIVER_CLEANUPPOLICY_FUNCTION[]
Definition: softpub.h:219
static const WCHAR HTTPS_CERTTRUST_FUNCTION[]
Definition: softpub.h:171
static CRYPT_TRUST_REG_ENTRY SoftpubSignature
Definition: register.c:42
static const WCHAR SP_CLEANUPPOLICY_FUNCTION[]
Definition: softpub.h:142
static CRYPT_TRUST_REG_ENTRY HTTPSCertificateTrust
Definition: register.c:52
static const WCHAR SP_GENERIC_CERT_INIT_FUNCTION[]
Definition: softpub.h:33
static const WCHAR SP_OBJTRUST_FUNCTION[]
Definition: softpub.h:134
static CRYPT_TRUST_REG_ENTRY OfficeCleanupPolicy
Definition: register.c:56
static CRYPT_TRUST_REG_ENTRY GenericChainFinalProv
Definition: register.c:63
static const WCHAR DRIVER_FINALPOLPROV_FUNCTION[]
Definition: softpub.h:217
static const WCHAR OFFICE_POLICY_PROVIDER_DLL_NAME[]
Definition: softpub.h:192
static const WCHAR SP_TESTDUMPPOLICY_FUNCTION_TEST[]
Definition: softpub.h:155
static CRYPT_TRUST_REG_ENTRY DriverFinalPolicy
Definition: register.c:59
static CRYPT_TRUST_REG_ENTRY SoftpubInitialization
Definition: register.c:40
static CRYPT_TRUST_REG_ENTRY OfficeInitializePolicy
Definition: register.c:55
static const WCHAR HTTPS_FINALPOLICY_FUNCTION[]
Definition: softpub.h:173
static CRYPT_TRUST_REG_ENTRY DriverInitializePolicy
Definition: register.c:58
static CRYPT_TRUST_REG_ENTRY GenericChainCertificateTrust
Definition: register.c:62
static const WCHAR WT_PROVIDER_CERTTRUST_FUNCTION[]
Definition: wintrust.h:460
static const WCHAR SP_SIGTRUST_FUNCTION[]
Definition: softpub.h:136
static const WCHAR SP_POLICY_PROVIDER_DLL_NAME[]
Definition: softpub.h:104
static const WCHAR GENERIC_CHAIN_CERTTRUST_FUNCTION[]
Definition: softpub.h:51
#define WINTRUST_INITREGENTRY(action, dllname, functionname)
static const WCHAR DRIVER_INITPROV_FUNCTION[]
Definition: softpub.h:215
static const WCHAR SP_FINALPOLICY_FUNCTION[]
Definition: softpub.h:140
static const WCHAR SP_CHKCERT_FUNCTION[]
Definition: softpub.h:138
static CRYPT_TRUST_REG_ENTRY SoftpubCertificate
Definition: register.c:43
static const WCHAR OFFICE_CLEANUPPOLICY_FUNCTION[]
Definition: softpub.h:196
static CRYPT_TRUST_REG_ENTRY SoftpubDefCertInit
Definition: register.c:48
static CRYPT_TRUST_REG_ENTRY SoftpubCertCheck
Definition: register.c:44
static CRYPT_TRUST_REG_ENTRY SoftpubCleanup
Definition: register.c:46
static const WCHAR GENERIC_CHAIN_FINALPOLICY_FUNCTION[]
Definition: softpub.h:49
static CRYPT_TRUST_REG_ENTRY SoftpubMessage
Definition: register.c:41
static const WCHAR OFFICE_INITPROV_FUNCTION[]
Definition: softpub.h:194
static const WCHAR SP_INIT_FUNCTION[]
Definition: softpub.h:132
static CRYPT_TRUST_REG_ENTRY HTTPSFinalProv
Definition: register.c:53
static CRYPT_TRUST_REG_ENTRY SoftpubDumpStructure
Definition: register.c:50
static CRYPT_TRUST_REG_ENTRY SoftpubFinalPolicy
Definition: register.c:45
static CRYPT_TRUST_REG_ENTRY DriverCleanupPolicy
Definition: register.c:60

◆ WINTRUST_ReadProviderFromReg()

static FARPROC WINTRUST_ReadProviderFromReg ( WCHAR GuidString,
const WCHAR FunctionType 
)
static

Definition at line 797 of file register.c.

Referenced by WintrustLoadFunctionPointers().

798 {
799  WCHAR ProvKey[MAX_PATH], DllName[MAX_PATH];
800  char FunctionName[MAX_PATH];
801  HKEY Key;
802  LONG Res = ERROR_SUCCESS;
803  DWORD Size;
804  HMODULE Lib;
805  FARPROC Func = NULL;
806 
807  /* Create the needed key string */
808  ProvKey[0]='\0';
809  lstrcatW(ProvKey, Trust);
810  lstrcatW(ProvKey, FunctionType);
811  lstrcatW(ProvKey, GuidString);
812 
813  Res = RegOpenKeyExW(HKEY_LOCAL_MACHINE, ProvKey, 0, KEY_READ, &Key);
814  if (Res != ERROR_SUCCESS) return NULL;
815 
816  /* Read the $DLL entry */
817  Size = sizeof(DllName);
818  Res = RegQueryValueExW(Key, Dll, NULL, NULL, (LPBYTE)DllName, &Size);
819  if (Res != ERROR_SUCCESS) goto error_close_key;
820 
821  /* Read the $Function entry */
822  Size = sizeof(FunctionName);
823  Res = RegQueryValueExA(Key, "$Function", NULL, NULL, (LPBYTE)FunctionName, &Size);
824  if (Res != ERROR_SUCCESS) goto error_close_key;
825 
826  /* Load the library - there appears to be no way to close a provider, so
827  * just leak the module handle.
828  */
829  Lib = LoadLibraryW(DllName);
830  Func = GetProcAddress(Lib, FunctionName);
831 
832 error_close_key:
833  RegCloseKey(Key);
834 
835  return Func;
836 }
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
Definition: reg.c:4041
static PWSTR GuidString
Definition: apphelp.c:91
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG Key
Definition: fatprocs.h:2697
#define ERROR_SUCCESS
Definition: deptool.c:10
#define KEY_READ
Definition: nt_native.h:1023
__wchar_t WCHAR
Definition: xmlstorage.h:180
static const WCHAR Trust[]
Definition: register.c:67
static const WCHAR Dll[]
Definition: register.c:83
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
unsigned char * LPBYTE
Definition: typedefs.h:52
long LONG
Definition: pedump.c:60
#define LoadLibraryW(x)
Definition: compat.h:404
smooth NULL
Definition: ftsmooth.c:416
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4134
#define MAX_PATH
Definition: compat.h:26
unsigned long DWORD
Definition: ntddk_ex.h:95
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
void(* Func)(int)
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 ACPI_STATUS const char UINT32 const char UINT32 const char * FunctionName
Definition: acpixf.h:1269
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3381
#define GetProcAddress(x, y)
Definition: compat.h:410
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274
int(* FARPROC)()
Definition: compat.h:28
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12

◆ WINTRUST_RegisterDriverVerify()

static BOOL WINTRUST_RegisterDriverVerify ( void  )
static

Definition at line 664 of file register.c.

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

665 {
666  static GUID ProvGUID = DRIVER_ACTION_VERIFY;
667  CRYPT_REGISTER_ACTIONID ProvInfo;
668 
669  ProvInfo.cbStruct = sizeof(CRYPT_REGISTER_ACTIONID);
671  ProvInfo.sObjectProvider = SoftpubMessage;
676  ProvInfo.sTestPolicyProvider = NullCTRE; /* No diagnostic policy */
678 
679 
680  if (!WintrustAddActionID(&ProvGUID, 0, &ProvInfo))
681  return FALSE;
682 
683  return TRUE;
684 }
#define TRUE
Definition: types.h:120
static CRYPT_TRUST_REG_ENTRY SoftpubSignature
Definition: register.c:42
static CRYPT_TRUST_REG_ENTRY DriverFinalPolicy
Definition: register.c:59
CRYPT_TRUST_REG_ENTRY sFinalPolicyProvider
Definition: wintrust.h:180
CRYPT_TRUST_REG_ENTRY sTestPolicyProvider
Definition: wintrust.h:181
CRYPT_TRUST_REG_ENTRY sCleanupProvider
Definition: wintrust.h:182
static CRYPT_TRUST_REG_ENTRY DriverInitializePolicy
Definition: register.c:58
static CRYPT_TRUST_REG_ENTRY SoftpubCertificate
Definition: register.c:43
static CRYPT_TRUST_REG_ENTRY SoftpubCertCheck
Definition: register.c:44
static CRYPT_TRUST_REG_ENTRY SoftpubMessage
Definition: register.c:41
#define DRIVER_ACTION_VERIFY
Definition: softpub.h:200
struct _CRYPT_REGISTER_ACTIONID CRYPT_REGISTER_ACTIONID
CRYPT_TRUST_REG_ENTRY sCertificateProvider
Definition: wintrust.h:178
CRYPT_TRUST_REG_ENTRY sInitProvider
Definition: wintrust.h:175
static const CRYPT_TRUST_REG_ENTRY NullCTRE
Definition: register.c:65
BOOL WINAPI WintrustAddActionID(GUID *pgActionID, DWORD fdwFlags, CRYPT_REGISTER_ACTIONID *psProvInfo)
Definition: register.c:238
CRYPT_TRUST_REG_ENTRY sSignatureProvider
Definition: wintrust.h:177
CRYPT_TRUST_REG_ENTRY sObjectProvider
Definition: wintrust.h:176
CRYPT_TRUST_REG_ENTRY sCertificatePolicyProvider
Definition: wintrust.h:179
static CRYPT_TRUST_REG_ENTRY DriverCleanupPolicy
Definition: register.c:60

◆ WINTRUST_RegisterGenCertVerify()

static BOOL WINTRUST_RegisterGenCertVerify ( void  )
static

Definition at line 521 of file register.c.

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

522 {
523  static GUID ProvGUID = WINTRUST_ACTION_GENERIC_CERT_VERIFY;
524  CRYPT_REGISTER_ACTIONID ProvInfo;
525 
526  ProvInfo.cbStruct = sizeof(CRYPT_REGISTER_ACTIONID);
528  ProvInfo.sObjectProvider = SoftpubMessage;
533  ProvInfo.sTestPolicyProvider = NullCTRE; /* No diagnostic policy */
534  ProvInfo.sCleanupProvider = SoftpubCleanup;
535 
536  if (!WintrustAddActionID(&ProvGUID, 0, &ProvInfo))
537  return FALSE;
538 
539  return TRUE;
540 }
#define TRUE
Definition: types.h:120
static CRYPT_TRUST_REG_ENTRY SoftpubSignature
Definition: register.c:42
CRYPT_TRUST_REG_ENTRY sFinalPolicyProvider
Definition: wintrust.h:180
CRYPT_TRUST_REG_ENTRY sTestPolicyProvider
Definition: wintrust.h:181
CRYPT_TRUST_REG_ENTRY sCleanupProvider
Definition: wintrust.h:182
static CRYPT_TRUST_REG_ENTRY SoftpubCertificate
Definition: register.c:43
static CRYPT_TRUST_REG_ENTRY SoftpubDefCertInit
Definition: register.c:48
static CRYPT_TRUST_REG_ENTRY SoftpubCertCheck
Definition: register.c:44
static CRYPT_TRUST_REG_ENTRY SoftpubCleanup
Definition: register.c:46
#define WINTRUST_ACTION_GENERIC_CERT_VERIFY
Definition: softpub.h:24
static CRYPT_TRUST_REG_ENTRY SoftpubMessage
Definition: register.c:41
struct _CRYPT_REGISTER_ACTIONID CRYPT_REGISTER_ACTIONID
CRYPT_TRUST_REG_ENTRY sCertificateProvider
Definition: wintrust.h:178
CRYPT_TRUST_REG_ENTRY sInitProvider
Definition: wintrust.h:175
static const CRYPT_TRUST_REG_ENTRY NullCTRE
Definition: register.c:65
BOOL WINAPI WintrustAddActionID(GUID *pgActionID, DWORD fdwFlags, CRYPT_REGISTER_ACTIONID *psProvInfo)
Definition: register.c:238
CRYPT_TRUST_REG_ENTRY sSignatureProvider
Definition: wintrust.h:177
CRYPT_TRUST_REG_ENTRY sObjectProvider
Definition: wintrust.h:176
static CRYPT_TRUST_REG_ENTRY SoftpubFinalPolicy
Definition: register.c:45
CRYPT_TRUST_REG_ENTRY sCertificatePolicyProvider
Definition: wintrust.h:179

◆ WINTRUST_RegisterGenChainVerify()

static BOOL WINTRUST_RegisterGenChainVerify ( void  )
static

Definition at line 695 of file register.c.

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

696 {
697  static GUID ProvGUID = WINTRUST_ACTION_GENERIC_CHAIN_VERIFY;
698  CRYPT_REGISTER_ACTIONID ProvInfo;
699 
700  ProvInfo.cbStruct = sizeof(CRYPT_REGISTER_ACTIONID);
702  ProvInfo.sObjectProvider = SoftpubMessage;
707  ProvInfo.sTestPolicyProvider = NullCTRE; /* No diagnostic policy */
708  ProvInfo.sCleanupProvider = SoftpubCleanup;
709 
710  if (!WintrustAddActionID(&ProvGUID, 0, &ProvInfo))
711  return FALSE;
712 
713  return TRUE;
714 }
#define TRUE
Definition: types.h:120
static CRYPT_TRUST_REG_ENTRY SoftpubSignature
Definition: register.c:42
static CRYPT_TRUST_REG_ENTRY GenericChainFinalProv
Definition: register.c:63
CRYPT_TRUST_REG_ENTRY sFinalPolicyProvider
Definition: wintrust.h:180
CRYPT_TRUST_REG_ENTRY sTestPolicyProvider
Definition: wintrust.h:181
static CRYPT_TRUST_REG_ENTRY SoftpubInitialization
Definition: register.c:40
CRYPT_TRUST_REG_ENTRY sCleanupProvider
Definition: wintrust.h:182
static CRYPT_TRUST_REG_ENTRY GenericChainCertificateTrust
Definition: register.c:62
static CRYPT_TRUST_REG_ENTRY SoftpubCertCheck
Definition: register.c:44
static CRYPT_TRUST_REG_ENTRY SoftpubCleanup
Definition: register.c:46
static CRYPT_TRUST_REG_ENTRY SoftpubMessage
Definition: register.c:41
struct _CRYPT_REGISTER_ACTIONID CRYPT_REGISTER_ACTIONID
CRYPT_TRUST_REG_ENTRY sCertificateProvider
Definition: wintrust.h:178
CRYPT_TRUST_REG_ENTRY sInitProvider
Definition: wintrust.h:175
static const CRYPT_TRUST_REG_ENTRY NullCTRE
Definition: register.c:65
BOOL WINAPI WintrustAddActionID(GUID *pgActionID, DWORD fdwFlags, CRYPT_REGISTER_ACTIONID *psProvInfo)
Definition: register.c:238
CRYPT_TRUST_REG_ENTRY sSignatureProvider
Definition: wintrust.h:177
CRYPT_TRUST_REG_ENTRY sObjectProvider
Definition: wintrust.h:176
CRYPT_TRUST_REG_ENTRY sCertificatePolicyProvider
Definition: wintrust.h:179
#define WINTRUST_ACTION_GENERIC_CHAIN_VERIFY
Definition: softpub.h:37

◆ WINTRUST_RegisterGenVerifyV2()

static BOOL WINTRUST_RegisterGenVerifyV2 ( void  )
static

Definition at line 420 of file register.c.

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

421 {
422  BOOL RegisteredOK = TRUE;
423  static GUID ProvGUID = WINTRUST_ACTION_GENERIC_VERIFY_V2;
424  CRYPT_REGISTER_ACTIONID ProvInfo;
426  &ProvGUID,
427  NULL, /* No Dll provided */
428  NULL, /* No load callback function */
429  NULL }; /* No free callback function */
430 
431  ProvInfo.cbStruct = sizeof(CRYPT_REGISTER_ACTIONID);
433  ProvInfo.sObjectProvider = SoftpubMessage;
438  ProvInfo.sTestPolicyProvider = NullCTRE; /* No diagnostic policy */
439  ProvInfo.sCleanupProvider = SoftpubCleanup;
440 
442  RegisteredOK = FALSE;
443 
444  if (!WintrustAddActionID(&ProvGUID, 0, &ProvInfo))
445  RegisteredOK = FALSE;
446 
447  return RegisteredOK;
448 }
#define TRUE
Definition: types.h:120
static CRYPT_TRUST_REG_ENTRY SoftpubSignature
Definition: register.c:42
BOOL WINAPI WintrustAddDefaultForUsage(const char *pszUsageOID, CRYPT_PROVIDER_REGDEFUSAGE *psDefUsage)
Definition: register.c:733
#define szOID_PKIX_KP_CODE_SIGNING
Definition: wincrypt.h:3294
CRYPT_TRUST_REG_ENTRY sFinalPolicyProvider
Definition: wintrust.h:180
#define WINTRUST_ACTION_GENERIC_VERIFY_V2
Definition: softpub.h:108
CRYPT_TRUST_REG_ENTRY sTestPolicyProvider
Definition: wintrust.h:181
static CRYPT_TRUST_REG_ENTRY SoftpubInitialization
Definition: register.c:40
CRYPT_TRUST_REG_ENTRY sCleanupProvider
Definition: wintrust.h:182
smooth NULL
Definition: ftsmooth.c:416
unsigned int BOOL
Definition: ntddk_ex.h:94
static CRYPT_TRUST_REG_ENTRY SoftpubCertificate
Definition: register.c:43
struct _CRYPT_PROVIDER_REGDEFUSAGE CRYPT_PROVIDER_REGDEFUSAGE
static CRYPT_TRUST_REG_ENTRY SoftpubCertCheck
Definition: register.c:44
static CRYPT_TRUST_REG_ENTRY SoftpubCleanup
Definition: register.c:46
static CRYPT_TRUST_REG_ENTRY SoftpubMessage
Definition: register.c:41
struct _CRYPT_REGISTER_ACTIONID CRYPT_REGISTER_ACTIONID
CRYPT_TRUST_REG_ENTRY sCertificateProvider
Definition: wintrust.h:178
CRYPT_TRUST_REG_ENTRY sInitProvider
Definition: wintrust.h:175
static const CRYPT_TRUST_REG_ENTRY NullCTRE
Definition: register.c:65
BOOL WINAPI WintrustAddActionID(GUID *pgActionID, DWORD fdwFlags, CRYPT_REGISTER_ACTIONID *psProvInfo)
Definition: register.c:238
CRYPT_TRUST_REG_ENTRY sSignatureProvider
Definition: wintrust.h:177
CRYPT_TRUST_REG_ENTRY sObjectProvider
Definition: wintrust.h:176
static CRYPT_TRUST_REG_ENTRY SoftpubFinalPolicy
Definition: register.c:45
CRYPT_TRUST_REG_ENTRY sCertificatePolicyProvider
Definition: wintrust.h:179

◆ WINTRUST_RegisterHttpsProv()

static BOOL WINTRUST_RegisterHttpsProv ( void  )
static

Definition at line 581 of file register.c.

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

582 {
583  BOOL RegisteredOK = TRUE;
584  static CHAR SoftpubLoadUsage[] = "SoftpubLoadDefUsageCallData";
585  static CHAR SoftpubFreeUsage[] = "SoftpubFreeDefUsageCallData";
586  static GUID ProvGUID = HTTPSPROV_ACTION;
587  CRYPT_REGISTER_ACTIONID ProvInfo;
589  &ProvGUID,
590  NULL, /* Will be filled later */
591  SoftpubLoadUsage,
592  SoftpubFreeUsage };
593 
594  ProvInfo.cbStruct = sizeof(CRYPT_REGISTER_ACTIONID);
596  ProvInfo.sObjectProvider = SoftpubMessage;
601  ProvInfo.sTestPolicyProvider = NullCTRE; /* No diagnostic policy */
602  ProvInfo.sCleanupProvider = SoftpubCleanup;
603 
606 
608  RegisteredOK = FALSE;
610  RegisteredOK = FALSE;
612  RegisteredOK = FALSE;
614  RegisteredOK = FALSE;
615 
616  WINTRUST_Free(DefUsage.pwszDllName);
617 
618  if (!WintrustAddActionID(&ProvGUID, 0, &ProvInfo))
619  RegisteredOK = FALSE;
620 
621  return RegisteredOK;
622 }
#define TRUE
Definition: types.h:120
static CRYPT_TRUST_REG_ENTRY SoftpubSignature
Definition: register.c:42
BOOL WINAPI WintrustAddDefaultForUsage(const char *pszUsageOID, CRYPT_PROVIDER_REGDEFUSAGE *psDefUsage)
Definition: register.c:733
static CRYPT_TRUST_REG_ENTRY HTTPSCertificateTrust
Definition: register.c:52
char CHAR
Definition: xmlstorage.h:175
#define szOID_PKIX_KP_SERVER_AUTH
Definition: wincrypt.h:3292
CRYPT_TRUST_REG_ENTRY sFinalPolicyProvider
Definition: wintrust.h:180
CRYPT_TRUST_REG_ENTRY sTestPolicyProvider
Definition: wintrust.h:181
static CRYPT_TRUST_REG_ENTRY SoftpubInitialization
Definition: register.c:40
CRYPT_TRUST_REG_ENTRY sCleanupProvider
Definition: wintrust.h:182
smooth NULL
Definition: ftsmooth.c:416
static const WCHAR SP_POLICY_PROVIDER_DLL_NAME[]
Definition: softpub.h:104
void WINAPI WINTRUST_Free(void *p)
Definition: wintrust_main.c:56
#define szOID_SGC_NETSCAPE
Definition: wincrypt.h:3214
void *WINAPI WINTRUST_Alloc(DWORD cb)
Definition: wintrust_main.c:45
unsigned int BOOL
Definition: ntddk_ex.h:94
#define HTTPSPROV_ACTION
Definition: softpub.h:159
struct _CRYPT_PROVIDER_REGDEFUSAGE CRYPT_PROVIDER_REGDEFUSAGE
static CRYPT_TRUST_REG_ENTRY SoftpubCertCheck
Definition: register.c:44
static CRYPT_TRUST_REG_ENTRY SoftpubCleanup
Definition: register.c:46
static CRYPT_TRUST_REG_ENTRY SoftpubMessage
Definition: register.c:41
struct _CRYPT_REGISTER_ACTIONID CRYPT_REGISTER_ACTIONID
CRYPT_TRUST_REG_ENTRY sCertificateProvider
Definition: wintrust.h:178
static CRYPT_TRUST_REG_ENTRY HTTPSFinalProv
Definition: register.c:53
CRYPT_TRUST_REG_ENTRY sInitProvider
Definition: wintrust.h:175
static const CRYPT_TRUST_REG_ENTRY NullCTRE
Definition: register.c:65
#define lstrcpyW
Definition: compat.h:406
BOOL WINAPI WintrustAddActionID(GUID *pgActionID, DWORD fdwFlags, CRYPT_REGISTER_ACTIONID *psProvInfo)
Definition: register.c:238
CRYPT_TRUST_REG_ENTRY sSignatureProvider
Definition: wintrust.h:177
#define szOID_SERVER_GATED_CRYPTO
Definition: wincrypt.h:3211
CRYPT_TRUST_REG_ENTRY sObjectProvider
Definition: wintrust.h:176
CRYPT_TRUST_REG_ENTRY sCertificatePolicyProvider
Definition: wintrust.h:179
#define szOID_PKIX_KP_CLIENT_AUTH
Definition: wincrypt.h:3293

◆ WINTRUST_RegisterOfficeSignVerify()

static BOOL WINTRUST_RegisterOfficeSignVerify ( void  )
static

Definition at line 633 of file register.c.

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

634 {
635  static GUID ProvGUID = OFFICESIGN_ACTION_VERIFY;
636  CRYPT_REGISTER_ACTIONID ProvInfo;
637 
638  ProvInfo.cbStruct = sizeof(CRYPT_REGISTER_ACTIONID);
640  ProvInfo.sObjectProvider = SoftpubMessage;
645  ProvInfo.sTestPolicyProvider = NullCTRE; /* No diagnostic policy */
647 
648 
649  if (!WintrustAddActionID(&ProvGUID, 0, &ProvInfo))
650  return FALSE;
651 
652  return TRUE;
653 }
#define TRUE
Definition: types.h:120
static CRYPT_TRUST_REG_ENTRY SoftpubSignature
Definition: register.c:42
static CRYPT_TRUST_REG_ENTRY OfficeCleanupPolicy
Definition: register.c:56
CRYPT_TRUST_REG_ENTRY sFinalPolicyProvider
Definition: wintrust.h:180
CRYPT_TRUST_REG_ENTRY sTestPolicyProvider
Definition: wintrust.h:181
static CRYPT_TRUST_REG_ENTRY OfficeInitializePolicy
Definition: register.c:55
CRYPT_TRUST_REG_ENTRY sCleanupProvider
Definition: wintrust.h:182
static CRYPT_TRUST_REG_ENTRY SoftpubCertificate
Definition: register.c:43
static CRYPT_TRUST_REG_ENTRY SoftpubCertCheck
Definition: register.c:44
static CRYPT_TRUST_REG_ENTRY SoftpubMessage
Definition: register.c:41
struct _CRYPT_REGISTER_ACTIONID CRYPT_REGISTER_ACTIONID
CRYPT_TRUST_REG_ENTRY sCertificateProvider
Definition: wintrust.h:178
CRYPT_TRUST_REG_ENTRY sInitProvider
Definition: wintrust.h:175
static const CRYPT_TRUST_REG_ENTRY NullCTRE
Definition: register.c:65
BOOL WINAPI WintrustAddActionID(GUID *pgActionID, DWORD fdwFlags, CRYPT_REGISTER_ACTIONID *psProvInfo)
Definition: register.c:238
CRYPT_TRUST_REG_ENTRY sSignatureProvider
Definition: wintrust.h:177
CRYPT_TRUST_REG_ENTRY sObjectProvider
Definition: wintrust.h:176
static CRYPT_TRUST_REG_ENTRY SoftpubFinalPolicy
Definition: register.c:45
CRYPT_TRUST_REG_ENTRY sCertificatePolicyProvider
Definition: wintrust.h:179
#define OFFICESIGN_ACTION_VERIFY
Definition: softpub.h:177

◆ WINTRUST_RegisterPublishedSoftware()

static BOOL WINTRUST_RegisterPublishedSoftware ( void  )
static

Definition at line 459 of file register.c.

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

460 {
461  static GUID ProvGUID = WIN_SPUB_ACTION_PUBLISHED_SOFTWARE;
462  CRYPT_REGISTER_ACTIONID ProvInfo;
463 
464  ProvInfo.cbStruct = sizeof(CRYPT_REGISTER_ACTIONID);
466  ProvInfo.sObjectProvider = SoftpubMessage;
471  ProvInfo.sTestPolicyProvider = NullCTRE; /* No diagnostic policy */
472  ProvInfo.sCleanupProvider = SoftpubCleanup;
473 
474  if (!WintrustAddActionID(&ProvGUID, 0, &ProvInfo))
475  return FALSE;
476 
477  return TRUE;
478 }
#define TRUE
Definition: types.h:120
static CRYPT_TRUST_REG_ENTRY SoftpubSignature
Definition: register.c:42
#define WIN_SPUB_ACTION_PUBLISHED_SOFTWARE
Definition: wintrust.h:661
CRYPT_TRUST_REG_ENTRY sFinalPolicyProvider
Definition: wintrust.h:180
CRYPT_TRUST_REG_ENTRY sTestPolicyProvider
Definition: wintrust.h:181
static CRYPT_TRUST_REG_ENTRY SoftpubInitialization
Definition: register.c:40
CRYPT_TRUST_REG_ENTRY sCleanupProvider
Definition: wintrust.h:182
static CRYPT_TRUST_REG_ENTRY SoftpubCertificate
Definition: register.c:43
static CRYPT_TRUST_REG_ENTRY SoftpubCertCheck
Definition: register.c:44
static CRYPT_TRUST_REG_ENTRY SoftpubCleanup
Definition: register.c:46
static CRYPT_TRUST_REG_ENTRY SoftpubMessage
Definition: register.c:41
struct _CRYPT_REGISTER_ACTIONID CRYPT_REGISTER_ACTIONID
CRYPT_TRUST_REG_ENTRY sCertificateProvider
Definition: wintrust.h:178
CRYPT_TRUST_REG_ENTRY sInitProvider
Definition: wintrust.h:175
static const CRYPT_TRUST_REG_ENTRY NullCTRE
Definition: register.c:65
BOOL WINAPI WintrustAddActionID(GUID *pgActionID, DWORD fdwFlags, CRYPT_REGISTER_ACTIONID *psProvInfo)
Definition: register.c:238
CRYPT_TRUST_REG_ENTRY sSignatureProvider
Definition: wintrust.h:177
CRYPT_TRUST_REG_ENTRY sObjectProvider
Definition: wintrust.h:176
static CRYPT_TRUST_REG_ENTRY SoftpubFinalPolicy
Definition: register.c:45
CRYPT_TRUST_REG_ENTRY sCertificatePolicyProvider
Definition: wintrust.h:179

◆ WINTRUST_RegisterPublishedSoftwareNoBadUi()

static BOOL WINTRUST_RegisterPublishedSoftwareNoBadUi ( void  )
static

Definition at line 491 of file register.c.

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

492 {
494  CRYPT_REGISTER_ACTIONID ProvInfo;
495 
496  ProvInfo.cbStruct = sizeof(CRYPT_REGISTER_ACTIONID);
498  ProvInfo.sObjectProvider = SoftpubMessage;
503  ProvInfo.sTestPolicyProvider = NullCTRE; /* No diagnostic policy */
504  ProvInfo.sCleanupProvider = SoftpubCleanup;
505 
506  if (!WintrustAddActionID(&ProvGUID, 0, &ProvInfo))
507  return FALSE;
508 
509  return TRUE;
510 }
#define TRUE
Definition: types.h:120
static CRYPT_TRUST_REG_ENTRY SoftpubSignature
Definition: register.c:42
CRYPT_TRUST_REG_ENTRY sFinalPolicyProvider
Definition: wintrust.h:180
CRYPT_TRUST_REG_ENTRY sTestPolicyProvider
Definition: wintrust.h:181
static CRYPT_TRUST_REG_ENTRY SoftpubInitialization
Definition: register.c:40
CRYPT_TRUST_REG_ENTRY sCleanupProvider
Definition: wintrust.h:182
static CRYPT_TRUST_REG_ENTRY SoftpubCertificate
Definition: register.c:43
#define WIN_SPUB_ACTION_PUBLISHED_SOFTWARE_NOBADUI
Definition: register.c:480
static CRYPT_TRUST_REG_ENTRY SoftpubCertCheck
Definition: register.c:44
static CRYPT_TRUST_REG_ENTRY SoftpubCleanup
Definition: register.c:46
static CRYPT_TRUST_REG_ENTRY SoftpubMessage
Definition: register.c:41
struct _CRYPT_REGISTER_ACTIONID CRYPT_REGISTER_ACTIONID
CRYPT_TRUST_REG_ENTRY sCertificateProvider
Definition: wintrust.h:178
CRYPT_TRUST_REG_ENTRY sInitProvider
Definition: wintrust.h:175
static const CRYPT_TRUST_REG_ENTRY NullCTRE
Definition: register.c:65
BOOL WINAPI WintrustAddActionID(GUID *pgActionID, DWORD fdwFlags, CRYPT_REGISTER_ACTIONID *psProvInfo)
Definition: register.c:238
CRYPT_TRUST_REG_ENTRY sSignatureProvider
Definition: wintrust.h:177
CRYPT_TRUST_REG_ENTRY sObjectProvider
Definition: wintrust.h:176
static CRYPT_TRUST_REG_ENTRY SoftpubFinalPolicy
Definition: register.c:45
CRYPT_TRUST_REG_ENTRY sCertificatePolicyProvider
Definition: wintrust.h:179

◆ WINTRUST_RegisterTrustProviderTest()

static BOOL WINTRUST_RegisterTrustProviderTest ( void  )
static

Definition at line 551 of file register.c.

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

552 {
553  static GUID ProvGUID = WINTRUST_ACTION_TRUSTPROVIDER_TEST;
554  CRYPT_REGISTER_ACTIONID ProvInfo;
555 
556  ProvInfo.cbStruct = sizeof(CRYPT_REGISTER_ACTIONID);
558  ProvInfo.sObjectProvider = SoftpubMessage;
564  ProvInfo.sCleanupProvider = SoftpubCleanup;
565 
566  if (!WintrustAddActionID(&ProvGUID, 0, &ProvInfo))
567  return FALSE;
568 
569  return TRUE;
570 }
#define TRUE
Definition: types.h:120
static CRYPT_TRUST_REG_ENTRY SoftpubSignature
Definition: register.c:42
CRYPT_TRUST_REG_ENTRY sFinalPolicyProvider
Definition: wintrust.h:180
CRYPT_TRUST_REG_ENTRY sTestPolicyProvider
Definition: wintrust.h:181
static CRYPT_TRUST_REG_ENTRY SoftpubInitialization
Definition: register.c:40
CRYPT_TRUST_REG_ENTRY sCleanupProvider
Definition: wintrust.h:182
#define WINTRUST_ACTION_TRUSTPROVIDER_TEST
Definition: softpub.h:146
static CRYPT_TRUST_REG_ENTRY SoftpubCertificate
Definition: register.c:43
static CRYPT_TRUST_REG_ENTRY SoftpubCertCheck
Definition: register.c:44
static CRYPT_TRUST_REG_ENTRY SoftpubCleanup
Definition: register.c:46
static CRYPT_TRUST_REG_ENTRY SoftpubMessage
Definition: register.c:41
struct _CRYPT_REGISTER_ACTIONID CRYPT_REGISTER_ACTIONID
CRYPT_TRUST_REG_ENTRY sCertificateProvider
Definition: wintrust.h:178
CRYPT_TRUST_REG_ENTRY sInitProvider
Definition: wintrust.h:175
BOOL WINAPI WintrustAddActionID(GUID *pgActionID, DWORD fdwFlags, CRYPT_REGISTER_ACTIONID *psProvInfo)
Definition: register.c:238
static CRYPT_TRUST_REG_ENTRY SoftpubDumpStructure
Definition: register.c:50
CRYPT_TRUST_REG_ENTRY sSignatureProvider
Definition: wintrust.h:177
CRYPT_TRUST_REG_ENTRY sObjectProvider
Definition: wintrust.h:176
static CRYPT_TRUST_REG_ENTRY SoftpubFinalPolicy
Definition: register.c:45
CRYPT_TRUST_REG_ENTRY sCertificatePolicyProvider
Definition: wintrust.h:179

◆ WINTRUST_RemoveProviderFromReg()

static void WINTRUST_RemoveProviderFromReg ( WCHAR GuidString,
const WCHAR FunctionType 
)
static

Definition at line 304 of file register.c.

Referenced by WintrustRemoveActionID().

306 {
307  WCHAR ProvKey[MAX_PATH];
308 
309  /* Create the needed key string */
310  ProvKey[0]='\0';
311  lstrcatW(ProvKey, Trust);
312  lstrcatW(ProvKey, FunctionType);
313  lstrcatW(ProvKey, GuidString);
314 
315  /* We don't care about success or failure */
317 }
static PWSTR GuidString
Definition: apphelp.c:91
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG WINAPI RegDeleteKeyW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey)
Definition: reg.c:1240
static const WCHAR Trust[]
Definition: register.c:67
#define MAX_PATH
Definition: compat.h:26
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12

◆ WINTRUST_SIPPAddProvider()

static BOOL WINTRUST_SIPPAddProvider ( GUID Subject,
WCHAR MagicNumber 
)
static

Definition at line 884 of file register.c.

Referenced by DllRegisterServer().

885 {
887  {'C','r','y','p','t','S','I','P','G','e','t','S','i','g','n','e','d','D','a','t','a','M','s','g', 0};
889  {'C','r','y','p','t','S','I','P','P','u','t','S','i','g','n','e','d','D','a','t','a','M','s','g', 0};
891  {'C','r','y','p','t','S','I','P','C','r','e','a','t','e','I','n','d','i','r','e','c','t','D','a','t','a', 0};
893  {'C','r','y','p','t','S','I','P','V','e','r','i','f','y','I','n','d','i','r','e','c','t','D','a','t','a', 0};
895  {'C','r','y','p','t','S','I','P','R','e','m','o','v','e','S','i','g','n','e','d','D','a','t','a','M','s','g', 0};
896  SIP_ADD_NEWPROVIDER NewProv;
897  BOOL Ret;
898 
899  /* Clear and initialize the structure */
900  memset(&NewProv, 0, sizeof(SIP_ADD_NEWPROVIDER));
901  NewProv.cbStruct = sizeof(SIP_ADD_NEWPROVIDER);
903  /* Fill the structure */
904  NewProv.pgSubject = Subject;
906  NewProv.pwszMagicNumber = MagicNumber;
907  NewProv.pwszIsFunctionName = NULL;
913  NewProv.pwszIsFunctionNameFmt2 = NULL;
914  NewProv.pwszGetCapFuncName = NULL;
915 
916  Ret = CryptSIPAddProvider(&NewProv);
917 
919 
920  return Ret;
921 }
BOOL WINAPI CryptSIPVerifyIndirectData(SIP_SUBJECTINFO *pSubjectInfo, SIP_INDIRECT_DATA *pIndirectData)
Definition: sip.c:792
WCHAR * pwszGetFuncName
Definition: mssip.h:152
WCHAR * pwszVerifyFuncName
Definition: mssip.h:155
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * pwszDLLFileName
Definition: mssip.h:147
BOOL WINAPI CryptSIPPutSignedDataMsg(SIP_SUBJECTINFO *pSubjectInfo, DWORD pdwEncodingType, DWORD *pdwIndex, DWORD cbSignedDataMsg, BYTE *pbSignedDataMsg)
Definition: sip.c:756
GUID * pgSubject
Definition: mssip.h:145
WCHAR * pwszPutFuncName
Definition: mssip.h:153
BOOL WINAPI CryptSIPGetSignedDataMsg(SIP_SUBJECTINFO *pSubjectInfo, DWORD *pdwEncodingType, DWORD dwIndex, DWORD *pcbSignedDataMsg, BYTE *pbSignedDataMsg)
Definition: sip.c:737
smooth NULL
Definition: ftsmooth.c:416
static const WCHAR SP_POLICY_PROVIDER_DLL_NAME[]
Definition: softpub.h:104
void WINAPI WINTRUST_Free(void *p)
Definition: wintrust_main.c:56
void *WINAPI WINTRUST_Alloc(DWORD cb)
Definition: wintrust_main.c:45
unsigned int BOOL
Definition: ntddk_ex.h:94
BOOL WINAPI CryptSIPAddProvider(SIP_ADD_NEWPROVIDER *psNewProv)
Definition: sip.c:207
BOOL WINAPI CryptSIPRemoveSignedDataMsg(SIP_SUBJECTINFO *pSubjectInfo, DWORD dwIndex)
Definition: sip.c:775
BOOL WINAPI CryptSIPCreateIndirectData(SIP_SUBJECTINFO *pSubjectInfo, DWORD *pcbIndirectData, SIP_INDIRECT_DATA *pIndirectData)
Definition: sip.c:715
WCHAR * pwszIsFunctionNameFmt2
Definition: mssip.h:158
#define lstrcpyW
Definition: compat.h:406
WCHAR * pwszGetCapFuncName
Definition: mssip.h:161
WCHAR * pwszRemoveFuncName
Definition: mssip.h:156
#define memset(x, y, z)
Definition: compat.h:39
WCHAR * pwszCreateFuncName
Definition: mssip.h:154
WCHAR * pwszMagicNumber
Definition: mssip.h:148
struct SIP_ADD_NEWPROVIDER_ SIP_ADD_NEWPROVIDER
WCHAR * pwszIsFunctionName
Definition: mssip.h:150

◆ WINTRUST_WriteProviderToReg()

static LONG WINTRUST_WriteProviderToReg ( WCHAR GuidString,
const WCHAR FunctionType,
CRYPT_TRUST_REG_ENTRY  RegEntry 
)
static

Definition at line 179 of file register.c.

Referenced by WintrustAddActionID().

182 {
183  static const WCHAR Function[] = {'$','F','u','n','c','t','i','o','n', 0};
184  WCHAR ProvKey[MAX_PATH];
185  HKEY Key;
186  LONG Res = ERROR_SUCCESS;
187 
188  /* Create the needed key string */
189  ProvKey[0]='\0';
190  lstrcatW(ProvKey, Trust);
191  lstrcatW(ProvKey, FunctionType);
192  lstrcatW(ProvKey, GuidString);
193 
194  if (!RegEntry.pwszDLLName || !RegEntry.pwszFunctionName)
196 
197  Res = RegCreateKeyExW(HKEY_LOCAL_MACHINE, ProvKey, 0, NULL, 0, KEY_WRITE, NULL, &Key, NULL);
198  if (Res != ERROR_SUCCESS) goto error_close_key;
199 
200  /* Create the $DLL entry */
201  Res = RegSetValueExW(Key, Dll, 0, REG_SZ, (BYTE*)RegEntry.pwszDLLName,
202  (lstrlenW(RegEntry.pwszDLLName) + 1)*sizeof(WCHAR));
203  if (Res != ERROR_SUCCESS) goto error_close_key;
204 
205  /* Create the $Function entry */
206  Res = RegSetValueExW(Key, Function, 0, REG_SZ, (BYTE*)RegEntry.pwszFunctionName,
207  (lstrlenW(RegEntry.pwszFunctionName) + 1)*sizeof(WCHAR));
208 
209 error_close_key:
210  RegCloseKey(Key);
211 
212  return Res;
213 }
#define ERROR_INVALID_PARAMETER
Definition: compat.h:91
static PWSTR GuidString
Definition: apphelp.c:91
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG Key
Definition: fatprocs.h:2697
#define ERROR_SUCCESS
Definition: deptool.c:10
WCHAR * pwszDLLName
Definition: wintrust.h:168
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define lstrlenW
Definition: compat.h:407
static const WCHAR Trust[]
Definition: register.c:67
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
Definition: reg.c:1094
static const WCHAR Dll[]
Definition: register.c:83
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
static LPOVERLAPPED_COMPLETION_ROUTINE Function
Definition: sync.c:684
long LONG
Definition: pedump.c:60
smooth NULL
Definition: ftsmooth.c:416
#define KEY_WRITE
Definition: nt_native.h:1031
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
Definition: reg.c:4917
#define MAX_PATH
Definition: compat.h:26
unsigned char BYTE
Definition: ntddk_ex.h:96
WCHAR * pwszFunctionName
Definition: wintrust.h:169
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12
#define REG_SZ
Definition: layer.c:22

◆ WINTRUST_WriteSingleUsageEntry()

static LONG WINTRUST_WriteSingleUsageEntry ( LPCSTR  OID,
const WCHAR Value,
WCHAR Data 
)
static

Definition at line 373 of file register.c.

Referenced by WintrustAddDefaultForUsage().

376 {
377  static const WCHAR Usages[] = {'U','s','a','g','e','s','\\', 0};
378  WCHAR* UsageKey;
379  HKEY Key;
380  LONG Res = ERROR_SUCCESS;
381  WCHAR* OIDW;
382  DWORD Len;
383 
384  /* Turn OID into a wide-character string */
385  Len = MultiByteToWideChar( CP_ACP, 0, OID, -1, NULL, 0 );
386  OIDW = WINTRUST_Alloc( Len * sizeof(WCHAR) );
387  MultiByteToWideChar( CP_ACP, 0, OID, -1, OIDW, Len );
388 
389  /* Allocate the needed space for UsageKey */
390  UsageKey = WINTRUST_Alloc((lstrlenW(Trust) + lstrlenW(Usages) + Len) * sizeof(WCHAR));
391  /* Create the key string */
392  lstrcpyW(UsageKey, Trust);
393  lstrcatW(UsageKey, Usages);
394  lstrcatW(UsageKey, OIDW);
395 
396  Res = RegCreateKeyExW(HKEY_LOCAL_MACHINE, UsageKey, 0, NULL, 0, KEY_WRITE, NULL, &Key, NULL);
397  if (Res == ERROR_SUCCESS)
398  {
399  /* Create the Value entry */
400  Res = RegSetValueExW(Key, Value, 0, REG_SZ, (BYTE*)Data,
401  (lstrlenW(Data) + 1)*sizeof(WCHAR));
402  }
403  RegCloseKey(Key);
404 
405  WINTRUST_Free(OIDW);
406  WINTRUST_Free(UsageKey);
407 
408  return Res;
409 }
_In_opt_ ULONG _Out_ PULONG Value
Definition: rtlfuncs.h:2327
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ULONG Key
Definition: fatprocs.h:2697
#define ERROR_SUCCESS
Definition: deptool.c:10
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define CP_ACP
Definition: compat.h:99
#define lstrlenW
Definition: compat.h:407
static const WCHAR Trust[]
Definition: register.c:67
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
Definition: reg.c:1094
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
long LONG
Definition: pedump.c:60
smooth NULL
Definition: ftsmooth.c:416
void WINAPI WINTRUST_Free(void *p)
Definition: wintrust_main.c:56
#define KEY_WRITE
Definition: nt_native.h:1031
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
Definition: reg.c:4917
void *WINAPI WINTRUST_Alloc(DWORD cb)
Definition: wintrust_main.c:45
unsigned long DWORD
Definition: ntddk_ex.h:95
#define Len
Definition: deflate.h:82
unsigned char BYTE
Definition: ntddk_ex.h:96
#define lstrcpyW
Definition: compat.h:406
#define MultiByteToWideChar
Definition: compat.h:100
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12
#define REG_SZ
Definition: layer.c:22

◆ WintrustAddActionID()

BOOL WINAPI WintrustAddActionID ( GUID pgActionID,
DWORD  fdwFlags,
CRYPT_REGISTER_ACTIONID psProvInfo 
)

Definition at line 238 of file register.c.

Referenced by DllRegisterServer(), InitFunctionPtrs(), WINTRUST_RegisterDriverVerify(), WINTRUST_RegisterGenCertVerify(), WINTRUST_RegisterGenChainVerify(), WINTRUST_RegisterGenVerifyV2(), WINTRUST_RegisterHttpsProv(), WINTRUST_RegisterOfficeSignVerify(), WINTRUST_RegisterPublishedSoftware(), WINTRUST_RegisterPublishedSoftwareNoBadUi(), and WINTRUST_RegisterTrustProviderTest().

240 {
241  WCHAR GuidString[39];
242  LONG Res;
243  LONG WriteActionError = ERROR_SUCCESS;
244 
245  TRACE("%s %x %p\n", debugstr_guid(pgActionID), fdwFlags, psProvInfo);
246 
247  /* Some sanity checks.
248  * We use the W2K3 last error as it makes more sense (W2K leaves the last error
249  * as is).
250  */
251  if (!pgActionID ||
252  !psProvInfo ||
253  (psProvInfo->cbStruct != sizeof(CRYPT_REGISTER_ACTIONID)))
254  {
256  return FALSE;
257  }
258 
259  /* Create this string only once, instead of in the helper function */
260  WINTRUST_Guid2Wstr( pgActionID, GuidString);
261 
262  /* Write the information to the registry */
263  Res = WINTRUST_WriteProviderToReg(GuidString, Initialization , psProvInfo->sInitProvider);
264  if (Res != ERROR_SUCCESS) WriteActionError = Res;
265  Res = WINTRUST_WriteProviderToReg(GuidString, Message , psProvInfo->sObjectProvider);
266  if (Res != ERROR_SUCCESS) WriteActionError = Res;
267  Res = WINTRUST_WriteProviderToReg(GuidString, Signature , psProvInfo->sSignatureProvider);
268  if (Res != ERROR_SUCCESS) WriteActionError = Res;
269  Res = WINTRUST_WriteProviderToReg(GuidString, Certificate , psProvInfo->sCertificateProvider);
270  if (Res != ERROR_SUCCESS) WriteActionError = Res;
271  Res = WINTRUST_WriteProviderToReg(GuidString, CertCheck , psProvInfo->sCertificatePolicyProvider);
272  if (Res != ERROR_SUCCESS) WriteActionError = Res;
273  Res = WINTRUST_WriteProviderToReg(GuidString, FinalPolicy , psProvInfo->sFinalPolicyProvider);
274  if (Res != ERROR_SUCCESS) WriteActionError = Res;
275  Res = WINTRUST_WriteProviderToReg(GuidString, DiagnosticPolicy, psProvInfo->sTestPolicyProvider);
276  if (Res != ERROR_SUCCESS) WriteActionError = Res;
277  Res = WINTRUST_WriteProviderToReg(GuidString, Cleanup , psProvInfo->sCleanupProvider);
278  if (Res != ERROR_SUCCESS) WriteActionError = Res;
279 
280  /* Testing (by restricting access to the registry for some keys) shows that the last failing function
281  * will be used for last error.
282  * If the flag WT_ADD_ACTION_ID_RET_RESULT_FLAG is set and there are errors when adding the action
283  * we have to return FALSE. Errors includes both invalid entries as well as registry errors.
284  * Testing also showed that one error doesn't stop the registry writes. Every action will be dealt with.
285  */
286 
287  if (WriteActionError != ERROR_SUCCESS)
288  {
289  SetLastError(WriteActionError);
290 
291  if (fdwFlags == WT_ADD_ACTION_ID_RET_RESULT_FLAG)
292  return FALSE;
293  }
294 
295  return TRUE;
296 }
#define ERROR_INVALID_PARAMETER
Definition: compat.h:91
static LONG WINTRUST_WriteProviderToReg(WCHAR *GuidString, const WCHAR *FunctionType, CRYPT_TRUST_REG_ENTRY RegEntry)
Definition: register.c:179
static PWSTR GuidString
Definition: apphelp.c:91
static const WCHAR Message[]
Definition: register.c:74
#define TRUE
Definition: types.h:120
#define ERROR_SUCCESS
Definition: deptool.c:10
__wchar_t WCHAR
Definition: xmlstorage.h:180
static const WCHAR Certificate[]
Definition: register.c:76
static const WCHAR FinalPolicy[]
Definition: register.c:78
CRYPT_TRUST_REG_ENTRY sFinalPolicyProvider
Definition: wintrust.h:180
static const WCHAR CertCheck[]
Definition: register.c:77
CRYPT_TRUST_REG_ENTRY sTestPolicyProvider
Definition: wintrust.h:181
CRYPT_TRUST_REG_ENTRY sCleanupProvider
Definition: wintrust.h:182
static const WCHAR DiagnosticPolicy[]
Definition: register.c:79
long LONG
Definition: pedump.c:60
static void WINTRUST_Guid2Wstr(const GUID *pgActionID, WCHAR *GuidString)
Definition: register.c:162
#define debugstr_guid
Definition: kernel32.h:35
#define TRACE(s)
Definition: solgame.cpp:4
static const WCHAR Signature[]
Definition: register.c:75
#define SetLastError(x)
Definition: compat.h:409
static const WCHAR Cleanup[]
Definition: register.c:80
CRYPT_TRUST_REG_ENTRY sCertificateProvider
Definition: wintrust.h:178
CRYPT_TRUST_REG_ENTRY sInitProvider
Definition: wintrust.h:175
#define WT_ADD_ACTION_ID_RET_RESULT_FLAG
Definition: wintrust.h:448
static const WCHAR Initialization[]
Definition: register.c:73
CRYPT_TRUST_REG_ENTRY sSignatureProvider
Definition: wintrust.h:177
CRYPT_TRUST_REG_ENTRY sObjectProvider
Definition: wintrust.h:176
CRYPT_TRUST_REG_ENTRY sCertificatePolicyProvider
Definition: wintrust.h:179

◆ WintrustAddDefaultForUsage()

BOOL WINAPI WintrustAddDefaultForUsage ( const char pszUsageOID,
CRYPT_PROVIDER_REGDEFUSAGE psDefUsage 
)

Definition at line 733 of file register.c.

Referenced by InitFunctionPtrs(), WINTRUST_RegisterGenVerifyV2(), and WINTRUST_RegisterHttpsProv().

735 {
736  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};
737  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};
738  LONG Res = ERROR_SUCCESS;
739  LONG WriteUsageError = ERROR_SUCCESS;
740  DWORD Len;
741  WCHAR GuidString[39];
742 
743  TRACE("(%s %p)\n", debugstr_a(pszUsageOID), psDefUsage);
744 
745  /* Some sanity checks. */
746  if (!pszUsageOID ||
747  !psDefUsage ||
748  !psDefUsage->pgActionID ||
749  (psDefUsage->cbStruct != sizeof(CRYPT_PROVIDER_REGDEFUSAGE)))
750  {
752  return FALSE;
753  }
754 
755  if (psDefUsage->pwszDllName)
756  {
757  Res = WINTRUST_WriteSingleUsageEntry(pszUsageOID, Dll, psDefUsage->pwszDllName);
758  if (Res != ERROR_SUCCESS) WriteUsageError = Res;
759  }
760  if (psDefUsage->pwszLoadCallbackDataFunctionName)
761  {
762  WCHAR* CallbackW;
763 
764  Len = MultiByteToWideChar( CP_ACP, 0, psDefUsage->pwszLoadCallbackDataFunctionName, -1, NULL, 0 );
765  CallbackW = WINTRUST_Alloc( Len * sizeof(WCHAR) );
766  MultiByteToWideChar( CP_ACP, 0, psDefUsage->pwszLoadCallbackDataFunctionName, -1, CallbackW, Len );
767 
768  Res = WINTRUST_WriteSingleUsageEntry(pszUsageOID, CBAlloc, CallbackW);
769  if (Res != ERROR_SUCCESS) WriteUsageError = Res;
770 
771  WINTRUST_Free(CallbackW);
772  }
773  if (psDefUsage->pwszFreeCallbackDataFunctionName)
774  {
775  WCHAR* CallbackW;
776 
777  Len = MultiByteToWideChar( CP_ACP, 0, psDefUsage->pwszFreeCallbackDataFunctionName, -1, NULL, 0 );
778  CallbackW = WINTRUST_Alloc( Len * sizeof(WCHAR) );
779  MultiByteToWideChar( CP_ACP, 0, psDefUsage->pwszFreeCallbackDataFunctionName, -1, CallbackW, Len );
780 
781  Res = WINTRUST_WriteSingleUsageEntry(pszUsageOID, CBFree, CallbackW);
782  if (Res != ERROR_SUCCESS) WriteUsageError = Res;
783 
784  WINTRUST_Free(CallbackW);
785  }
786 
787  WINTRUST_Guid2Wstr(psDefUsage->pgActionID, GuidString);
788  Res = WINTRUST_WriteSingleUsageEntry(pszUsageOID, DefaultId, GuidString);
789  if (Res != ERROR_SUCCESS) WriteUsageError = Res;
790 
791  if (WriteUsageError != ERROR_SUCCESS)
792  return FALSE;
793 
794  return TRUE;
795 }
#define ERROR_INVALID_PARAMETER
Definition: compat.h:91
static PWSTR GuidString
Definition: apphelp.c:91
static const WCHAR DefaultId[]
Definition: register.c:82
#define TRUE
Definition: types.h:120
#define ERROR_SUCCESS
Definition: deptool.c:10
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define CP_ACP
Definition: compat.h:99
static LONG WINTRUST_WriteSingleUsageEntry(LPCSTR OID, const WCHAR *Value, WCHAR *Data)
Definition: register.c:373
static const WCHAR Dll[]
Definition: register.c:83
long LONG
Definition: pedump.c:60
static void WINTRUST_Guid2Wstr(const GUID *pgActionID, WCHAR *GuidString)
Definition: register.c:162
smooth NULL
Definition: ftsmooth.c:416
void WINAPI WINTRUST_Free(void *p)
Definition: wintrust_main.c:56
#define TRACE(s)
Definition: solgame.cpp:4
void *WINAPI WINTRUST_Alloc(DWORD cb)
Definition: wintrust_main.c:45
#define debugstr_a
Definition: kernel32.h:31
char * pwszFreeCallbackDataFunctionName
Definition: wintrust.h:191
unsigned long DWORD
Definition: ntddk_ex.h:95
#define Len
Definition: deflate.h:82
#define SetLastError(x)
Definition: compat.h:409
#define MultiByteToWideChar
Definition: compat.h:100
char * pwszLoadCallbackDataFunctionName
Definition: wintrust.h:190

◆ WintrustLoadFunctionPointers()

BOOL WINAPI WintrustLoadFunctionPointers ( GUID pgActionID,
CRYPT_PROVIDER_FUNCTIONS pPfns 
)

Definition at line 841 of file register.c.

Referenced by InitFunctionPtrs(), test_provider_funcs(), WINTRUST_CertVerify(), and WINTRUST_DefaultVerify().

843 {
844  WCHAR GuidString[39];
845 
846  TRACE("(%s %p)\n", debugstr_guid(pgActionID), pPfns);
847 
848  if (!pPfns) return FALSE;
849  if (!pgActionID)
850  {
852  return FALSE;
853  }
854  if (pPfns->cbStruct != sizeof(CRYPT_PROVIDER_FUNCTIONS)) return FALSE;
855 
856  /* Create this string only once, instead of in the helper function */
857  WINTRUST_Guid2Wstr( pgActionID, GuidString);
858 
859  /* Get the function pointers from the registry, where applicable */
860  pPfns->pfnAlloc = WINTRUST_Alloc;
861  pPfns->pfnFree = WINTRUST_Free;
866  pPfns->psUIpfns = NULL;
875 
876  return TRUE;
877 }
#define ERROR_INVALID_PARAMETER
Definition: compat.h:91
static PWSTR GuidString
Definition: apphelp.c:91
static const WCHAR Message[]
Definition: register.c:74
struct _CRYPT_PROVUI_FUNCS * psUIpfns
Definition: wintrust.h:328
#define TRUE
Definition: types.h:120
PFN_CPD_MEM_ALLOC pfnAlloc
Definition: wintrust.h:315
HRESULT(WINAPI * PFN_PROVIDER_SIGTRUST_CALL)(struct _CRYPT_PROVIDER_DATA *pProvData)
Definition: wintrust.h:299
PFN_CPD_ADD_STORE pfnAddStore2Chain
Definition: wintrust.h:317
__wchar_t WCHAR
Definition: xmlstorage.h:180
static const WCHAR Certificate[]
Definition: register.c:76
HRESULT(WINAPI * PFN_PROVIDER_OBJTRUST_CALL)(struct _CRYPT_PROVIDER_DATA *pProvData)
Definition: wintrust.h:297
PFN_PROVIDER_CLEANUP_CALL pfnCleanupPolicy
Definition: wintrust.h:329
static const WCHAR FinalPolicy[]
Definition: register.c:78
BOOL WINAPI WINTRUST_AddSgnr(CRYPT_PROVIDER_DATA *data, BOOL fCounterSigner, DWORD idxSigner, CRYPT_PROVIDER_SGNR *sgnr)
HRESULT(WINAPI * PFN_PROVIDER_TESTFINALPOLICY_CALL)(struct _CRYPT_PROVIDER_DATA *pProvData)
Definition: wintrust.h:305
BOOL WINAPI WINTRUST_AddCert(CRYPT_PROVIDER_DATA *data, DWORD idxSigner, BOOL fCounterSigner, DWORD idxCounterSigner, PCCERT_CONTEXT pCert2Add)
static const WCHAR CertCheck[]
Definition: register.c:77
static const WCHAR DiagnosticPolicy[]
Definition: register.c:79
PFN_CPD_ADD_CERT pfnAddCert2Chain
Definition: wintrust.h:319
static void WINTRUST_Guid2Wstr(const GUID *pgActionID, WCHAR *GuidString)
Definition: register.c:162
HRESULT(WINAPI * PFN_PROVIDER_CLEANUP_CALL)(struct _CRYPT_PROVIDER_DATA *pProvData)
Definition: wintrust.h:307
PFN_PROVIDER_CERTCHKPOLICY_CALL pfnCertCheckPolicy
Definition: wintrust.h:326
smooth NULL
Definition: ftsmooth.c:416
#define debugstr_guid
Definition: kernel32.h:35
void WINAPI WINTRUST_Free(void *p)
Definition: wintrust_main.c:56
static FARPROC WINTRUST_ReadProviderFromReg(WCHAR *GuidString, const WCHAR *FunctionType)
Definition: register.c:797
BOOL(WINAPI * PFN_PROVIDER_CERTCHKPOLICY_CALL)(struct _CRYPT_PROVIDER_DATA *pProvData, DWORD idxSigner, BOOL fCounterSignerChain, DWORD idxCounterSigner)
Definition: wintrust.h:309
#define TRACE(s)
Definition: solgame.cpp:4
void *WINAPI WINTRUST_Alloc(DWORD cb)
Definition: wintrust_main.c:45
PFN_CPD_MEM_FREE pfnFree
Definition: wintrust.h:316
static const WCHAR Signature[]
Definition: register.c:75
PFN_CPD_ADD_PRIVDATA pfnAddPrivData2Chain
Definition: wintrust.h:320
#define SetLastError(x)
Definition: compat.h:409
PFN_PROVIDER_OBJTRUST_CALL pfnObjectTrust
Definition: wintrust.h:322
static const WCHAR Cleanup[]
Definition: register.c:80
PFN_CPD_ADD_SGNR pfnAddSgnr2Chain
Definition: wintrust.h:318
HRESULT(WINAPI * PFN_PROVIDER_INIT_CALL)(struct _CRYPT_PROVIDER_DATA *pProvData)
Definition: wintrust.h:295
PFN_PROVIDER_TESTFINALPOLICY_CALL pfnTestFinalPolicy
Definition: wintrust.h:327
BOOL WINAPI WINTRUST_AddStore(CRYPT_PROVIDER_DATA *data, HCERTSTORE store)
HRESULT(WINAPI * PFN_PROVIDER_CERTTRUST_CALL)(struct _CRYPT_PROVIDER_DATA *pProvData)
Definition: wintrust.h:301
PFN_PROVIDER_INIT_CALL pfnInitialize
Definition: wintrust.h:321
static const WCHAR Initialization[]
Definition: register.c:73
BOOL WINAPI WINTRUST_AddPrivData(CRYPT_PROVIDER_DATA *data, CRYPT_PROVIDER_PRIVDATA *pPrivData2Add)
PFN_PROVIDER_SIGTRUST_CALL pfnSignatureTrust
Definition: wintrust.h:323
HRESULT(WINAPI * PFN_PROVIDER_FINALPOLICY_CALL)(struct _CRYPT_PROVIDER_DATA *pProvData)
Definition: wintrust.h:303
PFN_PROVIDER_CERTTRUST_CALL pfnCertificateTrust
Definition: wintrust.h:324
PFN_PROVIDER_FINALPOLICY_CALL pfnFinalPolicy
Definition: wintrust.h:325

◆ WintrustRemoveActionID()

BOOL WINAPI WintrustRemoveActionID ( GUID pgActionID)

Definition at line 337 of file register.c.

Referenced by DllUnregisterServer(), and InitFunctionPtrs().

338 {
339  WCHAR GuidString[39];
340 
341  TRACE("(%s)\n", debugstr_guid(pgActionID));
342 
343  if (!pgActionID)
344  {
346  return TRUE;
347  }
348 
349  /* Create this string only once, instead of in the helper function */
350  WINTRUST_Guid2Wstr( pgActionID, GuidString);
351 
352  /* We don't care about success or failure */
361 
362  return TRUE;
363 }
#define ERROR_INVALID_PARAMETER
Definition: compat.h:91
static PWSTR GuidString
Definition: apphelp.c:91
static const WCHAR Message[]
Definition: register.c:74
#define TRUE
Definition: types.h:120
__wchar_t WCHAR
Definition: xmlstorage.h:180
static const WCHAR Certificate[]
Definition: register.c:76
static const WCHAR FinalPolicy[]
Definition: register.c:78
static const WCHAR CertCheck[]
Definition: register.c:77
static const WCHAR DiagnosticPolicy[]
Definition: register.c:79
static void WINTRUST_Guid2Wstr(const GUID *pgActionID, WCHAR *GuidString)
Definition: register.c:162
#define debugstr_guid
Definition: kernel32.h:35
static void WINTRUST_RemoveProviderFromReg(WCHAR *GuidString, const WCHAR *FunctionType)
Definition: register.c:304
#define TRACE(s)
Definition: solgame.cpp:4
static const WCHAR Signature[]
Definition: register.c:75
#define SetLastError(x)
Definition: compat.h:409
static const WCHAR Cleanup[]
Definition: register.c:80
static const WCHAR Initialization[]
Definition: register.c:73

Variable Documentation

◆ CertCheck

const WCHAR CertCheck[] = {'C','e','r','t','C','h','e','c','k','\\', 0}
static

◆ Certificate

const WCHAR Certificate[] = {'C','e','r','t','i','f','i','c','a','t','e','\\', 0}
static

◆ Cleanup

const WCHAR Cleanup[] = {'C','l','e','a','n','u','p','\\', 0}
static

Definition at line 80 of file register.c.

Referenced by _AddPrintProviderToList(), _CreateNonspooledPort(), _HandleConfigureLPTPortCommandOK(), _HandleSetDefaultCommConfig(), _InitializeLocalSpooler(), _InitializePrintProviderList(), _LocalGetPrinterHandleData(), _LocalSetJobLevel1(), _LocalSetJobLevel2(), _LocalSetPrinterHandleData(), _OpenEnvironment(), _ReparsePIDL(), _RunRemoteTest(), _StartDocPrinterSpooled(), AccpLookupSidByName(), AccpOpenNamedObject(), AccRewriteGetHandleRights(), AccRewriteSetEntriesInAcl(), AcpiDsBeginMethodExecution(), AcpiDsCallControlMethod(), AcpiDsCreateBufferField(), AcpiDsCreateOperands(), AcpiDsEvalTableRegionOperands(), AcpiDsExecEndOp(), AcpiDsExecuteArguments(), AcpiDsGetPredicateValue(), AcpiDsInitBufferField(), AcpiDsLoad2EndOp(), AcpiEvaluateObject(), AcpiEvGpeInitialize(), AcpiExCreateEvent(), AcpiExCreateMutex(), AcpiExCreateRegion(), AcpiExDoConcatenate(), AcpiExDoLogicalOp(), AcpiExOpcode_0A_0T_1R(), AcpiExOpcode_1A_0T_1R(), AcpiExOpcode_1A_1T_0R(), AcpiExOpcode_1A_1T_1R(), AcpiExOpcode_2A_0T_1R(), AcpiExOpcode_2A_1T_1R(), AcpiExOpcode_2A_2T_1R(), AcpiExOpcode_3A_0T_0R(), AcpiExOpcode_3A_1T_1R(), AcpiExOpcode_6A_0T_1R(), AcpiGetObjectInfo(), AcpiInstallExceptionHandler(), AcpiInstallFixedEventHandler(), AcpiInstallGlobalEventHandler(), AcpiInstallTableHandler(), AcpiNsBuildPrefixedPathname(), AcpiNsEvaluate(), AcpiNsExecuteTable(), AcpiNsOneCompleteParse(), AcpiPsCompleteThisOp(), AcpiPsExecuteMethod(), AcpiPsExecuteTable(), AcpiRemoveTableHandler(), AcpiRsSetSrsMethodData(), AcpiUtEvaluateObject(), AcpiUtExecute_CID(), AcpiUtExecute_CLS(), AcpiUtExecute_HID(), AcpiUtExecute_UID(), AddJobW(), AllowWinstaAccess(), ApphelpCacheLookupEntry(), ApphelpCacheUpdateEntry(), ApplyParameterStringsToMessage(), BaseCheckVDM(), BaseCreateVDMEnvironment(), BaseSrvCopyCommand(), BuildAndSubmitIrp(), BuildFileFilterAndDeviceMenu(), CheckTokenMembership(), ClosePrinter(), ClosePrintProcessor(), CmpCopyCell(), CmpCreateControlSet(), CmpDeepCopyKeyInternal(), CmSaveKey(), ConDrvWriteConsoleOutputString(), CreateBTreeFromIndex(), CreateDefaultSecurityDescriptor(), CreateJob(), CreateRegistryFile(), CreateRemoteDatabaseWorker(), CreateSidCacheMgr(), CreateUsbChildDeviceObject(), CreateUserHive(), CSR_API(), DeviceAdvancedPropertiesA(), DeviceCreateHardwarePageEx(), DeviceProblemWizardA(), DevicePropertiesExA(), DisplayDeviceAdvancedProperties(), DoesPortExist(), DosLoadDriver(), DosLoadExecutable(), DosLoadExecutableInternal(), DriverEntry(), DumpFont(), EndDocPrinter(), EndPagePrinter(), EnumEventsThread(), EnumJobsW(), EnumPrintersW(), EnumPrintProcessorDatatypesW(), ExpandEnvironmentStringsForUserA(), Fast486FpuRemainder(), FatPrefetchPages(), FillList(), FindCurrentDriver(), FindFirstStreamW(), FltpAttachToFileSystemDevice(), FsRecIsCdfsVolume(), FsRtlCopyRead(), FsRtlCopyWrite(), FsRtlMdlReadDev(), FsRtlPrepareMdlWriteDev(), FsRtlRegisterUncProvider(), FsRtlTest_StartTest(), FstubGetDiskGeometry(), FstubVerifyPartitionTableEFI(), GetDefaultPrinterA(), GetDefaultPrinterFromRegistry(), GetDefaultPrinterW(), GetFontCellSize(), GetJobW(), GetLPTTransmissionRetryTimeout(), GetNextVDMCommand(), GetPrinterDataExA(), GetPrinterW(), GetPrintProcessorDirectoryA(), GetPrintProcessorDirectoryW(), GreExtTextOutW(), ImpersonatePrinterClient(), InitializeGlobalJobList(), InitializeModeTable(), InitializePortList(), InitializePrinterList(), InitializePrintMonitor2(), InitializePrintMonitorList(), InitializePrintProcessorList(), InitLogo(), InputList_PrepareUserRegistry(), IntCopyRegistryKey(), IntScrollWindowEx(), IntSetAconData(), IopCreateArcNamesCd(), IopCreateArcNamesDisk(), IoReadDiskSignature(), ISecurityObjectTypeInfo_fnGetInheritSource(), IssueUniqueIdChangeNotify(), LoadXMLDocumentFromResource(), LocalAddJob(), LocalEndDocPrinter(), LocalEndPagePrinter(), LocalEnumJobs(), LocalEnumMonitors(), LocalEnumPrinters(), LocalEnumPrintProcessorDatatypes(), LocalEnumPrintProcessors(), LocalGetJob(), LocalGetPrinter(), LocalGetPrintProcessorDirectory(), LocalmonEnumPorts(), LocalmonGetPrinterDataFromPort(), LocalmonOpenPort(), LocalmonReadPort(), LocalmonSetPortTimeOuts(), LocalmonStartDocPort(), LocalmonWritePort(), LocalmonXcvOpenPort(), LocalOpenPrinter(), LocalReadPrinter(), LocalScheduleJob(), LocalSetJob(), LocalStartDocPrinter(), LocalStartPagePrinter(), LocalWritePrinter(), LpcpCopyRequestData(), Main_DirectDraw_Release(), MiLockVirtualMemory(), MiniportInitialize(), MiUnlockVirtualMemory(), MmAddVerifierThunks(), MmAdjustWorkingSetSize(), MmProbeAndLockPages(), MountMgrVolumeMountPointChanged(), my_test_server(), nls_from_txt(), NtAcceptConnectPort(), NtAdjustPrivilegesToken(), NtCloseObjectAuditAlarm(), NtCreateToken(), NtImpersonateClientOfPort(), NtLoadKeyEx(), NtOpenObjectAuditAlarm(), NtPrivilegedServiceAuditAlarm(), NtReplyWaitReceivePortEx(), NtSetDefaultLocale(), NtSetInformationToken(), NtUserGetCPD(), NtUserSetClassLong(), ObOpenObjectByName(), CExplorerBand::OnContextMenu(), OpenPrinterA(), OpenPrinterW(), OpenPrintProcessor(), PlotCharacter(), PrintDocumentOnPrintProcessor(), PrintingThreadProc(), PrintRawJob(), PspCreateProcess(), QueryPathCompletionRoutine(), ReadJobShadowFile(), ReadPrinter(), RegCopyTreeW(), RegDeleteKeyExW(), RegDeleteKeyValueA(), RegDeleteKeyValueW(), RegEnumKeyExW(), RegisterGPNotification(), RegKeyEditPermissions(), RegLoadKeyW(), RegQueryInfoKeyW(), RegReplaceKeyW(), RegRestoreKeyW(), RegSaveKeyW(), RegSetKeyValueA(), RegSetKeyValueW(), RegSetValueA(), RegSetValueW(), RemoveDirectoryW(), ReplaceFileW(), RevertToPrinterSelf(), RtlAcquirePrivilege(), RtlpSysVolCheckOwnerAndSecurity(), RtlpSysVolCreateSecurityDescriptor(), RtlpSysVolTakeOwnership(), RtlQueueWorkItem(), ScheduleJob(), SdbGetMatchingExe(), SdbpMatchExe(), SendLinkCreated(), SendLinkDeleted(), SendOnlineNotification(), SepAccessCheckAndAuditAlarm(), SepRegQueryHelper(), SepRmCommandServerThreadInit(), SetDefaultPrinterA(), SetDefaultPrinterW(), SetJobW(), SetPrinterDataExA(), SetupDiGetDriverInfoDetailA(), SetupDiGetINFClassA(), SetupGetInfFileListA(), START_TEST(), StartDocPrinterA(), StartDocPrinterW(), StartPagePrinter(), TestSharedCacheMap(), txt_get_glyph_table(), txt_get_header(), txt_get_mb_table(), txt_get_wc_table(), UpdateRegistry(), UserDrawIconEx(), VfatSetRenameInformation(), VgaInitializePalette(), VgaSetMode(), WintrustAddActionID(), WintrustLoadFunctionPointers(), WintrustRemoveActionID(), wmain(), WriteAttribute(), WriteJobShadowFile(), WritePrinter(), wWinMain(), and xHalGetPartialGeometry().

◆ DefaultId

const WCHAR DefaultId[] = {'D','e','f','a','u','l','t','I','d', 0}
static

Definition at line 82 of file register.c.

Referenced by USBH_PdoQueryDeviceText(), and WintrustAddDefaultForUsage().

◆ DiagnosticPolicy

const WCHAR DiagnosticPolicy[] = {'D','i','a','g','n','o','s','t','i','c','P','o','l','i','c','y','\\', 0}
static

◆ Dll

const WCHAR Dll[] = {'$','D','L','L', 0}
static

◆ DriverCleanupPolicy

CRYPT_TRUST_REG_ENTRY DriverCleanupPolicy
static

Definition at line 60 of file register.c.

Referenced by WINTRUST_RegisterDriverVerify().

◆ DriverFinalPolicy

CRYPT_TRUST_REG_ENTRY DriverFinalPolicy
static

Definition at line 59 of file register.c.

Referenced by WINTRUST_RegisterDriverVerify().

◆ DriverInitializePolicy

CRYPT_TRUST_REG_ENTRY DriverInitializePolicy
static

Definition at line 58 of file register.c.

Referenced by WINTRUST_RegisterDriverVerify().

◆ FinalPolicy

const WCHAR FinalPolicy[] = {'F','i','n','a','l','P','o','l','i','c','y','\\', 0}
static

◆ GenericChainCertificateTrust

CRYPT_TRUST_REG_ENTRY GenericChainCertificateTrust
static

Definition at line 62 of file register.c.

Referenced by WINTRUST_RegisterGenChainVerify().

◆ GenericChainFinalProv

CRYPT_TRUST_REG_ENTRY GenericChainFinalProv
static

Definition at line 63 of file register.c.

Referenced by WINTRUST_RegisterGenChainVerify().

◆ HTTPSCertificateTrust

CRYPT_TRUST_REG_ENTRY HTTPSCertificateTrust
static

Definition at line 52 of file register.c.

Referenced by WINTRUST_RegisterHttpsProv().

◆ HTTPSFinalProv

CRYPT_TRUST_REG_ENTRY HTTPSFinalProv
static

Definition at line 53 of file register.c.

Referenced by WINTRUST_RegisterHttpsProv().

◆ Initialization

const WCHAR Initialization[] = {'I','n','i','t','i','a','l','i','z','a','t','i','o','n','\\', 0}
static

◆ Message

const WCHAR Message[] = {'M','e','s','s','a','g','e','\\', 0}
static

◆ NullCTRE

◆ OfficeCleanupPolicy

CRYPT_TRUST_REG_ENTRY OfficeCleanupPolicy
static

Definition at line 56 of file register.c.

Referenced by WINTRUST_RegisterOfficeSignVerify().

◆ OfficeInitializePolicy

CRYPT_TRUST_REG_ENTRY OfficeInitializePolicy
static

Definition at line 55 of file register.c.

Referenced by WINTRUST_RegisterOfficeSignVerify().

◆ Signature

const WCHAR Signature[] = {'S','i','g','n','a','t','u','r','e','\\', 0}
static

◆ SoftpubCertCheck

◆ SoftpubCertificate

◆ SoftpubCleanup

◆ SoftpubDefCertInit

CRYPT_TRUST_REG_ENTRY SoftpubDefCertInit
static

Definition at line 48 of file register.c.

Referenced by WINTRUST_RegisterGenCertVerify().

◆ SoftpubDumpStructure

CRYPT_TRUST_REG_ENTRY SoftpubDumpStructure
static

Definition at line 50 of file register.c.

Referenced by WINTRUST_RegisterTrustProviderTest().

◆ SoftpubFinalPolicy

◆ SoftpubInitialization

◆ SoftpubMessage

◆ SoftpubSignature

◆ Trust

const WCHAR Trust[]
static
Initial value:
= {'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','\\',
'P','r','o','v','i','d','e','r','s','\\',
'T','r','u','s','t','\\', 0 }

Definition at line 67 of file register.c.

Referenced by WINTRUST_ReadProviderFromReg(), WINTRUST_RemoveProviderFromReg(), WINTRUST_WriteProviderToReg(), and WINTRUST_WriteSingleUsageEntry().