Module: wine Branch: master Commit: 5c0d8a3a12a7437b12be7c49b6bee10728fe7c64 URL: http://source.winehq.org/git/wine.git/?a=commit;h=5c0d8a3a12a7437b12be7c49b6...
Author: Juan Lang juan.lang@gmail.com Date: Mon Nov 3 14:54:46 2008 -0800
wintrust: Add tests for WVTAsn1SpcFinancialCriteriaInfoEncode.
---
dlls/wintrust/tests/asn.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/dlls/wintrust/tests/asn.c b/dlls/wintrust/tests/asn.c index 0f18c6d..00553ec 100644 --- a/dlls/wintrust/tests/asn.c +++ b/dlls/wintrust/tests/asn.c @@ -29,6 +29,43 @@ static BOOL (WINAPI *pCryptDecodeObjectEx)(DWORD,LPCSTR,const BYTE*,DWORD,DWORD,PCRYPT_DECODE_PARA,void*,DWORD*); static BOOL (WINAPI *pCryptEncodeObjectEx)(DWORD,LPCSTR,const void*,DWORD,PCRYPT_ENCODE_PARA,void*,DWORD*);
+static const BYTE falseCriteria[] = { 0x30,0x06,0x01,0x01,0x00,0x01,0x01,0x00 }; +static const BYTE trueCriteria[] = { 0x30,0x06,0x01,0x01,0xff,0x01,0x01,0xff }; + +static void test_encodeSPCFinancialCriteria(void) +{ + BOOL ret; + DWORD size = 0; + LPBYTE buf; + SPC_FINANCIAL_CRITERIA criteria = { FALSE, FALSE }; + + if (!pCryptEncodeObjectEx) + { + skip("CryptEncodeObjectEx() is not available. Skipping the encodeFinancialCriteria tests\n"); + return; + } + ret = pCryptEncodeObjectEx(X509_ASN_ENCODING, SPC_FINANCIAL_CRITERIA_STRUCT, + &criteria, CRYPT_ENCODE_ALLOC_FLAG, NULL, &buf, &size); + todo_wine + ok(ret, "CryptEncodeObjectEx failed: %08x\n", GetLastError()); + if (ret) + { + ok(size == sizeof(falseCriteria), "Unexpected size %d\n", size); + ok(!memcmp(buf, falseCriteria, size), "Unexpected value\n"); + LocalFree(buf); + } + criteria.fFinancialInfoAvailable = criteria.fMeetsCriteria = TRUE; + ret = pCryptEncodeObjectEx(X509_ASN_ENCODING, SPC_FINANCIAL_CRITERIA_STRUCT, + &criteria, CRYPT_ENCODE_ALLOC_FLAG, NULL, &buf, &size); + todo_wine + ok(ret, "CryptEncodeObjectEx failed: %08x\n", GetLastError()); + if (ret) + { + ok(size == sizeof(trueCriteria), "Unexpected size %d\n", size); + ok(!memcmp(buf, trueCriteria, size), "Unexpected value\n"); + LocalFree(buf); + } +}
static WCHAR url[] = { 'h','t','t','p',':','/','/','w','i','n','e','h','q','.', 'o','r','g',0 }; @@ -727,6 +764,7 @@ START_TEST(asn) pCryptDecodeObjectEx = (void*)GetProcAddress(hCrypt32, "CryptDecodeObjectEx"); pCryptEncodeObjectEx = (void*)GetProcAddress(hCrypt32, "CryptEncodeObjectEx");
+ test_encodeSPCFinancialCriteria(); test_encodeSPCLink(); test_decodeSPCLink(); test_encodeSPCPEImage();