// Copyright (c) 2013 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_CRYPTO_CRYPTO_HANDSHAKE_H_ #define QUICHE_QUIC_CORE_CRYPTO_CRYPTO_HANDSHAKE_H_ #include <memory> #include <string> #include <vector> #include "quiche/quic/core/quic_packets.h" #include "quiche/quic/platform/api/quic_export.h" namespace quic { class SynchronousKeyExchange; class QuicDecrypter; class QuicEncrypter; // HandshakeFailureReason enum values are uploaded to UMA, they cannot be // changed. enum HandshakeFailureReason { … }; // These errors will be packed into an uint32_t and we don't want to set the // most significant bit, which may be misinterpreted as the sign bit. static_assert …; // A CrypterPair contains the encrypter and decrypter for an encryption level. struct QUICHE_EXPORT CrypterPair { … }; // Parameters negotiated by the crypto handshake. struct QUICHE_EXPORT QuicCryptoNegotiatedParameters : public quiche::QuicheReferenceCounted { … }; // QuicCryptoConfig contains common configuration between clients and servers. class QUICHE_EXPORT QuicCryptoConfig { … }; } // namespace quic #endif // QUICHE_QUIC_CORE_CRYPTO_CRYPTO_HANDSHAKE_H_