| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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_QUIC_CRYPTO_PROOF_VERIFIER_H_ | 5 #ifndef NET_QUIC_CRYPTO_PROOF_VERIFIER_H_ |
| 6 #define NET_QUIC_CRYPTO_PROOF_VERIFIER_H_ | 6 #define NET_QUIC_CRYPTO_PROOF_VERIFIER_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "net/base/completion_callback.h" | 11 #include "net/base/completion_callback.h" |
| 12 #include "net/base/net_export.h" | 12 #include "net/base/net_export.h" |
| 13 #include "net/quic/quic_protocol.h" |
| 13 | 14 |
| 14 namespace net { | 15 namespace net { |
| 15 | 16 |
| 16 class CertVerifyResult; | 17 class CertVerifyResult; |
| 17 | 18 |
| 18 // ProofVerifyDetails is an abstract class that acts as a container for any | 19 // ProofVerifyDetails is an abstract class that acts as a container for any |
| 19 // implementation specific details that a ProofVerifier wishes to return. These | 20 // implementation specific details that a ProofVerifier wishes to return. These |
| 20 // details are saved in the CachedInfo for the origin in question. | 21 // details are saved in the CachedInfo for the origin in question. |
| 21 class ProofVerifyDetails { | 22 class ProofVerifyDetails { |
| 22 public: | 23 public: |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 // caller takes ownership of. | 64 // caller takes ownership of. |
| 64 // | 65 // |
| 65 // This function may also return PENDING, in which case the ProofVerifier | 66 // This function may also return PENDING, in which case the ProofVerifier |
| 66 // will call back, on the original thread, via |callback| when complete. | 67 // will call back, on the original thread, via |callback| when complete. |
| 67 // | 68 // |
| 68 // This function takes ownership of |callback|. It will be deleted even if | 69 // This function takes ownership of |callback|. It will be deleted even if |
| 69 // the call returns immediately. | 70 // the call returns immediately. |
| 70 // | 71 // |
| 71 // The signature uses SHA-256 as the hash function and PSS padding in the | 72 // The signature uses SHA-256 as the hash function and PSS padding in the |
| 72 // case of RSA. | 73 // case of RSA. |
| 73 virtual Status VerifyProof(const std::string& hostname, | 74 // |
| 75 // |version| is the QUIC version for the connection. TODO(wtc): Remove once |
| 76 // QUIC_VERSION_7 and before are removed. |
| 77 virtual Status VerifyProof(QuicVersion version, |
| 78 const std::string& hostname, |
| 74 const std::string& server_config, | 79 const std::string& server_config, |
| 75 const std::vector<std::string>& certs, | 80 const std::vector<std::string>& certs, |
| 76 const std::string& signature, | 81 const std::string& signature, |
| 77 std::string* error_details, | 82 std::string* error_details, |
| 78 scoped_ptr<ProofVerifyDetails>* details, | 83 scoped_ptr<ProofVerifyDetails>* details, |
| 79 ProofVerifierCallback* callback) = 0; | 84 ProofVerifierCallback* callback) = 0; |
| 80 }; | 85 }; |
| 81 | 86 |
| 82 } // namespace net | 87 } // namespace net |
| 83 | 88 |
| 84 #endif // NET_QUIC_CRYPTO_PROOF_VERIFIER_H_ | 89 #endif // NET_QUIC_CRYPTO_PROOF_VERIFIER_H_ |
| OLD | NEW |