[wintrust] Add a bunch of CryptRegisterOIDFunction calls
Paul Vriens
Paul.Vriens at xs4all.nl
Wed Sep 6 06:16:01 CDT 2006
Hi,
2/3 of the registration of wintrust is done with this patch. The only thing
left is some CryptSIPAddProvider calls.
Changelog
Add a bunch of CryptRegisterOIDFunction calls
Cheers,
Paul.
---
dlls/wintrust/register.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 55 insertions(+), 0 deletions(-)
diff --git a/dlls/wintrust/register.c b/dlls/wintrust/register.c
index 90cc063..347c590 100644
--- a/dlls/wintrust/register.c
+++ b/dlls/wintrust/register.c
@@ -714,6 +714,28 @@ static void WINTRUST_RegisterGenChainVer
*/
HRESULT WINAPI DllRegisterServer(void)
{
+ static const CHAR WVTAsn1SpcPeImageDataEncode[] = "WVTAsn1SpcPeImageDataEncode";
+ static const CHAR WVTAsn1SpcPeImageDataDecode[] = "WVTAsn1SpcPeImageDataDecode";
+ static const CHAR WVTAsn1SpcLinkEncode[] = "WVTAsn1SpcLinkEncode";
+ static const CHAR WVTAsn1SpcLinkDecode[] = "WVTAsn1SpcLinkDecode";
+ static const CHAR WVTAsn1SpcSigInfoEncode[] = "WVTAsn1SpcSigInfoEncode";
+ static const CHAR WVTAsn1SpcSigInfoDecode[] = "WVTAsn1SpcSigInfoDecode";
+ static const CHAR WVTAsn1SpcIndirectDataContentEncode[] = "WVTAsn1SpcIndirectDataContentEncode";
+ static const CHAR WVTAsn1SpcIndirectDataContentDecode[] = "WVTAsn1SpcIndirectDataContentDecode";
+ static const CHAR WVTAsn1SpcSpAgencyInfoEncode[] = "WVTAsn1SpcSpAgencyInfoEncode";
+ static const CHAR WVTAsn1SpcSpAgencyInfoDecode[] = "WVTAsn1SpcSpAgencyInfoDecode";
+ static const CHAR WVTAsn1SpcMinimalCriteriaInfoEncode[] = "WVTAsn1SpcMinimalCriteriaInfoEncode";
+ static const CHAR WVTAsn1SpcMinimalCriteriaInfoDecode[] = "WVTAsn1SpcMinimalCriteriaInfoDecode";
+ static const CHAR WVTAsn1SpcFinancialCriteriaInfoEncode[] = "WVTAsn1SpcFinancialCriteriaInfoEncode";
+ static const CHAR WVTAsn1SpcFinancialCriteriaInfoDecode[] = "WVTAsn1SpcFinancialCriteriaInfoDecode";
+ static const CHAR WVTAsn1SpcStatementTypeEncode[] = "WVTAsn1SpcStatementTypeEncode";
+ static const CHAR WVTAsn1SpcStatementTypeDecode[] = "WVTAsn1SpcStatementTypeDecode";
+ static const CHAR WVTAsn1CatNameValueEncode[] = "WVTAsn1CatNameValueEncode";
+ static const CHAR WVTAsn1CatNameValueDecode[] = "WVTAsn1CatNameValueDecode";
+ static const CHAR WVTAsn1CatMemberInfoEncode[] = "WVTAsn1CatMemberInfoEncode";
+ static const CHAR WVTAsn1CatMemberInfoDecode[] = "WVTAsn1CatMemberInfoDecode";
+ static const CHAR WVTAsn1SpcSpOpusInfoEncode[] = "WVTAsn1SpcSpOpusInfoEncode";
+ static const CHAR WVTAsn1SpcSpOpusInfoDecode[] = "WVTAsn1SpcSpOpusInfoDecode";
HRESULT Res = S_OK;
HKEY Key;
@@ -729,6 +751,39 @@ HRESULT WINAPI DllRegisterServer(void)
* - One call to CryptSIPRemoveProvider (do we need that?)
*/
+#define WINTRUST_REGISTEROID( oid, encode_funcname, decode_funcname ) \
+ CryptRegisterOIDFunction(X509_ASN_ENCODING, CRYPT_OID_ENCODE_OBJECT_FUNC, oid, SP_POLICY_PROVIDER_DLL_NAME, encode_funcname); \
+ CryptRegisterOIDFunction(X509_ASN_ENCODING, CRYPT_OID_DECODE_OBJECT_FUNC, oid, SP_POLICY_PROVIDER_DLL_NAME, decode_funcname)
+
+ WINTRUST_REGISTEROID(SPC_PE_IMAGE_DATA_OBJID, WVTAsn1SpcPeImageDataEncode, WVTAsn1SpcPeImageDataDecode);
+ WINTRUST_REGISTEROID(SPC_PE_IMAGE_DATA_STRUCT, WVTAsn1SpcPeImageDataEncode, WVTAsn1SpcPeImageDataDecode);
+ WINTRUST_REGISTEROID(SPC_CAB_DATA_OBJID, WVTAsn1SpcLinkEncode, WVTAsn1SpcLinkDecode);
+ WINTRUST_REGISTEROID(SPC_CAB_DATA_STRUCT, WVTAsn1SpcLinkEncode, WVTAsn1SpcLinkDecode);
+ WINTRUST_REGISTEROID(SPC_JAVA_CLASS_DATA_OBJID, WVTAsn1SpcLinkEncode, WVTAsn1SpcLinkDecode);
+ WINTRUST_REGISTEROID(SPC_JAVA_CLASS_DATA_STRUCT, WVTAsn1SpcLinkEncode, WVTAsn1SpcLinkDecode);
+ WINTRUST_REGISTEROID(SPC_LINK_OBJID, WVTAsn1SpcLinkEncode, WVTAsn1SpcLinkDecode);
+ WINTRUST_REGISTEROID(SPC_LINK_STRUCT, WVTAsn1SpcLinkEncode, WVTAsn1SpcLinkDecode);
+ WINTRUST_REGISTEROID(SPC_SIGINFO_OBJID, WVTAsn1SpcSigInfoEncode, WVTAsn1SpcSigInfoDecode);
+ WINTRUST_REGISTEROID(SPC_SIGINFO_STRUCT, WVTAsn1SpcSigInfoEncode, WVTAsn1SpcSigInfoDecode);
+ WINTRUST_REGISTEROID(SPC_INDIRECT_DATA_OBJID, WVTAsn1SpcIndirectDataContentEncode, WVTAsn1SpcIndirectDataContentDecode);
+ WINTRUST_REGISTEROID(SPC_INDIRECT_DATA_CONTENT_STRUCT, WVTAsn1SpcIndirectDataContentEncode, WVTAsn1SpcIndirectDataContentDecode);
+ WINTRUST_REGISTEROID(SPC_SP_AGENCY_INFO_OBJID, WVTAsn1SpcSpAgencyInfoEncode, WVTAsn1SpcSpAgencyInfoDecode);
+ WINTRUST_REGISTEROID(SPC_SP_AGENCY_INFO_STRUCT, WVTAsn1SpcSpAgencyInfoEncode, WVTAsn1SpcSpAgencyInfoDecode);
+ WINTRUST_REGISTEROID(SPC_MINIMAL_CRITERIA_OBJID, WVTAsn1SpcMinimalCriteriaInfoEncode, WVTAsn1SpcMinimalCriteriaInfoDecode);
+ WINTRUST_REGISTEROID(SPC_MINIMAL_CRITERIA_STRUCT, WVTAsn1SpcMinimalCriteriaInfoEncode, WVTAsn1SpcMinimalCriteriaInfoDecode);
+ WINTRUST_REGISTEROID(SPC_FINANCIAL_CRITERIA_OBJID, WVTAsn1SpcFinancialCriteriaInfoEncode, WVTAsn1SpcFinancialCriteriaInfoDecode);
+ WINTRUST_REGISTEROID(SPC_FINANCIAL_CRITERIA_STRUCT, WVTAsn1SpcFinancialCriteriaInfoEncode, WVTAsn1SpcFinancialCriteriaInfoDecode);
+ WINTRUST_REGISTEROID(SPC_STATEMENT_TYPE_OBJID, WVTAsn1SpcStatementTypeEncode, WVTAsn1SpcStatementTypeDecode);
+ WINTRUST_REGISTEROID(SPC_STATEMENT_TYPE_STRUCT, WVTAsn1SpcStatementTypeEncode, WVTAsn1SpcStatementTypeDecode);
+ WINTRUST_REGISTEROID(CAT_NAMEVALUE_OBJID, WVTAsn1CatNameValueEncode, WVTAsn1CatNameValueDecode);
+ WINTRUST_REGISTEROID(CAT_NAMEVALUE_STRUCT, WVTAsn1CatNameValueEncode, WVTAsn1CatNameValueDecode);
+ WINTRUST_REGISTEROID(CAT_MEMBERINFO_OBJID, WVTAsn1CatMemberInfoEncode, WVTAsn1CatMemberInfoDecode);
+ WINTRUST_REGISTEROID(CAT_MEMBERINFO_STRUCT, WVTAsn1CatMemberInfoEncode, WVTAsn1CatMemberInfoDecode);
+ WINTRUST_REGISTEROID(SPC_SP_OPUS_INFO_OBJID, WVTAsn1SpcSpOpusInfoEncode, WVTAsn1SpcSpOpusInfoDecode);
+ WINTRUST_REGISTEROID(SPC_SP_OPUS_INFO_STRUCT, WVTAsn1SpcSpOpusInfoEncode, WVTAsn1SpcSpOpusInfoDecode);
+
+#undef WINTRUST_REGISTEROID
+
/* Testing on W2K3 shows:
* If we cannot open HKLM\Software\Microsoft\Cryptography\Providers\Trust
* for writing, DllRegisterServer returns S_FALSE. If the key can be opened
--
1.4.2
More information about the wine-patches
mailing list