// 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 QUICHE_QUIC_CORE_QUIC_CRYPTO_STREAM_H_ #define QUICHE_QUIC_CORE_QUIC_CRYPTO_STREAM_H_ #include <array> #include <cstddef> #include <string> #include "absl/strings/string_view.h" #include "openssl/ssl.h" #include "quiche/quic/core/crypto/crypto_framer.h" #include "quiche/quic/core/crypto/crypto_utils.h" #include "quiche/quic/core/proto/cached_network_parameters_proto.h" #include "quiche/quic/core/quic_config.h" #include "quiche/quic/core/quic_packets.h" #include "quiche/quic/core/quic_stream.h" #include "quiche/quic/core/quic_types.h" #include "quiche/quic/platform/api/quic_export.h" namespace quic { class CachedNetworkParameters; class QuicSession; // Crypto handshake messages in QUIC take place over a reserved stream with the // id 1. Each endpoint (client and server) will allocate an instance of a // subclass of QuicCryptoStream to send and receive handshake messages. (In the // normal 1-RTT handshake, the client will send a client hello, CHLO, message. // The server will receive this message and respond with a server hello message, // SHLO. At this point both sides will have established a crypto context they // can use to send encrypted messages. // // For more details: // https://docs.google.com/document/d/1g5nIXAIkN_Y-7XJW5K45IblHd_L2f5LTaDUDwvZ5L6g/edit?usp=sharing class QUICHE_EXPORT QuicCryptoStream : public QuicStream { … }; } // namespace quic #endif // QUICHE_QUIC_CORE_QUIC_CRYPTO_STREAM_H_