crypt32(2/6): don't fail when CryptVerifyCertificateSignatureEx is
missing...
Juan Lang
juan.lang at gmail.com
Fri Jun 29 15:09:39 CDT 2007
use skip (and get rid of unnecessary indenting)
--Juan
-------------- next part --------------
From ec62e8480ece308362559d0decdd67c0ba9b6140 Mon Sep 17 00:00:00 2001
From: Juan Lang <juanlang at juan.corp.google.com>
Date: Fri, 29 Jun 2007 12:38:07 -0700
Subject: [PATCH] Don't fail when CryptVerifyCertificateSignatureEx is missing, use skip (and get
rid of unnecessary indenting)
---
dlls/crypt32/tests/cert.c | 93 ++++++++++++++++++++++-----------------------
1 files changed, 46 insertions(+), 47 deletions(-)
diff --git a/dlls/crypt32/tests/cert.c b/dlls/crypt32/tests/cert.c
index 25008be..a14137c 100644
--- a/dlls/crypt32/tests/cert.c
+++ b/dlls/crypt32/tests/cert.c
@@ -33,9 +33,7 @@ static BOOL (WINAPI * pCryptVerifyCertif
(HCRYPTPROV, DWORD, DWORD, void *, DWORD, void *, DWORD, void *);
#define CRYPT_GET_PROC(func) \
- p ## func = (void *)GetProcAddress(hCrypt32, #func); \
- if(!p ## func) \
- trace("GetProcAddress(hCrypt32, \"%s\") failed\n", #func); \
+ p ## func = (void *)GetProcAddress(hCrypt32, #func);
static void init_function_pointers(void)
{
@@ -968,22 +966,25 @@ static void testVerifyCertSig(HCRYPTPROV
DWORD size = 0;
BOOL ret;
- if(pCryptVerifyCertificateSignatureEx) {
- ret = pCryptVerifyCertificateSignatureEx(0, 0, 0, NULL, 0, NULL, 0, NULL);
- ok(!ret && GetLastError() == E_INVALIDARG,
- "Expected E_INVALIDARG, got %08x\n", GetLastError());
- ret = pCryptVerifyCertificateSignatureEx(csp, 0, 0, NULL, 0, NULL, 0, NULL);
- ok(!ret && GetLastError() == E_INVALIDARG,
- "Expected E_INVALIDARG, got %08x\n", GetLastError());
- ret = pCryptVerifyCertificateSignatureEx(csp, X509_ASN_ENCODING, 0, NULL, 0,
- NULL, 0, NULL);
- ok(!ret && GetLastError() == E_INVALIDARG,
- "Expected E_INVALIDARG, got %08x\n", GetLastError());
- /* This crashes
- ret = pCryptVerifyCertificateSignatureEx(csp, X509_ASN_ENCODING,
- CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB, NULL, 0, NULL, 0, NULL);
- */
+ if (!pCryptVerifyCertificateSignatureEx)
+ {
+ skip("no CryptVerifyCertificateSignatureEx support\n");
+ return;
}
+ ret = pCryptVerifyCertificateSignatureEx(0, 0, 0, NULL, 0, NULL, 0, NULL);
+ ok(!ret && GetLastError() == E_INVALIDARG,
+ "Expected E_INVALIDARG, got %08x\n", GetLastError());
+ ret = pCryptVerifyCertificateSignatureEx(csp, 0, 0, NULL, 0, NULL, 0, NULL);
+ ok(!ret && GetLastError() == E_INVALIDARG,
+ "Expected E_INVALIDARG, got %08x\n", GetLastError());
+ ret = pCryptVerifyCertificateSignatureEx(csp, X509_ASN_ENCODING, 0, NULL, 0,
+ NULL, 0, NULL);
+ ok(!ret && GetLastError() == E_INVALIDARG,
+ "Expected E_INVALIDARG, got %08x\n", GetLastError());
+ /* This crashes
+ ret = pCryptVerifyCertificateSignatureEx(csp, X509_ASN_ENCODING,
+ CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB, NULL, 0, NULL, 0, NULL);
+ */
info.ToBeSigned.cbData = toBeSigned->cbData;
info.ToBeSigned.pbData = toBeSigned->pbData;
info.SignatureAlgorithm.pszObjId = (LPSTR)sigOID;
@@ -999,34 +1000,32 @@ static void testVerifyCertSig(HCRYPTPROV
CRYPT_DATA_BLOB certBlob = { 0, NULL };
PCERT_PUBLIC_KEY_INFO pubKeyInfo = NULL;
- if(pCryptVerifyCertificateSignatureEx) {
- ret = pCryptVerifyCertificateSignatureEx(csp, X509_ASN_ENCODING,
- CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB, &certBlob, 0, NULL, 0, NULL);
- ok(!ret && GetLastError() == CRYPT_E_ASN1_EOD,
- "Expected CRYPT_E_ASN1_EOD, got %08x\n", GetLastError());
- certBlob.cbData = 1;
- certBlob.pbData = (void *)0xdeadbeef;
- ret = pCryptVerifyCertificateSignatureEx(csp, X509_ASN_ENCODING,
- CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB, &certBlob, 0, NULL, 0, NULL);
- ok(!ret && GetLastError() == STATUS_ACCESS_VIOLATION,
- "Expected STATUS_ACCESS_VIOLATION, got %08x\n", GetLastError());
- certBlob.cbData = size;
- certBlob.pbData = cert;
- ret = pCryptVerifyCertificateSignatureEx(csp, X509_ASN_ENCODING,
- CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB, &certBlob, 0, NULL, 0, NULL);
- ok(!ret && GetLastError() == E_INVALIDARG,
- "Expected E_INVALIDARG, got %08x\n", GetLastError());
- ret = pCryptVerifyCertificateSignatureEx(csp, X509_ASN_ENCODING,
- CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB, &certBlob,
- CRYPT_VERIFY_CERT_SIGN_ISSUER_NULL, NULL, 0, NULL);
- ok(!ret && GetLastError() == E_INVALIDARG,
- "Expected E_INVALIDARG, got %08x\n", GetLastError());
- /* This crashes
- ret = pCryptVerifyCertificateSignatureEx(csp, X509_ASN_ENCODING,
- CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB, &certBlob,
- CRYPT_VERIFY_CERT_SIGN_ISSUER_PUBKEY, NULL, 0, NULL);
- */
- }
+ ret = pCryptVerifyCertificateSignatureEx(csp, X509_ASN_ENCODING,
+ CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB, &certBlob, 0, NULL, 0, NULL);
+ ok(!ret && GetLastError() == CRYPT_E_ASN1_EOD,
+ "Expected CRYPT_E_ASN1_EOD, got %08x\n", GetLastError());
+ certBlob.cbData = 1;
+ certBlob.pbData = (void *)0xdeadbeef;
+ ret = pCryptVerifyCertificateSignatureEx(csp, X509_ASN_ENCODING,
+ CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB, &certBlob, 0, NULL, 0, NULL);
+ ok(!ret && GetLastError() == STATUS_ACCESS_VIOLATION,
+ "Expected STATUS_ACCESS_VIOLATION, got %08x\n", GetLastError());
+ certBlob.cbData = size;
+ certBlob.pbData = cert;
+ ret = pCryptVerifyCertificateSignatureEx(csp, X509_ASN_ENCODING,
+ CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB, &certBlob, 0, NULL, 0, NULL);
+ ok(!ret && GetLastError() == E_INVALIDARG,
+ "Expected E_INVALIDARG, got %08x\n", GetLastError());
+ ret = pCryptVerifyCertificateSignatureEx(csp, X509_ASN_ENCODING,
+ CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB, &certBlob,
+ CRYPT_VERIFY_CERT_SIGN_ISSUER_NULL, NULL, 0, NULL);
+ ok(!ret && GetLastError() == E_INVALIDARG,
+ "Expected E_INVALIDARG, got %08x\n", GetLastError());
+ /* This crashes
+ ret = pCryptVerifyCertificateSignatureEx(csp, X509_ASN_ENCODING,
+ CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB, &certBlob,
+ CRYPT_VERIFY_CERT_SIGN_ISSUER_PUBKEY, NULL, 0, NULL);
+ */
CryptExportPublicKeyInfoEx(csp, AT_SIGNATURE, X509_ASN_ENCODING,
(LPSTR)sigOID, 0, NULL, NULL, &size);
pubKeyInfo = HeapAlloc(GetProcessHeap(), 0, size);
@@ -1035,7 +1034,7 @@ static void testVerifyCertSig(HCRYPTPROV
ret = CryptExportPublicKeyInfoEx(csp, AT_SIGNATURE,
X509_ASN_ENCODING, (LPSTR)sigOID, 0, NULL, pubKeyInfo, &size);
ok(ret, "CryptExportKey failed: %08x\n", GetLastError());
- if (ret && pCryptVerifyCertificateSignatureEx)
+ if (ret)
{
ret = pCryptVerifyCertificateSignatureEx(csp, X509_ASN_ENCODING,
CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB, &certBlob,
--
1.4.1
More information about the wine-patches
mailing list