summaryrefslogtreecommitdiffstats
path: root/net/socket
diff options
context:
space:
mode:
authoragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-16 19:24:45 +0000
committeragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-16 19:24:45 +0000
commit43025b7aae5cc78c35317d46eb2192ac23943a2b (patch)
treeb9df83dbb092bf94843278435e72459ce69c4b7e /net/socket
parent1c636142456e6bdf09684a09a4bb843af4499833 (diff)
downloadchromium_src-43025b7aae5cc78c35317d46eb2192ac23943a2b.zip
chromium_src-43025b7aae5cc78c35317d46eb2192ac23943a2b.tar.gz
chromium_src-43025b7aae5cc78c35317d46eb2192ac23943a2b.tar.bz2
Show "DNS" as the authority for DNSSEC validated certficiates.
At the moment, if we validate a certificate using DNSSEC the Page Info dialog will show whatever Issuer the site chose as the issuing authority. That's confusing because the site could choose a string like 'US Dept of Homeland Security' (for example) which is misleading. This patch forces the authority string to always be "DNSSEC" in the case that we used DNSSEC to validate the certificate. (The string "DNSSEC" isn't translated as it's an acronym.) BUG=none TEST=none http://codereview.chromium.org/3304016/show git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59686 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/socket')
-rw-r--r--net/socket/ssl_client_socket_nss.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/socket/ssl_client_socket_nss.cc b/net/socket/ssl_client_socket_nss.cc
index 035007f..9b706ce 100644
--- a/net/socket/ssl_client_socket_nss.cc
+++ b/net/socket/ssl_client_socket_nss.cc
@@ -69,6 +69,7 @@
#include "base/string_number_conversions.h"
#include "base/string_util.h"
#include "net/base/address_list.h"
+#include "net/base/cert_status_flags.h"
#include "net/base/cert_verifier.h"
#include "net/base/dnsrr_resolver.h"
#include "net/base/dnssec_chain_verifier.h"
@@ -1708,6 +1709,7 @@ int SSLClientSocketNSS::DoVerifyDNSSEC(int result) {
if (ssl_config_.dnssec_enabled) {
DNSValidationResult r = CheckDNSSECChain(hostname_, server_cert_nss_);
if (r == DNSVR_SUCCESS) {
+ server_cert_verify_result_.cert_status |= CERT_STATUS_IS_DNSSEC;
GotoState(STATE_VERIFY_CERT_COMPLETE);
return OK;
}
@@ -1746,18 +1748,19 @@ int SSLClientSocketNSS::DoVerifyDNSSECComplete(int result) {
if (!ssl_config_.dnssec_enabled) {
// If DNSSEC is not enabled we don't take any action based on the result,
// except to record the latency, above.
- GotoState(STATE_VERIFY_CERT);
return OK;
}
switch (r) {
case DNSVR_FAILURE:
GotoState(STATE_VERIFY_CERT_COMPLETE);
+ server_cert_verify_result_.cert_status |= CERT_STATUS_NOT_IN_DNS;
return ERR_CERT_NOT_IN_DNS;
case DNSVR_CONTINUE:
GotoState(STATE_VERIFY_CERT);
break;
case DNSVR_SUCCESS:
+ server_cert_verify_result_.cert_status |= CERT_STATUS_IS_DNSSEC;
GotoState(STATE_VERIFY_CERT_COMPLETE);
break;
default: