| OLD | NEW | 
|   1 // Copyright 2013 The Chromium Authors. All rights reserved. |   1 // Copyright 2013 The Chromium Authors. All rights reserved. | 
|   2 // Use of this source code is governed by a BSD-style license that can be |   2 // Use of this source code is governed by a BSD-style license that can be | 
|   3 // found in the LICENSE file. |   3 // found in the LICENSE file. | 
|   4  |   4  | 
|   5 #ifndef NET_CERT_CT_VERIFIER_H_ |   5 #ifndef NET_CERT_CT_VERIFIER_H_ | 
|   6 #define NET_CERT_CT_VERIFIER_H_ |   6 #define NET_CERT_CT_VERIFIER_H_ | 
|   7  |   7  | 
|   8 #include <string> |   8 #include <string> | 
|   9  |   9  | 
|  10 #include "net/base/net_export.h" |  10 #include "net/base/net_export.h" | 
|  11  |  11  | 
|  12 namespace net { |  12 namespace net { | 
|  13  |  13  | 
|  14 namespace ct { |  14 namespace ct { | 
|  15 struct CTVerifyResult; |  15 struct CTVerifyResult; | 
|  16 struct SignedCertificateTimestamp; |  16 struct SignedCertificateTimestamp; | 
|  17 }  // namespace ct |  17 }  // namespace ct | 
|  18  |  18  | 
|  19 class BoundNetLog; |  19 class BoundNetLog; | 
|  20 class CTLogVerifier; |  20 class CTLogVerifier; | 
|  21 class X509Certificate; |  21 class X509Certificate; | 
|  22  |  22  | 
|  23 // Interface for verifying Signed Certificate Timestamps over a certificate. |  23 // Interface for verifying Signed Certificate Timestamps over a certificate. | 
|  24 // The only known (non-test) implementation currently is MultiLogCTVerifier. |  24 // The only known (non-test) implementation currently is MultiLogCTVerifier. | 
|  25 class NET_EXPORT CTVerifier { |  25 class NET_EXPORT CTVerifier { | 
|  26  public: |  26  public: | 
|  27   class NET_EXPORT Observer { |  27   class NET_EXPORT Observer { | 
|  28    public: |  28    public: | 
 |  29     virtual ~Observer() {} | 
|  29     // Called for each Signed Certificate Timestamp from a known log that vas |  30     // Called for each Signed Certificate Timestamp from a known log that vas | 
|  30     // verified successfully (i.e. the signature verifies). |sct| is the |  31     // verified successfully (i.e. the signature verifies). |sct| is the | 
|  31     // Signed Certificate Timestamp, |cert| is the certificate it applies to. |  32     // Signed Certificate Timestamp, |cert| is the certificate it applies to. | 
|  32     // The certificate is needed to calculate the hash of the log entry, |  33     // The certificate is needed to calculate the hash of the log entry, | 
|  33     // necessary for checking inclusion in the log. |  34     // necessary for checking inclusion in the log. | 
|  34     // Note: The observer (whose implementation is expected to exist outside |  35     // Note: The observer (whose implementation is expected to exist outside | 
|  35     // net/) may store the observed |cert| and |sct|. |  36     // net/) may store the observed |cert| and |sct|. | 
|  36     virtual void OnSCTVerified(X509Certificate* cert, |  37     virtual void OnSCTVerified(X509Certificate* cert, | 
|  37                                const ct::SignedCertificateTimestamp* sct) = 0; |  38                                const ct::SignedCertificateTimestamp* sct) = 0; | 
|  38   }; |  39   }; | 
| (...skipping 19 matching lines...) Expand all  Loading... | 
|  58   // Registers |observer| to receive notifications of validated SCTs. Does not |  59   // Registers |observer| to receive notifications of validated SCTs. Does not | 
|  59   // take ownership of the observer as the observer may be performing |  60   // take ownership of the observer as the observer may be performing | 
|  60   // URLRequests which have to be cancelled before this object is destroyed. |  61   // URLRequests which have to be cancelled before this object is destroyed. | 
|  61   // Setting |observer| to nullptr has the effect of stopping all notifications. |  62   // Setting |observer| to nullptr has the effect of stopping all notifications. | 
|  62   virtual void SetObserver(Observer* observer) = 0; |  63   virtual void SetObserver(Observer* observer) = 0; | 
|  63 }; |  64 }; | 
|  64  |  65  | 
|  65 }  // namespace net |  66 }  // namespace net | 
|  66  |  67  | 
|  67 #endif  // NET_CERT_CT_VERIFIER_H_ |  68 #endif  // NET_CERT_CT_VERIFIER_H_ | 
| OLD | NEW |