http://bugs.winehq.org/show_bug.cgi?id=20370
Summary: chromium net_unittests.exe fail ssl tests because they can't check for root cert Product: Wine Version: 1.1.31 Platform: PC OS/Version: Linux Status: NEW Keywords: download, source, testcase Severity: normal Priority: P2 Component: crypt32 AssignedTo: wine-bugs@winehq.org ReportedBy: dank@kegel.com
I've placed a precompiled set of unit tests at http://kegel.com/wine/chromium/tests%7B,_data%7D.tgz
net_unittests.exe --gtest_filter=HTTPSRequestTest.HTTPSGetTest fails with [ RUN ] HTTPSRequestTest.HTTPSGetTest fixme:crypt:CertFindCertificateInStore find type 00080004 unimplemented .\url_request\url_request_unittest.cc(395): error: Value of: NULL != server.get() Actual: false Expected: true [ FAILED ] HTTPSRequestTest.HTTPSGetTest
Here's an extracted C testcase:
#undef NDEBUG #include <windows.h> #include <wincrypt.h> #include <stdio.h> #include <assert.h> #pragma comment(lib, "crypt32.lib")
int main() { HCERTSTORE cert_store; PCCERT_CONTEXT cert;
printf("Before running this test, import test cert as follows:\n\ windows: http://dev.chromium.org/developers/testing \n\ ubuntu: http://help.ubuntu.com/community/OpenSSL \n\ The cert to import into ubuntu is\n\ http://src.chromium.org/viewvc/chrome/trunk/src/net/data/ssl/certificates/ro... ");
cert_store = CertOpenSystemStoreA(NULL, "ROOT"); assert(cert_store != NULL); cert = CertFindCertificateInStore(cert_store, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, 0, CERT_FIND_ISSUER_STR, L"Test CA", NULL); if (cert) { CertFreeCertificateContext(cert); printf("Test passed.\n"); } CertCloseStore(cert_store, 0);
assert(cert != NULL); }
The commands to import that certificate on ubuntu are, from that web page, sudo cp /data/dkegel/net/data/ssl/certificates/root_ca_cert.crt /usr/share/ca-certificates/ sudo vi /etc/ca-certificates.conf (and add the line root_ca_cert.crt) sudo update-ca-certificates
I'll attach a compiled copy of the test case.