18#include <unordered_set> 
   34namespace InitProcess {
 
 
  154    KeyValue(std::string key_arg, std::string value_arg)
 
  155        : 
key(std::move(key_arg)),
 
  156          value(std::move(value_arg))
 
 
 
  213#if defined(OPENVPN_PLATFORM_WIN) || defined(OPENVPN_PLATFORM_MAC) || defined(OPENVPN_PLATFORM_LINUX) || defined(OPENVPN_PLATFORM_IPHONE) 
  288#if defined(ENABLE_OVPNDCO) || defined(ENABLE_OVPNDCOWIN) 
  304#ifdef OPENVPN_PLATFORM_ANDROID 
  308    bool enableRouteEmulation = 
true;
 
 
  623    virtual bool socket_protect(openvpn_io::detail::socket_type socket, std::string remote, 
bool ipv6);
 
  648    void pause(
const std::string &reason);
 
  702                          const std::string &clientkey,
 
  703                          const std::optional<const std::string> &ca = std::nullopt);
 
  771    bool sign(
const std::string &alias,
 
  772              const std::string &data,
 
  774              const std::string &algorithm,
 
  775              const std::string &hashalg,
 
  776              const std::string &saltlen) 
override;
 
 
OpenVPNClientHelper(OpenVPNClientHelper &)=delete
 
static std::string copyright()
 
std::string crypto_self_test()
 
EvalConfig eval_config(const Config &config)
 
MergeConfig merge_config(const std::string &path, bool follow_references)
 
static std::string platform()
 
static void parse_config(const Config &, EvalConfig &, OptionList &)
 
static long max_profile_size()
 
static bool parse_dynamic_challenge(const std::string &cookie, DynamicChallenge &dc)
 
MergeConfig merge_config_string(const std::string &config_content)
 
static MergeConfig build_merge_config(const ProfileMerge &)
 
virtual void clock_tick()
 
void send_app_control_channel_msg(const std::string &protocol, const std::string &msg)
 
virtual void external_pki_sign_request(ExternalPKISignRequest &)=0
 
virtual void log(const LogInfo &) override=0
 
TransportStats transport_stats() const
 
void post_cc_msg(const std::string &msg)
 
virtual void event(const Event &)=0
 
void start_cert_check_epki(const std::string &alias, const std::optional< const std::string > &ca)
Start up the cert check handshake using the given epki_alias string.
 
bool session_token(SessionToken &tok)
 
static Status status_from_exception(const std::exception &)
 
virtual void remote_override(RemoteOverride &)
 
InterfaceStats tun_stats() const
 
std::vector< long long > stats_bundle() const
 
virtual Stop * get_async_stop()
 
void start_cert_check(const std::string &client_cert, const std::string &clientkey, const std::optional< const std::string > &ca=std::nullopt)
Start up the cert check handshake using the given certs and key.
 
void process_epki_cert_chain(const ExternalPKICertRequest &)
 
virtual void connect_attach()
 
ConnectionInfo connection_info()
 
virtual bool remote_override_enabled()
 
void external_pki_error(const ExternalPKIRequestBase &, const Error::Type)
 
virtual void connect_pre_run()
 
Status provide_creds(const ProvideCreds &)
 
static std::string stats_name(int index)
 
virtual bool pause_on_connection_timeout()=0
 
void connect_setup(Status &, bool &)
 
virtual void connect_run()
 
long long stats_value(int index) const
 
virtual void connect_session_stop()
 
virtual void external_pki_cert_request(ExternalPKICertRequest &)=0
 
virtual bool socket_protect(openvpn_io::detail::socket_type socket, std::string remote, bool ipv6)
 
OpenVPNClient & operator=(const OpenVPNClient &)=delete
 
Private::ClientState * state
 
void pause(const std::string &reason)
 
EvalConfig eval_config(const Config &)
 
bool sign(const std::string &alias, const std::string &data, std::string &sig, const std::string &algorithm, const std::string &hashalg, const std::string &saltlen) override
 
OpenVPNClient(const OpenVPNClient &)=delete
 
void reconnect(int seconds)
 
virtual void acc_event(const AppCustomControlMessageEvent &)=0
 
void parse_extras(const Config &, EvalConfig &)
 
TunBuilder methods, loosely based on the Android VpnService.Builder abstraction.
 
bool allowLocalDnsResolvers
 
std::string appCustomProtocols
 
std::string privateKeyPassword
 
std::string tlsVersionMinOverride
 
bool dhcpSearchDomainsAsSplitDomains
 
std::string serverOverride
 
std::string hwAddrOverride
 
std::string proxyUsername
 
std::string proxyPassword
 
bool proxyAllowCleartextAuth
 
bool enableNonPreferredDCAlgorithms
 
std::string tlsCiphersuitesList
 
std::string gremlinConfig
 
std::string tlsCertProfileOverride
 
bool enableLegacyAlgorithms
 
bool synchronousDnsLookup
 
bool generateTunBuilderCaptureEvent
 
std::string platformVersion
 
std::string tlsCipherList
 
std::vector< KeyValue > peerInfo
 
std::string protoOverride
 
std::string externalPkiAlias
 
std::string compressionMode
 
std::string allowUnusedAddrFamilies
 
std::vector< KeyValue > contentList
 
Struct containing configuration details parsed from an OpenVPN configuration file.
 
std::vector< ServerEntry > serverList
 
std::string dcoIncompatibilityReason
 
std::string userlockedUsername
 
bool privateKeyPasswordRequired
 
std::string staticChallenge
 
std::string windowsDriver
 
std::string supportingChain
 
KeyValue(std::string key_arg, std::string value_arg)
 
virtual void log(const LogInfo &)=0
 
virtual ~LogReceiver()=default
 
std::string profileContent
 
std::vector< std::string > refPathList
 
std::string http_proxy_pass
 
std::string http_proxy_user
 
std::string dynamicChallengeCookie
 
os<< "Session Name: "<< tbc-> session_name<< '\n';os<< "Layer: "<< tbc-> layer str()<< '\n'
 
static const char config[]