diff --git a/docs/html/_s_s_l_client_8h_source.html b/docs/html/_s_s_l_client_8h_source.html
index b5a6df8..399ab6a 100644
--- a/docs/html/_s_s_l_client_8h_source.html
+++ b/docs/html/_s_s_l_client_8h_source.html
@@ -91,51 +91,51 @@ $(document).ready(function(){initNavTree('_s_s_l_client_8h_source.html','');});
SSLClient.h
-
Go to the documentation of this file. 21 #include <type_traits> 34 template <
class C,
size_t SessionCache = 1>
50 static_assert(std::is_base_of<Client, C>::value,
"SSLClient can only accept a type with base class Client!");
51 static_assert(SessionCache > 0 && SessionCache < 255,
"There can be no less than one and no more than 255 sessions in the cache!");
52 static_assert(SessionCache <= 3,
"You need to decrease the size of m_iobuf in order to have more than 3 sessions at once, otherwise memory issues will occur.");
71 explicit SSLClient(
const C& client,
const br_x509_trust_anchor *trust_anchors,
const size_t trust_anchors_num,
const int analog_pin,
const DebugLevel debug =
SSL_WARN)
72 :
SSLClientImpl(trust_anchors, trust_anchors_num, analog_pin, debug)
78 setTimeout(10 * 1000);
189 virtual size_t write(
const uint8_t *buf,
size_t size) {
return write_impl(buf, size); }
215 virtual int read() { uint8_t read_val;
return read(&read_val, 1) > 0 ? read_val : -1; };
237 virtual int read(uint8_t *buf,
size_t size) {
return read_impl(buf, size); }
326 virtual bool operator==(
const bool value) {
return bool() == value; }
328 virtual bool operator!=(
const bool value) {
return bool() != value; }
330 virtual bool operator==(
const C& rhs) {
return m_client == rhs; }
332 virtual bool operator!=(
const C& rhs) {
return m_client != rhs; }
335 if (std::is_member_function_pointer<decltype(&C::localPort)>::value)
return m_client.localPort();
337 m_warn(
"Client class has no localPort function, so localPort() will always return 0", __func__);
343 if (std::is_member_function_pointer<decltype(&C::remoteIP)>::value)
return m_client.remoteIP();
345 m_warn(
"Client class has no remoteIP function, so remoteIP() will always return INADDR_NONE. This means that sessions caching will always be disabled.", __func__);
351 if (std::is_member_function_pointer<decltype(&C::remotePort)>::value)
return m_client.remotePort();
353 m_warn(
"Client class has no remotePort function, so remotePort() will always return 0", __func__);
virtual uint8_t connected()
Check if the device is connected.
Definition: SSLClient.h:280
-
virtual bool operator!=(const bool value)
Definition: SSLClient.h:328
-
size_t write_impl(const uint8_t *buf, size_t size)
Definition: SSLClientImpl.cpp:130
-
virtual const SSLSession * get_session_array() const
Definition: SSLClient.h:367
-
virtual uint16_t remotePort()
Returns the remote port, if C::remotePort exists. Else return 0.
Definition: SSLClient.h:350
+
Go to the documentation of this file. 21 #include <type_traits> 34 template <
class C,
size_t SessionCache = 1>
50 static_assert(std::is_base_of<Client, C>::value,
"SSLClient can only accept a type with base class Client!");
51 static_assert(SessionCache > 0 && SessionCache < 255,
"There can be no less than one and no more than 255 sessions in the cache!");
52 static_assert(SessionCache <= 3,
"You need to decrease the size of m_iobuf in order to have more than 3 sessions at once, otherwise memory issues will occur.");
71 explicit SSLClient(
const C& client,
const br_x509_trust_anchor *trust_anchors,
const size_t trust_anchors_num,
const int analog_pin,
const DebugLevel debug =
SSL_WARN)
72 :
SSLClientImpl(trust_anchors, trust_anchors_num, analog_pin, debug)
78 setTimeout(10 * 1000);
189 size_t write(
const uint8_t *buf,
size_t size)
override {
return write_impl(buf, size); }
215 int read()
override { uint8_t read_val;
return read(&read_val, 1) > 0 ? read_val : -1; };
237 int read(uint8_t *buf,
size_t size)
override {
return read_impl(buf, size); }
326 bool operator==(
const bool value) {
return bool() == value; }
328 bool operator!=(
const bool value) {
return bool() != value; }
335 if (std::is_member_function_pointer<decltype(&C::localPort)>::value)
return m_client.localPort();
337 m_warn(
"Client class has no localPort function, so localPort() will always return 0", __func__);
343 if (std::is_member_function_pointer<decltype(&C::remoteIP)>::value)
return m_client.remoteIP();
345 m_warn(
"Client class has no remoteIP function, so remoteIP() will always return INADDR_NONE. This means that sessions caching will always be disabled.", __func__);
351 if (std::is_member_function_pointer<decltype(&C::remotePort)>::value)
return m_client.remotePort();
353 m_warn(
"Client class has no remotePort function, so remotePort() will always return 0", __func__);
size_t write_impl(const uint8_t *buf, size_t size)
Definition: SSLClientImpl.cpp:130
+
const SSLSession * get_session_array() const override
Definition: SSLClient.h:367
+
IPAddress remoteIP() override
Returns the remote IP, if C::remoteIP exists. Else return INADDR_NONE.
Definition: SSLClient.h:342
+
size_t write(uint8_t b) override
Definition: SSLClient.h:165
Definition: SSLClientImpl.h:65
SSLSession & get_session_impl(const char *host, const IPAddress &addr)
Definition: SSLClientImpl.cpp:276
-
virtual int available()
Returns the number of bytes available to read from the data that has been received and decrypted.
Definition: SSLClient.h:209
This class stores values which allow SSLClient to save and resume SSL sessions.
Definition: SSLSession.h:52
-
virtual uint16_t localPort()
Returns the local port, C::localPort exists. Else return 0.
Definition: SSLClient.h:334
-
virtual IPAddress remoteIP()
Returns the remote IP, if C::remoteIP exists. Else return INADDR_NONE.
Definition: SSLClient.h:342
+
bool operator!=(const C &rhs)
Returns whether or not two SSLClient objects do not have the same underlying client object.
Definition: SSLClient.h:332
+
int available() override
Returns the number of bytes available to read from the data that has been received and decrypted.
Definition: SSLClient.h:209
C & getClient()
Returns a reference to the client object stored in this class. Take care not to break it.
Definition: SSLClient.h:359
-
virtual int peek()
View the first byte of the buffer, without removing it from the SSLClient Buffer.
Definition: SSLClient.h:247
int peek_impl()
Definition: SSLClientImpl.cpp:209
-
virtual SSLSession & getSession(const char *host, const IPAddress &addr)
Gets a session reference corresponding to a host and IP, or a reference to a empty session if none ex...
Definition: SSLClient.h:300
-
virtual size_t write(const uint8_t *buf, size_t size)
Write some bytes to the SSL connection.
Definition: SSLClient.h:189
+
void flush() override
Force writing the buffered bytes from SSLClient::write to the network.
Definition: SSLClient.h:256
The main SSLClient class. Check out README.md for more info.
Definition: SSLClient.h:35
+
bool operator!=(const bool value)
Definition: SSLClient.h:328
+
void stop() override
Close the connection.
Definition: SSLClient.h:266
+
size_t write(const uint8_t *buf, size_t size) override
Write some bytes to the SSL connection.
Definition: SSLClient.h:189
SSLClient(const C &client, const br_x509_trust_anchor *trust_anchors, const size_t trust_anchors_num, const int analog_pin, const DebugLevel debug=SSL_WARN)
Initialize SSLClient with all of the prerequisites needed.
Definition: SSLClient.h:71
-
virtual void stop()
Close the connection.
Definition: SSLClient.h:266
+
int peek() override
View the first byte of the buffer, without removing it from the SSLClient Buffer.
Definition: SSLClient.h:247
int available_impl()
Definition: SSLClientImpl.cpp:173
+
bool operator==(const C &rhs)
Returns whether or not two SSLClient objects have the same underlying client object.
Definition: SSLClient.h:330
int read_impl(uint8_t *buf, size_t size)
Definition: SSLClientImpl.cpp:194
+
SSLSession * get_session_array() override
Returns an instance of the session array that is on the stack.
Definition: SSLClient.h:366
void remove_session_impl(const char *host, const IPAddress &addr)
Definition: SSLClientImpl.cpp:295
-
virtual size_t getSessionCount() const
Get the maximum number of SSL sessions that can be stored at once.
Definition: SSLClient.h:317
-
virtual int read()
Read a single byte, or -1 if none is available.
Definition: SSLClient.h:215
-
virtual size_t write(uint8_t b)
Definition: SSLClient.h:165
+
Client & get_arduino_client() override
Returns an instance of m_client that is polymorphic and can be used by SSLClientImpl.
Definition: SSLClient.h:363
+
uint16_t localPort() override
Returns the local port, C::localPort exists. Else return 0.
Definition: SSLClient.h:334
void m_warn(const T str, const char *func_name) const
Definition: SSLClientImpl.h:153
-
virtual bool operator==(const bool value)
Definition: SSLClient.h:326
-
virtual void flush()
Force writing the buffered bytes from SSLClient::write to the network.
Definition: SSLClient.h:256
-
virtual const Client & get_arduino_client() const
Definition: SSLClient.h:364
-
virtual int connect(const char *host, uint16_t port)
Connect over SSL to a host specified by a hostname.
Definition: SSLClient.h:162
-
virtual SSLSession * get_session_array()
Returns an instance of the session array that is on the stack.
Definition: SSLClient.h:366
+
int read() override
Read a single byte, or -1 if none is available.
Definition: SSLClient.h:215
+
uint8_t connected() override
Check if the device is connected.
Definition: SSLClient.h:280
-
virtual bool operator!=(const C &rhs)
Returns whether or not two SSLClient objects do not have the same underlying client object.
Definition: SSLClient.h:332
-
virtual void removeSession(const char *host, const IPAddress &addr)
Clear the session corresponding to a host and IP.
Definition: SSLClient.h:310
-
virtual int connect(IPAddress ip, uint16_t port)
Connect over SSL to a host specified by an IP address.
Definition: SSLClient.h:124
+
const Client & get_arduino_client() const override
Definition: SSLClient.h:364
+
int connect(const char *host, uint16_t port) override
Connect over SSL to a host specified by a hostname.
Definition: SSLClient.h:162
+
bool operator==(const bool value)
Definition: SSLClient.h:326
+
uint16_t remotePort() override
Returns the remote port, if C::remotePort exists. Else return 0.
Definition: SSLClient.h:350
int connect_impl(IPAddress ip, uint16_t port)
Definition: SSLClientImpl.cpp:74
+
size_t getSessionCount() const override
Get the maximum number of SSL sessions that can be stored at once.
Definition: SSLClient.h:317
void stop_impl()
Definition: SSLClientImpl.cpp:229
void flush_impl()
Definition: SSLClientImpl.cpp:221
Implementation code to be inherited by SSLClient.
Definition: SSLClientImpl.h:71
-
virtual int read(uint8_t *buf, size_t size)
Read size bytes from the SSL client buffer, copying them into *buf, and return the number of bytes re...
Definition: SSLClient.h:237
-
virtual bool operator==(const C &rhs)
Returns whether or not two SSLClient objects have the same underlying client object.
Definition: SSLClient.h:330
+
void removeSession(const char *host, const IPAddress &addr)
Clear the session corresponding to a host and IP.
Definition: SSLClient.h:310
uint8_t connected_impl()
Definition: SSLClientImpl.cpp:250
-
virtual Client & get_arduino_client()
Returns an instance of m_client that is polymorphic and can be used by SSLClientImpl.
Definition: SSLClient.h:363
+
SSLSession & getSession(const char *host, const IPAddress &addr)
Gets a session reference corresponding to a host and IP, or a reference to a empty session if none ex...
Definition: SSLClient.h:300
DebugLevel
Level of verbosity used in logging for SSLClient.
Definition: SSLClientImpl.h:59
+
int read(uint8_t *buf, size_t size) override
Read size bytes from the SSL client buffer, copying them into *buf, and return the number of bytes re...
Definition: SSLClient.h:237
+
int connect(IPAddress ip, uint16_t port) override
Connect over SSL to a host specified by an IP address.
Definition: SSLClient.h:124
diff --git a/docs/html/class_s_s_l_client-members.html b/docs/html/class_s_s_l_client-members.html
index 45f2498..d196482 100644
--- a/docs/html/class_s_s_l_client-members.html
+++ b/docs/html/class_s_s_l_client-members.html
@@ -94,25 +94,25 @@ $(document).ready(function(){initNavTree('class_s_s_l_client.html','');});
This is the complete list of members for SSLClient< C, SessionCache >, including all inherited members.
- available() | SSLClient< C, SessionCache > | inlinevirtual |
+ available() override | SSLClient< C, SessionCache > | inline |
available_impl() | SSLClientImpl | |
- connect(IPAddress ip, uint16_t port) | SSLClient< C, SessionCache > | inlinevirtual |
- connect(const char *host, uint16_t port) | SSLClient< C, SessionCache > | inlinevirtual |
+ connect(IPAddress ip, uint16_t port) override | SSLClient< C, SessionCache > | inline |
+ connect(const char *host, uint16_t port) override | SSLClient< C, SessionCache > | inline |
connect_impl(IPAddress ip, uint16_t port) | SSLClientImpl | |
connect_impl(const char *host, uint16_t port) | SSLClientImpl | |
- connected() | SSLClient< C, SessionCache > | inlinevirtual |
+ connected() override | SSLClient< C, SessionCache > | inline |
connected_impl() | SSLClientImpl | |
- flush() | SSLClient< C, SessionCache > | inlinevirtual |
+ flush() override | SSLClient< C, SessionCache > | inline |
flush_impl() | SSLClientImpl | |
- get_arduino_client() | SSLClient< C, SessionCache > | inlineprotectedvirtual |
- get_arduino_client() const | SSLClient< C, SessionCache > | inlineprotectedvirtual |
- get_session_array() | SSLClient< C, SessionCache > | inlineprotectedvirtual |
- get_session_array() const | SSLClient< C, SessionCache > | inlineprotectedvirtual |
+ get_arduino_client() override | SSLClient< C, SessionCache > | inlineprotectedvirtual |
+ get_arduino_client() const override | SSLClient< C, SessionCache > | inlineprotectedvirtual |
+ get_session_array() override | SSLClient< C, SessionCache > | inlineprotectedvirtual |
+ get_session_array() const override | SSLClient< C, SessionCache > | inlineprotectedvirtual |
get_session_impl(const char *host, const IPAddress &addr) | SSLClientImpl | |
getClient() | SSLClient< C, SessionCache > | inline |
- getSession(const char *host, const IPAddress &addr) | SSLClient< C, SessionCache > | inlinevirtual |
- getSessionCount() const | SSLClient< C, SessionCache > | inlinevirtual |
- localPort() | SSLClient< C, SessionCache > | inlinevirtual |
+ getSession(const char *host, const IPAddress &addr) | SSLClient< C, SessionCache > | inline |
+ getSessionCount() const override | SSLClient< C, SessionCache > | inlinevirtual |
+ localPort() override | SSLClient< C, SessionCache > | inlinevirtual |
m_error(const T str, const char *func_name) const | SSLClientImpl | inlineprotected |
m_info(const T str, const char *func_name) const | SSLClientImpl | inlineprotected |
m_print(const T str, const char *func_name, const DebugLevel level) const | SSLClientImpl | inlineprotected |
@@ -120,26 +120,26 @@ $(document).ready(function(){initNavTree('class_s_s_l_client.html','');});
m_print_prefix(const char *func_name, const DebugLevel level) const | SSLClientImpl | protected |
m_print_ssl_error(const int ssl_error, const DebugLevel level) const | SSLClientImpl | protected |
m_warn(const T str, const char *func_name) const | SSLClientImpl | inlineprotected |
- operator bool() | SSLClient< C, SessionCache > | inlinevirtual |
- operator!=(const bool value) | SSLClient< C, SessionCache > | inlinevirtual |
- operator!=(const C &rhs) | SSLClient< C, SessionCache > | inlinevirtual |
- operator==(const bool value) | SSLClient< C, SessionCache > | inlinevirtual |
- operator==(const C &rhs) | SSLClient< C, SessionCache > | inlinevirtual |
- peek() | SSLClient< C, SessionCache > | inlinevirtual |
+ operator bool() | SSLClient< C, SessionCache > | inline |
+ operator!=(const bool value) | SSLClient< C, SessionCache > | inline |
+ operator!=(const C &rhs) | SSLClient< C, SessionCache > | inline |
+ operator==(const bool value) | SSLClient< C, SessionCache > | inline |
+ operator==(const C &rhs) | SSLClient< C, SessionCache > | inline |
+ peek() override | SSLClient< C, SessionCache > | inline |
peek_impl() | SSLClientImpl | |
- read() | SSLClient< C, SessionCache > | inlinevirtual |
- read(uint8_t *buf, size_t size) | SSLClient< C, SessionCache > | inlinevirtual |
+ read() override | SSLClient< C, SessionCache > | inline |
+ read(uint8_t *buf, size_t size) override | SSLClient< C, SessionCache > | inline |
read_impl(uint8_t *buf, size_t size) | SSLClientImpl | |
- remoteIP() | SSLClient< C, SessionCache > | inlinevirtual |
- remotePort() | SSLClient< C, SessionCache > | inlinevirtual |
+ remoteIP() override | SSLClient< C, SessionCache > | inlinevirtual |
+ remotePort() override | SSLClient< C, SessionCache > | inlinevirtual |
remove_session_impl(const char *host, const IPAddress &addr) | SSLClientImpl | |
- removeSession(const char *host, const IPAddress &addr) | SSLClient< C, SessionCache > | inlinevirtual |
+ removeSession(const char *host, const IPAddress &addr) | SSLClient< C, SessionCache > | inline |
SSLClient(const C &client, const br_x509_trust_anchor *trust_anchors, const size_t trust_anchors_num, const int analog_pin, const DebugLevel debug=SSL_WARN) | SSLClient< C, SessionCache > | inlineexplicit |
SSLClientImpl(const br_x509_trust_anchor *trust_anchors, const size_t trust_anchors_num, const int analog_pin, const DebugLevel debug) | SSLClientImpl | explicit |
- stop() | SSLClient< C, SessionCache > | inlinevirtual |
+ stop() override | SSLClient< C, SessionCache > | inline |
stop_impl() | SSLClientImpl | |
- write(uint8_t b) | SSLClient< C, SessionCache > | inlinevirtual |
- write(const uint8_t *buf, size_t size) | SSLClient< C, SessionCache > | inlinevirtual |
+ write(uint8_t b) override | SSLClient< C, SessionCache > | inline |
+ write(const uint8_t *buf, size_t size) override | SSLClient< C, SessionCache > | inline |
write_impl(const uint8_t *buf, size_t size) | SSLClientImpl | |
diff --git a/docs/html/class_s_s_l_client.html b/docs/html/class_s_s_l_client.html
index eadc3cf..a9b36cf 100644
--- a/docs/html/class_s_s_l_client.html
+++ b/docs/html/class_s_s_l_client.html
@@ -115,69 +115,69 @@ Public Member Functions
| SSLClient (const C &client, const br_x509_trust_anchor *trust_anchors, const size_t trust_anchors_num, const int analog_pin, const DebugLevel debug=SSL_WARN) |
| Initialize SSLClient with all of the prerequisites needed. More...
|
|
-virtual int | connect (IPAddress ip, uint16_t port) |
- | Connect over SSL to a host specified by an IP address. More...
|
- |
-virtual int | connect (const char *host, uint16_t port) |
- | Connect over SSL to a host specified by a hostname. More...
|
- |
-virtual size_t | write (uint8_t b) |
- |
-virtual size_t | write (const uint8_t *buf, size_t size) |
- | Write some bytes to the SSL connection. More...
|
- |
-virtual int | available () |
- | Returns the number of bytes available to read from the data that has been received and decrypted. More...
|
- |
-virtual int | read () |
- | Read a single byte, or -1 if none is available. More...
|
- |
-virtual int | read (uint8_t *buf, size_t size) |
- | Read size bytes from the SSL client buffer, copying them into *buf, and return the number of bytes read. More...
|
- |
-virtual int | peek () |
- | View the first byte of the buffer, without removing it from the SSLClient Buffer. More...
|
- |
-virtual void | flush () |
- | Force writing the buffered bytes from SSLClient::write to the network. More...
|
- |
-virtual void | stop () |
- | Close the connection. More...
|
- |
-virtual uint8_t | connected () |
- | Check if the device is connected. More...
|
- |
-virtual SSLSession & | getSession (const char *host, const IPAddress &addr) |
- | Gets a session reference corresponding to a host and IP, or a reference to a empty session if none exist. More...
|
- |
-virtual void | removeSession (const char *host, const IPAddress &addr) |
- | Clear the session corresponding to a host and IP. More...
|
- |
-virtual size_t | getSessionCount () const |
- | Get the maximum number of SSL sessions that can be stored at once. More...
|
- |
-virtual | operator bool () |
- | Equivalent to SSLClient::connected() > 0. More...
|
- |
-virtual bool | operator== (const bool value) |
- |
-virtual bool | operator!= (const bool value) |
- |
-virtual bool | operator== (const C &rhs) |
- | Returns whether or not two SSLClient objects have the same underlying client object. More...
|
- |
-virtual bool | operator!= (const C &rhs) |
- | Returns whether or not two SSLClient objects do not have the same underlying client object. More...
|
- |
-virtual uint16_t | localPort () |
- | Returns the local port, C::localPort exists. Else return 0. More...
|
- |
-virtual IPAddress | remoteIP () |
- | Returns the remote IP, if C::remoteIP exists. Else return INADDR_NONE. More...
|
- |
-virtual uint16_t | remotePort () |
- | Returns the remote port, if C::remotePort exists. Else return 0. More...
|
- |
+int | connect (IPAddress ip, uint16_t port) override |
+ | Connect over SSL to a host specified by an IP address. More...
|
+ |
+int | connect (const char *host, uint16_t port) override |
+ | Connect over SSL to a host specified by a hostname. More...
|
+ |
+size_t | write (uint8_t b) override |
+ |
+size_t | write (const uint8_t *buf, size_t size) override |
+ | Write some bytes to the SSL connection. More...
|
+ |
+int | available () override |
+ | Returns the number of bytes available to read from the data that has been received and decrypted. More...
|
+ |
+int | read () override |
+ | Read a single byte, or -1 if none is available. More...
|
+ |
+int | read (uint8_t *buf, size_t size) override |
+ | Read size bytes from the SSL client buffer, copying them into *buf, and return the number of bytes read. More...
|
+ |
+int | peek () override |
+ | View the first byte of the buffer, without removing it from the SSLClient Buffer. More...
|
+ |
+void | flush () override |
+ | Force writing the buffered bytes from SSLClient::write to the network. More...
|
+ |
+void | stop () override |
+ | Close the connection. More...
|
+ |
+uint8_t | connected () override |
+ | Check if the device is connected. More...
|
+ |
+SSLSession & | getSession (const char *host, const IPAddress &addr) |
+ | Gets a session reference corresponding to a host and IP, or a reference to a empty session if none exist. More...
|
+ |
+void | removeSession (const char *host, const IPAddress &addr) |
+ | Clear the session corresponding to a host and IP. More...
|
+ |
+size_t | getSessionCount () const override |
+ | Get the maximum number of SSL sessions that can be stored at once. More...
|
+ |
+ | operator bool () |
+ | Equivalent to SSLClient::connected() > 0. More...
|
+ |
+bool | operator== (const bool value) |
+ |
+bool | operator!= (const bool value) |
+ |
+bool | operator== (const C &rhs) |
+ | Returns whether or not two SSLClient objects have the same underlying client object. More...
|
+ |
+bool | operator!= (const C &rhs) |
+ | Returns whether or not two SSLClient objects do not have the same underlying client object. More...
|
+ |
+uint16_t | localPort () override |
+ | Returns the local port, C::localPort exists. Else return 0. More...
|
+ |
+IPAddress | remoteIP () override |
+ | Returns the remote IP, if C::remoteIP exists. Else return INADDR_NONE. More...
|
+ |
+uint16_t | remotePort () override |
+ | Returns the remote port, if C::remotePort exists. Else return 0. More...
|
+ |
C & | getClient () |
| Returns a reference to the client object stored in this class. Take care not to break it. More...
|
|
@@ -209,16 +209,16 @@ Public Member Functions
|
-virtual Client & | get_arduino_client () |
- | Returns an instance of m_client that is polymorphic and can be used by SSLClientImpl. More...
|
- |
-virtual const Client & | get_arduino_client () const |
- |
-virtual SSLSession * | get_session_array () |
- | Returns an instance of the session array that is on the stack. More...
|
- |
-virtual const SSLSession * | get_session_array () const |
- |
+Client & | get_arduino_client () override |
+ | Returns an instance of m_client that is polymorphic and can be used by SSLClientImpl. More...
|
+ |
+const Client & | get_arduino_client () const override |
+ |
+SSLSession * | get_session_array () override |
+ | Returns an instance of the session array that is on the stack. More...
|
+ |
+const SSLSession * | get_session_array () const override |
+ |
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. More...
|
@@ -322,8 +322,8 @@ The analog_pin should be set to input.
-
-◆ available()
+
+◆ available()
@@ -334,7 +334,7 @@ template<class C , size_t SessionCache = 1>
- virtual int SSLClient< C, SessionCache >::available |
+ int SSLClient< C, SessionCache >::available |
( |
| ) |
|
@@ -342,21 +342,21 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inlineoverride
Returns the number of bytes available to read from the data that has been received and decrypted.
-
This function updates the state of the SSL engine (including writing any data, see SSLClient::write) and as a result should be called periodically when expecting data. Additionally, since if there are no bytes and if SSLClient::connected is false this function returns zero (this same behavior is found in EthernetClient), it is prudent to ensure in your own code that the preconditions are met before checking this function to prevent an ambiguous result.
+
This function updates the state of the SSL engine (including writing any data, see SSLClient::write) and as a result should be called periodically when expecting data. Additionally, since if there are no bytes and if SSLClient::connected is false this function returns zero (this same behavior is found in EthernetClient), it is prudent to ensure in your own code that the preconditions are met before checking this function to prevent an ambiguous result.
The implementation for this function can be found in SSLClientImpl::available
-
- Precondition
- SSLClient::connected must be true.
+
- Precondition
- SSLClient::connected must be true.
- Returns
- The number of bytes available (can be zero), or zero if any of the pre conditions aren't satisfied.
-
-◆ connect() [1/2]
+
+◆ connect() [1/2]
@@ -367,7 +367,7 @@ template<class C , size_t SessionCache = 1>
- virtual int SSLClient< C, SessionCache >::connect |
+ int SSLClient< C, SessionCache >::connect |
( |
IPAddress |
ip, |
@@ -386,7 +386,7 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inlineoverride
@@ -414,8 +414,8 @@ There must be a trust anchor given to the constructor that corresponds to the ce
-
-◆ connect() [2/2]
+
+◆ connect() [2/2]
@@ -426,7 +426,7 @@ template<class C , size_t SessionCache = 1>
- virtual int SSLClient< C, SessionCache >::connect |
+ int SSLClient< C, SessionCache >::connect |
( |
const char * |
host, |
@@ -445,7 +445,7 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inlineoverride
@@ -473,8 +473,8 @@ There must be a trust anchor given to the constructor that corresponds to the ce
-
-◆ connected()
+
+◆ connected()
@@ -485,7 +485,7 @@ template<class C , size_t SessionCache = 1>
- virtual uint8_t SSLClient< C, SessionCache >::connected |
+ uint8_t SSLClient< C, SessionCache >::connected |
( |
| ) |
|
@@ -493,20 +493,20 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inlineoverride
Check if the device is connected.
-
Use this function to determine if SSLClient is still connected and a SSL connection is active. It should be noted that SSLClient::available should be preferred over this function for rapid polling–both functions send and receive data with the SSLClient::m_client device, however SSLClient::available has some delays built in to protect SSLClient::m_client from being polled too frequently.
+
Use this function to determine if SSLClient is still connected and a SSL connection is active. It should be noted that SSLClient::available should be preferred over this function for rapid polling–both functions send and receive data with the SSLClient::m_client device, however SSLClient::available has some delays built in to protect SSLClient::m_client from being polled too frequently.
The implementation for this function can be found in SSLClientImpl::connected_impl.
- Returns
- 1 if connected, 0 if not
-
-◆ flush()
+
+◆ flush()
@@ -517,7 +517,7 @@ template<class C , size_t SessionCache = 1>
- virtual void SSLClient< C, SessionCache >::flush |
+ void SSLClient< C, SessionCache >::flush |
( |
| ) |
|
@@ -525,18 +525,18 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inlineoverride
-
Force writing the buffered bytes from SSLClient::write to the network.
-
This function is blocking until all bytes from the buffer are written. For an explanation of how writing with SSLClient works, please see SSLClient::write. The implementation for this function can be found in SSLClientImpl::flush.
+
Force writing the buffered bytes from SSLClient::write to the network.
+
This function is blocking until all bytes from the buffer are written. For an explanation of how writing with SSLClient works, please see SSLClient::write. The implementation for this function can be found in SSLClientImpl::flush.
-
-◆ get_arduino_client() [1/2]
+
+◆ get_arduino_client() [1/2]
@@ -547,7 +547,7 @@ template<class C , size_t SessionCache = 1>
- virtual Client& SSLClient< C, SessionCache >::get_arduino_client |
+ Client& SSLClient< C, SessionCache >::get_arduino_client |
( |
| ) |
|
@@ -555,7 +555,7 @@ template<class C , size_t SessionCache = 1>
|
-inlineprotectedvirtual |
+
inlineoverrideprotectedvirtual
@@ -566,8 +566,8 @@ template<class C , size_t SessionCache = 1>
-
-◆ get_arduino_client() [2/2]
+
+◆ get_arduino_client() [2/2]
@@ -578,7 +578,7 @@ template<class C , size_t SessionCache = 1>
- virtual const Client& SSLClient< C, SessionCache >::get_arduino_client |
+ const Client& SSLClient< C, SessionCache >::get_arduino_client |
( |
| ) |
const |
@@ -586,7 +586,7 @@ template<class C , size_t SessionCache = 1>
|
-inlineprotectedvirtual |
+
inlineoverrideprotectedvirtual
@@ -595,8 +595,8 @@ template<class C , size_t SessionCache = 1>
-
-◆ get_session_array() [1/2]
+
+◆ get_session_array() [1/2]
@@ -607,7 +607,7 @@ template<class C , size_t SessionCache = 1>
- virtual SSLSession* SSLClient< C, SessionCache >::get_session_array |
+ SSLSession* SSLClient< C, SessionCache >::get_session_array |
( |
| ) |
|
@@ -615,7 +615,7 @@ template<class C , size_t SessionCache = 1>
|
-inlineprotectedvirtual |
+
inlineoverrideprotectedvirtual
@@ -626,8 +626,8 @@ template<class C , size_t SessionCache = 1>
-
-◆ get_session_array() [2/2]
+
+◆ get_session_array() [2/2]
@@ -638,7 +638,7 @@ template<class C , size_t SessionCache = 1>
- virtual const SSLSession* SSLClient< C, SessionCache >::get_session_array |
+ const SSLSession* SSLClient< C, SessionCache >::get_session_array |
( |
| ) |
const |
@@ -646,7 +646,7 @@ template<class C , size_t SessionCache = 1>
|
-inlineprotectedvirtual |
+
inlineoverrideprotectedvirtual
@@ -684,8 +684,8 @@ template<class C , size_t SessionCache = 1>
-
-◆ getSession()
+
+◆ getSession()
@@ -696,7 +696,7 @@ template<class C , size_t SessionCache = 1>
- virtual SSLSession& SSLClient< C, SessionCache >::getSession |
+ SSLSession& SSLClient< C, SessionCache >::getSession |
( |
const char * |
host, |
@@ -715,7 +715,7 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inline
@@ -734,8 +734,8 @@ template<class C , size_t SessionCache = 1>
-
-◆ getSessionCount()
+
+◆ getSessionCount()
@@ -746,7 +746,7 @@ template<class C , size_t SessionCache = 1>
- virtual size_t SSLClient< C, SessionCache >::getSessionCount |
+ size_t SSLClient< C, SessionCache >::getSessionCount |
( |
| ) |
const |
@@ -754,7 +754,7 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inlineoverridevirtual
@@ -766,8 +766,8 @@ template<class C , size_t SessionCache = 1>
-
-◆ localPort()
+
+◆ localPort()
@@ -778,7 +778,7 @@ template<class C , size_t SessionCache = 1>
- virtual uint16_t SSLClient< C, SessionCache >::localPort |
+ uint16_t SSLClient< C, SessionCache >::localPort |
( |
| ) |
|
@@ -786,7 +786,7 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inlineoverridevirtual
@@ -797,8 +797,8 @@ template<class C , size_t SessionCache = 1>
-
-◆ operator bool()
+
+◆ operator bool()
@@ -809,7 +809,7 @@ template<class C , size_t SessionCache = 1>
- virtual SSLClient< C, SessionCache >::operator bool |
+ SSLClient< C, SessionCache >::operator bool |
( |
| ) |
|
@@ -817,18 +817,18 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inline
-
-◆ operator!=() [1/2]
+
+◆ operator!=() [1/2]
@@ -839,7 +839,7 @@ template<class C , size_t SessionCache = 1>
- virtual bool SSLClient< C, SessionCache >::operator!= |
+ bool SSLClient< C, SessionCache >::operator!= |
( |
const bool |
value | ) |
@@ -848,7 +848,7 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inline
@@ -856,8 +856,8 @@ template<class C , size_t SessionCache = 1>
-
-◆ operator!=() [2/2]
+
+◆ operator!=() [2/2]
@@ -868,7 +868,7 @@ template<class C , size_t SessionCache = 1>
- virtual bool SSLClient< C, SessionCache >::operator!= |
+ bool SSLClient< C, SessionCache >::operator!= |
( |
const C & |
rhs | ) |
@@ -877,7 +877,7 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inline
@@ -886,8 +886,8 @@ template<class C , size_t SessionCache = 1>
-
-◆ operator==() [1/2]
+
+◆ operator==() [1/2]
@@ -898,7 +898,7 @@ template<class C , size_t SessionCache = 1>
- virtual bool SSLClient< C, SessionCache >::operator== |
+ bool SSLClient< C, SessionCache >::operator== |
( |
const bool |
value | ) |
@@ -907,7 +907,7 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inline
@@ -915,8 +915,8 @@ template<class C , size_t SessionCache = 1>
-
-◆ operator==() [2/2]
+
+◆ operator==() [2/2]
@@ -927,7 +927,7 @@ template<class C , size_t SessionCache = 1>
- virtual bool SSLClient< C, SessionCache >::operator== |
+ bool SSLClient< C, SessionCache >::operator== |
( |
const C & |
rhs | ) |
@@ -936,7 +936,7 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inline
@@ -945,8 +945,8 @@ template<class C , size_t SessionCache = 1>
-
-◆ peek()
+
+◆ peek()
@@ -957,7 +957,7 @@ template<class C , size_t SessionCache = 1>
- virtual int SSLClient< C, SessionCache >::peek |
+ int SSLClient< C, SessionCache >::peek |
( |
| ) |
|
@@ -965,19 +965,19 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inlineoverride
View the first byte of the buffer, without removing it from the SSLClient Buffer.
-
The implementation for this function can be found in SSLClientImpl::peek
- Precondition
- SSLClient::available must be >0
+
The implementation for this function can be found in SSLClientImpl::peek
- Precondition
- SSLClient::available must be >0
- Returns
- The first byte received, or -1 if the preconditions are not satisfied (warning: do not use if your data may be -1, as the return value is ambiguous)
-
-◆ read() [1/2]
+
+◆ read() [1/2]
@@ -988,7 +988,7 @@ template<class C , size_t SessionCache = 1>
- virtual int SSLClient< C, SessionCache >::read |
+ int SSLClient< C, SessionCache >::read |
( |
| ) |
|
@@ -996,18 +996,18 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inlineoverride
-
-◆ read() [2/2]
+
+◆ read() [2/2]
@@ -1018,7 +1018,7 @@ template<class C , size_t SessionCache = 1>
- virtual int SSLClient< C, SessionCache >::read |
+ int SSLClient< C, SessionCache >::read |
( |
uint8_t * |
buf, |
@@ -1037,16 +1037,16 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inlineoverride
Read size bytes from the SSL client buffer, copying them into *buf, and return the number of bytes read.
-
This function checks if bytes are ready to be read by calling SSLClient::available, and if so copies size number of bytes from the IO buffer into the buf pointer. Data read using this function will not include any SSL or socket commands, as the Client and BearSSL will capture those and process them separately.
+
This function checks if bytes are ready to be read by calling SSLClient::available, and if so copies size number of bytes from the IO buffer into the buf pointer. Data read using this function will not include any SSL or socket commands, as the Client and BearSSL will capture those and process them separately.
If you find that you are having a lot of timeout errors, SSLClient may be experiencing a buffer overflow. Checkout README.md for more information.
The implementation for this function can be found in SSLClientImpl::read_impl(uint8_t*, size_t)
-
- Precondition
- SSLClient::available must be >0
+
- Precondition
- SSLClient::available must be >0
- Parameters
-
buf | The pointer to the buffer to put SSL application data into |
@@ -1058,8 +1058,8 @@ template<class C , size_t SessionCache = 1>
-
-◆ remoteIP()
+
+◆ remoteIP()
@@ -1070,7 +1070,7 @@ template<class C , size_t SessionCache = 1>
- virtual IPAddress SSLClient< C, SessionCache >::remoteIP |
+ IPAddress SSLClient< C, SessionCache >::remoteIP |
( |
| ) |
|
@@ -1078,7 +1078,7 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inlineoverridevirtual
@@ -1089,8 +1089,8 @@ template<class C , size_t SessionCache = 1>
-
-◆ remotePort()
+
+◆ remotePort()
@@ -1101,7 +1101,7 @@ template<class C , size_t SessionCache = 1>
- virtual uint16_t SSLClient< C, SessionCache >::remotePort |
+ uint16_t SSLClient< C, SessionCache >::remotePort |
( |
| ) |
|
@@ -1109,7 +1109,7 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inlineoverridevirtual
@@ -1120,8 +1120,8 @@ template<class C , size_t SessionCache = 1>
-
-◆ removeSession()
+
+◆ removeSession()
@@ -1132,7 +1132,7 @@ template<class C , size_t SessionCache = 1>
- virtual void SSLClient< C, SessionCache >::removeSession |
+ void SSLClient< C, SessionCache >::removeSession |
( |
const char * |
host, |
@@ -1151,7 +1151,7 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inline
@@ -1168,8 +1168,8 @@ template<class C , size_t SessionCache = 1>
-
-◆ stop()
+
+◆ stop()
@@ -1180,7 +1180,7 @@ template<class C , size_t SessionCache = 1>
- virtual void SSLClient< C, SessionCache >::stop |
+ void SSLClient< C, SessionCache >::stop |
( |
| ) |
|
@@ -1188,7 +1188,7 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inlineoverride
@@ -1198,8 +1198,8 @@ template<class C , size_t SessionCache = 1>
-
-◆ write() [1/2]
+
+◆ write() [1/2]
@@ -1210,7 +1210,7 @@ template<class C , size_t SessionCache = 1>
- virtual size_t SSLClient< C, SessionCache >::write |
+ size_t SSLClient< C, SessionCache >::write |
( |
uint8_t |
b | ) |
@@ -1219,7 +1219,7 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inlineoverride
@@ -1227,8 +1227,8 @@ template<class C , size_t SessionCache = 1>
-
-◆ write() [2/2]
+
+◆ write() [2/2]
@@ -1239,7 +1239,7 @@ template<class C , size_t SessionCache = 1>
- virtual size_t SSLClient< C, SessionCache >::write |
+ size_t SSLClient< C, SessionCache >::write |
( |
const uint8_t * |
buf, |
@@ -1258,15 +1258,15 @@ template<class C , size_t SessionCache = 1>
|
-inlinevirtual |
+
inlineoverride
Write some bytes to the SSL connection.
-
Assuming all preconditions are met, this function writes data to the BearSSL IO buffer, BUT does not initially send the data. Instead, you must call SSLClient::available or SSLClient::flush, which will detect that the buffer is ready for writing, and will write the data to the network. Alternatively, if this function is requested to write a larger amount of data than SSLClientImpl::m_iobuf can handle, data will be written to the network in pages the size of SSLClientImpl::m_iobuf until all the data in buf is sent–attempting to keep all writes to the network grouped together. For information on why this is the case check out README.md .
+
Assuming all preconditions are met, this function writes data to the BearSSL IO buffer, BUT does not initially send the data. Instead, you must call SSLClient::available or SSLClient::flush, which will detect that the buffer is ready for writing, and will write the data to the network. Alternatively, if this function is requested to write a larger amount of data than SSLClientImpl::m_iobuf can handle, data will be written to the network in pages the size of SSLClientImpl::m_iobuf until all the data in buf is sent–attempting to keep all writes to the network grouped together. For information on why this is the case check out README.md .
The implementation for this function can be found in SSLClientImpl::write_impl(const uint8_t*, size_t)
-
- Precondition
- The socket and SSL layer must be connected, meaning SSLClient::connected must be true.
+- Precondition
- The socket and SSL layer must be connected, meaning SSLClient::connected must be true.
-
BearSSL must not be waiting for the recipt of user data (if it is, there is probably an error with how the protocol in implemented in your code).
- Parameters
-
diff --git a/docs/html/class_s_s_l_client.js b/docs/html/class_s_s_l_client.js
index 0c36bb8..340f3b7 100644
--- a/docs/html/class_s_s_l_client.js
+++ b/docs/html/class_s_s_l_client.js
@@ -1,31 +1,31 @@
var class_s_s_l_client =
[
[ "SSLClient", "class_s_s_l_client.html#ae9a7509bc8a18f67e286547c19deb3c0", null ],
- [ "available", "class_s_s_l_client.html#a40ec85568d0aec376219125b604dbc29", null ],
- [ "connect", "class_s_s_l_client.html#ae6540b9a02f1392bf2ac48421189f70e", null ],
- [ "connect", "class_s_s_l_client.html#a5814c11e96848c2bcea78210f099aad5", null ],
- [ "connected", "class_s_s_l_client.html#a7318aadc0ec9775bffaaac0b1f00aaf8", null ],
- [ "flush", "class_s_s_l_client.html#a51eb668f6a328a6a66298c6bc1361d41", null ],
- [ "get_arduino_client", "class_s_s_l_client.html#ab3ebfbca41a56bfa11e34aac2c2e0106", null ],
- [ "get_arduino_client", "class_s_s_l_client.html#a20742b36588c45435139a4f47fe0f1f6", null ],
- [ "get_session_array", "class_s_s_l_client.html#aaa52b481eb1d36a0ae1d208daa2fec51", null ],
- [ "get_session_array", "class_s_s_l_client.html#ab076a76b142b553c0dfd29174d4e17e7", null ],
+ [ "available", "class_s_s_l_client.html#a5d13fd2f32ee2ea65a1f3820f758e77e", null ],
+ [ "connect", "class_s_s_l_client.html#a4a2172aedfcc483ba2a256ad12148630", null ],
+ [ "connect", "class_s_s_l_client.html#a91c63e35f31652c20faa5b9be95984bf", null ],
+ [ "connected", "class_s_s_l_client.html#a25e4414ab0c9424d09592f9567a678dc", null ],
+ [ "flush", "class_s_s_l_client.html#a2ee6a3134d07ca09cf61ee04d32c3d44", null ],
+ [ "get_arduino_client", "class_s_s_l_client.html#a9c5001bdfa75ccc0d93cc60dd872b38a", null ],
+ [ "get_arduino_client", "class_s_s_l_client.html#a353c875d17a85dbb7bfe10de155f3b52", null ],
+ [ "get_session_array", "class_s_s_l_client.html#a9e7769fed78825cf4723778f4b5aa3e9", null ],
+ [ "get_session_array", "class_s_s_l_client.html#a18adfc074d6b8e996819d4beb4689cbd", null ],
[ "getClient", "class_s_s_l_client.html#afd0d4d2c98433d60897d8828d8047d41", null ],
- [ "getSession", "class_s_s_l_client.html#ae3f27a36ff9c0cd1e2bea5e1708b6e4f", null ],
- [ "getSessionCount", "class_s_s_l_client.html#a36bb344866e4cbcba3bbfcf4d33e5187", null ],
- [ "localPort", "class_s_s_l_client.html#ac725067566ee411680c88575c148300b", null ],
- [ "operator bool", "class_s_s_l_client.html#a319a722dae252efdd85fdbaf5c7fbf17", null ],
- [ "operator!=", "class_s_s_l_client.html#a9a060e49d0685c6c6795558e41cd3323", null ],
- [ "operator!=", "class_s_s_l_client.html#a518f4ed733814f2f4a8c7f838555eb35", null ],
- [ "operator==", "class_s_s_l_client.html#a6fb2e8a1cc54dd82a72217e5c4533e02", null ],
- [ "operator==", "class_s_s_l_client.html#a26f9418e33d4ca459f78de98d3af43bb", null ],
- [ "peek", "class_s_s_l_client.html#a227b1cbbe91bcb21153c09f97d0dd484", null ],
- [ "read", "class_s_s_l_client.html#ac70b900ff798f9fd33f6367fcc9fad77", null ],
- [ "read", "class_s_s_l_client.html#ae31dd88a1af8ec3794fb48f26a3dd4bf", null ],
- [ "remoteIP", "class_s_s_l_client.html#ae2d1d17ee568ec2a37756bf6894dcd05", null ],
- [ "remotePort", "class_s_s_l_client.html#ae8bd9420fec3b11f855729c4ecfe1c2c", null ],
- [ "removeSession", "class_s_s_l_client.html#a0000d7f1e8656cf4a506a98133391fe0", null ],
- [ "stop", "class_s_s_l_client.html#a158d87df3fe118b7565a19b72f310322", null ],
- [ "write", "class_s_s_l_client.html#a0699ff4b966162cba2ef59ff4a287270", null ],
- [ "write", "class_s_s_l_client.html#a3a48b190985cdea2eba79ef0bdc80461", null ]
+ [ "getSession", "class_s_s_l_client.html#a2d8bf9b891151bc5b0b865d70cf9c086", null ],
+ [ "getSessionCount", "class_s_s_l_client.html#a2d71f00d6634092f50c5262ad25cdacd", null ],
+ [ "localPort", "class_s_s_l_client.html#a563c5f9829757075bf16742cffa4cf73", null ],
+ [ "operator bool", "class_s_s_l_client.html#a2d378fbb7b8f15a1691746572f9d95b1", null ],
+ [ "operator!=", "class_s_s_l_client.html#a824b599264f893e1b206a9100bc52ee1", null ],
+ [ "operator!=", "class_s_s_l_client.html#adab82ba09345fa070712d3124af30e1b", null ],
+ [ "operator==", "class_s_s_l_client.html#a505bfb6831a45aebf58d84e3b89d4cfc", null ],
+ [ "operator==", "class_s_s_l_client.html#a5f40f8f4d26d21e14276c3e8162b62b9", null ],
+ [ "peek", "class_s_s_l_client.html#a31742867b00bd8d130637af0935bacbd", null ],
+ [ "read", "class_s_s_l_client.html#aedf2746cc35da596faf8322776c2118e", null ],
+ [ "read", "class_s_s_l_client.html#afd6d7ae798c05cf566b2eb5651dba795", null ],
+ [ "remoteIP", "class_s_s_l_client.html#af76a0df76834e0d0999dbf44c7c0a174", null ],
+ [ "remotePort", "class_s_s_l_client.html#a5974a5f8722a752f121af4fac498bb22", null ],
+ [ "removeSession", "class_s_s_l_client.html#a5b626703a24089dbb0480a9b6ddf348c", null ],
+ [ "stop", "class_s_s_l_client.html#ad30db47248d78df7c12dedfb27f06529", null ],
+ [ "write", "class_s_s_l_client.html#a6b8ff53c10fe34aab1dc2561410f70bb", null ],
+ [ "write", "class_s_s_l_client.html#a6bcb7579ebc051c097acb794b95771a9", null ]
];
\ No newline at end of file
diff --git a/docs/html/class_s_s_l_client_impl.html b/docs/html/class_s_s_l_client_impl.html
index 7259c74..244b09f 100644
--- a/docs/html/class_s_s_l_client_impl.html
+++ b/docs/html/class_s_s_l_client_impl.html
@@ -246,7 +246,7 @@ Protected Member Functions
@@ -275,7 +275,7 @@ Protected Member Functions
@@ -304,7 +304,7 @@ Protected Member Functions
@@ -322,7 +322,7 @@ Protected Member Functions
@@ -340,7 +340,7 @@ Protected Member Functions
@@ -366,9 +366,9 @@ Protected Member Functions
@@ -395,7 +395,7 @@ Protected Member Functions
@@ -421,9 +421,9 @@ Protected Member Functions
@@ -450,7 +450,7 @@ Protected Member Functions
@@ -479,7 +479,7 @@ Protected Member Functions
@@ -505,9 +505,9 @@ Protected Member Functions
@@ -533,9 +533,9 @@ Protected Member Functions
@@ -829,7 +829,7 @@ template<typename T >
@@ -858,7 +858,7 @@ template<typename T >
@@ -884,9 +884,9 @@ template<typename T >
@@ -912,9 +912,9 @@ template<typename T >
@@ -943,7 +943,7 @@ template<typename T >
@@ -961,7 +961,7 @@ template<typename T >
@@ -990,7 +990,7 @@ template<typename T >
diff --git a/docs/html/functions.html b/docs/html/functions.html
index 2848a51..dea6a9f 100644
--- a/docs/html/functions.html
+++ b/docs/html/functions.html
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
- a -
- available()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
- available_impl()
: SSLClientImpl
@@ -104,13 +104,13 @@ $(document).ready(function(){initNavTree('functions.html','');});
: SSLSession
- connect()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
- connect_impl()
: SSLClientImpl
- connected()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
- connected_impl()
: SSLClientImpl
@@ -120,7 +120,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
- f -
- flush()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
- flush_impl()
: SSLClientImpl
@@ -130,7 +130,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
- g -
- get_arduino_client()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
, SSLClientImpl
- get_hostname()
@@ -140,7 +140,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
: SSLSession
- get_session_array()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
, SSLClientImpl
- get_session_impl()
@@ -150,10 +150,10 @@ $(document).ready(function(){initNavTree('functions.html','');});
: SSLClient< C, SessionCache >
- getSession()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
- getSessionCount()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
, SSLClientImpl
@@ -168,7 +168,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
- l -
@@ -201,23 +201,23 @@ $(document).ready(function(){initNavTree('functions.html','');});
- o -
- p -
- peek()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
- peek_impl()
: SSLClientImpl
@@ -227,24 +227,24 @@ $(document).ready(function(){initNavTree('functions.html','');});
- r -
- read()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
- read_impl()
: SSLClientImpl
- remoteIP()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
, SSLClientImpl
- remotePort()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
, SSLClientImpl
- remove_session_impl()
: SSLClientImpl
- removeSession()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
@@ -263,7 +263,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
: SSLSession
- stop()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
- stop_impl()
: SSLClientImpl
@@ -280,7 +280,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
- w -
- write()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
- write_impl()
: SSLClientImpl
diff --git a/docs/html/functions_func.html b/docs/html/functions_func.html
index e587094..3a214ff 100644
--- a/docs/html/functions_func.html
+++ b/docs/html/functions_func.html
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
- a -
- available()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
- available_impl()
: SSLClientImpl
@@ -104,13 +104,13 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
: SSLSession
- connect()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
- connect_impl()
: SSLClientImpl
- connected()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
- connected_impl()
: SSLClientImpl
@@ -120,7 +120,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
- f -
- flush()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
- flush_impl()
: SSLClientImpl
@@ -130,7 +130,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
- g -
- get_arduino_client()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
, SSLClientImpl
- get_hostname()
@@ -140,7 +140,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
: SSLSession
- get_session_array()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
, SSLClientImpl
- get_session_impl()
@@ -150,10 +150,10 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
: SSLClient< C, SessionCache >
- getSession()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
- getSessionCount()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
, SSLClientImpl
@@ -168,7 +168,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
- l -
@@ -201,23 +201,23 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
- o -
- p -
- peek()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
- peek_impl()
: SSLClientImpl
@@ -227,24 +227,24 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
- r -
- read()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
- read_impl()
: SSLClientImpl
- remoteIP()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
, SSLClientImpl
- remotePort()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
, SSLClientImpl
- remove_session_impl()
: SSLClientImpl
- removeSession()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
@@ -263,7 +263,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
: SSLSession
- stop()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
- stop_impl()
: SSLClientImpl
@@ -280,7 +280,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
- w -
- write()
-: SSLClient< C, SessionCache >
+: SSLClient< C, SessionCache >
- write_impl()
: SSLClientImpl
diff --git a/docs/html/index.html b/docs/html/index.html
index 9a78c88..d1a4668 100644
--- a/docs/html/index.html
+++ b/docs/html/index.html
@@ -121,9 +121,9 @@ $(document).ready(function(){initNavTree('index.html','');});
Errors
When SSLClient encounters an error, it will attempt to terminate the SSL session gracefully if possible, and then close the socket. Simple error information can be found from SSLClient::getWriteError(), which will return a value from the Error enum. For more detailed diagnostics, you can look at the serial logs, which will be displayed if the log level is at SSL_ERROR
or lower.
Write Buffering
-As you may have noticed in the documentation for SSLClient::write, calling this function does not actually write to the network. Instead, you must call SSLClient::available or SSLClient::flush, which will detect that the buffer is ready and write to the network (see SSLClient::write for details).
-This was implemented as a buffered function because examples in Arduino libraries will often write to the network like so:
{C++}
EthernetClient client;
// ...
// connect to ardiuino.cc over ssl (port 443 for websites)
client.connect("www.arduino.cc", 443);
// ...
// write an http request to the network
client.write("GET /asciilogo.txt HTTP/1.1\r\n");
client.write("Host: arduino.cc\r\n");
client.write("Connection: close\r\n");
// wait for response
while (!client.available()) { /* ... */ }
// ...
Notice that every single write() call immediately writes to the network, which is fine with most network clients. With SSL, however, if we are encrypting and writing to the network every write() call, this will result in a lot of small encryption tasks. Encryption takes a lot of time and code, so to reduce the overhead of an SSL connection, SSLClient::write implicitly buffers until the developer states that they are waiting for data to be received with SSLClient::available. A simple example can be found below:
- {C++}
SSLClient<EthernetClient> client(EthernetClient(), TAs, 2, A7);
// ...
// connect to ardiuino.cc over ssl (port 443 for websites)
client.connect("www.arduino.cc", 443);
// ...
// add http request to the buffer
client.write("GET /asciilogo.txt HTTP/1.1\r\n");
client.write("Host: arduino.cc\r\n");
client.write("Connection: close\r\n");
// write the bytes to the network, then wait for response
while (!client.available()) { /* ... */ }
// ...
If you would like to trigger a network write manually without using the SSLClient::available, you can also call SSLClient::flush, which will write all data and return when finished.
+As you may have noticed in the documentation for SSLClient::write, calling this function does not actually write to the network. Instead, you must call SSLClient::available or SSLClient::flush, which will detect that the buffer is ready and write to the network (see SSLClient::write for details).
+This was implemented as a buffered function because examples in Arduino libraries will often write to the network like so:
{C++}
EthernetClient client;
// ...
// connect to ardiuino.cc over ssl (port 443 for websites)
client.connect("www.arduino.cc", 443);
// ...
// write an http request to the network
client.write("GET /asciilogo.txt HTTP/1.1\r\n");
client.write("Host: arduino.cc\r\n");
client.write("Connection: close\r\n");
// wait for response
while (!client.available()) { /* ... */ }
// ...
Notice that every single write() call immediately writes to the network, which is fine with most network clients. With SSL, however, if we are encrypting and writing to the network every write() call, this will result in a lot of small encryption tasks. Encryption takes a lot of time and code, so to reduce the overhead of an SSL connection, SSLClient::write implicitly buffers until the developer states that they are waiting for data to be received with SSLClient::available. A simple example can be found below:
+ {C++}
SSLClient<EthernetClient> client(EthernetClient(), TAs, 2, A7);
// ...
// connect to ardiuino.cc over ssl (port 443 for websites)
client.connect("www.arduino.cc", 443);
// ...
// add http request to the buffer
client.write("GET /asciilogo.txt HTTP/1.1\r\n");
client.write("Host: arduino.cc\r\n");
client.write("Connection: close\r\n");
// write the bytes to the network, then wait for response
while (!client.available()) { /* ... */ }
// ...
If you would like to trigger a network write manually without using the SSLClient::available, you can also call SSLClient::flush, which will write all data and return when finished.
Session Caching
As detailed in the resources section, SSL handshakes take an extended period (1-4sec) to negotiate. To remedy this problem, BearSSL is able to keep a SSL session cache of the clients it has connected to. If BearSSL successfully resumes an SSL session, it can reduce connection time to 100-500ms.
In order to use SSL session resumption:
diff --git a/docs/html/md__c_1__users__noah__documents__arduino_libraries__s_s_l_client__trust_anchors.html b/docs/html/md__c_1__users__noah__documents__arduino_libraries__s_s_l_client__trust_anchors.html
index 01d98af..960a2fb 100644
--- a/docs/html/md__c_1__users__noah__documents__arduino_libraries__s_s_l_client__trust_anchors.html
+++ b/docs/html/md__c_1__users__noah__documents__arduino_libraries__s_s_l_client__trust_anchors.html
@@ -103,7 +103,7 @@ $(document).ready(function(){initNavTree('md__c_1__users__noah__documents__ardui
Other Connections
For other kinds of SSL connections, you will need to find the root certificate being used by your host. You can check out this StackExchange post for numerous methods of acquiring this certificate from a server. If these methods are not sufficient, you may need to request this certificate from your network administrator. Once you have the certificate, convert it to PEM format if needed (I use this website), and use the pycert_bearssl.py convert
command to convert the certificate into a trust anchor header.
Using Trust Anchors
-Once you've generated a trust anchor array, add it to your Arduino sketch using the Sketch->Add File
button in the Arduino IDE, and link it to your SSLClient like so:
{C++}
#include "yourtrustanchorfile.h"
// ...
SSLClient<SomeClientType> client(SomeClient, TAs, (size_t)TAs_NUM, SomePin);
// ...
Where yourtrustanchorfile.h
contains a generated trust anchor array names TAs
, with length TAs_NUM
. BearSSL will now automatically use these trust anchors when SSLClient::connect
is called.
+Once you've generated a trust anchor array, add it to your Arduino sketch using the Sketch->Add File
button in the Arduino IDE, and link it to your SSLClient like so:
{C++}
#include "yourtrustanchorfile.h"
// ...
SSLClient<SomeClientType> client(SomeClient, TAs, (size_t)TAs_NUM, SomePin);
// ...
Where yourtrustanchorfile.h
contains a generated trust anchor array names TAs
, with length TAs_NUM
. BearSSL will now automatically use these trust anchors when SSLClient::connect
is called.
diff --git a/docs/html/navtreeindex0.js b/docs/html/navtreeindex0.js
index adb9539..cd95985 100644
--- a/docs/html/navtreeindex0.js
+++ b/docs/html/navtreeindex0.js
@@ -30,34 +30,34 @@ var NAVTREEINDEX0 =
"cert_8h.html#ae2e26a4e8e97b0f15c18ba1ace062948":[3,0,1,0,0],
"cert_8h_source.html":[3,0,1,0],
"class_s_s_l_client.html":[2,0,0],
-"class_s_s_l_client.html#a0000d7f1e8656cf4a506a98133391fe0":[2,0,0,24],
-"class_s_s_l_client.html#a0699ff4b966162cba2ef59ff4a287270":[2,0,0,26],
-"class_s_s_l_client.html#a158d87df3fe118b7565a19b72f310322":[2,0,0,25],
-"class_s_s_l_client.html#a20742b36588c45435139a4f47fe0f1f6":[2,0,0,7],
-"class_s_s_l_client.html#a227b1cbbe91bcb21153c09f97d0dd484":[2,0,0,19],
-"class_s_s_l_client.html#a26f9418e33d4ca459f78de98d3af43bb":[2,0,0,18],
-"class_s_s_l_client.html#a319a722dae252efdd85fdbaf5c7fbf17":[2,0,0,14],
-"class_s_s_l_client.html#a36bb344866e4cbcba3bbfcf4d33e5187":[2,0,0,12],
-"class_s_s_l_client.html#a3a48b190985cdea2eba79ef0bdc80461":[2,0,0,27],
-"class_s_s_l_client.html#a40ec85568d0aec376219125b604dbc29":[2,0,0,1],
-"class_s_s_l_client.html#a518f4ed733814f2f4a8c7f838555eb35":[2,0,0,16],
-"class_s_s_l_client.html#a51eb668f6a328a6a66298c6bc1361d41":[2,0,0,5],
-"class_s_s_l_client.html#a5814c11e96848c2bcea78210f099aad5":[2,0,0,3],
-"class_s_s_l_client.html#a6fb2e8a1cc54dd82a72217e5c4533e02":[2,0,0,17],
-"class_s_s_l_client.html#a7318aadc0ec9775bffaaac0b1f00aaf8":[2,0,0,4],
-"class_s_s_l_client.html#a9a060e49d0685c6c6795558e41cd3323":[2,0,0,15],
-"class_s_s_l_client.html#aaa52b481eb1d36a0ae1d208daa2fec51":[2,0,0,8],
-"class_s_s_l_client.html#ab076a76b142b553c0dfd29174d4e17e7":[2,0,0,9],
-"class_s_s_l_client.html#ab3ebfbca41a56bfa11e34aac2c2e0106":[2,0,0,6],
-"class_s_s_l_client.html#ac70b900ff798f9fd33f6367fcc9fad77":[2,0,0,20],
-"class_s_s_l_client.html#ac725067566ee411680c88575c148300b":[2,0,0,13],
-"class_s_s_l_client.html#ae2d1d17ee568ec2a37756bf6894dcd05":[2,0,0,22],
-"class_s_s_l_client.html#ae31dd88a1af8ec3794fb48f26a3dd4bf":[2,0,0,21],
-"class_s_s_l_client.html#ae3f27a36ff9c0cd1e2bea5e1708b6e4f":[2,0,0,11],
-"class_s_s_l_client.html#ae6540b9a02f1392bf2ac48421189f70e":[2,0,0,2],
-"class_s_s_l_client.html#ae8bd9420fec3b11f855729c4ecfe1c2c":[2,0,0,23],
+"class_s_s_l_client.html#a18adfc074d6b8e996819d4beb4689cbd":[2,0,0,9],
+"class_s_s_l_client.html#a25e4414ab0c9424d09592f9567a678dc":[2,0,0,4],
+"class_s_s_l_client.html#a2d378fbb7b8f15a1691746572f9d95b1":[2,0,0,14],
+"class_s_s_l_client.html#a2d71f00d6634092f50c5262ad25cdacd":[2,0,0,12],
+"class_s_s_l_client.html#a2d8bf9b891151bc5b0b865d70cf9c086":[2,0,0,11],
+"class_s_s_l_client.html#a2ee6a3134d07ca09cf61ee04d32c3d44":[2,0,0,5],
+"class_s_s_l_client.html#a31742867b00bd8d130637af0935bacbd":[2,0,0,19],
+"class_s_s_l_client.html#a353c875d17a85dbb7bfe10de155f3b52":[2,0,0,7],
+"class_s_s_l_client.html#a4a2172aedfcc483ba2a256ad12148630":[2,0,0,2],
+"class_s_s_l_client.html#a505bfb6831a45aebf58d84e3b89d4cfc":[2,0,0,17],
+"class_s_s_l_client.html#a563c5f9829757075bf16742cffa4cf73":[2,0,0,13],
+"class_s_s_l_client.html#a5974a5f8722a752f121af4fac498bb22":[2,0,0,23],
+"class_s_s_l_client.html#a5b626703a24089dbb0480a9b6ddf348c":[2,0,0,24],
+"class_s_s_l_client.html#a5d13fd2f32ee2ea65a1f3820f758e77e":[2,0,0,1],
+"class_s_s_l_client.html#a5f40f8f4d26d21e14276c3e8162b62b9":[2,0,0,18],
+"class_s_s_l_client.html#a6b8ff53c10fe34aab1dc2561410f70bb":[2,0,0,26],
+"class_s_s_l_client.html#a6bcb7579ebc051c097acb794b95771a9":[2,0,0,27],
+"class_s_s_l_client.html#a824b599264f893e1b206a9100bc52ee1":[2,0,0,15],
+"class_s_s_l_client.html#a91c63e35f31652c20faa5b9be95984bf":[2,0,0,3],
+"class_s_s_l_client.html#a9c5001bdfa75ccc0d93cc60dd872b38a":[2,0,0,6],
+"class_s_s_l_client.html#a9e7769fed78825cf4723778f4b5aa3e9":[2,0,0,8],
+"class_s_s_l_client.html#ad30db47248d78df7c12dedfb27f06529":[2,0,0,25],
+"class_s_s_l_client.html#adab82ba09345fa070712d3124af30e1b":[2,0,0,16],
"class_s_s_l_client.html#ae9a7509bc8a18f67e286547c19deb3c0":[2,0,0,0],
+"class_s_s_l_client.html#aedf2746cc35da596faf8322776c2118e":[2,0,0,20],
+"class_s_s_l_client.html#af76a0df76834e0d0999dbf44c7c0a174":[2,0,0,22],
"class_s_s_l_client.html#afd0d4d2c98433d60897d8828d8047d41":[2,0,0,10],
+"class_s_s_l_client.html#afd6d7ae798c05cf566b2eb5651dba795":[2,0,0,21],
"class_s_s_l_client_impl.html":[2,0,1],
"class_s_s_l_client_impl.html#a1b90e7df3a77eea5efb955cc15a17f7d":[2,0,1,20],
"class_s_s_l_client_impl.html#a20dd9a9794b95719e6f3df8cb39126e3":[2,0,1,6],
diff --git a/docs/html/search/all_1.js b/docs/html/search/all_1.js
index e146f72..6e54ada 100644
--- a/docs/html/search/all_1.js
+++ b/docs/html/search/all_1.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['available',['available',['../class_s_s_l_client.html#a40ec85568d0aec376219125b604dbc29',1,'SSLClient']]],
+ ['available',['available',['../class_s_s_l_client.html#a5d13fd2f32ee2ea65a1f3820f758e77e',1,'SSLClient']]],
['available_5fimpl',['available_impl',['../class_s_s_l_client_impl.html#abe33c793ec37f11087651cf4e586569b',1,'SSLClientImpl']]]
];
diff --git a/docs/html/search/all_11.js b/docs/html/search/all_11.js
index bd942e1..b1b7f3c 100644
--- a/docs/html/search/all_11.js
+++ b/docs/html/search/all_11.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['write',['write',['../class_s_s_l_client.html#a0699ff4b966162cba2ef59ff4a287270',1,'SSLClient::write(uint8_t b)'],['../class_s_s_l_client.html#a3a48b190985cdea2eba79ef0bdc80461',1,'SSLClient::write(const uint8_t *buf, size_t size)']]],
+ ['write',['write',['../class_s_s_l_client.html#a6b8ff53c10fe34aab1dc2561410f70bb',1,'SSLClient::write(uint8_t b) override'],['../class_s_s_l_client.html#a6bcb7579ebc051c097acb794b95771a9',1,'SSLClient::write(const uint8_t *buf, size_t size) override']]],
['write_5fimpl',['write_impl',['../class_s_s_l_client_impl.html#a807656f814f24cf6cd711e429b716c4d',1,'SSLClientImpl']]]
];
diff --git a/docs/html/search/all_3.js b/docs/html/search/all_3.js
index 81496e7..659fa65 100644
--- a/docs/html/search/all_3.js
+++ b/docs/html/search/all_3.js
@@ -2,9 +2,9 @@ var searchData=
[
['cert_2eh',['cert.h',['../cert_8h.html',1,'']]],
['clear_5fparameters',['clear_parameters',['../class_s_s_l_session.html#a3305941fa615f7134526b718917716ee',1,'SSLSession']]],
- ['connect',['connect',['../class_s_s_l_client.html#ae6540b9a02f1392bf2ac48421189f70e',1,'SSLClient::connect(IPAddress ip, uint16_t port)'],['../class_s_s_l_client.html#a5814c11e96848c2bcea78210f099aad5',1,'SSLClient::connect(const char *host, uint16_t port)']]],
+ ['connect',['connect',['../class_s_s_l_client.html#a4a2172aedfcc483ba2a256ad12148630',1,'SSLClient::connect(IPAddress ip, uint16_t port) override'],['../class_s_s_l_client.html#a91c63e35f31652c20faa5b9be95984bf',1,'SSLClient::connect(const char *host, uint16_t port) override']]],
['connect_5fimpl',['connect_impl',['../class_s_s_l_client_impl.html#aa5c14ecf301c268306946c85825e565b',1,'SSLClientImpl::connect_impl(IPAddress ip, uint16_t port)'],['../class_s_s_l_client_impl.html#ae6c947ad92979ab99364428004abbeba',1,'SSLClientImpl::connect_impl(const char *host, uint16_t port)']]],
- ['connected',['connected',['../class_s_s_l_client.html#a7318aadc0ec9775bffaaac0b1f00aaf8',1,'SSLClient']]],
+ ['connected',['connected',['../class_s_s_l_client.html#a25e4414ab0c9424d09592f9567a678dc',1,'SSLClient']]],
['connected_5fimpl',['connected_impl',['../class_s_s_l_client_impl.html#a957984fa392550a7df86f758e9b14bfb',1,'SSLClientImpl']]],
['conv_5fstr2dec_5f1',['CONV_STR2DEC_1',['../time__macros_8h.html#ae0574ced3f997b97d357c1cb68000e3a',1,'time_macros.h']]],
['conv_5fstr2dec_5f2',['CONV_STR2DEC_2',['../time__macros_8h.html#ae90924c33a05839b3eb1426472f40eb3',1,'time_macros.h']]],
diff --git a/docs/html/search/all_6.js b/docs/html/search/all_6.js
index 49584f5..3dc70e4 100644
--- a/docs/html/search/all_6.js
+++ b/docs/html/search/all_6.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['flush',['flush',['../class_s_s_l_client.html#a51eb668f6a328a6a66298c6bc1361d41',1,'SSLClient']]],
+ ['flush',['flush',['../class_s_s_l_client.html#a2ee6a3134d07ca09cf61ee04d32c3d44',1,'SSLClient']]],
['flush_5fimpl',['flush_impl',['../class_s_s_l_client_impl.html#a21ab78a0917f74ae5383d688e1548788',1,'SSLClientImpl']]]
];
diff --git a/docs/html/search/all_7.js b/docs/html/search/all_7.js
index 926ac2d..fcf2600 100644
--- a/docs/html/search/all_7.js
+++ b/docs/html/search/all_7.js
@@ -1,12 +1,12 @@
var searchData=
[
- ['get_5farduino_5fclient',['get_arduino_client',['../class_s_s_l_client.html#ab3ebfbca41a56bfa11e34aac2c2e0106',1,'SSLClient::get_arduino_client()'],['../class_s_s_l_client.html#a20742b36588c45435139a4f47fe0f1f6',1,'SSLClient::get_arduino_client() const'],['../class_s_s_l_client_impl.html#a20dd9a9794b95719e6f3df8cb39126e3',1,'SSLClientImpl::get_arduino_client()=0'],['../class_s_s_l_client_impl.html#ab1c8f30bd3669c15e07fa1522ede4336',1,'SSLClientImpl::get_arduino_client() const =0']]],
+ ['get_5farduino_5fclient',['get_arduino_client',['../class_s_s_l_client.html#a9c5001bdfa75ccc0d93cc60dd872b38a',1,'SSLClient::get_arduino_client() override'],['../class_s_s_l_client.html#a353c875d17a85dbb7bfe10de155f3b52',1,'SSLClient::get_arduino_client() const override'],['../class_s_s_l_client_impl.html#a20dd9a9794b95719e6f3df8cb39126e3',1,'SSLClientImpl::get_arduino_client()=0'],['../class_s_s_l_client_impl.html#ab1c8f30bd3669c15e07fa1522ede4336',1,'SSLClientImpl::get_arduino_client() const =0']]],
['get_5fhostname',['get_hostname',['../class_s_s_l_session.html#a825373c5ba1aa6c45e74dc8a72b21820',1,'SSLSession']]],
['get_5fip',['get_ip',['../class_s_s_l_session.html#a878e1e8788634c5c42778369fbf7bab0',1,'SSLSession']]],
['get_5fmonth',['GET_MONTH',['../time__macros_8h.html#a4dbe4cf7c879a2cdac386ce72c5e5994',1,'time_macros.h']]],
- ['get_5fsession_5farray',['get_session_array',['../class_s_s_l_client.html#aaa52b481eb1d36a0ae1d208daa2fec51',1,'SSLClient::get_session_array()'],['../class_s_s_l_client.html#ab076a76b142b553c0dfd29174d4e17e7',1,'SSLClient::get_session_array() const'],['../class_s_s_l_client_impl.html#a44cfafd6f5cdcaa5dbac22961ab3a58b',1,'SSLClientImpl::get_session_array()=0'],['../class_s_s_l_client_impl.html#ace6652307ba028d67c7ddbc4103fa9b4',1,'SSLClientImpl::get_session_array() const =0']]],
+ ['get_5fsession_5farray',['get_session_array',['../class_s_s_l_client.html#a9e7769fed78825cf4723778f4b5aa3e9',1,'SSLClient::get_session_array() override'],['../class_s_s_l_client.html#a18adfc074d6b8e996819d4beb4689cbd',1,'SSLClient::get_session_array() const override'],['../class_s_s_l_client_impl.html#a44cfafd6f5cdcaa5dbac22961ab3a58b',1,'SSLClientImpl::get_session_array()=0'],['../class_s_s_l_client_impl.html#ace6652307ba028d67c7ddbc4103fa9b4',1,'SSLClientImpl::get_session_array() const =0']]],
['get_5fsession_5fimpl',['get_session_impl',['../class_s_s_l_client_impl.html#ab4e38d4319ec504395d67d2ab21a639e',1,'SSLClientImpl']]],
['getclient',['getClient',['../class_s_s_l_client.html#afd0d4d2c98433d60897d8828d8047d41',1,'SSLClient']]],
- ['getsession',['getSession',['../class_s_s_l_client.html#ae3f27a36ff9c0cd1e2bea5e1708b6e4f',1,'SSLClient']]],
- ['getsessioncount',['getSessionCount',['../class_s_s_l_client.html#a36bb344866e4cbcba3bbfcf4d33e5187',1,'SSLClient::getSessionCount()'],['../class_s_s_l_client_impl.html#a8e2385522ec04b1ce70871d4de23db6b',1,'SSLClientImpl::getSessionCount()']]]
+ ['getsession',['getSession',['../class_s_s_l_client.html#a2d8bf9b891151bc5b0b865d70cf9c086',1,'SSLClient']]],
+ ['getsessioncount',['getSessionCount',['../class_s_s_l_client.html#a2d71f00d6634092f50c5262ad25cdacd',1,'SSLClient::getSessionCount()'],['../class_s_s_l_client_impl.html#a8e2385522ec04b1ce70871d4de23db6b',1,'SSLClientImpl::getSessionCount()']]]
];
diff --git a/docs/html/search/all_9.js b/docs/html/search/all_9.js
index ac8fe09..0773563 100644
--- a/docs/html/search/all_9.js
+++ b/docs/html/search/all_9.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['localport',['localPort',['../class_s_s_l_client.html#ac725067566ee411680c88575c148300b',1,'SSLClient::localPort()'],['../class_s_s_l_client_impl.html#a45f26385ee1975b12265943efb1ff0d5',1,'SSLClientImpl::localPort()']]]
+ ['localport',['localPort',['../class_s_s_l_client.html#a563c5f9829757075bf16742cffa4cf73',1,'SSLClient::localPort()'],['../class_s_s_l_client_impl.html#a45f26385ee1975b12265943efb1ff0d5',1,'SSLClientImpl::localPort()']]]
];
diff --git a/docs/html/search/all_b.js b/docs/html/search/all_b.js
index 7bc0384..d7f8a71 100644
--- a/docs/html/search/all_b.js
+++ b/docs/html/search/all_b.js
@@ -1,7 +1,7 @@
var searchData=
[
- ['operator_20bool',['operator bool',['../class_s_s_l_client.html#a319a722dae252efdd85fdbaf5c7fbf17',1,'SSLClient']]],
- ['operator_21_3d',['operator!=',['../class_s_s_l_client.html#a9a060e49d0685c6c6795558e41cd3323',1,'SSLClient::operator!=(const bool value)'],['../class_s_s_l_client.html#a518f4ed733814f2f4a8c7f838555eb35',1,'SSLClient::operator!=(const C &rhs)']]],
+ ['operator_20bool',['operator bool',['../class_s_s_l_client.html#a2d378fbb7b8f15a1691746572f9d95b1',1,'SSLClient']]],
+ ['operator_21_3d',['operator!=',['../class_s_s_l_client.html#a824b599264f893e1b206a9100bc52ee1',1,'SSLClient::operator!=(const bool value)'],['../class_s_s_l_client.html#adab82ba09345fa070712d3124af30e1b',1,'SSLClient::operator!=(const C &rhs)']]],
['operator_3d',['operator=',['../class_s_s_l_session.html#abb3f7bbe70e3a59f9ce492c55507f36f',1,'SSLSession']]],
- ['operator_3d_3d',['operator==',['../class_s_s_l_client.html#a6fb2e8a1cc54dd82a72217e5c4533e02',1,'SSLClient::operator==(const bool value)'],['../class_s_s_l_client.html#a26f9418e33d4ca459f78de98d3af43bb',1,'SSLClient::operator==(const C &rhs)']]]
+ ['operator_3d_3d',['operator==',['../class_s_s_l_client.html#a505bfb6831a45aebf58d84e3b89d4cfc',1,'SSLClient::operator==(const bool value)'],['../class_s_s_l_client.html#a5f40f8f4d26d21e14276c3e8162b62b9',1,'SSLClient::operator==(const C &rhs)']]]
];
diff --git a/docs/html/search/all_c.js b/docs/html/search/all_c.js
index 036e45a..6de2fa7 100644
--- a/docs/html/search/all_c.js
+++ b/docs/html/search/all_c.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['peek',['peek',['../class_s_s_l_client.html#a227b1cbbe91bcb21153c09f97d0dd484',1,'SSLClient']]],
+ ['peek',['peek',['../class_s_s_l_client.html#a31742867b00bd8d130637af0935bacbd',1,'SSLClient']]],
['peek_5fimpl',['peek_impl',['../class_s_s_l_client_impl.html#a1b90e7df3a77eea5efb955cc15a17f7d',1,'SSLClientImpl']]],
['pst_5foffset',['PST_OFFSET',['../time__macros_8h.html#a243cf438274412bbecf4b8d5eeb02ccb',1,'time_macros.h']]]
];
diff --git a/docs/html/search/all_d.js b/docs/html/search/all_d.js
index 7dcf3c4..6283be9 100644
--- a/docs/html/search/all_d.js
+++ b/docs/html/search/all_d.js
@@ -1,10 +1,10 @@
var searchData=
[
- ['read',['read',['../class_s_s_l_client.html#ac70b900ff798f9fd33f6367fcc9fad77',1,'SSLClient::read()'],['../class_s_s_l_client.html#ae31dd88a1af8ec3794fb48f26a3dd4bf',1,'SSLClient::read(uint8_t *buf, size_t size)']]],
+ ['read',['read',['../class_s_s_l_client.html#aedf2746cc35da596faf8322776c2118e',1,'SSLClient::read() override'],['../class_s_s_l_client.html#afd6d7ae798c05cf566b2eb5651dba795',1,'SSLClient::read(uint8_t *buf, size_t size) override']]],
['read_5fimpl',['read_impl',['../class_s_s_l_client_impl.html#a231b7b1bb2182cda1ed6e9d5ebf66afe',1,'SSLClientImpl']]],
['readme_2emd',['README.md',['../_r_e_a_d_m_e_8md.html',1,'']]],
- ['remoteip',['remoteIP',['../class_s_s_l_client.html#ae2d1d17ee568ec2a37756bf6894dcd05',1,'SSLClient::remoteIP()'],['../class_s_s_l_client_impl.html#ae97adc55212c1aa96880aac28dd71387',1,'SSLClientImpl::remoteIP()']]],
- ['remoteport',['remotePort',['../class_s_s_l_client.html#ae8bd9420fec3b11f855729c4ecfe1c2c',1,'SSLClient::remotePort()'],['../class_s_s_l_client_impl.html#a93cdb32491fc08b035e40f840ff2e8f5',1,'SSLClientImpl::remotePort()']]],
+ ['remoteip',['remoteIP',['../class_s_s_l_client.html#af76a0df76834e0d0999dbf44c7c0a174',1,'SSLClient::remoteIP()'],['../class_s_s_l_client_impl.html#ae97adc55212c1aa96880aac28dd71387',1,'SSLClientImpl::remoteIP()']]],
+ ['remoteport',['remotePort',['../class_s_s_l_client.html#a5974a5f8722a752f121af4fac498bb22',1,'SSLClient::remotePort()'],['../class_s_s_l_client_impl.html#a93cdb32491fc08b035e40f840ff2e8f5',1,'SSLClientImpl::remotePort()']]],
['remove_5fsession_5fimpl',['remove_session_impl',['../class_s_s_l_client_impl.html#a6baed094969874fb9d2bea3a00ecbee1',1,'SSLClientImpl']]],
- ['removesession',['removeSession',['../class_s_s_l_client.html#a0000d7f1e8656cf4a506a98133391fe0',1,'SSLClient']]]
+ ['removesession',['removeSession',['../class_s_s_l_client.html#a5b626703a24089dbb0480a9b6ddf348c',1,'SSLClient']]]
];
diff --git a/docs/html/search/all_e.js b/docs/html/search/all_e.js
index 84c4068..f399184 100644
--- a/docs/html/search/all_e.js
+++ b/docs/html/search/all_e.js
@@ -26,6 +26,6 @@ var searchData=
['sslsession',['SSLSession',['../class_s_s_l_session.html',1,'SSLSession'],['../class_s_s_l_session.html#ae05648200cea66577f024d5d09a6fcbb',1,'SSLSession::SSLSession()']]],
['sslsession_2ecpp',['SSLSession.cpp',['../_s_s_l_session_8cpp.html',1,'']]],
['sslsession_2eh',['SSLSession.h',['../_s_s_l_session_8h.html',1,'']]],
- ['stop',['stop',['../class_s_s_l_client.html#a158d87df3fe118b7565a19b72f310322',1,'SSLClient']]],
+ ['stop',['stop',['../class_s_s_l_client.html#ad30db47248d78df7c12dedfb27f06529',1,'SSLClient']]],
['stop_5fimpl',['stop_impl',['../class_s_s_l_client_impl.html#a81eb5ede3a894f281ae586d463b624e6',1,'SSLClientImpl']]]
];
diff --git a/docs/html/search/functions_0.js b/docs/html/search/functions_0.js
index e146f72..6e54ada 100644
--- a/docs/html/search/functions_0.js
+++ b/docs/html/search/functions_0.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['available',['available',['../class_s_s_l_client.html#a40ec85568d0aec376219125b604dbc29',1,'SSLClient']]],
+ ['available',['available',['../class_s_s_l_client.html#a5d13fd2f32ee2ea65a1f3820f758e77e',1,'SSLClient']]],
['available_5fimpl',['available_impl',['../class_s_s_l_client_impl.html#abe33c793ec37f11087651cf4e586569b',1,'SSLClientImpl']]]
];
diff --git a/docs/html/search/functions_2.js b/docs/html/search/functions_2.js
index 22b749e..47de2ad 100644
--- a/docs/html/search/functions_2.js
+++ b/docs/html/search/functions_2.js
@@ -1,8 +1,8 @@
var searchData=
[
['clear_5fparameters',['clear_parameters',['../class_s_s_l_session.html#a3305941fa615f7134526b718917716ee',1,'SSLSession']]],
- ['connect',['connect',['../class_s_s_l_client.html#ae6540b9a02f1392bf2ac48421189f70e',1,'SSLClient::connect(IPAddress ip, uint16_t port)'],['../class_s_s_l_client.html#a5814c11e96848c2bcea78210f099aad5',1,'SSLClient::connect(const char *host, uint16_t port)']]],
+ ['connect',['connect',['../class_s_s_l_client.html#a4a2172aedfcc483ba2a256ad12148630',1,'SSLClient::connect(IPAddress ip, uint16_t port) override'],['../class_s_s_l_client.html#a91c63e35f31652c20faa5b9be95984bf',1,'SSLClient::connect(const char *host, uint16_t port) override']]],
['connect_5fimpl',['connect_impl',['../class_s_s_l_client_impl.html#aa5c14ecf301c268306946c85825e565b',1,'SSLClientImpl::connect_impl(IPAddress ip, uint16_t port)'],['../class_s_s_l_client_impl.html#ae6c947ad92979ab99364428004abbeba',1,'SSLClientImpl::connect_impl(const char *host, uint16_t port)']]],
- ['connected',['connected',['../class_s_s_l_client.html#a7318aadc0ec9775bffaaac0b1f00aaf8',1,'SSLClient']]],
+ ['connected',['connected',['../class_s_s_l_client.html#a25e4414ab0c9424d09592f9567a678dc',1,'SSLClient']]],
['connected_5fimpl',['connected_impl',['../class_s_s_l_client_impl.html#a957984fa392550a7df86f758e9b14bfb',1,'SSLClientImpl']]]
];
diff --git a/docs/html/search/functions_3.js b/docs/html/search/functions_3.js
index 49584f5..3dc70e4 100644
--- a/docs/html/search/functions_3.js
+++ b/docs/html/search/functions_3.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['flush',['flush',['../class_s_s_l_client.html#a51eb668f6a328a6a66298c6bc1361d41',1,'SSLClient']]],
+ ['flush',['flush',['../class_s_s_l_client.html#a2ee6a3134d07ca09cf61ee04d32c3d44',1,'SSLClient']]],
['flush_5fimpl',['flush_impl',['../class_s_s_l_client_impl.html#a21ab78a0917f74ae5383d688e1548788',1,'SSLClientImpl']]]
];
diff --git a/docs/html/search/functions_4.js b/docs/html/search/functions_4.js
index 78322fb..18508ae 100644
--- a/docs/html/search/functions_4.js
+++ b/docs/html/search/functions_4.js
@@ -1,11 +1,11 @@
var searchData=
[
- ['get_5farduino_5fclient',['get_arduino_client',['../class_s_s_l_client.html#ab3ebfbca41a56bfa11e34aac2c2e0106',1,'SSLClient::get_arduino_client()'],['../class_s_s_l_client.html#a20742b36588c45435139a4f47fe0f1f6',1,'SSLClient::get_arduino_client() const'],['../class_s_s_l_client_impl.html#a20dd9a9794b95719e6f3df8cb39126e3',1,'SSLClientImpl::get_arduino_client()=0'],['../class_s_s_l_client_impl.html#ab1c8f30bd3669c15e07fa1522ede4336',1,'SSLClientImpl::get_arduino_client() const =0']]],
+ ['get_5farduino_5fclient',['get_arduino_client',['../class_s_s_l_client.html#a9c5001bdfa75ccc0d93cc60dd872b38a',1,'SSLClient::get_arduino_client() override'],['../class_s_s_l_client.html#a353c875d17a85dbb7bfe10de155f3b52',1,'SSLClient::get_arduino_client() const override'],['../class_s_s_l_client_impl.html#a20dd9a9794b95719e6f3df8cb39126e3',1,'SSLClientImpl::get_arduino_client()=0'],['../class_s_s_l_client_impl.html#ab1c8f30bd3669c15e07fa1522ede4336',1,'SSLClientImpl::get_arduino_client() const =0']]],
['get_5fhostname',['get_hostname',['../class_s_s_l_session.html#a825373c5ba1aa6c45e74dc8a72b21820',1,'SSLSession']]],
['get_5fip',['get_ip',['../class_s_s_l_session.html#a878e1e8788634c5c42778369fbf7bab0',1,'SSLSession']]],
- ['get_5fsession_5farray',['get_session_array',['../class_s_s_l_client.html#aaa52b481eb1d36a0ae1d208daa2fec51',1,'SSLClient::get_session_array()'],['../class_s_s_l_client.html#ab076a76b142b553c0dfd29174d4e17e7',1,'SSLClient::get_session_array() const'],['../class_s_s_l_client_impl.html#a44cfafd6f5cdcaa5dbac22961ab3a58b',1,'SSLClientImpl::get_session_array()=0'],['../class_s_s_l_client_impl.html#ace6652307ba028d67c7ddbc4103fa9b4',1,'SSLClientImpl::get_session_array() const =0']]],
+ ['get_5fsession_5farray',['get_session_array',['../class_s_s_l_client.html#a9e7769fed78825cf4723778f4b5aa3e9',1,'SSLClient::get_session_array() override'],['../class_s_s_l_client.html#a18adfc074d6b8e996819d4beb4689cbd',1,'SSLClient::get_session_array() const override'],['../class_s_s_l_client_impl.html#a44cfafd6f5cdcaa5dbac22961ab3a58b',1,'SSLClientImpl::get_session_array()=0'],['../class_s_s_l_client_impl.html#ace6652307ba028d67c7ddbc4103fa9b4',1,'SSLClientImpl::get_session_array() const =0']]],
['get_5fsession_5fimpl',['get_session_impl',['../class_s_s_l_client_impl.html#ab4e38d4319ec504395d67d2ab21a639e',1,'SSLClientImpl']]],
['getclient',['getClient',['../class_s_s_l_client.html#afd0d4d2c98433d60897d8828d8047d41',1,'SSLClient']]],
- ['getsession',['getSession',['../class_s_s_l_client.html#ae3f27a36ff9c0cd1e2bea5e1708b6e4f',1,'SSLClient']]],
- ['getsessioncount',['getSessionCount',['../class_s_s_l_client.html#a36bb344866e4cbcba3bbfcf4d33e5187',1,'SSLClient::getSessionCount()'],['../class_s_s_l_client_impl.html#a8e2385522ec04b1ce70871d4de23db6b',1,'SSLClientImpl::getSessionCount()']]]
+ ['getsession',['getSession',['../class_s_s_l_client.html#a2d8bf9b891151bc5b0b865d70cf9c086',1,'SSLClient']]],
+ ['getsessioncount',['getSessionCount',['../class_s_s_l_client.html#a2d71f00d6634092f50c5262ad25cdacd',1,'SSLClient::getSessionCount()'],['../class_s_s_l_client_impl.html#a8e2385522ec04b1ce70871d4de23db6b',1,'SSLClientImpl::getSessionCount()']]]
];
diff --git a/docs/html/search/functions_6.js b/docs/html/search/functions_6.js
index ac8fe09..0773563 100644
--- a/docs/html/search/functions_6.js
+++ b/docs/html/search/functions_6.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['localport',['localPort',['../class_s_s_l_client.html#ac725067566ee411680c88575c148300b',1,'SSLClient::localPort()'],['../class_s_s_l_client_impl.html#a45f26385ee1975b12265943efb1ff0d5',1,'SSLClientImpl::localPort()']]]
+ ['localport',['localPort',['../class_s_s_l_client.html#a563c5f9829757075bf16742cffa4cf73',1,'SSLClient::localPort()'],['../class_s_s_l_client_impl.html#a45f26385ee1975b12265943efb1ff0d5',1,'SSLClientImpl::localPort()']]]
];
diff --git a/docs/html/search/functions_8.js b/docs/html/search/functions_8.js
index 7bc0384..d7f8a71 100644
--- a/docs/html/search/functions_8.js
+++ b/docs/html/search/functions_8.js
@@ -1,7 +1,7 @@
var searchData=
[
- ['operator_20bool',['operator bool',['../class_s_s_l_client.html#a319a722dae252efdd85fdbaf5c7fbf17',1,'SSLClient']]],
- ['operator_21_3d',['operator!=',['../class_s_s_l_client.html#a9a060e49d0685c6c6795558e41cd3323',1,'SSLClient::operator!=(const bool value)'],['../class_s_s_l_client.html#a518f4ed733814f2f4a8c7f838555eb35',1,'SSLClient::operator!=(const C &rhs)']]],
+ ['operator_20bool',['operator bool',['../class_s_s_l_client.html#a2d378fbb7b8f15a1691746572f9d95b1',1,'SSLClient']]],
+ ['operator_21_3d',['operator!=',['../class_s_s_l_client.html#a824b599264f893e1b206a9100bc52ee1',1,'SSLClient::operator!=(const bool value)'],['../class_s_s_l_client.html#adab82ba09345fa070712d3124af30e1b',1,'SSLClient::operator!=(const C &rhs)']]],
['operator_3d',['operator=',['../class_s_s_l_session.html#abb3f7bbe70e3a59f9ce492c55507f36f',1,'SSLSession']]],
- ['operator_3d_3d',['operator==',['../class_s_s_l_client.html#a6fb2e8a1cc54dd82a72217e5c4533e02',1,'SSLClient::operator==(const bool value)'],['../class_s_s_l_client.html#a26f9418e33d4ca459f78de98d3af43bb',1,'SSLClient::operator==(const C &rhs)']]]
+ ['operator_3d_3d',['operator==',['../class_s_s_l_client.html#a505bfb6831a45aebf58d84e3b89d4cfc',1,'SSLClient::operator==(const bool value)'],['../class_s_s_l_client.html#a5f40f8f4d26d21e14276c3e8162b62b9',1,'SSLClient::operator==(const C &rhs)']]]
];
diff --git a/docs/html/search/functions_9.js b/docs/html/search/functions_9.js
index ce70a60..ceddcf3 100644
--- a/docs/html/search/functions_9.js
+++ b/docs/html/search/functions_9.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['peek',['peek',['../class_s_s_l_client.html#a227b1cbbe91bcb21153c09f97d0dd484',1,'SSLClient']]],
+ ['peek',['peek',['../class_s_s_l_client.html#a31742867b00bd8d130637af0935bacbd',1,'SSLClient']]],
['peek_5fimpl',['peek_impl',['../class_s_s_l_client_impl.html#a1b90e7df3a77eea5efb955cc15a17f7d',1,'SSLClientImpl']]]
];
diff --git a/docs/html/search/functions_a.js b/docs/html/search/functions_a.js
index 66237d4..6e82845 100644
--- a/docs/html/search/functions_a.js
+++ b/docs/html/search/functions_a.js
@@ -1,9 +1,9 @@
var searchData=
[
- ['read',['read',['../class_s_s_l_client.html#ac70b900ff798f9fd33f6367fcc9fad77',1,'SSLClient::read()'],['../class_s_s_l_client.html#ae31dd88a1af8ec3794fb48f26a3dd4bf',1,'SSLClient::read(uint8_t *buf, size_t size)']]],
+ ['read',['read',['../class_s_s_l_client.html#aedf2746cc35da596faf8322776c2118e',1,'SSLClient::read() override'],['../class_s_s_l_client.html#afd6d7ae798c05cf566b2eb5651dba795',1,'SSLClient::read(uint8_t *buf, size_t size) override']]],
['read_5fimpl',['read_impl',['../class_s_s_l_client_impl.html#a231b7b1bb2182cda1ed6e9d5ebf66afe',1,'SSLClientImpl']]],
- ['remoteip',['remoteIP',['../class_s_s_l_client.html#ae2d1d17ee568ec2a37756bf6894dcd05',1,'SSLClient::remoteIP()'],['../class_s_s_l_client_impl.html#ae97adc55212c1aa96880aac28dd71387',1,'SSLClientImpl::remoteIP()']]],
- ['remoteport',['remotePort',['../class_s_s_l_client.html#ae8bd9420fec3b11f855729c4ecfe1c2c',1,'SSLClient::remotePort()'],['../class_s_s_l_client_impl.html#a93cdb32491fc08b035e40f840ff2e8f5',1,'SSLClientImpl::remotePort()']]],
+ ['remoteip',['remoteIP',['../class_s_s_l_client.html#af76a0df76834e0d0999dbf44c7c0a174',1,'SSLClient::remoteIP()'],['../class_s_s_l_client_impl.html#ae97adc55212c1aa96880aac28dd71387',1,'SSLClientImpl::remoteIP()']]],
+ ['remoteport',['remotePort',['../class_s_s_l_client.html#a5974a5f8722a752f121af4fac498bb22',1,'SSLClient::remotePort()'],['../class_s_s_l_client_impl.html#a93cdb32491fc08b035e40f840ff2e8f5',1,'SSLClientImpl::remotePort()']]],
['remove_5fsession_5fimpl',['remove_session_impl',['../class_s_s_l_client_impl.html#a6baed094969874fb9d2bea3a00ecbee1',1,'SSLClientImpl']]],
- ['removesession',['removeSession',['../class_s_s_l_client.html#a0000d7f1e8656cf4a506a98133391fe0',1,'SSLClient']]]
+ ['removesession',['removeSession',['../class_s_s_l_client.html#a5b626703a24089dbb0480a9b6ddf348c',1,'SSLClient']]]
];
diff --git a/docs/html/search/functions_b.js b/docs/html/search/functions_b.js
index 5c6e59a..ddd85b5 100644
--- a/docs/html/search/functions_b.js
+++ b/docs/html/search/functions_b.js
@@ -4,6 +4,6 @@ var searchData=
['sslclient',['SSLClient',['../class_s_s_l_client.html#ae9a7509bc8a18f67e286547c19deb3c0',1,'SSLClient']]],
['sslclientimpl',['SSLClientImpl',['../class_s_s_l_client_impl.html#a2b0b9043c8252871272bf6ba199ab67b',1,'SSLClientImpl']]],
['sslsession',['SSLSession',['../class_s_s_l_session.html#ae05648200cea66577f024d5d09a6fcbb',1,'SSLSession']]],
- ['stop',['stop',['../class_s_s_l_client.html#a158d87df3fe118b7565a19b72f310322',1,'SSLClient']]],
+ ['stop',['stop',['../class_s_s_l_client.html#ad30db47248d78df7c12dedfb27f06529',1,'SSLClient']]],
['stop_5fimpl',['stop_impl',['../class_s_s_l_client_impl.html#a81eb5ede3a894f281ae586d463b624e6',1,'SSLClientImpl']]]
];
diff --git a/docs/html/search/functions_d.js b/docs/html/search/functions_d.js
index bd942e1..b1b7f3c 100644
--- a/docs/html/search/functions_d.js
+++ b/docs/html/search/functions_d.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['write',['write',['../class_s_s_l_client.html#a0699ff4b966162cba2ef59ff4a287270',1,'SSLClient::write(uint8_t b)'],['../class_s_s_l_client.html#a3a48b190985cdea2eba79ef0bdc80461',1,'SSLClient::write(const uint8_t *buf, size_t size)']]],
+ ['write',['write',['../class_s_s_l_client.html#a6b8ff53c10fe34aab1dc2561410f70bb',1,'SSLClient::write(uint8_t b) override'],['../class_s_s_l_client.html#a6bcb7579ebc051c097acb794b95771a9',1,'SSLClient::write(const uint8_t *buf, size_t size) override']]],
['write_5fimpl',['write_impl',['../class_s_s_l_client_impl.html#a807656f814f24cf6cd711e429b716c4d',1,'SSLClientImpl']]]
];
diff --git a/src/SSLClient.h b/src/SSLClient.h
index 3e69bd9..2927a77 100644
--- a/src/SSLClient.h
+++ b/src/SSLClient.h
@@ -121,7 +121,7 @@ public:
* @param port the port to connect to
* @returns 1 if success, 0 if failure
*/
- virtual int connect(IPAddress ip, uint16_t port) { return connect_impl(ip, port); }
+ int connect(IPAddress ip, uint16_t port) override { return connect_impl(ip, port); }
/**
* @brief Connect over SSL to a host specified by a hostname.
@@ -159,10 +159,10 @@ public:
* @param port The port to connect to on the host (443 for HTTPS)
* @returns 1 of success, 0 if failure
*/
- virtual int connect(const char *host, uint16_t port) { return connect_impl(host, port); }
+ int connect(const char *host, uint16_t port) override { return connect_impl(host, port); }
/** @see SSLClient::write(uint8_t*, size_t) */
- virtual size_t write(uint8_t b) { return write_impl(&b, 1); }
+ size_t write(uint8_t b) override { return write_impl(&b, 1); }
/**
* @brief Write some bytes to the SSL connection
*
@@ -186,7 +186,7 @@ public:
* @returns The number of bytes copied to the buffer (size), or zero if the BearSSL engine
* fails to become ready for writing data.
*/
- virtual size_t write(const uint8_t *buf, size_t size) { return write_impl(buf, size); }
+ size_t write(const uint8_t *buf, size_t size) override { return write_impl(buf, size); }
/**
* @brief Returns the number of bytes available to read from the data that has been received and decrypted.
@@ -206,13 +206,13 @@ public:
* @returns The number of bytes available (can be zero), or zero if any of the pre
* conditions aren't satisfied.
*/
- virtual int available() { return available_impl(); }
+ int available() override { return available_impl(); }
/**
* @brief Read a single byte, or -1 if none is available.
* @see SSLClient::read(uint8_t*, size_t)
*/
- virtual int read() { uint8_t read_val; return read(&read_val, 1) > 0 ? read_val : -1; };
+ int read() override { uint8_t read_val; return read(&read_val, 1) > 0 ? read_val : -1; };
/**
* @brief Read size bytes from the SSL client buffer, copying them into *buf, and return the number of bytes read.
*
@@ -234,7 +234,7 @@ public:
*
* @returns The number of bytes copied (<= size), or -1 if the preconditions are not satisfied.
*/
- virtual int read(uint8_t *buf, size_t size) { return read_impl(buf, size); }
+ int read(uint8_t *buf, size_t size) override { return read_impl(buf, size); }
/**
* @brief View the first byte of the buffer, without removing it from the SSLClient Buffer
@@ -244,7 +244,7 @@ public:
* @returns The first byte received, or -1 if the preconditions are not satisfied (warning:
* do not use if your data may be -1, as the return value is ambiguous)
*/
- virtual int peek() { return peek_impl(); }
+ int peek() override { return peek_impl(); }
/**
* @brief Force writing the buffered bytes from SSLClient::write to the network.
@@ -253,7 +253,7 @@ public:
* an explanation of how writing with SSLClient works, please see SSLClient::write.
* The implementation for this function can be found in SSLClientImpl::flush.
*/
- virtual void flush() { return flush_impl(); }
+ void flush() override { return flush_impl(); }
/**
* @brief Close the connection
@@ -263,7 +263,7 @@ public:
* error was encountered previously, this function will simply call m_client::stop.
* The implementation for this function can be found in SSLClientImpl::peek.
*/
- virtual void stop() { return stop_impl(); }
+ void stop() override { return stop_impl(); }
/**
* @brief Check if the device is connected.
@@ -277,7 +277,7 @@ public:
*
* @returns 1 if connected, 0 if not
*/
- virtual uint8_t connected() { return connected_impl(); }
+ uint8_t connected() override { return connected_impl(); }
//========================================
//= Functions Not in the Client Interface
@@ -297,7 +297,7 @@ public:
* @param addr An IP address
* @returns A reference to an SSLSession object
*/
- virtual SSLSession& getSession(const char* host, const IPAddress& addr) { return get_session_impl(host, addr); }
+ SSLSession& getSession(const char* host, const IPAddress& addr) { return get_session_impl(host, addr); }
/**
* @brief Clear the session corresponding to a host and IP
@@ -307,31 +307,31 @@ public:
* @param host A hostname c string, or NULL if one is not available
* @param addr An IP address
*/
- virtual void removeSession(const char* host, const IPAddress& addr) { return remove_session_impl(host, addr); }
+ void removeSession(const char* host, const IPAddress& addr) { return remove_session_impl(host, addr); }
/**
* @brief Get the maximum number of SSL sessions that can be stored at once
*
* @returns The SessionCache template parameter.
*/
- virtual size_t getSessionCount() const { return SessionCache; }
+ size_t getSessionCount() const override { return SessionCache; }
/**
* @brief Equivalent to SSLClient::connected() > 0
*
* @returns true if connected, false if not
*/
- virtual operator bool() { return connected() > 0; }
+ operator bool() { return connected() > 0; }
/** @see SSLClient::operator bool */
- virtual bool operator==(const bool value) { return bool() == value; }
+ bool operator==(const bool value) { return bool() == value; }
/** @see SSLClient::operator bool */
- virtual bool operator!=(const bool value) { return bool() != value; }
+ bool operator!=(const bool value) { return bool() != value; }
/** @brief Returns whether or not two SSLClient objects have the same underlying client object */
- virtual bool operator==(const C& rhs) { return m_client == rhs; }
+ bool operator==(const C& rhs) { return m_client == rhs; }
/** @brief Returns whether or not two SSLClient objects do not have the same underlying client object */
- virtual bool operator!=(const C& rhs) { return m_client != rhs; }
+ bool operator!=(const C& rhs) { return m_client != rhs; }
/** @brief Returns the local port, C::localPort exists. Else return 0. */
- virtual uint16_t localPort() {
+ uint16_t localPort() override {
if (std::is_member_function_pointer::value) return m_client.localPort();
else {
m_warn("Client class has no localPort function, so localPort() will always return 0", __func__);
@@ -339,7 +339,7 @@ public:
}
}
/** @brief Returns the remote IP, if C::remoteIP exists. Else return INADDR_NONE. */
- virtual IPAddress remoteIP() {
+ IPAddress remoteIP() override {
if (std::is_member_function_pointer::value) return m_client.remoteIP();
else {
m_warn("Client class has no remoteIP function, so remoteIP() will always return INADDR_NONE. This means that sessions caching will always be disabled.", __func__);
@@ -347,7 +347,7 @@ public:
}
}
/** @brief Returns the remote port, if C::remotePort exists. Else return 0. */
- virtual uint16_t remotePort() {
+ uint16_t remotePort() override {
if (std::is_member_function_pointer::value) return m_client.remotePort();
else {
m_warn("Client class has no remotePort function, so remotePort() will always return 0", __func__);
@@ -360,11 +360,11 @@ public:
protected:
/** @brief Returns an instance of m_client that is polymorphic and can be used by SSLClientImpl */
- virtual Client& get_arduino_client() { return m_client; }
- virtual const Client& get_arduino_client() const { return m_client; }
+ Client& get_arduino_client() override { return m_client; }
+ const Client& get_arduino_client() const override { return m_client; }
/** @brief Returns an instance of the session array that is on the stack */
- virtual SSLSession* get_session_array() { return m_sessions; }
- virtual const SSLSession* get_session_array() const { return m_sessions; }
+ SSLSession* get_session_array() override { return m_sessions; }
+ const SSLSession* get_session_array() const override { return m_sessions; }
private:
// create a copy of the client