summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorwtc@chromium.org <wtc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-07 01:09:57 +0000
committerwtc@chromium.org <wtc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-07 01:09:57 +0000
commit60f1f37451c18b9b0e86264144300da8adb63f65 (patch)
tree26347fe7cb19f36d2f43884b3ee298d2be7de6e5 /net
parent70f673eac27a22c7a09abfbe1b05df4fb934defa (diff)
downloadchromium_src-60f1f37451c18b9b0e86264144300da8adb63f65.zip
chromium_src-60f1f37451c18b9b0e86264144300da8adb63f65.tar.gz
chromium_src-60f1f37451c18b9b0e86264144300da8adb63f65.tar.bz2
Treat certificate signatures using weak signature algorithms
as invalid. R=cevans,mal BUG=http://crbug.com/18725 TEST=none Review URL: http://codereview.chromium.org/164115 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22709 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r--net/base/x509_certificate_win.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/base/x509_certificate_win.cc b/net/base/x509_certificate_win.cc
index ece65be..cd50668 100644
--- a/net/base/x509_certificate_win.cc
+++ b/net/base/x509_certificate_win.cc
@@ -471,6 +471,10 @@ int X509Certificate::Verify(const std::string& hostname,
verify_result->cert_status |= MapCertChainErrorStatusToCertStatus(
chain_context->TrustStatus.dwErrorStatus);
+ // Treat certificate signatures using weak signature algorithms as invalid.
+ if (verify_result->has_md2 || verify_result->has_md4)
+ verify_result->cert_status |= CERT_STATUS_INVALID;
+
std::wstring wstr_hostname = ASCIIToWide(hostname);
SSL_EXTRA_CERT_CHAIN_POLICY_PARA extra_policy_para;