27class [[nodiscard]] TlsWrapper
final :
public RwBase {
30 static TlsWrapper
StartTlsClient(Socket&& socket,
const std::string& server_name, Deadline deadline);
35 const std::string& server_name,
45 const crypto::CertificatesChain& cert_chain,
51 ~TlsWrapper()
override;
53 TlsWrapper(
const TlsWrapper&) =
delete;
54 TlsWrapper(TlsWrapper&&)
noexcept;
71 [[nodiscard]] size_t
RecvSome(
void* buf, size_t len, Deadline deadline);
75 [[nodiscard]] size_t
RecvAll(
void* buf, size_t len, Deadline deadline);
79 [[nodiscard]] size_t
SendAll(
const void* buf, size_t len, Deadline deadline);
84 [[nodiscard]] Socket
StopTls(Deadline deadline);
89 [[nodiscard]] size_t
ReadSome(
void* buf, size_t len, Deadline deadline)
override {
89 [[nodiscard]] size_t
ReadSome(
void* buf, size_t len, Deadline deadline)
override {
…}
95 [[nodiscard]] size_t
ReadAll(
void* buf, size_t len, Deadline deadline)
override {
95 [[nodiscard]] size_t
ReadAll(
void* buf, size_t len, Deadline deadline)
override {
…}
101 [[nodiscard]] size_t
WriteAll(
const void* buf, size_t len, Deadline deadline)
override {
101 [[nodiscard]] size_t
WriteAll(
const void* buf, size_t len, Deadline deadline)
override {
…}
105 [[nodiscard]] size_t WriteAll(std::initializer_list<IoData> list, Deadline deadline)
override;
110 explicit TlsWrapper(Socket&&);
112 void SetupContextAccessors();
115 class ReadContextAccessor;
116 constexpr static size_t kSize = 336;
117 constexpr static size_t kAlignment = 8;
118 utils::FastPimpl<Impl, kSize, kAlignment> impl_;