9#include <aws/io/tls_channel_handler.h>
14struct aws_tls_ctx_options;
23 class TlsContextPkcs11Options;
50 explicit operator
bool() const noexcept {
return m_isInit; }
72 const
char *cert_path,
73 const
char *pkey_path,
114 const char *pkcs12_path,
115 const char *pkcs12_pwd,
124 bool SetKeychainPath(
ByteCursor &keychain_path)
noexcept;
135 const char *registryPath,
143 static bool IsAlpnSupported() noexcept;
150 bool SetAlpnList(const
char *alpnList) noexcept;
160 void SetVerifyPeer(
bool verifyPeer) noexcept;
166 void SetMinimumTlsVersion(aws_tls_versions minimumTlsVersion);
176 bool OverrideDefaultTrustStore(const
char *caPath, const
char *caFile) noexcept;
182 bool OverrideDefaultTrustStore(const
ByteCursor &ca) noexcept;
185 const aws_tls_ctx_options *GetUnderlyingHandle() const noexcept {
return &m_options; }
188 aws_tls_ctx_options m_options;
205 const std::shared_ptr<Pkcs11Lib> &pkcs11Lib,
214 void SetUserPin(
const String &pin)
noexcept;
222 void SetSlotId(
const uint64_t
id)
noexcept;
230 void SetTokenLabel(
const String &label)
noexcept;
239 void SetPrivateKeyObjectLabel(
const String &label)
noexcept;
247 void SetCertificateFilePath(
const String &path)
noexcept;
255 void SetCertificateFileContents(
const String &contents)
noexcept;
258 aws_tls_ctx_pkcs11_options GetUnderlyingHandle()
const noexcept;
261 std::shared_ptr<Pkcs11Lib> m_pkcs11Lib;
288 bool SetServerName(
ByteCursor &serverName)
noexcept;
296 bool SetAlpnList(
const char *alpnList)
noexcept;
301 explicit operator bool() const noexcept {
return isValid(); }
309 const aws_tls_connection_options *GetUnderlyingHandle() const noexcept
311 return &m_tls_connection_options;
315 bool isValid() const noexcept {
return m_isInit; }
317 TlsConnectionOptions(aws_tls_ctx *ctx,
Allocator *allocator)
noexcept;
318 aws_tls_connection_options m_tls_connection_options;
319 aws_allocator *m_allocator;
350 explicit operator
bool() const noexcept {
return isValid(); }
358 aws_tls_ctx *GetUnderlyingHandle() noexcept {
return m_ctx.get(); }
361 bool isValid() const noexcept {
return m_ctx && m_initializationError == AWS_ERROR_SUCCESS; }
363 std::shared_ptr<aws_tls_ctx> m_ctx;
364 int m_initializationError;
386 struct aws_channel_slot *slot,
387 const struct aws_tls_connection_options &options,
395 void CompleteTlsNegotiation(
int errorCode);
398 aws_tls_on_negotiation_result_fn *m_OnNegotiationResult;
401 aws_byte_buf m_protocolByteBuf;
402 friend aws_byte_buf(::aws_tls_handler_protocol)(aws_channel_handler *);
422 struct aws_channel_slot *slot,
423 const struct aws_tls_connection_options &options,
428 struct aws_channel_slot *slot,
429 const struct aws_tls_connection_options &options,
#define AWS_CRT_CPP_API
Definition: Exports.h:37
Definition: ChannelHandler.h:47
Definition: TlsOptions.h:412
virtual void StartNegotiation()=0
Definition: TlsOptions.h:375
virtual String GetProtocol() const =0
Definition: TlsOptions.h:274
int LastError() const noexcept
Definition: TlsOptions.h:306
Definition: TlsOptions.h:331
TlsContext(TlsContext &&) noexcept=default
TlsContext & operator=(const TlsContext &) noexcept=default
int GetInitializationError() const noexcept
Definition: TlsOptions.h:355
TlsContext(const TlsContext &) noexcept=default
Definition: TlsOptions.h:36
Definition: TlsOptions.h:198
Definition: Optional.h:17
std::function< void *(TlsContextOptions &, TlsMode, Allocator *)> NewTlsContextImplCallback
Definition: TlsOptions.h:367
TlsMode
Definition: TlsOptions.h:26
std::function< bool()> IsTlsAlpnSupportedCallback
Definition: TlsOptions.h:369
std::function< std::shared_ptr< ClientTlsChannelHandler >(struct aws_channel_slot *slot, const struct aws_tls_connection_options &options, Allocator *allocator)> NewClientTlsHandlerCallback
Definition: TlsOptions.h:430
std::function< void(void *)> DeleteTlsContextImplCallback
Definition: TlsOptions.h:368
aws_byte_cursor ByteCursor
Definition: Types.h:33
aws_allocator Allocator
Definition: StlAllocator.h:17
AWS_CRT_CPP_API Allocator * g_allocator
Definition: Api.cpp:21
std::basic_string< char, std::char_traits< char >, StlAllocator< char > > String
Definition: Types.h:47
AWS_CRT_CPP_API int LastError() noexcept
Definition: Api.cpp:315