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

Side by Side Diff: net/quic/crypto/crypto_handshake.h

Issue 20047002: net: make QUIC ProofVerifier more generic. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Can't use a token called "ERROR" on Windows. Created 7 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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_CRYPTO_HANDSHAKE_H_ 5 #ifndef NET_QUIC_CRYPTO_CRYPTO_HANDSHAKE_H_
6 #define NET_QUIC_CRYPTO_CRYPTO_HANDSHAKE_H_ 6 #define NET_QUIC_CRYPTO_CRYPTO_HANDSHAKE_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "base/strings/string_piece.h" 13 #include "base/strings/string_piece.h"
14 #include "net/base/net_export.h" 14 #include "net/base/net_export.h"
15 #include "net/cert/cert_verify_result.h" 15 #include "net/cert/cert_verify_result.h"
16 #include "net/cert/x509_certificate.h" 16 #include "net/cert/x509_certificate.h"
17 #include "net/quic/crypto/crypto_protocol.h" 17 #include "net/quic/crypto/crypto_protocol.h"
18 #include "net/quic/crypto/proof_verifier.h"
18 #include "net/quic/quic_protocol.h" 19 #include "net/quic/quic_protocol.h"
19 20
20 namespace net { 21 namespace net {
21 22
22 class ChannelIDSigner; 23 class ChannelIDSigner;
23 class CommonCertSets; 24 class CommonCertSets;
24 class KeyExchange; 25 class KeyExchange;
25 class ProofVerifier; 26 class ProofVerifier;
26 class QuicDecrypter; 27 class QuicDecrypter;
27 class QuicEncrypter; 28 class QuicEncrypter;
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 // revalidated. Helper function to keep server_config_valid_ and 275 // revalidated. Helper function to keep server_config_valid_ and
275 // generation_counter_ in sync. 276 // generation_counter_ in sync.
276 void SetProofInvalid(); 277 void SetProofInvalid();
277 278
278 const std::string& server_config() const; 279 const std::string& server_config() const;
279 const std::string& source_address_token() const; 280 const std::string& source_address_token() const;
280 const std::vector<std::string>& certs() const; 281 const std::vector<std::string>& certs() const;
281 const std::string& signature() const; 282 const std::string& signature() const;
282 bool proof_valid() const; 283 bool proof_valid() const;
283 uint64 generation_counter() const; 284 uint64 generation_counter() const;
284 const CertVerifyResult* cert_verify_result() const; 285 const ProofVerifyDetails* proof_verify_details() const;
285 286
286 void set_source_address_token(base::StringPiece token); 287 void set_source_address_token(base::StringPiece token);
287 void SetCertVerifyResult(const CertVerifyResult& cert_verify_result); 288
289 // SetProofVerifyDetails takes ownership of |details|.
290 void SetProofVerifyDetails(ProofVerifyDetails* details);
288 291
289 private: 292 private:
290 std::string server_config_id_; // An opaque id from the server. 293 std::string server_config_id_; // An opaque id from the server.
291 std::string server_config_; // A serialized handshake message. 294 std::string server_config_; // A serialized handshake message.
292 std::string source_address_token_; // An opaque proof of IP ownership. 295 std::string source_address_token_; // An opaque proof of IP ownership.
293 std::vector<std::string> certs_; // A list of certificates in leaf-first 296 std::vector<std::string> certs_; // A list of certificates in leaf-first
294 // order. 297 // order.
295 std::string server_config_sig_; // A signature of |server_config_|. 298 std::string server_config_sig_; // A signature of |server_config_|.
296 bool server_config_valid_; // True if |server_config_| is correctly 299 bool server_config_valid_; // True if |server_config_| is correctly
297 // signed and |certs_| has been 300 // signed and |certs_| has been
298 // validated. 301 // validated.
299 // Generation counter associated with the |server_config_|, |certs_| and 302 // Generation counter associated with the |server_config_|, |certs_| and
300 // |server_config_sig_| combination. It is incremented whenever we set 303 // |server_config_sig_| combination. It is incremented whenever we set
301 // server_config_valid_ to false. 304 // server_config_valid_ to false.
302 uint64 generation_counter_; 305 uint64 generation_counter_;
303 306
304 // The result of certificate verification. 307 scoped_ptr<ProofVerifyDetails> proof_verify_details_;
305 // TODO(rtenneti): should we change CertVerifyResult to be
306 // RefCountedThreadSafe object to avoid copying.
307 CertVerifyResult cert_verify_result_;
308 308
309 // scfg contains the cached, parsed value of |server_config|. 309 // scfg contains the cached, parsed value of |server_config|.
310 mutable scoped_ptr<CryptoHandshakeMessage> scfg_; 310 mutable scoped_ptr<CryptoHandshakeMessage> scfg_;
311 }; 311 };
312 312
313 QuicCryptoClientConfig(); 313 QuicCryptoClientConfig();
314 ~QuicCryptoClientConfig(); 314 ~QuicCryptoClientConfig();
315 315
316 // Sets the members to reasonable, default values. 316 // Sets the members to reasonable, default values.
317 void SetDefaults(); 317 void SetDefaults();
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 390
391 scoped_ptr<ProofVerifier> proof_verifier_; 391 scoped_ptr<ProofVerifier> proof_verifier_;
392 scoped_ptr<ChannelIDSigner> channel_id_signer_; 392 scoped_ptr<ChannelIDSigner> channel_id_signer_;
393 393
394 DISALLOW_COPY_AND_ASSIGN(QuicCryptoClientConfig); 394 DISALLOW_COPY_AND_ASSIGN(QuicCryptoClientConfig);
395 }; 395 };
396 396
397 } // namespace net 397 } // namespace net
398 398
399 #endif // NET_QUIC_CRYPTO_CRYPTO_HANDSHAKE_H_ 399 #endif // NET_QUIC_CRYPTO_CRYPTO_HANDSHAKE_H_
OLDNEW
« no previous file with comments | « net/net.gyp ('k') | net/quic/crypto/crypto_handshake.cc » ('j') | net/quic/crypto/proof_test.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698