Changeset 258728 in webkit
- Timestamp:
- Mar 19, 2020 2:18:56 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r258721 r258728 1 2020-03-19 Takashi Komori <Takashi.Komori@sony.com> 2 3 [Curl] Add an API returns description of verification errors. 4 https://bugs.webkit.org/show_bug.cgi?id=208913 5 6 Reviewed by Fujii Hironori. 7 8 WKCertificateInfoCopyVerificationErrorDescription returns the description of SSL verification error as human readable string. 9 Browser can display more precise error information with this API. 10 11 API Test: Curl.CertificateAPI 12 13 * platform/network/curl/CertificateInfo.h: 14 * platform/network/curl/CertificateInfoCurl.cpp: 15 (WebCore::CertificateInfo::verificationErrorDescription const): 16 1 17 2020-03-19 Tim Horton <timothy_horton@apple.com> 2 18 -
trunk/Source/WebCore/platform/network/curl/CertificateInfo.h
r248268 r258728 46 46 47 47 int verificationError() const { return m_verificationError; } 48 WEBCORE_EXPORT String verificationErrorDescription() const; 48 49 const Vector<Certificate>& certificateChain() const { return m_certificateChain; } 49 50 -
trunk/Source/WebCore/platform/network/curl/CertificateInfoCurl.cpp
r248268 r258728 27 27 #include "CertificateInfo.h" 28 28 29 #if USE(CURL) 30 29 31 #include "OpenSSLHelper.h" 32 #include <openssl/ssl.h> 30 33 #include <wtf/CrossThreadCopier.h> 31 32 #if USE(CURL)33 34 34 35 namespace WebCore { … … 43 44 { 44 45 return { m_verificationError, crossThreadCopy(m_certificateChain) }; 46 } 47 48 String CertificateInfo::verificationErrorDescription() const 49 { 50 return X509_verify_cert_error_string(m_verificationError); 45 51 } 46 52 -
trunk/Source/WebKit/ChangeLog
r258726 r258728 1 2020-03-19 Takashi Komori <Takashi.Komori@sony.com> 2 3 [Curl] Add an API returns description of verification errors. 4 https://bugs.webkit.org/show_bug.cgi?id=208913 5 6 Reviewed by Fujii Hironori. 7 8 WKCertificateInfoCopyVerificationErrorDescription returns the description of SSL verification error as human readable string. 9 Browser can display more precise error information with this API. 10 11 API Test: Curl.CertificateAPI 12 13 * Shared/API/c/curl/WKCertificateInfoCurl.cpp: 14 (WKCertificateInfoCopyVerificationErrorDescription): 15 * Shared/API/c/curl/WKCertificateInfoCurl.h: 16 1 17 2020-03-19 Per Arne Vollan <pvollan@apple.com> 2 18 -
trunk/Source/WebKit/Shared/API/c/curl/WKCertificateInfoCurl.cpp
r238887 r258728 57 57 } 58 58 59 WKStringRef WKCertificateInfoCopyVerificationErrorDescription(WKCertificateInfoRef certificateInfoRef) 60 { 61 return WebKit::toCopiedAPI(WebKit::toImpl(certificateInfoRef)->certificateInfo().verificationErrorDescription()); 62 } 63 59 64 size_t WKCertificateInfoGetCertificateChainSize(WKCertificateInfoRef certificateInfoRef) 60 65 { -
trunk/Source/WebKit/Shared/API/c/curl/WKCertificateInfoCurl.h
r238387 r258728 35 35 36 36 WK_EXPORT int WKCertificateInfoGetVerificationError(WKCertificateInfoRef); 37 WK_EXPORT WKStringRef WKCertificateInfoCopyVerificationErrorDescription(WKCertificateInfoRef); 37 38 WK_EXPORT size_t WKCertificateInfoGetCertificateChainSize(WKCertificateInfoRef); 38 39 WK_EXPORT WKDataRef WKCertificateInfoCopyCertificateAtIndex(WKCertificateInfoRef, size_t); -
trunk/Tools/ChangeLog
r258706 r258728 1 2020-03-19 Takashi Komori <Takashi.Komori@sony.com> 2 3 [Curl] Add an API returns description of verification errors. 4 https://bugs.webkit.org/show_bug.cgi?id=208913 5 6 Reviewed by Fujii Hironori. 7 8 WKCertificateInfoCopyVerificationErrorDescription returns the description of SSL verification error as human readable string. 9 Browser can display more precise error information with this API. 10 11 API Test: Curl.CertificateAPI 12 13 * MiniBrowser/win/Common.cpp: 14 (askServerTrustEvaluation): 15 * MiniBrowser/win/Common.h: 16 * MiniBrowser/win/WebKitBrowserWindow.cpp: 17 (createPEMString): 18 (WebKitBrowserWindow::canTrustServerCertificate): 19 * TestWebKitAPI/Tests/WebKit/curl/Certificates.cpp: 20 (TestWebKitAPI::Curl::TEST): 21 1 22 2020-03-19 Aakash Jain <aakash_jain@apple.com> 2 23 -
trunk/Tools/MiniBrowser/win/Common.cpp
r252872 r258728 233 233 } 234 234 235 bool askServerTrustEvaluation(HWND hwnd, const std::wstring& pems)235 bool askServerTrustEvaluation(HWND hwnd, const std::wstring& text) 236 236 { 237 237 class ServerTrustEvaluationDialog : public Dialog { 238 238 public: 239 ServerTrustEvaluationDialog(const std::wstring& pems)240 : m_ pems { pems}239 ServerTrustEvaluationDialog(const std::wstring& text) 240 : m_text { text } 241 241 { 242 242 SendMessage(GetDlgItem(this->hDlg(), IDC_SERVER_TRUST_TEXT), WM_SETFONT, (WPARAM)GetStockObject(ANSI_FIXED_FONT), TRUE); … … 244 244 245 245 protected: 246 std::wstring m_ pems;246 std::wstring m_text; 247 247 248 248 void setup() 249 249 { 250 setText(IDC_SERVER_TRUST_TEXT, m_ pems);250 setText(IDC_SERVER_TRUST_TEXT, m_text); 251 251 } 252 252 … … 257 257 }; 258 258 259 ServerTrustEvaluationDialog dialog { pems};259 ServerTrustEvaluationDialog dialog { text }; 260 260 return dialog.run(hInst, hwnd, IDD_SERVER_TRUST); 261 261 } -
trunk/Tools/MiniBrowser/win/Common.h
r252872 r258728 69 69 bool askProxySettings(HWND, ProxySettings&); 70 70 71 bool askServerTrustEvaluation(HWND, const std::wstring& pems);71 bool askServerTrustEvaluation(HWND, const std::wstring& text); 72 72 std::wstring replaceString(std::wstring src, const std::wstring& oldValue, const std::wstring& newValue); 73 73 -
trunk/Tools/MiniBrowser/win/WebKitBrowserWindow.cpp
r256889 r258728 65 65 } 66 66 67 std::wstring createPEMString(WKProtectionSpaceRef protectionSpace) 68 { 69 auto certificateInfo = WKProtectionSpaceCopyCertificateInfo(protectionSpace); 67 std::wstring createPEMString(WKCertificateInfoRef certificateInfo) 68 { 70 69 auto chainSize = WKCertificateInfoGetCertificateChainSize(certificateInfo); 71 70 … … 368 367 { 369 368 auto host = createString(adoptWK(WKProtectionSpaceCopyHost(protectionSpace)).get()); 370 auto pem = createPEMString(protectionSpace); 369 auto certificateInfo = adoptWK(WKProtectionSpaceCopyCertificateInfo(protectionSpace)); 370 auto verificationError = WKCertificateInfoGetVerificationError(certificateInfo.get()); 371 auto description = createString(adoptWK(WKCertificateInfoCopyVerificationErrorDescription(certificateInfo.get())).get()); 372 auto pem = createPEMString(certificateInfo.get()); 371 373 372 374 auto it = m_acceptedServerTrustCerts.find(host); … … 374 376 return true; 375 377 376 if (askServerTrustEvaluation(hwnd(), pem)) { 378 std::wstring textString = L"[HOST] " + host + L"\r\n"; 379 textString.append(L"[ERROR] " + std::to_wstring(verificationError) + L"\r\n"); 380 textString.append(L"[DESCRIPTION] " + description + L"\r\n"); 381 textString.append(pem); 382 383 if (askServerTrustEvaluation(hwnd(), textString)) { 377 384 m_acceptedServerTrustCerts.emplace(host, pem); 378 385 return true; -
trunk/Tools/TestWebKitAPI/Tests/WebKit/curl/Certificates.cpp
r244541 r258728 90 90 auto size = WKCertificateInfoGetCertificateChainSize(certificateInfo.get()); 91 91 ASSERT_EQ(size, 2); 92 ASSERT_TRUE(isSamePEM(WKCertificateInfoCopyCertificateAtIndex(certificateInfo.get(), 0), PEM1)); 93 ASSERT_TRUE(isSamePEM(WKCertificateInfoCopyCertificateAtIndex(certificateInfo.get(), 1), PEM2)); 92 ASSERT_EQ(WKCertificateInfoGetVerificationError(certificateInfo.get()), 0); 93 ASSERT_TRUE(WKStringIsEqualToUTF8CString(adoptWK(WKCertificateInfoCopyVerificationErrorDescription(certificateInfo.get())).get(), "ok")); 94 ASSERT_TRUE(isSamePEM(adoptWK(WKCertificateInfoCopyCertificateAtIndex(certificateInfo.get(), 0)).get(), PEM1)); 95 ASSERT_TRUE(isSamePEM(adoptWK(WKCertificateInfoCopyCertificateAtIndex(certificateInfo.get(), 1)).get(), PEM2)); 94 96 } 95 97
Note: See TracChangeset
for help on using the changeset viewer.