#include "quiche/quic/masque/masque_utils.h"
#include <cstdint>
#include <cstring>
#include <ostream>
#include <string>
#include <utility>
#include "absl/strings/escaping.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "quiche/quic/core/quic_config.h"
#include "quiche/quic/core/quic_data_writer.h"
#include "quiche/quic/core/quic_versions.h"
#include "quiche/quic/platform/api/quic_ip_address.h"
#include "quiche/quic/platform/api/quic_logging.h"
#include "quiche/common/platform/api/quiche_logging.h"
#if defined(__linux__)
#include <fcntl.h>
#include <linux/if.h>
#include <linux/if_tun.h>
#include <sys/ioctl.h>
#endif
#include "absl/cleanup/cleanup.h"
namespace quic {
ParsedQuicVersionVector MasqueSupportedVersions() { … }
std::string MasqueModeToString(MasqueMode masque_mode) { … }
std::ostream& operator<<(std::ostream& os, const MasqueMode& masque_mode) { … }
#if defined(__linux__)
int CreateTunInterface(const QuicIpAddress& client_address, bool server) { … }
#else
int CreateTunInterface(const QuicIpAddress& ,
bool ) {
return -1;
}
#endif
#if defined(__linux__)
int CreateTapInterface() { … }
#else
int CreateTapInterface() {
return -1;
}
#endif
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) { … }
std::string ConcealedAuthDataCoveredBySignature(
absl::string_view signature_input) { … }
}