Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(66)

Unified Diff: net/socket/ssl_client_socket_impl.cc

Issue 2040513003: Implement Expect-Staple (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments from estark@ Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/socket/ssl_client_socket_impl.cc
diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc
index bcd66037690e803e7ded9f276660fcd24d328cea..f95dff369e7a5a70261718bdc520a6067ffeb59d 100644
--- a/net/socket/ssl_client_socket_impl.cc
+++ b/net/socket/ssl_client_socket_impl.cc
@@ -85,6 +85,9 @@ const uint8_t kTbProtocolVersionMinor = 5;
const uint8_t kTbMinProtocolVersionMajor = 0;
const uint8_t kTbMinProtocolVersionMinor = 3;
+// Max age for OCSP responses
+const base::TimeDelta kAgeOneWeek = base::TimeDelta::FromDays(7);
+
bool EVP_MDToPrivateKeyHash(const EVP_MD* md, SSLPrivateKey::Hash* hash) {
switch (EVP_MD_type(md)) {
case NID_md5_sha1:
@@ -1349,6 +1352,8 @@ int SSLClientSocketImpl::DoVerifyCertComplete(int result) {
// the connection.
VerifyCT();
+ CheckOCSP(*server_cert_verify_result_.verified_cert, *server_cert_);
+
DCHECK(!certificate_verified_);
certificate_verified_ = true;
MaybeCacheSession();
@@ -1435,6 +1440,15 @@ void SSLClientSocketImpl::VerifyCT() {
}
}
+void SSLClientSocketImpl::CheckOCSP(
+ const X509Certificate& verified_certificate,
+ const X509Certificate& unverified_certificate) {
+ base::Time verify_time = base::Time::Now();
+ transport_security_state_->CheckExpectStaple(
+ host_and_port_, verified_certificate, unverified_certificate, verify_time,
+ kAgeOneWeek, ocsp_response_);
+}
+
void SSLClientSocketImpl::OnHandshakeIOComplete(int result) {
int rv = DoHandshakeLoop(result);
if (rv != ERR_IO_PENDING) {

Powered by Google App Engine
This is Rietveld 408576698