| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_QUIC_CRYPTO_SERVER_STREAM_H_ | 5 #ifndef NET_QUIC_QUIC_CRYPTO_SERVER_STREAM_H_ |
| 6 #define NET_QUIC_QUIC_CRYPTO_SERVER_STREAM_H_ | 6 #define NET_QUIC_QUIC_CRYPTO_SERVER_STREAM_H_ |
| 7 | 7 |
| 8 #include <cstdint> | 8 #include <cstdint> |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 uint8_t NumHandshakeMessagesWithServerNonces() const override; | 117 uint8_t NumHandshakeMessagesWithServerNonces() const override; |
| 118 int NumServerConfigUpdateMessagesSent() const override; | 118 int NumServerConfigUpdateMessagesSent() const override; |
| 119 const CachedNetworkParameters* PreviousCachedNetworkParams() const override; | 119 const CachedNetworkParameters* PreviousCachedNetworkParams() const override; |
| 120 bool UseStatelessRejectsIfPeerSupported() const override; | 120 bool UseStatelessRejectsIfPeerSupported() const override; |
| 121 bool PeerSupportsStatelessRejects() const override; | 121 bool PeerSupportsStatelessRejects() const override; |
| 122 void SetPeerSupportsStatelessRejects( | 122 void SetPeerSupportsStatelessRejects( |
| 123 bool peer_supports_stateless_rejects) override; | 123 bool peer_supports_stateless_rejects) override; |
| 124 void SetPreviousCachedNetworkParams( | 124 void SetPreviousCachedNetworkParams( |
| 125 CachedNetworkParameters cached_network_params) override; | 125 CachedNetworkParameters cached_network_params) override; |
| 126 | 126 |
| 127 // NOTE: Indicating that the Expect-CT header should be sent here presents |
| 128 // a layering violation to some extent. The Expect-CT header only applies to |
| 129 // HTTP connections, while this class can be used for non-HTTP applications. |
| 130 // However, it is exposed here because that is the only place where the |
| 131 // configuration for the certificate used in the connection is accessible. |
| 132 bool ShouldSendExpectCTHeader() const { |
| 133 return signed_config_->send_expect_ct_header; |
| 134 } |
| 135 |
| 127 protected: | 136 protected: |
| 128 virtual void ProcessClientHello( | 137 virtual void ProcessClientHello( |
| 129 scoped_refptr<ValidateClientHelloResultCallback::Result> result, | 138 scoped_refptr<ValidateClientHelloResultCallback::Result> result, |
| 130 std::unique_ptr<ProofSource::Details> proof_source_details, | 139 std::unique_ptr<ProofSource::Details> proof_source_details, |
| 131 std::unique_ptr<ProcessClientHelloResultCallback> done_cb); | 140 std::unique_ptr<ProcessClientHelloResultCallback> done_cb); |
| 132 | 141 |
| 133 // Hook that allows the server to set QuicConfig defaults just | 142 // Hook that allows the server to set QuicConfig defaults just |
| 134 // before going through the parameter negotiation step. | 143 // before going through the parameter negotiation step. |
| 135 virtual void OverrideQuicConfigDefaults(QuicConfig* config); | 144 virtual void OverrideQuicConfigDefaults(QuicConfig* config); |
| 136 | 145 |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 205 | 214 |
| 206 // crypto_config_ contains crypto parameters for the handshake. | 215 // crypto_config_ contains crypto parameters for the handshake. |
| 207 const QuicCryptoServerConfig* crypto_config_; | 216 const QuicCryptoServerConfig* crypto_config_; |
| 208 | 217 |
| 209 // compressed_certs_cache_ contains a set of most recently compressed certs. | 218 // compressed_certs_cache_ contains a set of most recently compressed certs. |
| 210 // Owned by QuicDispatcher. | 219 // Owned by QuicDispatcher. |
| 211 QuicCompressedCertsCache* compressed_certs_cache_; | 220 QuicCompressedCertsCache* compressed_certs_cache_; |
| 212 | 221 |
| 213 // Server's certificate chain and signature of the server config, as provided | 222 // Server's certificate chain and signature of the server config, as provided |
| 214 // by ProofSource::GetProof. | 223 // by ProofSource::GetProof. |
| 215 scoped_refptr<QuicCryptoProof> crypto_proof_; | 224 scoped_refptr<QuicSignedServerConfig> signed_config_; |
| 216 | 225 |
| 217 // Hash of the last received CHLO message which can be used for generating | 226 // Hash of the last received CHLO message which can be used for generating |
| 218 // server config update messages. | 227 // server config update messages. |
| 219 std::string chlo_hash_; | 228 std::string chlo_hash_; |
| 220 | 229 |
| 221 // Pointer to the active callback that will receive the result of | 230 // Pointer to the active callback that will receive the result of |
| 222 // the client hello validation request and forward it to | 231 // the client hello validation request and forward it to |
| 223 // FinishProcessingHandshakeMessage for processing. nullptr if no | 232 // FinishProcessingHandshakeMessage for processing. nullptr if no |
| 224 // handshake message is being validated. | 233 // handshake message is being validated. |
| 225 ValidateCallback* validate_client_hello_cb_; | 234 ValidateCallback* validate_client_hello_cb_; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 270 // ProcessClientHello and forward it to | 279 // ProcessClientHello and forward it to |
| 271 // FinishProcessingHandshakeMessageAfterProcessClientHello. | 280 // FinishProcessingHandshakeMessageAfterProcessClientHello. |
| 272 ProcessClientHelloCallback* process_client_hello_cb_; | 281 ProcessClientHelloCallback* process_client_hello_cb_; |
| 273 | 282 |
| 274 DISALLOW_COPY_AND_ASSIGN(QuicCryptoServerStream); | 283 DISALLOW_COPY_AND_ASSIGN(QuicCryptoServerStream); |
| 275 }; | 284 }; |
| 276 | 285 |
| 277 } // namespace net | 286 } // namespace net |
| 278 | 287 |
| 279 #endif // NET_QUIC_QUIC_CRYPTO_SERVER_STREAM_H_ | 288 #endif // NET_QUIC_QUIC_CRYPTO_SERVER_STREAM_H_ |
| OLD | NEW |