18#include <unordered_set>
33namespace InitProcess {
155 KeyValue(std::string key_arg, std::string value_arg)
156 :
key(std::move(key_arg)),
157 value(std::move(value_arg))
214#if defined(OPENVPN_PLATFORM_WIN) || defined(OPENVPN_PLATFORM_MAC) || defined(OPENVPN_PLATFORM_LINUX) || defined(OPENVPN_PLATFORM_IPHONE)
289#if defined(ENABLE_OVPNDCO) || defined(ENABLE_OVPNDCOWIN)
305#ifdef OPENVPN_PLATFORM_ANDROID
309 bool enableRouteEmulation =
true;
443 :
text(std::move(str))
625 virtual bool socket_protect(openvpn_io::detail::socket_type socket, std::string remote,
bool ipv6);
650 void pause(
const std::string &reason);
704 const std::string &clientkey,
705 const std::optional<const std::string> &ca = std::nullopt);
773 bool sign(
const std::string &alias,
774 const std::string &data,
776 const std::string &algorithm,
777 const std::string &hashalg,
778 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)
void external_pki_error(const ExternalPKIRequestBase &, const size_t)
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()
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.
Support deferred server-side state creation when client connects.
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
static const char config[]