Index: net/http/transport_security_state.h |
diff --git a/net/http/transport_security_state.h b/net/http/transport_security_state.h |
index 2988f3ad8a49e9fe072795af4c4b2b9654cb20e0..3f194214ab510480de4468d2c615f21c46604baa 100644 |
--- a/net/http/transport_security_state.h |
+++ b/net/http/transport_security_state.h |
@@ -27,6 +27,7 @@ class GURL; |
namespace net { |
+class ExpectStapleReport; |
class HostPortPair; |
class SSLInfo; |
@@ -385,8 +386,24 @@ class NET_EXPORT TransportSecurityState |
const HostPortPair& host_port_pair, |
const SSLInfo& ssl_info); |
+ // Checks to see if the given |host_port_pair| is in the Expect-Staple preload |
+ // list. If the host is preloaded, this parses |ocsp_response|, validates |
+ // it against |verified_certificate|, and ensures the OCSP response is valid |
+ // at |verify_time| and is no older than |max_age|. If the OCSP response fails |
+ // validation, this sends an Expect-Staple report to the preloaded report URI. |
+ // The report will contain |unverified_certificate| iff |
+ // |is_issued_by_known_root| is true. |
Ryan Sleevi
2016/06/16 21:49:29
This also seems a big "SRP" concern. This doesn't
|
+ void CheckExpectStaple(const HostPortPair& host_port_pair, |
+ const X509Certificate& verified_certificate, |
+ const X509Certificate& unverified_certificate, |
+ bool is_issued_by_known_root, |
+ const base::Time& verify_time, |
+ const base::TimeDelta& max_age, |
+ const std::string& ocsp_response); |
+ |
private: |
friend class TransportSecurityStateTest; |
+ friend class ExpectStapleTest; |
Ryan Sleevi
2016/06/16 21:49:29
I block the addition of friends because I'm a terr
dadrian
2016/06/17 17:26:55
This is a derived class of this files tester. The
|
FRIEND_TEST_ALL_PREFIXES(HttpSecurityHeadersTest, UpdateDynamicPKPOnly); |
FRIEND_TEST_ALL_PREFIXES(HttpSecurityHeadersTest, UpdateDynamicPKPMaxAge0); |
FRIEND_TEST_ALL_PREFIXES(HttpSecurityHeadersTest, NoClobberPins); |
@@ -410,6 +427,14 @@ class NET_EXPORT TransportSecurityState |
// information) is timely. |
static bool IsBuildTimely(); |
+ // Helper method for serializing an ExpectStaple report. |
+ static bool SerializeExpectStapleReport( |
Ryan Sleevi
2016/06/17 16:19:56
DESIGN: Static privates are a design anti-pattern,
dadrian
2016/06/17 17:26:55
It's currently structured like this to be able to
|
+ const HostPortPair& host_port_pair, |
+ const X509Certificate& unverified_certificate, |
+ bool is_issued_by_known_root, |
+ const ExpectStapleReport& report, |
+ std::string* serialized_report); |
+ |
// Helper method for actually checking pins. |
bool CheckPublicKeyPinsImpl( |
const HostPortPair& host_port_pair, |