26 #ifndef SSLClientImpl_H_ 27 #define SSLClientImpl_H_ 74 explicit SSLClientImpl(
const br_x509_trust_anchor *trust_anchors,
75 const size_t trust_anchors_num,
const int analog_pin,
const DebugLevel debug);
86 size_t write_impl(
const uint8_t *buf,
size_t size);
141 if (level > m_debug || !Serial)
return;
160 bool m_soft_connected(
const char* func_name);
162 int m_start_ssl(
const char* host,
SSLSession& ssl_ses);
164 int m_run_until(
const unsigned target);
166 unsigned m_update_engine();
168 int m_get_session_index(
const char* host,
const IPAddress& addr)
const;
176 const br_x509_trust_anchor *m_trust_anchors;
177 const size_t m_trust_anchors_num;
179 const int m_analog_pin;
181 size_t m_session_index;
187 br_ssl_client_context m_sslctx;
188 br_x509_minimal_context m_x509ctx;
202 unsigned char m_iobuf[BR_SSL_BUFSIZE_MONO / 8];
203 static_assert(
sizeof m_iobuf <= BR_SSL_BUFSIZE_BIDI,
"m_iobuf must be below maximum buffer size");
size_t write_impl(const uint8_t *buf, size_t size)
Definition: SSLClientImpl.cpp:132
virtual uint16_t remotePort()=0
void m_print(const T str, const char *func_name, const DebugLevel level) const
debugging print function, only prints if m_debug is true
Definition: SSLClientImpl.h:139
Definition: SSLClientImpl.h:65
virtual IPAddress remoteIP()=0
SSLSession & get_session_impl(const char *host, const IPAddress &addr)
Definition: SSLClientImpl.cpp:294
This class stores values which allow SSLClient to save and resume SSL sessions.
Definition: SSLSession.h:52
void m_info(const T str, const char *func_name) const
Prints a info message to serial, if info messages are enabled.
Definition: SSLClientImpl.h:150
SSLClientImpl(const br_x509_trust_anchor *trust_anchors, const size_t trust_anchors_num, const int analog_pin, const DebugLevel debug)
Definition: SSLClientImpl.cpp:53
void m_error(const T str, const char *func_name) const
Definition: SSLClientImpl.h:156
int peek_impl()
Definition: SSLClientImpl.cpp:211
Definition: SSLClientImpl.h:67
Definition: SSLClientImpl.h:63
Definition: SSLClientImpl.h:48
virtual size_t getSessionCount() const =0
virtual SSLSession * get_session_array()=0
Definition: SSLClientImpl.h:46
Definition: SSLClientImpl.h:38
void m_print_ssl_error(const int ssl_error, const DebugLevel level) const
Prints the string associated with a write error.
Definition: SSLClientImpl.cpp:657
int available_impl()
Definition: SSLClientImpl.cpp:175
Error
Static constants defining the possible errors encountered.
Definition: SSLClientImpl.h:37
Definition: SSLClientImpl.h:42
int read_impl(uint8_t *buf, size_t size)
Definition: SSLClientImpl.cpp:196
void remove_session_impl(const char *host, const IPAddress &addr)
Definition: SSLClientImpl.cpp:313
Definition: SSLClientImpl.h:44
virtual Client & get_arduino_client()=0
Definition: SSLClientImpl.h:40
void m_print_prefix(const char *func_name, const DebugLevel level) const
Prints a debugging prefix to all logs, so we can attatch them to useful information.
Definition: SSLClientImpl.cpp:639
Definition: SSLClientImpl.h:61
void m_print_br_error(const unsigned br_error_code, const DebugLevel level) const
Print the text string associated with a BearSSL error code.
Definition: SSLClientImpl.cpp:672
void m_warn(const T str, const char *func_name) const
Definition: SSLClientImpl.h:153
int connect_impl(IPAddress ip, uint16_t port)
Definition: SSLClientImpl.cpp:75
Definition: SSLClientImpl.h:50
void stop_impl()
Definition: SSLClientImpl.cpp:231
void flush_impl()
Definition: SSLClientImpl.cpp:223
Implementation code to be inherited by SSLClient.
Definition: SSLClientImpl.h:71
virtual uint16_t localPort()=0
uint8_t connected_impl()
Definition: SSLClientImpl.cpp:263
DebugLevel
Level of verbosity used in logging for SSLClient.
Definition: SSLClientImpl.h:59