25#ifndef JOIN_CRYPTO_TLS_PROTOCOL_HPP
26#define JOIN_CRYPTO_TLS_PROTOCOL_HPP
33 template <
class Protocol>
34 class BasicTlsWrapper;
36 template <
class Protocol>
39 template <
class Protocol>
57 constexpr explicit Tls (
int family = AF_INET) noexcept
66 static inline Tls&
v4 () noexcept
68 static Tls tlsv4 (AF_INET);
76 static inline Tls&
v6 () noexcept
78 static Tls tlsv6 (AF_INET6);
86 constexpr int family () const noexcept
88 return _transport.
family ();
104 return a.family () == b.family ();
143 static Dtls dtlsv4 (AF_INET);
153 static Dtls dtlsv6 (AF_INET6);
163 return _transport.
family ();
179 return a.family () == b.family ();
DTLS decorator for datagram sockets.
Definition tls_protocol.hpp:37
TLS stream class.
Definition tls_stream.hpp:43
TLS decorator for stream sockets.
Definition tls_wrapper.hpp:38
DTLS protocol class (DTLS over UDP).
Definition tls_protocol.hpp:122
constexpr Dtls(int family=AF_INET) noexcept
create the dtls protocol instance.
Definition tls_protocol.hpp:132
static Dtls & v4() noexcept
get protocol suitable for IPv4 address family.
Definition tls_protocol.hpp:141
typename Transport::Endpoint Endpoint
Definition tls_protocol.hpp:125
static Dtls & v6() noexcept
get protocol suitable for IPv6 address family.
Definition tls_protocol.hpp:151
constexpr int family() const noexcept
get the protocol IP address family.
Definition tls_protocol.hpp:161
Udp Transport
Definition tls_protocol.hpp:124
TCP protocol class.
Definition protocol.hpp:471
constexpr int family() const noexcept
get the protocol IP address family.
Definition protocol.hpp:513
BasicInternetEndpoint< Tcp > Endpoint
Definition protocol.hpp:473
TLS protocol class (TLS over TCP).
Definition tls_protocol.hpp:46
typename Transport::Endpoint Endpoint
Definition tls_protocol.hpp:49
static Tls & v6() noexcept
get protocol suitable for IPv6 address family.
Definition tls_protocol.hpp:76
static Tls & v4() noexcept
get protocol suitable for IPv4 address family.
Definition tls_protocol.hpp:66
constexpr int family() const noexcept
get the protocol IP address family.
Definition tls_protocol.hpp:86
constexpr Tls(int family=AF_INET) noexcept
create the tls protocol instance.
Definition tls_protocol.hpp:57
Tcp Transport
Definition tls_protocol.hpp:48
UDP protocol class.
Definition protocol.hpp:280
BasicInternetEndpoint< Udp > Endpoint
Definition protocol.hpp:282
constexpr int family() const noexcept
get the protocol IP address family.
Definition protocol.hpp:319
Definition acceptor.hpp:32
bool operator==(const BasicLinkLayerEndpoint< Protocol > &a, const BasicLinkLayerEndpoint< Protocol > &b) noexcept
compare if endpoints are equal.
Definition endpoint.hpp:186
bool operator!=(const BasicLinkLayerEndpoint< Protocol > &a, const BasicLinkLayerEndpoint< Protocol > &b) noexcept
compare if endpoints are not equal.
Definition endpoint.hpp:198