#ifndef QUICHE_QUIC_MASQUE_MASQUE_UTILS_H_
#define QUICHE_QUIC_MASQUE_MASQUE_UTILS_H_
#include <cstddef>
#include <cstdint>
#include <ostream>
#include <string>
#include "absl/strings/string_view.h"
#include "quiche/quic/core/quic_types.h"
#include "quiche/quic/core/quic_versions.h"
#include "quiche/quic/platform/api/quic_export.h"
#include "quiche/quic/platform/api/quic_ip_address.h"
namespace quic {
QUIC_NO_EXPORT ParsedQuicVersionVector MasqueSupportedVersions();
enum : QuicByteCount { … };
enum class MasqueMode : uint8_t { … };
QUIC_NO_EXPORT std::string MasqueModeToString(MasqueMode masque_mode);
QUIC_NO_EXPORT std::ostream& operator<<(std::ostream& os,
const MasqueMode& masque_mode);
int CreateTunInterface(const QuicIpAddress& client_address, bool server = true);
int CreateTapInterface();
inline constexpr size_t kConcealedAuthSignatureInputSize = …;
inline constexpr size_t kConcealedAuthVerificationSize = …;
inline constexpr size_t kConcealedAuthExporterSize = …;
inline constexpr uint16_t kEd25519SignatureScheme = …;
inline constexpr absl::string_view kConcealedAuthLabel = …;
QUIC_NO_EXPORT std::string ComputeConcealedAuthContext(
uint16_t signature_scheme, absl::string_view key_id,
absl::string_view public_key, absl::string_view scheme,
absl::string_view host, uint16_t port, absl::string_view realm);
QUIC_NO_EXPORT std::string ConcealedAuthDataCoveredBySignature(
absl::string_view signature_input);
}
#endif