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

Unified Diff: net/quic/quic_crypto_client_stream.h

Issue 20047002: net: make QUIC ProofVerifier more generic. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: net/quic/quic_crypto_client_stream.h
diff --git a/net/quic/quic_crypto_client_stream.h b/net/quic/quic_crypto_client_stream.h
index 4686fedf1a6c963409d9464601e1693419c42989..6250b26584a17b64d4c5f26b20cfb7d5c278123f 100644
--- a/net/quic/quic_crypto_client_stream.h
+++ b/net/quic/quic_crypto_client_stream.h
@@ -15,6 +15,8 @@
namespace net {
+class ProofVerifierCallbackClientStream;
+class ProofVerifyDetails;
class QuicSession;
class SSLInfo;
@@ -48,6 +50,7 @@ class NET_EXPORT_PRIVATE QuicCryptoClientStream : public QuicCryptoStream {
private:
friend class test::CryptoTestUtils;
+ friend class ProofVerifierCallbackClientStream;
enum State {
STATE_IDLE,
@@ -59,17 +62,8 @@ class NET_EXPORT_PRIVATE QuicCryptoClientStream : public QuicCryptoStream {
};
// DoHandshakeLoop performs a step of the handshake state machine. Note that
- // |in| is NULL for the first call. OnVerifyProofComplete passes the |result|
- // it has received from VerifyProof call (from all other places |result| is
- // set to OK).
- void DoHandshakeLoop(const CryptoHandshakeMessage* in, int result);
-
- // OnVerifyProofComplete is passed as the callback method to VerifyProof.
- // ProofVerifier calls this method with the result of proof verification when
- // verification is performed asynchronously.
- void OnVerifyProofComplete(int result);
-
- base::WeakPtrFactory<QuicCryptoClientStream> weak_factory_;
+ // |in| may be NULL if the call did not result from a received message
+ void DoHandshakeLoop(const CryptoHandshakeMessage* in);
State next_state_;
// num_client_hellos_ contains the number of client hello messages that this
@@ -86,13 +80,15 @@ class NET_EXPORT_PRIVATE QuicCryptoClientStream : public QuicCryptoStream {
// Generation counter from QuicCryptoClientConfig's CachedState.
uint64 generation_counter_;
- // The result of certificate verification.
- // TODO(rtenneti): should we change CertVerifyResult to be
- // RefCountedThreadSafe object to avoid copying.
- CertVerifyResult cert_verify_result_;
+ // proof_verify_callback_ contains the callback object that we passed to an
+ // asynchronous proof verification. The ProofVerifier owns this object.
+ ProofVerifierCallbackClientStream* proof_verify_callback_;
Ryan Hamilton 2013/07/23 18:40:50 nit: I don't think I understand the meaning of the
agl 2013/07/23 21:04:57 It's the implementation of a callback object that
Ryan Hamilton 2013/07/23 21:19:16 Love it!
- // Error details for ProofVerifier's VerifyProof call.
- std::string error_details_;
+ // These members are used to store the result of an asynchronous proof
+ // verification.
+ bool verify_ok_;
+ string verify_error_details_;
+ scoped_ptr<ProofVerifyDetails> verify_details_;
DISALLOW_COPY_AND_ASSIGN(QuicCryptoClientStream);
};

Powered by Google App Engine
This is Rietveld 408576698