From 4a815b7e4dc53999cf41735427d047670ec2c1eb Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=A9=20van=20Geldorp?= Date: Sun, 20 Nov 2005 15:43:38 +0000 Subject: [PATCH] Revert to Wine code to facilitate future syncs. Thanks to Thomas for making this possible. svn path=/trunk/; revision=19373 --- reactos/lib/crypt32/cert.c | 84 ++------ reactos/lib/crypt32/crypt32.def | 105 ---------- reactos/lib/crypt32/crypt32.xml | 6 +- reactos/lib/crypt32/encode.c | 315 ++++++++++++++++-------------- reactos/lib/crypt32/main.c | 100 +++++----- reactos/lib/crypt32/precomp.h | 21 -- reactos/lib/crypt32/protectdata.c | 11 +- 7 files changed, 249 insertions(+), 393 deletions(-) delete mode 100644 reactos/lib/crypt32/crypt32.def delete mode 100644 reactos/lib/crypt32/precomp.h diff --git a/reactos/lib/crypt32/cert.c b/reactos/lib/crypt32/cert.c index cdcd32234d6..738f76acf67 100644 --- a/reactos/lib/crypt32/cert.c +++ b/reactos/lib/crypt32/cert.c @@ -1,6 +1,5 @@ /* - * Copyright 2002 - Mike McCormack for CodeWeavers + * Copyright 2002 Mike McCormack for CodeWeavers * Copyright 2004,2005 Juan Lang * * This library is free software; you can redistribute it and/or @@ -28,17 +27,19 @@ * registering and enumerating physical stores and locations.) * - Many flags, options and whatnot are unimplemented. */ - -#include "precomp.h" - -#define NONAMELESSUNION - -static _SEH_FILTER(page_fault) -{ - if (_SEH_GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION) - return _SEH_EXECUTE_HANDLER; - return _SEH_CONTINUE_SEARCH; -} +#include +#include +#include "windef.h" +#include "winbase.h" +#include "winnls.h" +#include "winreg.h" +#include "winuser.h" +#include "wincrypt.h" +#include "wine/debug.h" +#include "wine/list.h" +#include "excpt.h" +#include "wine/exception.h" +#include "crypt32_private.h" WINE_DEFAULT_DEBUG_CHANNEL(crypt); @@ -313,14 +314,12 @@ static const void * WINAPI CRYPT_ReadSerializedElement(const BYTE *pbElement, DWORD cbElement, DWORD dwContextTypeFlags, DWORD *pdwContentType); /* filter for page-fault exceptions */ -/* static WINE_EXCEPTION_FILTER(page_fault) { if (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION) return EXCEPTION_EXECUTE_HANDLER; return EXCEPTION_CONTINUE_SEARCH; } -*/ static void CRYPT_InitStore(WINECRYPT_CERTSTORE *store, HCRYPTPROV hCryptProv, DWORD dwFlags, CertStoreType type) @@ -341,7 +340,6 @@ static void CRYPT_InitStore(WINECRYPT_CERTSTORE *store, HCRYPTPROV hCryptProv, * be a PWINE_CERT_CONTEXT, and increments pCertContext's reference count. * Also sets the hCertStore member of the reference to store. */ - static void CRYPT_InitCertRef(PWINE_CERT_CONTEXT_REF ref, PWINE_CERT_CONTEXT context, HCERTSTORE store) { @@ -2664,7 +2662,7 @@ static const void * WINAPI CRYPT_ReadSerializedElement(const BYTE *pbElement, return NULL; } - _SEH_TRY + __TRY { const WINE_CONTEXT_INTERFACE *contextInterface = NULL; const WINE_CERT_PROP_HEADER *hdr = NULL; @@ -2821,12 +2819,12 @@ static const void * WINAPI CRYPT_ReadSerializedElement(const BYTE *pbElement, } } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); context = NULL; } - _SEH_END + __ENDTRY return context; } @@ -3313,15 +3311,6 @@ BOOL WINAPI CryptVerifyCertificateSignatureEx(HCRYPTPROV hCryptProv, return ret; } -BOOL WINAPI CryptEncryptMessage( PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptMessagePara, - DWORD dwCert, PCCERT_CONTEXT pccertCert[], - const BYTE* pbEncrypted, DWORD dwEncrypted, - BYTE* pbBlob, DWORD* dwEncryptedBlob) -{ - UNIMPLEMENTED; - return FALSE; -} - HCRYPTOIDFUNCSET WINAPI CryptInitOIDFunctionSet(LPCSTR pszFuncName, DWORD dwFlags) { FIXME("stub: %s %lx\n", debugstr_a(pszFuncName), dwFlags); @@ -3334,42 +3323,3 @@ BOOL WINAPI CryptUnregisterDefaultOIDFunction(DWORD dwEncodingType, FIXME("stub: %lx %s %s\n", dwEncodingType, debugstr_a(pszFuncName), debugstr_w(pwszDll)); return FALSE; } - -DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT pCertContext, - DWORD dwType, DWORD dwFlags, - LPVOID pvType, LPWSTR pszName, - DWORD dwName) -{ - UNIMPLEMENTED; - return ERROR_CALL_NOT_IMPLEMENTED; -} - -DWORD WINAPI CertGetNameStringA(PCCERT_CONTEXT pCertContext, - DWORD dwType, DWORD dwFlags, - LPVOID pvType, LPSTR pszName, - DWORD dwName) -{ - UNIMPLEMENTED; - return ERROR_CALL_NOT_IMPLEMENTED; -} - - -DWORD WINAPI CertNameToStrA(DWORD dwCertEncoding, - PCERT_NAME_BLOB pCertName, - DWORD dwType, LPSTR psz, - DWORD dwSZ) -{ - UNIMPLEMENTED; - return ERROR_CALL_NOT_IMPLEMENTED; -} - -DWORD WINAPI CertNameToStrW(DWORD dwCertEncoding, - PCERT_NAME_BLOB pCertName, - DWORD dwType, LPWSTR psz, - DWORD dwSZ) -{ - UNIMPLEMENTED; - return ERROR_CALL_NOT_IMPLEMENTED; -} - - diff --git a/reactos/lib/crypt32/crypt32.def b/reactos/lib/crypt32/crypt32.def deleted file mode 100644 index 41973d9f4c2..00000000000 --- a/reactos/lib/crypt32/crypt32.def +++ /dev/null @@ -1,105 +0,0 @@ -LIBRARY CRYPT32.DLL -EXPORTS - -CertAddEncodedCRLToStore@24 @1022 - -CertAddSerializedElementToStore@32 @1028 -CertAddStoreToCollection@16 @1029 -CertAlgIdToOID@4 @1030 -CertCloseStore@8 @1031 - -CertDeleteCRLFromStore@4 @1044 - -CertDeleteCertificateFromStore@4 @1046 - -CertFindAttribute@12 @1062 - -CertFindCertificateInStore@24 @1066 - -CertFindExtension@12 @1068 -CertFindRDNAttr@8 @1069 - -CertFreeCRLContext@4 @1072 -CertFreeCTLContext@4 @1073 - -CertFreeCertificateContext@4 @1076 - -CertGetCTLContextProperty@16 @1079 - -CertGetCertificateContextProperty@16 @1081 - -CertGetNameStringA@24 @1085 -CertGetNameStringW@24 @1086 - -CertNameToStrA@20 @1093 -CertNameToStrW@20 @1094 -CertOIDToAlgId@4 @1095 - -CertOpenSystemStoreA@8 @1097 -CertOpenSystemStoreW@8 @1098 - -CertRemoveStoreFromCollection@8 @1104 - -CertSerializeCTLStoreElement@16 @1108 -CertSerializeCertificateStoreElement@16 @1109 - -CertSetCTLContextProperty@16 @1111 -CertSetCertificateContextProperty@16 @1113 - -CertVerifyTimeValidity@8 @1126 - -CryptDecodeObjectEx@32 @1138 - -CryptEncodeObject@20 @1141 - -CryptEncryptMessage@28 @1143 - -CryptExportPublicKeyInfo@20 @1149 -CryptExportPublicKeyInfoEx@32 @1150 - -CryptGetOIDFunctionValue@28 @1163 -CryptHashCertificate@28 @1164 - -CryptImportPublicKeyInfo@16 @1169 -CryptImportPublicKeyInfoEx@28 @1170 - -CryptMemAlloc@4 @1175 -CryptMemFree@4 @1176 -CryptMemRealloc@8 @1177 - -CryptProtectData@28 @1193 - -CryptRegisterDefaultOIDFunction@16 @1195 -CryptRegisterOIDFunction@20 @1196 - -CryptSIPAddProvider@4 @1198 - -CryptSIPLoad@12 @1201 -CryptSIPRemoveProvider@4 @1203 - -CryptSIPRetrieveSubjectGuid@12 @1205 - -CryptSetOIDFunctionValue@28 @1210 - -CryptSignCertificate@36 @1214 - -CryptUnprotectData@28 @1221 - -CryptUnregisterOIDFunction@12 @1223 - -CryptVerifyCertificateSignature@20 -CryptVerifyCertificateSignatureEx@32 @1226 - -I_CryptCreateLruCache@8 @1240 - -I_CryptDetachTls@4 @1242 - -I_CryptFindLruEntryData@4 @1247 - -I_CryptFlushLruCache@4 @1249 -I_CryptFreeLruCache@4 @1250 -I_CryptFreeTls@8 @1251 - -I_CryptGetTls@4 @1260 - -I_CryptSetTls@8 @1268 \ No newline at end of file diff --git a/reactos/lib/crypt32/crypt32.xml b/reactos/lib/crypt32/crypt32.xml index 4146375e54b..c64f88735d2 100644 --- a/reactos/lib/crypt32/crypt32.xml +++ b/reactos/lib/crypt32/crypt32.xml @@ -1,9 +1,9 @@ - + . + include/wine 0x501 - pseh ntdll kernel32 wine @@ -13,5 +13,5 @@ cert.c protectdata.c crypt32.rc - precomp.h + crypt32.spec diff --git a/reactos/lib/crypt32/encode.c b/reactos/lib/crypt32/encode.c index 93804319a50..e3953186987 100644 --- a/reactos/lib/crypt32/encode.c +++ b/reactos/lib/crypt32/encode.c @@ -31,15 +31,21 @@ * MSDN, especially: * http://msdn.microsoft.com/library/en-us/seccrypto/security/constants_for_cryptencodeobject_and_cryptdecodeobject.asp */ - -#include "precomp.h" - -static _SEH_FILTER(page_fault) -{ - if (_SEH_GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION) - return _SEH_EXECUTE_HANDLER; - return _SEH_CONTINUE_SEARCH; -} +#include +#include +#include +#include + +#define NONAMELESSUNION + +#include "windef.h" +#include "winbase.h" +#include "excpt.h" +#include "wincrypt.h" +#include "winreg.h" +#include "snmp.h" +#include "wine/debug.h" +#include "wine/exception.h" /* This is a bit arbitrary, but to set some limit: */ #define MAX_ENCODED_LEN 0x02000000 @@ -47,7 +53,6 @@ static _SEH_FILTER(page_fault) /* a few asn.1 tags we need */ #define ASN_BOOL (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x01) #define ASN_BITSTRING (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x03) -//#define ASN_OCTETSTRING (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x04) #define ASN_ENUMERATED (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x0a) #define ASN_SETOF (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x11) #define ASN_NUMERICSTRING (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x12) @@ -168,6 +173,14 @@ static BOOL WINAPI CRYPT_AsnDecodeUnsignedIntegerInternal( DWORD cbEncoded, DWORD dwFlags, PCRYPT_DECODE_PARA pDecodePara, void *pvStructInfo, DWORD *pcbStructInfo); +/* filter for page-fault exceptions */ +static WINE_EXCEPTION_FILTER(page_fault) +{ + if (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION) + return EXCEPTION_EXECUTE_HANDLER; + return EXCEPTION_CONTINUE_SEARCH; +} + static char *CRYPT_GetKeyName(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID) { @@ -716,7 +729,7 @@ static BOOL WINAPI CRYPT_AsnEncodePubKeyInfo(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { const CERT_PUBLIC_KEY_INFO *info = (const CERT_PUBLIC_KEY_INFO *)pvStructInfo; @@ -731,12 +744,12 @@ static BOOL WINAPI CRYPT_AsnEncodePubKeyInfo(DWORD dwCertEncodingType, sizeof(items) / sizeof(items[0]), dwFlags, pEncodePara, pbEncoded, pcbEncoded); } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -746,7 +759,7 @@ static BOOL WINAPI CRYPT_AsnEncodeCert(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { const CERT_SIGNED_CONTENT_INFO *info = (const CERT_SIGNED_CONTENT_INFO *)pvStructInfo; @@ -762,12 +775,12 @@ static BOOL WINAPI CRYPT_AsnEncodeCert(DWORD dwCertEncodingType, sizeof(items) / sizeof(items[0]), dwFlags, pEncodePara, pbEncoded, pcbEncoded); } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -781,7 +794,7 @@ static BOOL WINAPI CRYPT_AsnEncodeCertInfo(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { const CERT_INFO *info = (const CERT_INFO *)pvStructInfo; struct AsnEncodeSequenceItem items[10] = { @@ -831,12 +844,12 @@ static BOOL WINAPI CRYPT_AsnEncodeCertInfo(DWORD dwCertEncodingType, ret = CRYPT_AsnEncodeSequence(dwCertEncodingType, items, cItem, dwFlags, pEncodePara, pbEncoded, pcbEncoded); } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -941,7 +954,7 @@ static BOOL WINAPI CRYPT_AsnEncodeCRLInfo(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { const CRL_INFO *info = (const CRL_INFO *)pvStructInfo; struct AsnEncodeSequenceItem items[7] = { @@ -975,12 +988,12 @@ static BOOL WINAPI CRYPT_AsnEncodeCRLInfo(DWORD dwCertEncodingType, ret = CRYPT_AsnEncodeSequence(dwCertEncodingType, items, cItem, dwFlags, pEncodePara, pbEncoded, pcbEncoded); } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -1019,7 +1032,7 @@ static BOOL WINAPI CRYPT_AsnEncodeExtensions(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { DWORD bytesNeeded, dataLen, lenBytes, i; const CERT_EXTENSIONS *exts = (const CERT_EXTENSIONS *)pvStructInfo; @@ -1059,12 +1072,12 @@ static BOOL WINAPI CRYPT_AsnEncodeExtensions(DWORD dwCertEncodingType, } } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -1308,7 +1321,7 @@ static BOOL WINAPI CRYPT_AsnEncodeRdn(DWORD dwCertEncodingType, CERT_RDN *rdn, BOOL ret; CRYPT_DER_BLOB *blobs = NULL; - _SEH_TRY + __TRY { DWORD bytesNeeded = 0, lenBytes, i; @@ -1376,12 +1389,12 @@ static BOOL WINAPI CRYPT_AsnEncodeRdn(DWORD dwCertEncodingType, CERT_RDN *rdn, CryptMemFree(blobs[i].pbData); } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); return FALSE; } - _SEH_END + __ENDTRY CryptMemFree(blobs); return ret; } @@ -1392,7 +1405,7 @@ static BOOL WINAPI CRYPT_AsnEncodeName(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { const CERT_NAME_INFO *info = (const CERT_NAME_INFO *)pvStructInfo; DWORD bytesNeeded = 0, lenBytes, size, i; @@ -1438,12 +1451,12 @@ static BOOL WINAPI CRYPT_AsnEncodeName(DWORD dwCertEncodingType, } } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -1490,15 +1503,15 @@ static BOOL CRYPT_AsnEncodeAltNameEntry(const CERT_ALT_NAME_ENTRY *entry, case CERT_ALT_NAME_RFC822_NAME: case CERT_ALT_NAME_DNS_NAME: case CERT_ALT_NAME_URL: - if (entry->pwszURL) + if (entry->u.pwszURL) { DWORD i; /* Not + 1: don't encode the NULL-terminator */ - dataLen = lstrlenW(entry->pwszURL); + dataLen = lstrlenW(entry->u.pwszURL); for (i = 0; ret && i < dataLen; i++) { - if (entry->pwszURL[i] > 0x7f) + if (entry->u.pwszURL[i] > 0x7f) { SetLastError(CRYPT_E_INVALID_IA5_STRING); ret = FALSE; @@ -1510,7 +1523,7 @@ static BOOL CRYPT_AsnEncodeAltNameEntry(const CERT_ALT_NAME_ENTRY *entry, dataLen = 0; break; case CERT_ALT_NAME_IP_ADDRESS: - dataLen = entry->IPAddress.cbData; + dataLen = entry->u.IPAddress.cbData; break; case CERT_ALT_NAME_REGISTERED_ID: /* FIXME: encode OID */ @@ -1550,11 +1563,11 @@ static BOOL CRYPT_AsnEncodeAltNameEntry(const CERT_ALT_NAME_ENTRY *entry, DWORD i; for (i = 0; i < dataLen; i++) - *pbEncoded++ = (BYTE)entry->pwszURL[i]; + *pbEncoded++ = (BYTE)entry->u.pwszURL[i]; break; } case CERT_ALT_NAME_IP_ADDRESS: - memcpy(pbEncoded, entry->IPAddress.pbData, dataLen); + memcpy(pbEncoded, entry->u.IPAddress.pbData, dataLen); break; } if (ret) @@ -1571,7 +1584,7 @@ static BOOL WINAPI CRYPT_AsnEncodeAltName(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { const CERT_ALT_NAME_INFO *info = (const CERT_ALT_NAME_INFO *)pvStructInfo; @@ -1635,12 +1648,12 @@ static BOOL WINAPI CRYPT_AsnEncodeAltName(DWORD dwCertEncodingType, } } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -1650,7 +1663,7 @@ static BOOL WINAPI CRYPT_AsnEncodeBasicConstraints2(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { const CERT_BASIC_CONSTRAINTS2_INFO *info = (const CERT_BASIC_CONSTRAINTS2_INFO *)pvStructInfo; @@ -1672,12 +1685,12 @@ static BOOL WINAPI CRYPT_AsnEncodeBasicConstraints2(DWORD dwCertEncodingType, ret = CRYPT_AsnEncodeSequence(dwCertEncodingType, items, cItem, dwFlags, pEncodePara, pbEncoded, pcbEncoded); } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -1687,7 +1700,7 @@ static BOOL WINAPI CRYPT_AsnEncodeRsaPubKey(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { const BLOBHEADER *hdr = (const BLOBHEADER *)pvStructInfo; @@ -1713,12 +1726,12 @@ static BOOL WINAPI CRYPT_AsnEncodeRsaPubKey(DWORD dwCertEncodingType, pcbEncoded); } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -1728,7 +1741,7 @@ static BOOL WINAPI CRYPT_AsnEncodeOctets(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { const CRYPT_DATA_BLOB *blob = (const CRYPT_DATA_BLOB *)pvStructInfo; DWORD bytesNeeded, lenBytes; @@ -1758,12 +1771,12 @@ static BOOL WINAPI CRYPT_AsnEncodeOctets(DWORD dwCertEncodingType, } } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY TRACE("returning %d (%08lx)\n", ret, GetLastError()); return ret; } @@ -1774,7 +1787,7 @@ static BOOL WINAPI CRYPT_AsnEncodeBits(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { const CRYPT_BIT_BLOB *blob = (const CRYPT_BIT_BLOB *)pvStructInfo; DWORD bytesNeeded, lenBytes, dataBytes; @@ -1829,12 +1842,12 @@ static BOOL WINAPI CRYPT_AsnEncodeBits(DWORD dwCertEncodingType, } } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -1844,7 +1857,7 @@ static BOOL WINAPI CRYPT_AsnEncodeBitsSwapBytes(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { const CRYPT_BIT_BLOB *blob = (const CRYPT_BIT_BLOB *)pvStructInfo; CRYPT_BIT_BLOB newBlob = { blob->cbData, NULL, blob->cUnusedBits }; @@ -1868,12 +1881,12 @@ static BOOL WINAPI CRYPT_AsnEncodeBitsSwapBytes(DWORD dwCertEncodingType, &newBlob, dwFlags, pEncodePara, pbEncoded, pcbEncoded); CryptMemFree(newBlob.pbData); } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -1893,7 +1906,7 @@ static BOOL WINAPI CRYPT_AsnEncodeInteger(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { DWORD significantBytes, lenBytes; BYTE padByte = 0, bytesNeeded; @@ -1967,12 +1980,12 @@ static BOOL WINAPI CRYPT_AsnEncodeInteger(DWORD dwCertEncodingType, } } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -1982,7 +1995,7 @@ static BOOL WINAPI CRYPT_AsnEncodeUnsignedInteger(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { DWORD significantBytes, lenBytes; BYTE bytesNeeded; @@ -2038,12 +2051,12 @@ static BOOL WINAPI CRYPT_AsnEncodeUnsignedInteger(DWORD dwCertEncodingType, } } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -2074,7 +2087,7 @@ static BOOL WINAPI CRYPT_AsnEncodeUtcTime(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { SYSTEMTIME sysTime; /* sorry, magic number: enough for tag, len, YYMMDDHHMMSSZ\0. I use a @@ -2117,12 +2130,12 @@ static BOOL WINAPI CRYPT_AsnEncodeUtcTime(DWORD dwCertEncodingType, } } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -2132,7 +2145,7 @@ static BOOL WINAPI CRYPT_AsnEncodeGeneralizedTime(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { SYSTEMTIME sysTime; /* sorry, magic number: enough for tag, len, YYYYMMDDHHMMSSZ\0. I use a @@ -2166,12 +2179,12 @@ static BOOL WINAPI CRYPT_AsnEncodeGeneralizedTime(DWORD dwCertEncodingType, } } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -2181,7 +2194,7 @@ static BOOL WINAPI CRYPT_AsnEncodeChoiceOfTime(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { SYSTEMTIME sysTime; @@ -2196,12 +2209,12 @@ static BOOL WINAPI CRYPT_AsnEncodeChoiceOfTime(DWORD dwCertEncodingType, lpszStructType, pvStructInfo, dwFlags, pEncodePara, pbEncoded, pcbEncoded); } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -2211,7 +2224,7 @@ static BOOL WINAPI CRYPT_AsnEncodeSequenceOfAny(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { DWORD bytesNeeded, dataLen, lenBytes, i; const CRYPT_SEQUENCE_OF_ANY *seq = @@ -2245,12 +2258,12 @@ static BOOL WINAPI CRYPT_AsnEncodeSequenceOfAny(DWORD dwCertEncodingType, } } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -2823,7 +2836,7 @@ static BOOL WINAPI CRYPT_AsnDecodeCert(DWORD dwCertEncodingType, TRACE("%p, %ld, %08lx, %p, %p, %ld\n", pbEncoded, cbEncoded, dwFlags, pDecodePara, pvStructInfo, *pcbStructInfo); - _SEH_TRY + __TRY { struct AsnDecodeSequenceItem items[] = { { offsetof(CERT_SIGNED_CONTENT_INFO, ToBeSigned), @@ -2844,12 +2857,12 @@ static BOOL WINAPI CRYPT_AsnDecodeCert(DWORD dwCertEncodingType, sizeof(items) / sizeof(items[0]), pbEncoded, cbEncoded, dwFlags, pDecodePara, pvStructInfo, pcbStructInfo, NULL); } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -2935,7 +2948,7 @@ static BOOL WINAPI CRYPT_AsnDecodeCertInfo(DWORD dwCertEncodingType, TRACE("%p, %ld, %08lx, %p, %p, %ld\n", pbEncoded, cbEncoded, dwFlags, pDecodePara, pvStructInfo, *pcbStructInfo); - _SEH_TRY + __TRY { struct AsnDecodeSequenceItem items[] = { { offsetof(CERT_INFO, dwVersion), CRYPT_AsnDecodeCertVersion, @@ -2972,12 +2985,12 @@ static BOOL WINAPI CRYPT_AsnDecodeCertInfo(DWORD dwCertEncodingType, sizeof(items) / sizeof(items[0]), pbEncoded, cbEncoded, dwFlags, pDecodePara, pvStructInfo, pcbStructInfo, NULL); } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -3124,7 +3137,7 @@ static BOOL WINAPI CRYPT_AsnDecodeCRLInfo(DWORD dwCertEncodingType, TRACE("%p, %ld, %08lx, %p, %p, %ld\n", pbEncoded, cbEncoded, dwFlags, pDecodePara, pvStructInfo, *pcbStructInfo); - _SEH_TRY + __TRY { struct AsnDecodeSequenceItem items[] = { { offsetof(CRL_INFO, dwVersion), CRYPT_AsnDecodeCertVersion, @@ -3152,12 +3165,12 @@ static BOOL WINAPI CRYPT_AsnDecodeCRLInfo(DWORD dwCertEncodingType, sizeof(items) / sizeof(items[0]), pbEncoded, cbEncoded, dwFlags, pDecodePara, pvStructInfo, pcbStructInfo, NULL); } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY TRACE("Returning %d (%08lx)\n", ret, GetLastError()); return ret; @@ -3323,7 +3336,7 @@ static BOOL WINAPI CRYPT_AsnDecodeExtensions(DWORD dwCertEncodingType, { BOOL ret = TRUE; - _SEH_TRY + __TRY { ret = CRYPT_AsnDecodeExtensionsInternal(dwCertEncodingType, lpszStructType, pbEncoded, cbEncoded, @@ -3348,12 +3361,12 @@ static BOOL WINAPI CRYPT_AsnDecodeExtensions(DWORD dwCertEncodingType, } } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -3366,7 +3379,7 @@ static BOOL WINAPI CRYPT_AsnDecodeOid(const BYTE *pbEncoded, DWORD cbEncoded, TRACE("%p, %ld, %08lx, %p, %ld\n", pbEncoded, cbEncoded, dwFlags, pszObjId, *pcbObjId); - _SEH_TRY + __TRY { if (pbEncoded[0] == ASN_OBJECTIDENTIFIER) { @@ -3463,12 +3476,12 @@ static BOOL WINAPI CRYPT_AsnDecodeOid(const BYTE *pbEncoded, DWORD cbEncoded, ret = FALSE; } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -3481,7 +3494,7 @@ static BOOL WINAPI CRYPT_AsnDecodeNameValue(const BYTE *pbEncoded, { BOOL ret = TRUE; - _SEH_TRY + __TRY { DWORD dataLen; @@ -3565,12 +3578,12 @@ static BOOL WINAPI CRYPT_AsnDecodeNameValue(const BYTE *pbEncoded, } } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -3582,7 +3595,7 @@ static BOOL WINAPI CRYPT_AsnDecodeRdnAttr(const BYTE *pbEncoded, { BOOL ret; - _SEH_TRY + __TRY { if (pbEncoded[0] == (ASN_CONSTRUCTOR | ASN_SEQUENCE)) { @@ -3694,12 +3707,12 @@ static BOOL WINAPI CRYPT_AsnDecodeRdnAttr(const BYTE *pbEncoded, ret = FALSE; } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -3708,7 +3721,7 @@ static BOOL WINAPI CRYPT_AsnDecodeRdn(const BYTE *pbEncoded, DWORD cbEncoded, { BOOL ret = TRUE; - _SEH_TRY + __TRY { if (pbEncoded[0] == (ASN_CONSTRUCTOR | ASN_SETOF)) { @@ -3809,12 +3822,12 @@ static BOOL WINAPI CRYPT_AsnDecodeRdn(const BYTE *pbEncoded, DWORD cbEncoded, ret = FALSE; } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -3824,7 +3837,7 @@ static BOOL WINAPI CRYPT_AsnDecodeName(DWORD dwCertEncodingType, { BOOL ret = TRUE; - _SEH_TRY + __TRY { if (pbEncoded[0] == (ASN_CONSTRUCTOR | ASN_SEQUENCEOF)) { @@ -3919,12 +3932,12 @@ static BOOL WINAPI CRYPT_AsnDecodeName(DWORD dwCertEncodingType, ret = FALSE; } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -4001,7 +4014,7 @@ static BOOL WINAPI CRYPT_AsnDecodePubKeyInfo(DWORD dwCertEncodingType, { BOOL ret = TRUE; - _SEH_TRY + __TRY { struct AsnDecodeSequenceItem items[] = { { offsetof(CERT_PUBLIC_KEY_INFO, Algorithm), @@ -4017,12 +4030,12 @@ static BOOL WINAPI CRYPT_AsnDecodePubKeyInfo(DWORD dwCertEncodingType, sizeof(items) / sizeof(items[0]), pbEncoded, cbEncoded, dwFlags, pDecodePara, pvStructInfo, pcbStructInfo, NULL); } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -4145,18 +4158,18 @@ static BOOL CRYPT_AsnDecodeAltNameEntry(const BYTE *pbEncoded, DWORD cbEncoded, DWORD i; for (i = 0; i < dataLen; i++) - entry->pwszURL[i] = + entry->u.pwszURL[i] = (WCHAR)pbEncoded[1 + lenBytes + i]; - entry->pwszURL[i] = 0; + entry->u.pwszURL[i] = 0; break; } case 7: /* iPAddress */ /* The next data pointer is in the pwszURL spot, that is, * the first 4 bytes. Need to move it to the next spot. */ - entry->IPAddress.pbData = (LPBYTE)entry->pwszURL; - entry->IPAddress.cbData = dataLen; - memcpy(entry->IPAddress.pbData, pbEncoded + 1 + lenBytes, + entry->u.IPAddress.pbData = (LPBYTE)entry->u.pwszURL; + entry->u.IPAddress.cbData = dataLen; + memcpy(entry->u.IPAddress.pbData, pbEncoded + 1 + lenBytes, dataLen); break; } @@ -4172,7 +4185,7 @@ static BOOL WINAPI CRYPT_AsnDecodeAltName(DWORD dwCertEncodingType, { BOOL ret = TRUE; - _SEH_TRY + __TRY { if (pbEncoded[0] == ASN_SEQUENCEOF) { @@ -4238,7 +4251,7 @@ static BOOL WINAPI CRYPT_AsnDecodeAltName(DWORD dwCertEncodingType, i < cEntry && ptr - pbEncoded - 1 - lenBytes < dataLen; i++) { - info->rgAltEntry[i].pwszURL = + info->rgAltEntry[i].u.pwszURL = (LPWSTR)nextData; size = bytesNeeded; ret = CRYPT_AsnDecodeAltNameEntry(ptr, @@ -4270,12 +4283,12 @@ static BOOL WINAPI CRYPT_AsnDecodeAltName(DWORD dwCertEncodingType, ret = FALSE; } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -4336,7 +4349,7 @@ static BOOL WINAPI CRYPT_AsnDecodeBasicConstraints2(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { struct AsnDecodeSequenceItem items[] = { { offsetof(CERT_BASIC_CONSTRAINTS2_INFO, fCA), CRYPT_AsnDecodeBool, @@ -4350,12 +4363,12 @@ static BOOL WINAPI CRYPT_AsnDecodeBasicConstraints2(DWORD dwCertEncodingType, sizeof(items) / sizeof(items[0]), pbEncoded, cbEncoded, dwFlags, pDecodePara, pvStructInfo, pcbStructInfo, NULL); } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -4373,7 +4386,7 @@ static BOOL WINAPI CRYPT_AsnDecodeRsaPubKey(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { struct AsnDecodeSequenceItem items[] = { { offsetof(struct DECODED_RSA_PUB_KEY, modulus), @@ -4424,12 +4437,12 @@ static BOOL WINAPI CRYPT_AsnDecodeRsaPubKey(DWORD dwCertEncodingType, LocalFree(decodedKey); } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -4496,7 +4509,7 @@ static BOOL WINAPI CRYPT_AsnDecodeOctets(DWORD dwCertEncodingType, TRACE("%p, %ld, %08lx, %p, %p, %ld\n", pbEncoded, cbEncoded, dwFlags, pDecodePara, pvStructInfo, *pcbStructInfo); - _SEH_TRY + __TRY { DWORD bytesNeeded; @@ -4527,12 +4540,12 @@ static BOOL WINAPI CRYPT_AsnDecodeOctets(DWORD dwCertEncodingType, ret = FALSE; } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -4609,7 +4622,7 @@ static BOOL WINAPI CRYPT_AsnDecodeBits(DWORD dwCertEncodingType, TRACE("(%p, %ld, 0x%08lx, %p, %p, %p)\n", pbEncoded, cbEncoded, dwFlags, pDecodePara, pvStructInfo, pcbStructInfo); - _SEH_TRY + __TRY { DWORD bytesNeeded; @@ -4635,12 +4648,12 @@ static BOOL WINAPI CRYPT_AsnDecodeBits(DWORD dwCertEncodingType, } } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY TRACE("returning %d (%08lx)\n", ret, GetLastError()); return ret; } @@ -4656,7 +4669,7 @@ static BOOL WINAPI CRYPT_AsnDecodeInt(DWORD dwCertEncodingType, *pcbStructInfo = sizeof(int); return TRUE; } - _SEH_TRY + __TRY { BYTE buf[sizeof(CRYPT_INTEGER_BLOB) + sizeof(int)]; CRYPT_INTEGER_BLOB *blob = (CRYPT_INTEGER_BLOB *)buf; @@ -4692,12 +4705,12 @@ static BOOL WINAPI CRYPT_AsnDecodeInt(DWORD dwCertEncodingType, else if (GetLastError() == ERROR_MORE_DATA) SetLastError(CRYPT_E_ASN1_LARGE); } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -4757,7 +4770,7 @@ static BOOL WINAPI CRYPT_AsnDecodeInteger(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { DWORD bytesNeeded; @@ -4784,12 +4797,12 @@ static BOOL WINAPI CRYPT_AsnDecodeInteger(DWORD dwCertEncodingType, } } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -4856,7 +4869,7 @@ static BOOL WINAPI CRYPT_AsnDecodeUnsignedInteger(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { DWORD bytesNeeded; @@ -4883,12 +4896,12 @@ static BOOL WINAPI CRYPT_AsnDecodeUnsignedInteger(DWORD dwCertEncodingType, } } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -4903,7 +4916,7 @@ static BOOL WINAPI CRYPT_AsnDecodeEnumerated(DWORD dwCertEncodingType, *pcbStructInfo = sizeof(int); return TRUE; } - _SEH_TRY + __TRY { if (pbEncoded[0] == ASN_ENUMERATED) { @@ -4951,12 +4964,12 @@ static BOOL WINAPI CRYPT_AsnDecodeEnumerated(DWORD dwCertEncodingType, ret = FALSE; } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -4988,7 +5001,7 @@ static BOOL CRYPT_AsnDecodeTimeZone(const BYTE *pbEncoded, DWORD len, { BOOL ret; - _SEH_TRY + __TRY { ret = TRUE; if (len >= 3 && (*pbEncoded == '+' || *pbEncoded == '-')) @@ -5039,12 +5052,12 @@ static BOOL CRYPT_AsnDecodeTimeZone(const BYTE *pbEncoded, DWORD len, } } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -5061,7 +5074,7 @@ static BOOL WINAPI CRYPT_AsnDecodeUtcTime(DWORD dwCertEncodingType, *pcbStructInfo = sizeof(FILETIME); return TRUE; } - _SEH_TRY + __TRY { ret = TRUE; if (pbEncoded[0] == ASN_UTCTIME) @@ -5130,12 +5143,12 @@ static BOOL WINAPI CRYPT_AsnDecodeUtcTime(DWORD dwCertEncodingType, ret = FALSE; } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -5150,7 +5163,7 @@ static BOOL WINAPI CRYPT_AsnDecodeGeneralizedTime(DWORD dwCertEncodingType, *pcbStructInfo = sizeof(FILETIME); return TRUE; } - _SEH_TRY + __TRY { ret = TRUE; if (pbEncoded[0] == ASN_GENERALTIME) @@ -5225,12 +5238,12 @@ static BOOL WINAPI CRYPT_AsnDecodeGeneralizedTime(DWORD dwCertEncodingType, ret = FALSE; } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -5240,7 +5253,7 @@ static BOOL WINAPI CRYPT_AsnDecodeChoiceOfTime(DWORD dwCertEncodingType, { BOOL ret; - _SEH_TRY + __TRY { if (pbEncoded[0] == ASN_UTCTIME) ret = CRYPT_AsnDecodeUtcTime(dwCertEncodingType, lpszStructType, @@ -5256,12 +5269,12 @@ static BOOL WINAPI CRYPT_AsnDecodeChoiceOfTime(DWORD dwCertEncodingType, ret = FALSE; } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } @@ -5271,7 +5284,7 @@ static BOOL WINAPI CRYPT_AsnDecodeSequenceOfAny(DWORD dwCertEncodingType, { BOOL ret = TRUE; - _SEH_TRY + __TRY { if (pbEncoded[0] == ASN_SEQUENCEOF) { @@ -5359,12 +5372,12 @@ static BOOL WINAPI CRYPT_AsnDecodeSequenceOfAny(DWORD dwCertEncodingType, return FALSE; } } - _SEH_EXCEPT(page_fault) + __EXCEPT(page_fault) { SetLastError(STATUS_ACCESS_VIOLATION); ret = FALSE; } - _SEH_END + __ENDTRY return ret; } diff --git a/reactos/lib/crypt32/main.c b/reactos/lib/crypt32/main.c index 0dda361f9aa..039449fbc23 100644 --- a/reactos/lib/crypt32/main.c +++ b/reactos/lib/crypt32/main.c @@ -17,54 +17,23 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "precomp.h" +#include "config.h" +#include +#include + +#include "windef.h" +#include "winbase.h" +#include "wincrypt.h" +#include "winreg.h" +#include "winnls.h" +#include "mssip.h" +#include "crypt32_private.h" +#include "wine/debug.h" WINE_DEFAULT_DEBUG_CHANNEL(crypt); static HCRYPTPROV hDefProv; -struct OIDToAlgID -{ - LPCSTR oid; - DWORD algID; -}; - -static const struct OIDToAlgID oidToAlgID[] = { - { szOID_RSA_RSA, CALG_RSA_KEYX }, - { szOID_RSA_MD2RSA, CALG_MD2 }, - { szOID_RSA_MD4RSA, CALG_MD4 }, - { szOID_RSA_MD5RSA, CALG_MD5 }, - { szOID_RSA_SHA1RSA, CALG_SHA }, - { szOID_RSA_DH, CALG_DH_SF }, - { szOID_RSA_SMIMEalgESDH, CALG_DH_EPHEM }, - { szOID_RSA_SMIMEalgCMS3DESwrap, CALG_3DES }, - { szOID_RSA_SMIMEalgCMSRC2wrap, CALG_RC2 }, - { szOID_RSA_MD2, CALG_MD2 }, - { szOID_RSA_MD4, CALG_MD4 }, - { szOID_RSA_MD5, CALG_MD5 }, - { szOID_RSA_RC2CBC, CALG_RC2 }, - { szOID_RSA_RC4, CALG_RC4 }, - { szOID_RSA_DES_EDE3_CBC, CALG_3DES }, - { szOID_ANSI_X942_DH, CALG_DH_SF }, - { szOID_X957_DSA, CALG_DSS_SIGN }, - { szOID_X957_SHA1DSA, CALG_SHA }, - { szOID_OIWSEC_md4RSA, CALG_MD4 }, - { szOID_OIWSEC_md5RSA, CALG_MD5 }, - { szOID_OIWSEC_md4RSA2, CALG_MD4 }, - { szOID_OIWSEC_desCBC, CALG_DES }, - { szOID_OIWSEC_dsa, CALG_DSS_SIGN }, - { szOID_OIWSEC_shaDSA, CALG_SHA }, - { szOID_OIWSEC_shaRSA, CALG_SHA }, - { szOID_OIWSEC_sha, CALG_SHA }, - { szOID_OIWSEC_rsaXchg, CALG_RSA_KEYX }, - { szOID_OIWSEC_sha1, CALG_SHA }, - { szOID_OIWSEC_dsaSHA1, CALG_SHA }, - { szOID_OIWSEC_sha1RSASign, CALG_SHA }, - { szOID_OIWDIR_md2RSA, CALG_MD2 }, - { szOID_INFOSEC_mosaicUpdatedSig, CALG_SHA }, - { szOID_INFOSEC_mosaicKMandUpdSig, CALG_DSS_SIGN }, -}; - BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved) { switch (fdwReason) @@ -246,6 +215,48 @@ BOOL WINAPI CryptRegisterDefaultOIDFunction(DWORD dwEncodingType, return FALSE; } +struct OIDToAlgID +{ + LPCSTR oid; + DWORD algID; +}; + +static const struct OIDToAlgID oidToAlgID[] = { + { szOID_RSA_RSA, CALG_RSA_KEYX }, + { szOID_RSA_MD2RSA, CALG_MD2 }, + { szOID_RSA_MD4RSA, CALG_MD4 }, + { szOID_RSA_MD5RSA, CALG_MD5 }, + { szOID_RSA_SHA1RSA, CALG_SHA }, + { szOID_RSA_DH, CALG_DH_SF }, + { szOID_RSA_SMIMEalgESDH, CALG_DH_EPHEM }, + { szOID_RSA_SMIMEalgCMS3DESwrap, CALG_3DES }, + { szOID_RSA_SMIMEalgCMSRC2wrap, CALG_RC2 }, + { szOID_RSA_MD2, CALG_MD2 }, + { szOID_RSA_MD4, CALG_MD4 }, + { szOID_RSA_MD5, CALG_MD5 }, + { szOID_RSA_RC2CBC, CALG_RC2 }, + { szOID_RSA_RC4, CALG_RC4 }, + { szOID_RSA_DES_EDE3_CBC, CALG_3DES }, + { szOID_ANSI_X942_DH, CALG_DH_SF }, + { szOID_X957_DSA, CALG_DSS_SIGN }, + { szOID_X957_SHA1DSA, CALG_SHA }, + { szOID_OIWSEC_md4RSA, CALG_MD4 }, + { szOID_OIWSEC_md5RSA, CALG_MD5 }, + { szOID_OIWSEC_md4RSA2, CALG_MD4 }, + { szOID_OIWSEC_desCBC, CALG_DES }, + { szOID_OIWSEC_dsa, CALG_DSS_SIGN }, + { szOID_OIWSEC_shaDSA, CALG_SHA }, + { szOID_OIWSEC_shaRSA, CALG_SHA }, + { szOID_OIWSEC_sha, CALG_SHA }, + { szOID_OIWSEC_rsaXchg, CALG_RSA_KEYX }, + { szOID_OIWSEC_sha1, CALG_SHA }, + { szOID_OIWSEC_dsaSHA1, CALG_SHA }, + { szOID_OIWSEC_sha1RSASign, CALG_SHA }, + { szOID_OIWDIR_md2RSA, CALG_MD2 }, + { szOID_INFOSEC_mosaicUpdatedSig, CALG_SHA }, + { szOID_INFOSEC_mosaicKMandUpdSig, CALG_DSS_SIGN }, +}; + LPCSTR WINAPI CertAlgIdToOID(DWORD dwAlgId) { switch (dwAlgId) @@ -319,8 +330,7 @@ LPVOID WINAPI I_CryptDetachTls(DWORD dwTlsIndex) LPVOID ret; ret = TlsGetValue(dwTlsIndex); - - TlsSetValue(dwTlsIndex, NULL); + TlsSetValue(dwTlsIndex, NULL); return ret; } diff --git a/reactos/lib/crypt32/precomp.h b/reactos/lib/crypt32/precomp.h deleted file mode 100644 index 973cb90cab0..00000000000 --- a/reactos/lib/crypt32/precomp.h +++ /dev/null @@ -1,21 +0,0 @@ -#include "config.h" - -#include -#include -#include -#include - -#include - -#include "windef.h" -#include "winnt.h" -#include "winbase.h" -#include "wincrypt.h" -#include "winreg.h" -#include "snmp.h" -#include "winnls.h" -#include "mssip.h" -#include "crypt32_private.h" -#include "wine/debug.h" -#include "wine/list.h" - diff --git a/reactos/lib/crypt32/protectdata.c b/reactos/lib/crypt32/protectdata.c index d62f8372e79..9f9e0d18026 100644 --- a/reactos/lib/crypt32/protectdata.c +++ b/reactos/lib/crypt32/protectdata.c @@ -34,7 +34,16 @@ * */ -#include "precomp.h" +#include +#include +#include +#include + +#include "windef.h" +#include "winbase.h" +#include "wincrypt.h" +#include "winreg.h" +#include "wine/debug.h" WINE_DEFAULT_DEBUG_CHANNEL(crypt); -- 2.17.1