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

Unified Diff: net/quic/crypto/crypto_handshake_message.h

Issue 154643006: Add net/quic/crypto/crypto_handshake_message.{cc,h}. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 6 years, 10 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
« no previous file with comments | « no previous file | net/quic/crypto/crypto_handshake_message.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/crypto/crypto_handshake_message.h
===================================================================
--- net/quic/crypto/crypto_handshake_message.h (revision 248755)
+++ net/quic/crypto/crypto_handshake_message.h (working copy)
@@ -2,32 +2,19 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef NET_QUIC_CRYPTO_CRYPTO_HANDSHAKE_H_
-#define NET_QUIC_CRYPTO_CRYPTO_HANDSHAKE_H_
+#ifndef NET_QUIC_CRYPTO_CRYPTO_HANDSHAKE_MESSAGE_H_
+#define NET_QUIC_CRYPTO_CRYPTO_HANDSHAKE_MESSAGE_H_
-#include <map>
#include <string>
#include <vector>
#include "base/memory/scoped_ptr.h"
#include "base/strings/string_piece.h"
#include "net/base/net_export.h"
-#include "net/cert/cert_verify_result.h"
-#include "net/cert/x509_certificate.h"
-#include "net/quic/crypto/crypto_protocol.h"
-#include "net/quic/crypto/proof_verifier.h"
#include "net/quic/quic_protocol.h"
namespace net {
-class ChannelIDSigner;
-class CommonCertSets;
-class KeyExchange;
-class ProofVerifier;
-class QuicDecrypter;
-class QuicEncrypter;
-class QuicRandom;
-
// An intermediate format of a handshake message that's convenient for a
// CryptoFramer to serialize from or parse into.
class NET_EXPORT_PRIVATE CryptoHandshakeMessage {
@@ -143,83 +130,6 @@
mutable scoped_ptr<QuicData> serialized_;
};
-// A CrypterPair contains the encrypter and decrypter for an encryption level.
-struct NET_EXPORT_PRIVATE CrypterPair {
- CrypterPair();
- ~CrypterPair();
- scoped_ptr<QuicEncrypter> encrypter;
- scoped_ptr<QuicDecrypter> decrypter;
-};
-
-// Parameters negotiated by the crypto handshake.
-struct NET_EXPORT_PRIVATE QuicCryptoNegotiatedParameters {
- // Initializes the members to 0 or empty values.
- QuicCryptoNegotiatedParameters();
- ~QuicCryptoNegotiatedParameters();
-
- QuicTag key_exchange;
- QuicTag aead;
- std::string initial_premaster_secret;
- std::string forward_secure_premaster_secret;
- CrypterPair initial_crypters;
- CrypterPair forward_secure_crypters;
- // Normalized SNI: converted to lower case and trailing '.' removed.
- std::string sni;
- std::string client_nonce;
- std::string server_nonce;
- // hkdf_input_suffix contains the HKDF input following the label: the GUID,
- // client hello and server config. This is only populated in the client
- // because only the client needs to derive the forward secure keys at a later
- // time from the initial keys.
- std::string hkdf_input_suffix;
- // cached_certs contains the cached certificates that a client used when
- // sending a client hello.
- std::vector<std::string> cached_certs;
- // client_key_exchange is used by clients to store the ephemeral KeyExchange
- // for the connection.
- scoped_ptr<KeyExchange> client_key_exchange;
- // channel_id is set by servers to a ChannelID key when the client correctly
- // proves possession of the corresponding private key. It consists of 32
- // bytes of x coordinate, followed by 32 bytes of y coordinate. Both values
- // are big-endian and the pair is a P-256 public key.
- std::string channel_id;
- // client_address is set by clients to the kCADR value provided by the server
- // in ServerHello. It is a serialized form of an IP address and port.
- std::string client_address;
-};
-
-// QuicCryptoConfig contains common configuration between clients and servers.
-class NET_EXPORT_PRIVATE QuicCryptoConfig {
- public:
- // kInitialLabel is a constant that is used when deriving the initial
- // (non-forward secure) keys for the connection in order to tie the resulting
- // key to this protocol.
- static const char kInitialLabel[];
-
- // kCETVLabel is a constant that is used when deriving the keys for the
- // encrypted tag/value block in the client hello.
- static const char kCETVLabel[];
-
- // kForwardSecureLabel is a constant that is used when deriving the forward
- // secure keys for the connection in order to tie the resulting key to this
- // protocol.
- static const char kForwardSecureLabel[];
-
- QuicCryptoConfig();
- ~QuicCryptoConfig();
-
- // Key exchange methods. The following two members' values correspond by
- // index.
- QuicTagVector kexs;
- // Authenticated encryption with associated data (AEAD) algorithms.
- QuicTagVector aead;
-
- const CommonCertSets* common_cert_sets;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(QuicCryptoConfig);
-};
-
} // namespace net
-#endif // NET_QUIC_CRYPTO_CRYPTO_HANDSHAKE_H_
+#endif // NET_QUIC_CRYPTO_CRYPTO_HANDSHAKE_MESSAGE_H_
« no previous file with comments | « no previous file | net/quic/crypto/crypto_handshake_message.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698