chromium/net/third_party/quiche/src/quiche/quic/core/crypto/crypto_handshake.h

// 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_