ReactOS 0.4.15-dev-7958-gcd0bb1a
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.

◆ WINTRUST_FREEREGENTRY

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

◆ 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);
struct _CRYPT_TRUST_REG_ENTRY CRYPT_TRUST_REG_ENTRY
void *WINAPI WINTRUST_Alloc(DWORD cb)
Definition: wintrust_main.c:43

◆ 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)
BOOL WINAPI CryptRegisterOIDFunction(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID, LPCWSTR pwszDll, LPCSTR pszOverrideFuncName)
Definition: oid.c:647
static const WCHAR SP_POLICY_PROVIDER_DLL_NAME[]
Definition: softpub.h:104
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
#define CRYPT_OID_DECODE_OBJECT_FUNC
Definition: wincrypt.h:2493
#define X509_ASN_ENCODING
Definition: wincrypt.h:2297
#define CRYPT_OID_ENCODE_OBJECT_FUNC
Definition: wincrypt.h:2492
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92

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
1017add_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. */
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}
PRTL_UNICODE_STRING_BUFFER PULONG PULONG Unknown4
#define ERR(fmt,...)
Definition: debug.h:110
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD IN DWORD IN DWORD IN DWORD Unknown6
Definition: conport.c:40
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD IN DWORD IN DWORD Unknown5
Definition: conport.c:39
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD Unknown3
Definition: conport.c:37
#define NULL
Definition: types.h:112
BOOL WINAPI CryptReleaseContext(HCRYPTPROV hProv, DWORD dwFlags)
Definition: crypt.c:648
BOOL WINAPI CryptAcquireContextW(HCRYPTPROV *phProv, LPCWSTR pszContainer, LPCWSTR pszProvider, DWORD dwProvType, DWORD dwFlags)
Definition: crypt.c:358
static BOOL WINTRUST_SIPPAddProvider(GUID *Subject, WCHAR *MagicNumber)
Definition: register.c:884
static BOOL WINTRUST_RegisterGenVerifyV2(void)
Definition: register.c:420
static BOOL WINTRUST_RegisterPublishedSoftware(void)
Definition: register.c:459
#define WINTRUST_REGISTEROID(oid, encode_funcname, decode_funcname)
static void WINTRUST_InitRegStructs(void)
Definition: register.c:91
static BOOL WINTRUST_RegisterTrustProviderTest(void)
Definition: register.c:551
static BOOL WINTRUST_RegisterOfficeSignVerify(void)
Definition: register.c:633
static BOOL WINTRUST_RegisterGenCertVerify(void)
Definition: register.c:521
static BOOL WINTRUST_RegisterDriverVerify(void)
Definition: register.c:664
static BOOL WINTRUST_RegisterGenChainVerify(void)
Definition: register.c:695
static BOOL WINTRUST_RegisterHttpsProv(void)
Definition: register.c:581
static void WINTRUST_FreeRegStructs(void)
Definition: register.c:128
static BOOL WINTRUST_RegisterPublishedSoftwareNoBadUi(void)
Definition: register.c:491
unsigned int BOOL
Definition: ntddk_ex.h:94
#define S_OK
Definition: intsafe.h:52
#define TRACE(s)
Definition: solgame.cpp:4
int ret
#define PROV_RSA_FULL
Definition: wincrypt.h:2039
#define CRYPT_VERIFYCONTEXT
Definition: wincrypt.h:2069
ULONG_PTR HCRYPTPROV
Definition: wincrypt.h:46
#define S_FALSE
Definition: winerror.h:2357
#define SPC_JAVA_CLASS_DATA_OBJID
Definition: wintrust.h:489
#define SPC_MINIMAL_CRITERIA_OBJID
Definition: wintrust.h:494
#define SPC_INDIRECT_DATA_CONTENT_STRUCT
Definition: wintrust.h:504
#define SPC_JAVA_CLASS_DATA_STRUCT
Definition: wintrust.h:510
#define SPC_FINANCIAL_CRITERIA_OBJID
Definition: wintrust.h:495
#define SPC_MINIMAL_CRITERIA_STRUCT
Definition: wintrust.h:502
#define SPC_PE_IMAGE_DATA_OBJID
Definition: wintrust.h:486
#define SPC_SIGINFO_OBJID
Definition: wintrust.h:497
#define CAT_NAMEVALUE_OBJID
Definition: wintrust.h:498
#define SPC_PE_IMAGE_DATA_STRUCT
Definition: wintrust.h:505
#define SPC_CAB_DATA_STRUCT
Definition: wintrust.h:509
#define SPC_SP_OPUS_INFO_OBJID
Definition: wintrust.h:484
#define CAT_MEMBERINFO_OBJID
Definition: wintrust.h:499
#define SPC_SP_OPUS_INFO_STRUCT
Definition: wintrust.h:508
#define SPC_LINK_OBJID
Definition: wintrust.h:496
#define SPC_STATEMENT_TYPE_STRUCT
Definition: wintrust.h:507
#define SPC_SP_AGENCY_INFO_OBJID
Definition: wintrust.h:482
#define SPC_SP_AGENCY_INFO_STRUCT
Definition: wintrust.h:501
#define CAT_MEMBERINFO_STRUCT
Definition: wintrust.h:513
#define SPC_STATEMENT_TYPE_OBJID
Definition: wintrust.h:483
#define SPC_SIGINFO_STRUCT
Definition: wintrust.h:511
#define SPC_LINK_STRUCT
Definition: wintrust.h:506
#define SPC_CAB_DATA_OBJID
Definition: wintrust.h:492
#define SPC_FINANCIAL_CRITERIA_STRUCT
Definition: wintrust.h:503
#define CAT_NAMEVALUE_STRUCT
Definition: wintrust.h:512
#define SPC_INDIRECT_DATA_OBJID
Definition: wintrust.h:481
__wchar_t WCHAR
Definition: xmlstorage.h:180
char CHAR
Definition: xmlstorage.h:175

◆ 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:111

◆ mscat32DllRegisterServer()

HRESULT WINAPI mscat32DllRegisterServer ( void  )

Definition at line 1167 of file register.c.

1168{
1169 FIXME("stub\n");
1170 return S_OK;
1171}

◆ mscat32DllUnregisterServer()

HRESULT WINAPI mscat32DllUnregisterServer ( void  )

Definition at line 1176 of file register.c.

1177{
1178 FIXME("stub\n");
1179 return S_OK;
1180}

◆ mssip32DllRegisterServer()

HRESULT WINAPI mssip32DllRegisterServer ( void  )

Definition at line 1185 of file register.c.

1186{
1187 FIXME("stub\n");
1188 return S_OK;
1189}

◆ mssip32DllUnregisterServer()

HRESULT WINAPI mssip32DllUnregisterServer ( void  )

Definition at line 1194 of file register.c.

1195{
1196 FIXME("stub\n");
1197 return S_OK;
1198}

◆ 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}

◆ SoftpubDllUnregisterServer()

HRESULT WINAPI SoftpubDllUnregisterServer ( void  )

Definition at line 1158 of file register.c.

1159{
1160 FIXME("stub\n");
1161 return S_OK;
1162}

◆ 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.

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 SoftpubCertificate
Definition: register.c:43
static CRYPT_TRUST_REG_ENTRY DriverFinalPolicy
Definition: register.c:59
static CRYPT_TRUST_REG_ENTRY GenericChainCertificateTrust
Definition: register.c:62
static CRYPT_TRUST_REG_ENTRY SoftpubMessage
Definition: register.c:41
static CRYPT_TRUST_REG_ENTRY HTTPSCertificateTrust
Definition: register.c:52
static CRYPT_TRUST_REG_ENTRY DriverInitializePolicy
Definition: register.c:58
static CRYPT_TRUST_REG_ENTRY GenericChainFinalProv
Definition: register.c:63
static CRYPT_TRUST_REG_ENTRY SoftpubCleanup
Definition: register.c:46
static CRYPT_TRUST_REG_ENTRY DriverCleanupPolicy
Definition: register.c:60
static CRYPT_TRUST_REG_ENTRY SoftpubDefCertInit
Definition: register.c:48
#define WINTRUST_FREEREGENTRY(action)
static CRYPT_TRUST_REG_ENTRY SoftpubFinalPolicy
Definition: register.c:45
static CRYPT_TRUST_REG_ENTRY SoftpubCertCheck
Definition: register.c:44
static CRYPT_TRUST_REG_ENTRY SoftpubInitialization
Definition: register.c:40
static CRYPT_TRUST_REG_ENTRY OfficeCleanupPolicy
Definition: register.c:56
static CRYPT_TRUST_REG_ENTRY OfficeInitializePolicy
Definition: register.c:55
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 SoftpubSignature
Definition: register.c:42

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

◆ WINTRUST_Guid2Wstr()

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

Definition at line 162 of file register.c.

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}
static PWSTR GuidString
Definition: apphelp.c:93
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)

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

◆ WINTRUST_InitRegStructs()

static void WINTRUST_InitRegStructs ( void  )
static

Definition at line 91 of file register.c.

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}
#define WINTRUST_INITREGENTRY(action, dllname, functionname)
static const WCHAR SP_INIT_FUNCTION[]
Definition: softpub.h:132
static const WCHAR GENERIC_CHAIN_CERTTRUST_FUNCTION[]
Definition: softpub.h:51
static const WCHAR OFFICE_CLEANUPPOLICY_FUNCTION[]
Definition: softpub.h:196
static const WCHAR GENERIC_CHAIN_FINALPOLICY_FUNCTION[]
Definition: softpub.h:49
static const WCHAR HTTPS_CERTTRUST_FUNCTION[]
Definition: softpub.h:171
static const WCHAR SP_FINALPOLICY_FUNCTION[]
Definition: softpub.h:140
static const WCHAR DRIVER_INITPROV_FUNCTION[]
Definition: softpub.h:215
static const WCHAR SP_CLEANUPPOLICY_FUNCTION[]
Definition: softpub.h:142
static const WCHAR HTTPS_FINALPOLICY_FUNCTION[]
Definition: softpub.h:173
static const WCHAR SP_GENERIC_CERT_INIT_FUNCTION[]
Definition: softpub.h:33
static const WCHAR SP_TESTDUMPPOLICY_FUNCTION_TEST[]
Definition: softpub.h:155
static const WCHAR SP_CHKCERT_FUNCTION[]
Definition: softpub.h:138
static const WCHAR OFFICE_INITPROV_FUNCTION[]
Definition: softpub.h:194
static const WCHAR DRIVER_CLEANUPPOLICY_FUNCTION[]
Definition: softpub.h:219
static const WCHAR SP_OBJTRUST_FUNCTION[]
Definition: softpub.h:134
static const WCHAR SP_SIGTRUST_FUNCTION[]
Definition: softpub.h:136
static const WCHAR OFFICE_POLICY_PROVIDER_DLL_NAME[]
Definition: softpub.h:192
static const WCHAR DRIVER_FINALPOLPROV_FUNCTION[]
Definition: softpub.h:217
static const WCHAR WT_PROVIDER_CERTTRUST_FUNCTION[]
Definition: wintrust.h:460

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

◆ WINTRUST_ReadProviderFromReg()

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

Definition at line 797 of file register.c.

798{
799 WCHAR ProvKey[MAX_PATH], DllName[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);
831
832error_close_key:
834
835 return Func;
836}
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 ACPI_STATUS const char UINT32 const char * FunctionName
Definition: acpixf.h:1279
#define RegCloseKey(hKey)
Definition: registry.h:49
#define ERROR_SUCCESS
Definition: deptool.c:10
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3333
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:4009
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4103
int(* FARPROC)()
Definition: compat.h:36
#define GetProcAddress(x, y)
Definition: compat.h:753
#define MAX_PATH
Definition: compat.h:34
#define LoadLibraryW(x)
Definition: compat.h:747
static const WCHAR Dll[]
Definition: register.c:83
static const WCHAR Trust[]
Definition: register.c:67
unsigned long DWORD
Definition: ntddk_ex.h:95
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274
#define KEY_READ
Definition: nt_native.h:1023
long LONG
Definition: pedump.c:60
void(* Func)(int)
unsigned char * LPBYTE
Definition: typedefs.h:53
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12

Referenced by WintrustLoadFunctionPointers().

◆ WINTRUST_RegisterDriverVerify()

static BOOL WINTRUST_RegisterDriverVerify ( void  )
static

Definition at line 664 of file register.c.

665{
666 static GUID ProvGUID = DRIVER_ACTION_VERIFY;
668
669 ProvInfo.cbStruct = sizeof(CRYPT_REGISTER_ACTIONID);
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
#define FALSE
Definition: types.h:117
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
#define DRIVER_ACTION_VERIFY
Definition: softpub.h:200
CRYPT_TRUST_REG_ENTRY sCertificateProvider
Definition: wintrust.h:178
CRYPT_TRUST_REG_ENTRY sInitProvider
Definition: wintrust.h:175
CRYPT_TRUST_REG_ENTRY sTestPolicyProvider
Definition: wintrust.h:181
CRYPT_TRUST_REG_ENTRY sCertificatePolicyProvider
Definition: wintrust.h:179
CRYPT_TRUST_REG_ENTRY sFinalPolicyProvider
Definition: wintrust.h:180
CRYPT_TRUST_REG_ENTRY sCleanupProvider
Definition: wintrust.h:182
CRYPT_TRUST_REG_ENTRY sObjectProvider
Definition: wintrust.h:176
CRYPT_TRUST_REG_ENTRY sSignatureProvider
Definition: wintrust.h:177
struct _CRYPT_REGISTER_ACTIONID CRYPT_REGISTER_ACTIONID

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

◆ WINTRUST_RegisterGenCertVerify()

static BOOL WINTRUST_RegisterGenCertVerify ( void  )
static

Definition at line 521 of file register.c.

522{
525
526 ProvInfo.cbStruct = sizeof(CRYPT_REGISTER_ACTIONID);
533 ProvInfo.sTestPolicyProvider = NullCTRE; /* No diagnostic policy */
535
536 if (!WintrustAddActionID(&ProvGUID, 0, &ProvInfo))
537 return FALSE;
538
539 return TRUE;
540}
#define WINTRUST_ACTION_GENERIC_CERT_VERIFY
Definition: softpub.h:24

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

◆ WINTRUST_RegisterGenChainVerify()

static BOOL WINTRUST_RegisterGenChainVerify ( void  )
static

Definition at line 695 of file register.c.

696{
699
700 ProvInfo.cbStruct = sizeof(CRYPT_REGISTER_ACTIONID);
707 ProvInfo.sTestPolicyProvider = NullCTRE; /* No diagnostic policy */
709
710 if (!WintrustAddActionID(&ProvGUID, 0, &ProvInfo))
711 return FALSE;
712
713 return TRUE;
714}
#define WINTRUST_ACTION_GENERIC_CHAIN_VERIFY
Definition: softpub.h:37

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

◆ WINTRUST_RegisterGenVerifyV2()

static BOOL WINTRUST_RegisterGenVerifyV2 ( void  )
static

Definition at line 420 of file register.c.

421{
422 BOOL RegisteredOK = TRUE;
423 static GUID ProvGUID = WINTRUST_ACTION_GENERIC_VERIFY_V2;
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);
438 ProvInfo.sTestPolicyProvider = NullCTRE; /* No diagnostic policy */
440
442 RegisteredOK = FALSE;
443
444 if (!WintrustAddActionID(&ProvGUID, 0, &ProvInfo))
445 RegisteredOK = FALSE;
446
447 return RegisteredOK;
448}
BOOL WINAPI WintrustAddDefaultForUsage(const char *pszUsageOID, CRYPT_PROVIDER_REGDEFUSAGE *psDefUsage)
Definition: register.c:733
#define WINTRUST_ACTION_GENERIC_VERIFY_V2
Definition: softpub.h:108
#define szOID_PKIX_KP_CODE_SIGNING
Definition: wincrypt.h:3296
struct _CRYPT_PROVIDER_REGDEFUSAGE CRYPT_PROVIDER_REGDEFUSAGE

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

◆ WINTRUST_RegisterHttpsProv()

static BOOL WINTRUST_RegisterHttpsProv ( void  )
static

Definition at line 581 of file register.c.

582{
583 BOOL RegisteredOK = TRUE;
584 static CHAR SoftpubLoadUsage[] = "SoftpubLoadDefUsageCallData";
585 static CHAR SoftpubFreeUsage[] = "SoftpubFreeDefUsageCallData";
586 static GUID ProvGUID = HTTPSPROV_ACTION;
589 &ProvGUID,
590 NULL, /* Will be filled later */
591 SoftpubLoadUsage,
592 SoftpubFreeUsage };
593
594 ProvInfo.cbStruct = sizeof(CRYPT_REGISTER_ACTIONID);
601 ProvInfo.sTestPolicyProvider = NullCTRE; /* No diagnostic policy */
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 lstrcpyW
Definition: compat.h:749
#define HTTPSPROV_ACTION
Definition: softpub.h:159
#define szOID_SGC_NETSCAPE
Definition: wincrypt.h:3216
#define szOID_PKIX_KP_CLIENT_AUTH
Definition: wincrypt.h:3295
#define szOID_PKIX_KP_SERVER_AUTH
Definition: wincrypt.h:3294
#define szOID_SERVER_GATED_CRYPTO
Definition: wincrypt.h:3213

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

◆ WINTRUST_RegisterOfficeSignVerify()

static BOOL WINTRUST_RegisterOfficeSignVerify ( void  )
static

Definition at line 633 of file register.c.

634{
635 static GUID ProvGUID = OFFICESIGN_ACTION_VERIFY;
637
638 ProvInfo.cbStruct = sizeof(CRYPT_REGISTER_ACTIONID);
645 ProvInfo.sTestPolicyProvider = NullCTRE; /* No diagnostic policy */
647
648
649 if (!WintrustAddActionID(&ProvGUID, 0, &ProvInfo))
650 return FALSE;
651
652 return TRUE;
653}
#define OFFICESIGN_ACTION_VERIFY
Definition: softpub.h:177

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

◆ WINTRUST_RegisterPublishedSoftware()

static BOOL WINTRUST_RegisterPublishedSoftware ( void  )
static

Definition at line 459 of file register.c.

460{
463
464 ProvInfo.cbStruct = sizeof(CRYPT_REGISTER_ACTIONID);
471 ProvInfo.sTestPolicyProvider = NullCTRE; /* No diagnostic policy */
473
474 if (!WintrustAddActionID(&ProvGUID, 0, &ProvInfo))
475 return FALSE;
476
477 return TRUE;
478}
#define WIN_SPUB_ACTION_PUBLISHED_SOFTWARE
Definition: wintrust.h:661

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

◆ WINTRUST_RegisterPublishedSoftwareNoBadUi()

static BOOL WINTRUST_RegisterPublishedSoftwareNoBadUi ( void  )
static

Definition at line 491 of file register.c.

492{
495
496 ProvInfo.cbStruct = sizeof(CRYPT_REGISTER_ACTIONID);
503 ProvInfo.sTestPolicyProvider = NullCTRE; /* No diagnostic policy */
505
506 if (!WintrustAddActionID(&ProvGUID, 0, &ProvInfo))
507 return FALSE;
508
509 return TRUE;
510}
#define WIN_SPUB_ACTION_PUBLISHED_SOFTWARE_NOBADUI
Definition: register.c:480

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

◆ WINTRUST_RegisterTrustProviderTest()

static BOOL WINTRUST_RegisterTrustProviderTest ( void  )
static

Definition at line 551 of file register.c.

552{
555
556 ProvInfo.cbStruct = sizeof(CRYPT_REGISTER_ACTIONID);
565
566 if (!WintrustAddActionID(&ProvGUID, 0, &ProvInfo))
567 return FALSE;
568
569 return TRUE;
570}
#define WINTRUST_ACTION_TRUSTPROVIDER_TEST
Definition: softpub.h:146

Referenced by DllRegisterServer(), and SoftpubDllRegisterServer().

◆ WINTRUST_RemoveProviderFromReg()

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

Definition at line 304 of file register.c.

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}
LONG WINAPI RegDeleteKeyW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey)
Definition: reg.c:1239

Referenced by WintrustRemoveActionID().

◆ WINTRUST_SIPPAddProvider()

static BOOL WINTRUST_SIPPAddProvider ( GUID Subject,
WCHAR MagicNumber 
)
static

Definition at line 884 of file register.c.

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;
914 NewProv.pwszGetCapFuncName = NULL;
915
916 Ret = CryptSIPAddProvider(&NewProv);
917
919
920 return Ret;
921}
BOOL WINAPI CryptSIPPutSignedDataMsg(SIP_SUBJECTINFO *pSubjectInfo, DWORD pdwEncodingType, DWORD *pdwIndex, DWORD cbSignedDataMsg, BYTE *pbSignedDataMsg)
Definition: sip.c:756
BOOL WINAPI CryptSIPRemoveSignedDataMsg(SIP_SUBJECTINFO *pSubjectInfo, DWORD dwIndex)
Definition: sip.c:775
BOOL WINAPI CryptSIPGetSignedDataMsg(SIP_SUBJECTINFO *pSubjectInfo, DWORD *pdwEncodingType, DWORD dwIndex, DWORD *pcbSignedDataMsg, BYTE *pbSignedDataMsg)
Definition: sip.c:737
BOOL WINAPI CryptSIPCreateIndirectData(SIP_SUBJECTINFO *pSubjectInfo, DWORD *pcbIndirectData, SIP_INDIRECT_DATA *pIndirectData)
Definition: sip.c:715
BOOL WINAPI CryptSIPVerifyIndirectData(SIP_SUBJECTINFO *pSubjectInfo, SIP_INDIRECT_DATA *pIndirectData)
Definition: sip.c:792
BOOL WINAPI CryptSIPAddProvider(SIP_ADD_NEWPROVIDER *psNewProv)
Definition: sip.c:207
struct SIP_ADD_NEWPROVIDER_ SIP_ADD_NEWPROVIDER
#define memset(x, y, z)
Definition: compat.h:39
WCHAR * pwszPutFuncName
Definition: mssip.h:153
WCHAR * pwszCreateFuncName
Definition: mssip.h:154
GUID * pgSubject
Definition: mssip.h:145
WCHAR * pwszMagicNumber
Definition: mssip.h:148
WCHAR * pwszGetCapFuncName
Definition: mssip.h:161
WCHAR * pwszRemoveFuncName
Definition: mssip.h:156
WCHAR * pwszIsFunctionName
Definition: mssip.h:150
WCHAR * pwszGetFuncName
Definition: mssip.h:152
WCHAR * pwszIsFunctionNameFmt2
Definition: mssip.h:158
WCHAR * pwszVerifyFuncName
Definition: mssip.h:155
WCHAR * pwszDLLFileName
Definition: mssip.h:147

Referenced by DllRegisterServer().

◆ 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.

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
209error_close_key:
211
212 return Res;
213}
_In_ CDROM_SCAN_FOR_SPECIAL_INFO _In_ PCDROM_SCAN_FOR_SPECIAL_HANDLER Function
Definition: cdrom.h:1156
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:1096
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:4882
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
#define lstrlenW
Definition: compat.h:750
#define REG_SZ
Definition: layer.c:22
#define KEY_WRITE
Definition: nt_native.h:1031
Registry entry.
Definition: regfs.h:31
unsigned char BYTE
Definition: xxhash.c:193

Referenced by WintrustAddActionID().

◆ WINTRUST_WriteSingleUsageEntry()

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

Definition at line 373 of file register.c.

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 }
404
405 WINTRUST_Free(OIDW);
406 WINTRUST_Free(UsageKey);
407
408 return Res;
409}
#define Len
Definition: deflate.h:82
#define CP_ACP
Definition: compat.h:109
#define MultiByteToWideChar
Definition: compat.h:110
UINT64 OID
Definition: marshal.c:88
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413

Referenced by WintrustAddDefaultForUsage().

◆ WintrustAddActionID()

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

Definition at line 238 of file register.c.

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 */
264 if (Res != ERROR_SUCCESS) WriteActionError = Res;
266 if (Res != ERROR_SUCCESS) WriteActionError = Res;
268 if (Res != ERROR_SUCCESS) WriteActionError = Res;
270 if (Res != ERROR_SUCCESS) WriteActionError = Res;
272 if (Res != ERROR_SUCCESS) WriteActionError = Res;
274 if (Res != ERROR_SUCCESS) WriteActionError = Res;
276 if (Res != ERROR_SUCCESS) WriteActionError = Res;
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 SetLastError(x)
Definition: compat.h:752
static const WCHAR FinalPolicy[]
Definition: register.c:78
static const WCHAR CertCheck[]
Definition: register.c:77
static void WINTRUST_Guid2Wstr(const GUID *pgActionID, WCHAR *GuidString)
Definition: register.c:162
static const WCHAR Message[]
Definition: register.c:74
static const WCHAR Cleanup[]
Definition: register.c:80
static const WCHAR DiagnosticPolicy[]
Definition: register.c:79
static const WCHAR Signature[]
Definition: register.c:75
static const WCHAR Certificate[]
Definition: register.c:76
static LONG WINTRUST_WriteProviderToReg(WCHAR *GuidString, const WCHAR *FunctionType, CRYPT_TRUST_REG_ENTRY RegEntry)
Definition: register.c:179
static const WCHAR Initialization[]
Definition: register.c:73
#define debugstr_guid
Definition: kernel32.h:35
#define WT_ADD_ACTION_ID_RET_RESULT_FLAG
Definition: wintrust.h:448

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

◆ WintrustAddDefaultForUsage()

BOOL WINAPI WintrustAddDefaultForUsage ( const char pszUsageOID,
CRYPT_PROVIDER_REGDEFUSAGE psDefUsage 
)

Definition at line 733 of file register.c.

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
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
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
789 if (Res != ERROR_SUCCESS) WriteUsageError = Res;
790
791 if (WriteUsageError != ERROR_SUCCESS)
792 return FALSE;
793
794 return TRUE;
795}
static LONG WINTRUST_WriteSingleUsageEntry(LPCSTR OID, const WCHAR *Value, WCHAR *Data)
Definition: register.c:373
static const WCHAR DefaultId[]
Definition: register.c:82
#define debugstr_a
Definition: kernel32.h:31
char * pwszLoadCallbackDataFunctionName
Definition: wintrust.h:190
char * pwszFreeCallbackDataFunctionName
Definition: wintrust.h:191

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

◆ WintrustLoadFunctionPointers()

BOOL WINAPI WintrustLoadFunctionPointers ( GUID pgActionID,
CRYPT_PROVIDER_FUNCTIONS pPfns 
)

Definition at line 841 of file register.c.

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}
static FARPROC WINTRUST_ReadProviderFromReg(WCHAR *GuidString, const WCHAR *FunctionType)
Definition: register.c:797
PFN_PROVIDER_CLEANUP_CALL pfnCleanupPolicy
Definition: wintrust.h:329
PFN_PROVIDER_CERTTRUST_CALL pfnCertificateTrust
Definition: wintrust.h:324
PFN_PROVIDER_OBJTRUST_CALL pfnObjectTrust
Definition: wintrust.h:322
PFN_PROVIDER_SIGTRUST_CALL pfnSignatureTrust
Definition: wintrust.h:323
PFN_CPD_ADD_CERT pfnAddCert2Chain
Definition: wintrust.h:319
PFN_PROVIDER_TESTFINALPOLICY_CALL pfnTestFinalPolicy
Definition: wintrust.h:327
PFN_CPD_MEM_ALLOC pfnAlloc
Definition: wintrust.h:315
PFN_CPD_ADD_PRIVDATA pfnAddPrivData2Chain
Definition: wintrust.h:320
PFN_PROVIDER_FINALPOLICY_CALL pfnFinalPolicy
Definition: wintrust.h:325
PFN_CPD_ADD_STORE pfnAddStore2Chain
Definition: wintrust.h:317
PFN_PROVIDER_INIT_CALL pfnInitialize
Definition: wintrust.h:321
PFN_PROVIDER_CERTCHKPOLICY_CALL pfnCertCheckPolicy
Definition: wintrust.h:326
PFN_CPD_MEM_FREE pfnFree
Definition: wintrust.h:316
struct _CRYPT_PROVUI_FUNCS * psUIpfns
Definition: wintrust.h:328
PFN_CPD_ADD_SGNR pfnAddSgnr2Chain
Definition: wintrust.h:318
HRESULT(WINAPI * PFN_PROVIDER_OBJTRUST_CALL)(struct _CRYPT_PROVIDER_DATA *pProvData)
Definition: wintrust.h:297
HRESULT(WINAPI * PFN_PROVIDER_CLEANUP_CALL)(struct _CRYPT_PROVIDER_DATA *pProvData)
Definition: wintrust.h:307
HRESULT(WINAPI * PFN_PROVIDER_CERTTRUST_CALL)(struct _CRYPT_PROVIDER_DATA *pProvData)
Definition: wintrust.h:301
BOOL(WINAPI * PFN_PROVIDER_CERTCHKPOLICY_CALL)(struct _CRYPT_PROVIDER_DATA *pProvData, DWORD idxSigner, BOOL fCounterSignerChain, DWORD idxCounterSigner)
Definition: wintrust.h:309
HRESULT(WINAPI * PFN_PROVIDER_SIGTRUST_CALL)(struct _CRYPT_PROVIDER_DATA *pProvData)
Definition: wintrust.h:299
HRESULT(WINAPI * PFN_PROVIDER_FINALPOLICY_CALL)(struct _CRYPT_PROVIDER_DATA *pProvData)
Definition: wintrust.h:303
HRESULT(WINAPI * PFN_PROVIDER_TESTFINALPOLICY_CALL)(struct _CRYPT_PROVIDER_DATA *pProvData)
Definition: wintrust.h:305
HRESULT(WINAPI * PFN_PROVIDER_INIT_CALL)(struct _CRYPT_PROVIDER_DATA *pProvData)
Definition: wintrust.h:295
BOOL WINAPI WINTRUST_AddStore(CRYPT_PROVIDER_DATA *data, HCERTSTORE store)
BOOL WINAPI WINTRUST_AddCert(CRYPT_PROVIDER_DATA *data, DWORD idxSigner, BOOL fCounterSigner, DWORD idxCounterSigner, PCCERT_CONTEXT pCert2Add)
BOOL WINAPI WINTRUST_AddPrivData(CRYPT_PROVIDER_DATA *data, CRYPT_PROVIDER_PRIVDATA *pPrivData2Add)
BOOL WINAPI WINTRUST_AddSgnr(CRYPT_PROVIDER_DATA *data, BOOL fCounterSigner, DWORD idxSigner, CRYPT_PROVIDER_SGNR *sgnr)

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

◆ WintrustRemoveActionID()

BOOL WINAPI WintrustRemoveActionID ( GUID pgActionID)

Definition at line 337 of file register.c.

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}
static void WINTRUST_RemoveProviderFromReg(WCHAR *GuidString, const WCHAR *FunctionType)
Definition: register.c:304

Referenced by DllUnregisterServer(), and InitFunctionPtrs().

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[] ( void  ) = {'C','l','e','a','n','u','p','\\', 0}
static

Definition at line 80 of file register.c.

Referenced by _AddPrintProviderToList(), _CreateNonspooledPort(), _HandleAddPort(), _HandleConfigureLPTPortCommandOK(), _HandleDeletePort(), _HandleSetDefaultCommConfig(), _InitializeLocalSpooler(), _InitializePrintProviderList(), _LocalGetPrinterHandleData(), _LocalSetJobLevel1(), _LocalSetJobLevel2(), _LocalSetPrinterHandleData(), _OpenEnvironment(), _ReparsePIDL(), _RunRemoteTest(), _StartDocPrinterSpooled(), _Success_(), _tmain(), _tWinMain(), AbortPrinter(), 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_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(), AddPortExA(), AddPrinterA(), AddPrinterDriverExW(), AddPrinterExW(), AddPrinterW(), AddPrintMonitorList(), ApphelpCacheLookupEntry(), ApphelpCacheUpdateEntry(), ApplyParameterStringsToMessage(), AuxKlibQueryModuleInformation(), BaseCheckVDM(), BaseCreateVDMEnvironment(), BaseSrvCopyCommand(), BuildAndSubmitIrp(), BuildFileFilterAndDeviceMenu(), CheckTokenMembership(), ClosePrinter(), ClosePrintProcessor(), CmpCopyCell(), CmpCreateControlSet(), CmpDeepCopyKeyInternal(), CmSaveKey(), co_IntSendMessageTimeoutSingle(), co_IntSendMessageWithCallBack(), CODE_SEG(), CreateBTreeFromIndex(), CreateDefaultSecurityDescriptor(), CreateJob(), CreateRegistryFile(), CreateRemoteDatabaseWorker(), CreateRestrictedToken(), CreateSidCacheMgr(), CreateSymbolicLinkW(), CreateUserHive(), CSR_API(), DcInitializeAdapterResources(), DeletePrinter(), DeletePrinterDriverExW(), CDesktopThread::DesktopThreadProc(), DeviceAdvancedPropertiesA(), DeviceCapabilitiesA(), DeviceCreateHardwarePageEx(), DeviceInstallThread(), DeviceProblemWizardA(), DevicePropertiesExA(), DisplayDeviceAdvancedProperties(), DlgProc(), DllMain(), DocumentPropertiesA(), DoesPortExist(), DosLoadDriver(), DosLoadExecutable(), DosLoadExecutableInternal(), DumpFont(), EndDocPrinter(), EndPagePrinter(), EnumEventsThread(), EnumFormsA(), EnumFormsW(), EnumJobsA(), EnumJobsW(), EnumPrinterDriversA(), EnumPrinterDriversW(), EnumPrintersA(), EnumPrintersW(), EnumPrintProcessorDatatypesW(), ExpandEnvironmentStringsForUserA(), Fast486FpuRemainder(), FatPrefetchPages(), FillList(), FindCurrentDriver(), FindFirstStreamW(), FltpAttachToFileSystemDevice(), FsRecIsCdfsVolume(), FsRtlCopyRead(), FsRtlCopyWrite(), FsRtlMdlReadDev(), FsRtlPrepareMdlWriteDev(), FsRtlRegisterUncProvider(), FsRtlTest_StartTest(), FstubGetDiskGeometry(), FstubVerifyPartitionTableEFI(), GetBooleanRegValue(), GetDefaultPrinterA(), GetDefaultPrinterFromRegistry(), GetDefaultPrinterW(), GetFormA(), GetFormW(), GetHostnameFromCommand(), GetJobA(), GetJobW(), GetLPTTransmissionRetryTimeout(), GetMonitorUI(), GetNextVDMCommand(), GetPrinterA(), GetPrinterDataExA(), GetPrinterDriverA(), GetPrinterDriverDirectoryW(), GetPrinterDriverW(), GetPrinterW(), GetPrintProcessorDirectoryA(), GetPrintProcessorDirectoryW(), HalpXboxDeviceHasXboxPartitioning(), I_ScQueryServiceTagInfo(), ImpersonatePrinterClient(), InitializeFormList(), InitializeGlobalJobList(), InitializeModeTable(), InitializePortList(), InitializePrinterList(), InitializePrintMonitor2(), InitializePrintMonitorList(), InitializePrintProcessorList(), InitLogo(), IntCopyRegistryKey(), IntExtTextOutW(), IntScrollWindowEx(), IntSetAconData(), IopCreateArcNamesCd(), IopCreateArcNamesDisk(), IopGetDriverNames(), IopInitializeBuiltinDriver(), IoReadDiskSignature(), ISecurityObjectTypeInfo_fnGetInheritSource(), IssueUniqueIdChangeNotify(), K32CreateDBMonMutex(), KeConnectInterrupt(), kickoff_telnetd(), LoadXMLDocumentFromResource(), LocalAddForm(), LocalAddJob(), LocalDeleteForm(), LocalEndDocPrinter(), LocalEndPagePrinter(), LocalEnumForms(), LocalEnumJobs(), LocalEnumMonitors(), LocalEnumPrinterDrivers(), LocalEnumPrinters(), LocalEnumPrintProcessorDatatypes(), LocalEnumPrintProcessors(), LocalGetForm(), LocalGetJob(), LocalGetPrinter(), LocalGetPrinterDriver(), LocalGetPrintProcessorDirectory(), LocalmonAddPort(), LocalmonAddPortEx(), LocalmonEnumPorts(), LocalmonGetPrinterDataFromPort(), LocalmonOpenPort(), LocalmonReadPort(), LocalmonSetPortTimeOuts(), LocalmonStartDocPort(), LocalmonWritePort(), LocalmonXcvOpenPort(), LocalOpenPrinter(), LocalReadPrinter(), LocalScheduleJob(), LocalSetForm(), LocalSetJob(), LocalStartDocPrinter(), LocalStartPagePrinter(), LocalWritePrinter(), LocalXcvData(), LpcpCopyRequestData(), Main_DirectDraw_Release(), MiLockVirtualMemory(), MiniportInitialize(), MiUnlockVirtualMemory(), MmAddVerifierThunks(), MmAdjustWorkingSetSize(), MmProbeAndLockPages(), MountMgrVolumeMountPointChanged(), my_test_server(), NtAdjustPrivilegesToken(), NtCloseObjectAuditAlarm(), NtCreateToken(), NtImpersonateClientOfPort(), NtLoadKeyEx(), NtOpenObjectAuditAlarm(), NtPrivilegedServiceAuditAlarm(), NtReplyWaitReceivePortEx(), NtSetDefaultLocale(), NtSetInformationToken(), NtUserBeginPaint(), NtUserEnableScrollBar(), NtUserEndPaint(), NtUserGetCPD(), NtUserGetMenuBarInfo(), NtUserScrollWindowEx(), NtUserSetClassLong(), NtUserSetScrollBarInfo(), NtUserSetScrollInfo(), NtUserSetWindowsHookEx(), NtUserThunkedMenuItemInfo(), NtUserTranslateAccelerator(), NvNetInitializeAdapterResources(), ObOpenObjectByName(), CExplorerBand::OnContextMenu(), OpenPrinterA(), OpenPrinterW(), OpenPrintProcessor(), PathResolveA(), PciIdeXSetBusData(), PiAttachFilterDriversCallback(), PiCallDriverAddDevice(), PlotCharacter(), PrintDocumentOnPrintProcessor(), PrintingThreadProc(), PrintRawJob(), ProcessFragment(), PspCreateProcess(), QueryFullProcessImageNameW(), QueryPathCompletionRoutine(), ReadJobShadowFile(), ReadPrinter(), RegCopyTreeW(), RegDeleteKeyExW(), RegEnumKeyExW(), REGION_SetPolyPolygonRgn(), RegisterGPNotification(), RegKeyEditPermissions(), RegLoadKeyW(), RegQueryInfoKeyW(), RegReplaceKeyW(), RegRestoreKeyW(), RegSaveKeyW(), RegSetKeyValueA(), RegSetKeyValueW(), RegSetValueA(), RegSetValueW(), RemoveDirectoryW(), ReplaceFileW(), RevertToPrinterSelf(), RosImageProc(), RtlAcquirePrivilege(), RtlpSysVolCheckOwnerAndSecurity(), RtlpSysVolCreateSecurityDescriptor(), RtlpSysVolTakeOwnership(), RtlQueueWorkItem(), RunTraceRoute(), ScheduleJob(), ScmGetServiceNameFromTag(), SdbGetMatchingExe(), SdbpMatchExe(), SeCaptureSidAndAttributesArray(), SeekPrinter(), SendLinkCreated(), SendLinkDeleted(), SendOnlineNotification(), SepAccessCheckAndAuditAlarm(), SepRegQueryHelper(), SepRmCommandServerThreadInit(), SetDefaultPrinterA(), SetDefaultPrinterW(), SetJobW(), SetPrinterA(), SetPrinterDataExA(), SetupDiGetDriverInfoDetailA(), SetupDiGetINFClassA(), SetupGetInfFileListA(), START_TEST(), StartDocPrinterA(), StartDocPrinterW(), StartPagePrinter(), Test_RtlUnicodeStringPrintf(), Test_RtlUnicodeStringPrintfEx(), testCharPrevA(), testCharPrevW(), testLayout(), TestSharedCacheMap(), UpdateRegistry(), UserDrawIconEx(), VfatSetRenameInformation(), VgaInitializePalette(), VgaSetMode(), WintrustAddActionID(), WintrustLoadFunctionPointers(), WintrustRemoveActionID(), wmain(), WriteAttribute(), WriteJobShadowFile(), WritePrinter(), wWinMain(), XcvDataW(), 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

◆ DriverFinalPolicy

CRYPT_TRUST_REG_ENTRY DriverFinalPolicy
static

◆ DriverInitializePolicy

CRYPT_TRUST_REG_ENTRY DriverInitializePolicy
static

◆ FinalPolicy

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

◆ GenericChainCertificateTrust

CRYPT_TRUST_REG_ENTRY GenericChainCertificateTrust
static

◆ GenericChainFinalProv

CRYPT_TRUST_REG_ENTRY GenericChainFinalProv
static

◆ HTTPSCertificateTrust

CRYPT_TRUST_REG_ENTRY HTTPSCertificateTrust
static

◆ HTTPSFinalProv

CRYPT_TRUST_REG_ENTRY HTTPSFinalProv
static

◆ 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

Definition at line 74 of file register.c.

Referenced by AcpiNsPrintNodePathname(), AcpiUtMethodError(), AcpiUtPrefixedNamespaceError(), AcpiUtUpdateRefCount(), AdvancedDlgProc(), AllocateUserMessage(), auxMessage(), BaseSrvFillCommandInfo(), BlResourceFindMessage(), BrowseDlgProc(), CharMapDlgProc(), ClientThread(), co_IntCallWindowProc(), co_IntSendMessageWithCallBack(), co_IntShellHookNotify(), co_MsqDispatchOneSentMessage(), co_MsqReplyMessage(), co_MsqSendMessage(), co_MsqSendMessageAsync(), CryptExtOpenCERW(), CsrSbApiHandleConnectionRequest(), CustomizeClassicProc(), CustomizeNotifyIconsProc(), DbgkpQueueMessage(), DbgkpSendApiMessageLpc(), DisplayStatus(), DlgProc(), DriverDialogProc(), DriverProc(), ExpRaiseHardError(), FindRemoveEventMsg(), FreeUserMessage(), I_RpcWindowProc(), implicit_handle(), InitializeDeviceData(), InitiateSystemShutdownExW(), InitiateSystemShutdownW(), IntGetPaintMessage(), IntSendSyncPaint(), IopLogWorker(), KiDisplayBlueScreen(), KiDumpParameterImages(), KmtFltSendBufferToDriver(), KmtFltSendStringToDriver(), KmtFltSendToDriver(), KmtFltSendUlongToDriver(), KmtFltSendWStringToDriver(), LoadAndPrintString(), LpcExitThread(), LpcpAllocateFromPortZone(), LpcpCopyRequestData(), LpcpDeletePort(), LpcpDestroyPortQueue(), LpcpFindDataInfoMessage(), LpcpFreeConMsg(), LpcpFreeDataInfoMessage(), LpcpFreeToPortZone(), LpcpGetDataInfoFromMessage(), LpcpSaveDataInfoMessage(), LpcpVerifyMessageDataInfo(), LpcRequestPort(), LpcRequestWaitReplyPort(), LsapRmServerThread(), MainDialogProc(), MainDlgProc(), MainWndProc(), midMessage(), MmeCloseDevice(), MmeGetLineInfo(), MmeOpenDevice(), modMessage(), MountDialogProc(), MsfsClose(), MsfsQueryMailslotInformation(), MsfsRead(), MsfsWrite(), MsqCreateMessage(), MsqDestroyMessage(), MsqPeekMessage(), MsqPostMessage(), MsqPostMouseMove(), Mx::MxAssertMsg(), mxdMessage(), MyErrExit(), CNewMenu::NewItemByNonCommand(), COpenWithDialog::NoOpenDlgProc(), NotifyMmeClient(), NtAcceptConnectPort(), NtReadRequestData(), NtReplyPort(), NtReplyWaitReceivePortEx(), NtRequestPort(), NtRequestWaitReplyPort(), NtSecureConnectPort(), NtUserGetThreadState(), NtUserTranslateAccelerator(), NtWriteRequestData(), OnKey(), CCABManager::OnVerboseMessage(), OptionsDlgProc(), OutputError(), PciGetDeviceDescriptionMessage(), PopupMenuWndProc(), PopupMenuWndProcA(), PopupMenuWndProcW(), PrintWin32Error(), ProcessPortMessage(), ProgressDialogProc(), PspCatchCriticalBreak(), RemoveStartMenuItemsProc(), RtlApplicationVerifierStop(), RtlAssert(), RtlFormatMessage(), RtlFormatMessageEx(), RxAssert(), SepRmCommandServerThread(), SepRmCommandServerThreadInit(), SepRmSetAuditEvent(), ServerThread(), ShowOpenError(), ShowWriteError(), StartWithDesktop(), StopDependsDialogProc(), SwitchDisplayMode(), sys_arch_mbox_fetch(), USBPORT_AssertFailure(), UserpCaptureStringParameters(), UserpFormatMessages(), UserpFreeStringParameters(), UserPostMessage(), UserPostThreadMessage(), UserpShowInformationBalloon(), UserServerHardError(), widMessage(), WintrustAddActionID(), WintrustLoadFunctionPointers(), WintrustRemoveActionID(), WndProc(), wodMessage(), WshShell3_LogEvent(), and WsThreadDefaultBlockingHook().

◆ NullCTRE

◆ OfficeCleanupPolicy

CRYPT_TRUST_REG_ENTRY OfficeCleanupPolicy
static

◆ OfficeInitializePolicy

CRYPT_TRUST_REG_ENTRY OfficeInitializePolicy
static

◆ 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

◆ SoftpubDumpStructure

CRYPT_TRUST_REG_ENTRY SoftpubDumpStructure
static

◆ 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().