| Index: net/quic/test_tools/crypto_test_utils.h
|
| diff --git a/net/quic/test_tools/crypto_test_utils.h b/net/quic/test_tools/crypto_test_utils.h
|
| deleted file mode 100644
|
| index c72b904cefa96179cc50e5aaa3317413d3ae5893..0000000000000000000000000000000000000000
|
| --- a/net/quic/test_tools/crypto_test_utils.h
|
| +++ /dev/null
|
| @@ -1,191 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef NET_QUIC_TEST_TOOLS_CRYPTO_TEST_UTILS_H_
|
| -#define NET_QUIC_TEST_TOOLS_CRYPTO_TEST_UTILS_H_
|
| -
|
| -#include <stdarg.h>
|
| -
|
| -#include <utility>
|
| -#include <vector>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/logging.h"
|
| -#include "base/strings/string_piece.h"
|
| -#include "net/quic/crypto/crypto_framer.h"
|
| -#include "net/quic/quic_framer.h"
|
| -#include "net/quic/quic_protocol.h"
|
| -
|
| -namespace net {
|
| -
|
| -class ChannelIDSource;
|
| -class CommonCertSets;
|
| -class ProofSource;
|
| -class ProofVerifier;
|
| -class ProofVerifyContext;
|
| -class QuicClock;
|
| -class QuicConfig;
|
| -class QuicCryptoClientStream;
|
| -class QuicCryptoServerConfig;
|
| -class QuicCryptoServerStream;
|
| -class QuicCryptoStream;
|
| -class QuicRandom;
|
| -
|
| -namespace test {
|
| -
|
| -class PacketSavingConnection;
|
| -
|
| -class CryptoTestUtils {
|
| - public:
|
| - // An interface for a source of callbacks. This is used for invoking
|
| - // callbacks asynchronously.
|
| - //
|
| - // Call the RunPendingCallbacks method regularly to run the callbacks from
|
| - // this source.
|
| - class CallbackSource {
|
| - public:
|
| - virtual ~CallbackSource() {}
|
| -
|
| - // Runs pending callbacks from this source. If there is no pending
|
| - // callback, does nothing.
|
| - virtual void RunPendingCallbacks() = 0;
|
| - };
|
| -
|
| - // FakeClientOptions bundles together a number of options for configuring
|
| - // HandshakeWithFakeClient.
|
| - struct FakeClientOptions {
|
| - FakeClientOptions();
|
| -
|
| - // If dont_verify_certs is true then no ProofVerifier is set on the client.
|
| - // Thus no certificates will be requested or checked.
|
| - bool dont_verify_certs;
|
| -
|
| - // If channel_id_enabled is true then the client will attempt to send a
|
| - // ChannelID.
|
| - bool channel_id_enabled;
|
| -
|
| - // If channel_id_source_async is true then the client will use an async
|
| - // ChannelIDSource for testing. Ignored if channel_id_enabled is false.
|
| - bool channel_id_source_async;
|
| - };
|
| -
|
| - // returns: the number of client hellos that the client sent.
|
| - static int HandshakeWithFakeServer(PacketSavingConnection* client_conn,
|
| - QuicCryptoClientStream* client);
|
| -
|
| - // returns: the number of client hellos that the client sent.
|
| - static int HandshakeWithFakeClient(PacketSavingConnection* server_conn,
|
| - QuicCryptoServerStream* server,
|
| - const FakeClientOptions& options);
|
| -
|
| - // SetupCryptoServerConfigForTest configures |config| and |crypto_config|
|
| - // with sensible defaults for testing.
|
| - static void SetupCryptoServerConfigForTest(
|
| - const QuicClock* clock,
|
| - QuicRandom* rand,
|
| - QuicConfig* config,
|
| - QuicCryptoServerConfig* crypto_config);
|
| -
|
| - // CommunicateHandshakeMessages moves messages from |a| to |b| and back until
|
| - // |a|'s handshake has completed.
|
| - static void CommunicateHandshakeMessages(PacketSavingConnection* a_conn,
|
| - QuicCryptoStream* a,
|
| - PacketSavingConnection* b_conn,
|
| - QuicCryptoStream* b);
|
| -
|
| - // CommunicateHandshakeMessagesAndRunCallbacks moves messages from |a| to |b|
|
| - // and back until |a|'s handshake has completed. If |callback_source| is not
|
| - // nullptr, CommunicateHandshakeMessagesAndRunCallbacks also runs callbacks
|
| - // from
|
| - // |callback_source| between processing messages.
|
| - static void CommunicateHandshakeMessagesAndRunCallbacks(
|
| - PacketSavingConnection* a_conn,
|
| - QuicCryptoStream* a,
|
| - PacketSavingConnection* b_conn,
|
| - QuicCryptoStream* b,
|
| - CallbackSource* callback_source);
|
| -
|
| - // AdvanceHandshake attempts to moves messages from |a| to |b| and |b| to |a|.
|
| - // Returns the number of messages moved.
|
| - static std::pair<size_t, size_t> AdvanceHandshake(
|
| - PacketSavingConnection* a_conn,
|
| - QuicCryptoStream* a,
|
| - size_t a_i,
|
| - PacketSavingConnection* b_conn,
|
| - QuicCryptoStream* b,
|
| - size_t b_i);
|
| -
|
| - // Returns the value for the tag |tag| in the tag value map of |message|.
|
| - static std::string GetValueForTag(const CryptoHandshakeMessage& message,
|
| - QuicTag tag);
|
| -
|
| - // Returns a |ProofSource| that serves up test certificates.
|
| - static ProofSource* ProofSourceForTesting();
|
| -
|
| - // Returns a |ProofVerifier| that uses the QUIC testing root CA.
|
| - static ProofVerifier* ProofVerifierForTesting();
|
| -
|
| - // Returns a |ProofVerifyContext| that must be used with the verifier
|
| - // returned by |ProofVerifierForTesting|.
|
| - static ProofVerifyContext* ProofVerifyContextForTesting();
|
| -
|
| - // These functions return a fake |ProofSource|, |ProofVerifier|, or
|
| - // |ProofVerifyContext| that works with each other. These are suitable for
|
| - // unit tests that aren't concerned with |ProofSource| and |ProofVerifier|.
|
| - // TODO(wtc): delete these when Chromium has a working
|
| - // ProofSourceForTesting().
|
| - static ProofSource* FakeProofSourceForTesting();
|
| - static ProofVerifier* FakeProofVerifierForTesting();
|
| - static ProofVerifyContext* FakeProofVerifyContextForTesting();
|
| -
|
| - // MockCommonCertSets returns a CommonCertSets that contains a single set with
|
| - // hash |hash|, consisting of the certificate |cert| at index |index|.
|
| - static CommonCertSets* MockCommonCertSets(base::StringPiece cert,
|
| - uint64 hash,
|
| - uint32 index);
|
| -
|
| - // ParseTag returns a QuicTag from parsing |tagstr|. |tagstr| may either be
|
| - // in the format "EXMP" (i.e. ASCII format), or "#11223344" (an explicit hex
|
| - // format). It CHECK fails if there's a parse error.
|
| - static QuicTag ParseTag(const char* tagstr);
|
| -
|
| - // Message constructs a handshake message from a variable number of
|
| - // arguments. |message_tag| is passed to |ParseTag| and used as the tag of
|
| - // the resulting message. The arguments are taken in pairs and nullptr
|
| - // terminated. The first of each pair is the tag of a tag/value and is given
|
| - // as an argument to |ParseTag|. The second is the value of the tag/value
|
| - // pair and is either a hex dump, preceeded by a '#', or a raw value.
|
| - //
|
| - // Message(
|
| - // "CHLO",
|
| - // "NOCE", "#11223344",
|
| - // "SNI", "www.example.com",
|
| - // nullptr);
|
| - static CryptoHandshakeMessage Message(const char* message_tag, ...);
|
| -
|
| - // BuildMessage is the same as |Message|, but takes the variable arguments
|
| - // explicitly. TODO(rtenneti): Investigate whether it'd be better for
|
| - // Message() and BuildMessage() to return a CryptoHandshakeMessage* pointer
|
| - // instead, to avoid copying the return value.
|
| - static CryptoHandshakeMessage BuildMessage(const char* message_tag,
|
| - va_list ap);
|
| -
|
| - // ChannelIDSourceForTesting returns a ChannelIDSource that generates keys
|
| - // deterministically based on the hostname given in the GetChannelIDKey call.
|
| - // This ChannelIDSource works in synchronous mode, i.e., its GetChannelIDKey
|
| - // method never returns QUIC_PENDING.
|
| - static ChannelIDSource* ChannelIDSourceForTesting();
|
| -
|
| - private:
|
| - static void CompareClientAndServerKeys(QuicCryptoClientStream* client,
|
| - QuicCryptoServerStream* server);
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(CryptoTestUtils);
|
| -};
|
| -
|
| -} // namespace test
|
| -
|
| -} // namespace net
|
| -
|
| -#endif // NET_QUIC_TEST_TOOLS_CRYPTO_TEST_UTILS_H_
|
|
|