James Hawkins : crypt32: Fix several failing tests in win9x.
Alexandre Julliard
julliard at winehq.org
Tue Sep 30 11:16:19 CDT 2008
Module: wine
Branch: master
Commit: 5114d652d223479cee8249119052e98c45936ee7
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5114d652d223479cee8249119052e98c45936ee7
Author: James Hawkins <jhawkins at codeweavers.com>
Date: Sun Sep 28 12:12:46 2008 -0500
crypt32: Fix several failing tests in win9x.
---
dlls/crypt32/tests/cert.c | 88 +++++++++++++++++++++++++++++++-------------
1 files changed, 62 insertions(+), 26 deletions(-)
diff --git a/dlls/crypt32/tests/cert.c b/dlls/crypt32/tests/cert.c
index b4f8760..558aa11 100644
--- a/dlls/crypt32/tests/cert.c
+++ b/dlls/crypt32/tests/cert.c
@@ -2535,11 +2535,15 @@ static void testComparePublicKeyInfo(void)
ret = CertComparePublicKeyInfo(0, &info1, &info2);
ok(!ret, "CertComparePublicKeyInfo: as raw binary: keys should be unequal\n");
ret = CertComparePublicKeyInfo(X509_ASN_ENCODING, &info1, &info2);
- ok(ret, "CertComparePublicKeyInfo: as ASN.1 encoded: keys should be equal\n");
+ ok(ret ||
+ broken(!ret), /* win9x */
+ "CertComparePublicKeyInfo: as ASN.1 encoded: keys should be equal\n");
info1.PublicKey.cUnusedBits = 1;
info2.PublicKey.cUnusedBits = 5;
ret = CertComparePublicKeyInfo(X509_ASN_ENCODING, &info1, &info2);
- ok(ret, "CertComparePublicKeyInfo: ASN.1 encoding should ignore cUnusedBits\n");
+ ok(ret ||
+ broken(!ret), /* win9x */
+ "CertComparePublicKeyInfo: ASN.1 encoding should ignore cUnusedBits\n");
info1.PublicKey.cUnusedBits = 0;
info2.PublicKey.cUnusedBits = 0;
info1.PublicKey.cbData--; /* kill one byte, make ASN.1 encoded data invalid */
@@ -2592,18 +2596,23 @@ static void testHashPublicKeyInfo(void)
"Expected STATUS_ACCESS_VIOLATION, got %08x\n", GetLastError());
}
ret = CryptHashPublicKeyInfo(0, 0, 0, X509_ASN_ENCODING, &info, NULL, &len);
- ok(ret, "CryptHashPublicKeyInfo failed: %08x\n", GetLastError());
- ok(len == 16, "Expected hash size 16, got %d\n", len);
- if (len == 16)
+ ok(ret ||
+ broken(!ret), /* win9x */
+ "CryptHashPublicKeyInfo failed: %08x\n", GetLastError());
+ if (ret)
{
- static const BYTE emptyHash[] = { 0xb8,0x51,0x3a,0x31,0x0e,0x9f,0x40,
- 0x36,0x9c,0x92,0x45,0x1b,0x9d,0xc8,0xf9,0xf6 };
- BYTE buf[16];
-
- ret = CryptHashPublicKeyInfo(0, 0, 0, X509_ASN_ENCODING, &info, buf,
- &len);
- ok(ret, "CryptHashPublicKeyInfo failed: %08x\n", GetLastError());
- ok(!memcmp(buf, emptyHash, len), "Unexpected hash\n");
+ ok(len == 16, "Expected hash size 16, got %d\n", len);
+ if (len == 16)
+ {
+ static const BYTE emptyHash[] = { 0xb8,0x51,0x3a,0x31,0x0e,0x9f,0x40,
+ 0x36,0x9c,0x92,0x45,0x1b,0x9d,0xc8,0xf9,0xf6 };
+ BYTE buf[16];
+
+ ret = CryptHashPublicKeyInfo(0, 0, 0, X509_ASN_ENCODING, &info, buf,
+ &len);
+ ok(ret, "CryptHashPublicKeyInfo failed: %08x\n", GetLastError());
+ ok(!memcmp(buf, emptyHash, len), "Unexpected hash\n");
+ }
}
}
@@ -2651,8 +2660,14 @@ static void testHashToBeSigned(void)
/* Signing a cert works */
ret = CryptHashToBeSigned(0, X509_ASN_ENCODING, md5SignedEmptyCert,
sizeof(md5SignedEmptyCert), NULL, &size);
- ok(ret, "CryptHashToBeSigned failed: %08x\n", GetLastError());
- ok(size == sizeof(md5SignedEmptyCertHash), "unexpected size %d\n", size);
+ ok(ret ||
+ broken(!ret), /* win9x */
+ "CryptHashToBeSigned failed: %08x\n", GetLastError());
+ if (ret)
+ {
+ ok(size == sizeof(md5SignedEmptyCertHash), "unexpected size %d\n", size);
+ }
+
ret = CryptHashToBeSigned(0, X509_ASN_ENCODING, md5SignedEmptyCert,
sizeof(md5SignedEmptyCert), hash, &size);
ok(!memcmp(hash, md5SignedEmptyCertHash, size), "unexpected value\n");
@@ -2893,13 +2908,21 @@ static void testAcquireCertPrivateKey(void)
/* Don't cache provider */
ret = pCryptAcquireCertificatePrivateKey(cert, 0, NULL, &certCSP,
&keySpec, &callerFree);
- ok(ret, "CryptAcquireCertificatePrivateKey failed: %08x\n",
+ ok(ret ||
+ broken(!ret), /* win95 */
+ "CryptAcquireCertificatePrivateKey failed: %08x\n",
GetLastError());
- ok(callerFree, "Expected callerFree to be TRUE\n");
- CryptReleaseContext(certCSP, 0);
+ if (ret)
+ {
+ ok(callerFree, "Expected callerFree to be TRUE\n");
+ CryptReleaseContext(certCSP, 0);
+ }
+
ret = pCryptAcquireCertificatePrivateKey(cert, 0, NULL, &certCSP,
NULL, NULL);
- ok(ret, "CryptAcquireCertificatePrivateKey failed: %08x\n",
+ ok(ret ||
+ broken(!ret), /* win95 */
+ "CryptAcquireCertificatePrivateKey failed: %08x\n",
GetLastError());
CryptReleaseContext(certCSP, 0);
@@ -2907,21 +2930,30 @@ static void testAcquireCertPrivateKey(void)
ret = pCryptAcquireCertificatePrivateKey(cert,
CRYPT_ACQUIRE_USE_PROV_INFO_FLAG, NULL, &certCSP, &keySpec,
&callerFree);
- ok(ret, "CryptAcquireCertificatePrivateKey failed: %08x\n",
+ ok(ret ||
+ broken(!ret), /* win95 */
+ "CryptAcquireCertificatePrivateKey failed: %08x\n",
GetLastError());
- ok(callerFree, "Expected callerFree to be TRUE\n");
- CryptReleaseContext(certCSP, 0);
+ if (ret)
+ {
+ ok(callerFree, "Expected callerFree to be TRUE\n");
+ CryptReleaseContext(certCSP, 0);
+ }
/* Cache it (and check that it's cached) */
ret = pCryptAcquireCertificatePrivateKey(cert,
CRYPT_ACQUIRE_CACHE_FLAG, NULL, &certCSP, &keySpec, &callerFree);
- ok(ret, "CryptAcquireCertificatePrivateKey failed: %08x\n",
+ ok(ret ||
+ broken(!ret), /* win95 */
+ "CryptAcquireCertificatePrivateKey failed: %08x\n",
GetLastError());
ok(!callerFree, "Expected callerFree to be FALSE\n");
size = sizeof(keyContext);
ret = CertGetCertificateContextProperty(cert, CERT_KEY_CONTEXT_PROP_ID,
&keyContext, &size);
- ok(ret, "CertGetCertificateContextProperty failed: %08x\n",
+ ok(ret ||
+ broken(!ret), /* win95 */
+ "CertGetCertificateContextProperty failed: %08x\n",
GetLastError());
/* Remove the cached provider */
@@ -2936,13 +2968,17 @@ static void testAcquireCertPrivateKey(void)
ret = pCryptAcquireCertificatePrivateKey(cert,
CRYPT_ACQUIRE_USE_PROV_INFO_FLAG, NULL, &certCSP, &keySpec,
&callerFree);
- ok(ret, "CryptAcquireCertificatePrivateKey failed: %08x\n",
+ ok(ret ||
+ broken(!ret), /* win95 */
+ "CryptAcquireCertificatePrivateKey failed: %08x\n",
GetLastError());
ok(!callerFree, "Expected callerFree to be FALSE\n");
size = sizeof(keyContext);
ret = CertGetCertificateContextProperty(cert, CERT_KEY_CONTEXT_PROP_ID,
&keyContext, &size);
- ok(ret, "CertGetCertificateContextProperty failed: %08x\n",
+ ok(ret ||
+ broken(!ret), /* win95 */
+ "CertGetCertificateContextProperty failed: %08x\n",
GetLastError());
CryptReleaseContext(certCSP, 0);
More information about the wine-cvs
mailing list