diff --git a/docs/html/_s_s_l_client_8h.html b/docs/html/_s_s_l_client_8h.html index ce1fe0c..945261d 100644 --- a/docs/html/_s_s_l_client_8h.html +++ b/docs/html/_s_s_l_client_8h.html @@ -94,10 +94,10 @@ $(document).ready(function(){initNavTree('_s_s_l_client_8h.html','');});
#include <type_traits>
#include "Client.h"
#include "Client.h"
#include "SSLClientImpl.h"
#include "SSLSession.h"
#include "SSLClientParameters.h"
Go to the source code of this file.
+ SSLClient
+ v1.1.1
+
+ Add TLS 1.2 functionality to any network library.
+ |
+
#include "bearssl.h"
Go to the source code of this file.
++Classes | |
struct | SSLClientParameters |
This struct stores data required for SSLClient to use mutual authentication. More... | |
+ SSLClient
+ v1.1.1
+
+ Add TLS 1.2 functionality to any network library.
+ |
+
CSSLClient | The main SSLClient class. Check out README.md for more info |
CSSLClientImpl | Implementation code to be inherited by SSLClient |
CSSLSession | This class stores values which allow SSLClient to save and resume SSL sessions |
CSSLClientParameters | This struct stores data required for SSLClient to use mutual authentication |
CSSLSession | This class stores values which allow SSLClient to save and resume SSL sessions |
The main SSLClient class. Check out README.md for more info.
+
|
+ +inlineexplicit | +
Same as SSLClient::SSLClient(const C &, const br_x509_trust_anchor*, const size_t, const int, const DebugLevel), but can compile support for mutual authentication.
+Returns the local port, C::localPort exists. Else return 0.
+Returns the local port, if C::localPort exists.
Implements SSLClientImpl.
@@ -1083,7 +1151,7 @@ template<class C , size_t SessionCache = 1>Returns the remote IP, if C::remoteIP exists. Else return INADDR_NONE.
+Returns the remote IP, if C::remoteIP exists.
Implements SSLClientImpl.
diff --git a/docs/html/class_s_s_l_client.js b/docs/html/class_s_s_l_client.js index 340f3b7..814f6b3 100644 --- a/docs/html/class_s_s_l_client.js +++ b/docs/html/class_s_s_l_client.js @@ -1,6 +1,7 @@ var class_s_s_l_client = [ [ "SSLClient", "class_s_s_l_client.html#ae9a7509bc8a18f67e286547c19deb3c0", null ], + [ "SSLClient", "class_s_s_l_client.html#ad7b20a2ac220d346a8047db77d97723d", 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 ], diff --git a/docs/html/class_s_s_l_client_impl-members.html b/docs/html/class_s_s_l_client_impl-members.html index 62d86a9..a54731c 100644 --- a/docs/html/class_s_s_l_client_impl-members.html +++ b/docs/html/class_s_s_l_client_impl-members.html @@ -119,8 +119,9 @@ $(document).ready(function(){initNavTree('class_s_s_l_client_impl.html','');});Implementation code to be inherited by SSLClient.
+
|
+ +explicit | +
Implemented in SSLClient< C, SessionCache >.
@@ -884,7 +941,7 @@ template<typename T >Implemented in SSLClient< C, SessionCache >.
@@ -912,7 +969,7 @@ template<typename T >Implemented in SSLClient< C, SessionCache >.
diff --git a/docs/html/class_s_s_l_client_impl.js b/docs/html/class_s_s_l_client_impl.js index 6a702fd..a423c6a 100644 --- a/docs/html/class_s_s_l_client_impl.js +++ b/docs/html/class_s_s_l_client_impl.js @@ -1,6 +1,7 @@ var class_s_s_l_client_impl = [ [ "SSLClientImpl", "class_s_s_l_client_impl.html#a2b0b9043c8252871272bf6ba199ab67b", null ], + [ "SSLClientImpl", "class_s_s_l_client_impl.html#a8314c7dab1d923db5624f8075a53e6ea", null ], [ "available_impl", "class_s_s_l_client_impl.html#abe33c793ec37f11087651cf4e586569b", null ], [ "connect_impl", "class_s_s_l_client_impl.html#aa5c14ecf301c268306946c85825e565b", null ], [ "connect_impl", "class_s_s_l_client_impl.html#ae6c947ad92979ab99364428004abbeba", null ], diff --git a/docs/html/class_s_s_l_session-members.html b/docs/html/class_s_s_l_session-members.html index 79365b7..8512fbe 100644 --- a/docs/html/class_s_s_l_session-members.html +++ b/docs/html/class_s_s_l_session-members.html @@ -100,7 +100,7 @@ $(document).ready(function(){initNavTree('class_s_s_l_session.html','');});
| SSLClientImpl | SSLSession | ||
SSLClient | ||||
SSLClientImpl | SSLSession | +|||
SSLClientParameters | ||||
SSLClient | ||||
Files | |
file | ec_prime_fast_256.c |
file | SSLClient.h [code] |
file | SSLClientImpl.cpp |
file | SSLClientImpl.h [code] |
file | SSLClientParameters.h [code] |
file | SSLSession.cpp |
file | SSLSession.h [code] |
+ SSLClient
+ v1.1.1
+
+ Add TLS 1.2 functionality to any network library.
+ |
+
#include "inner.h"
+Variables | |
const br_ec_impl | br_ec_prime_fast_256 |
const br_ec_impl br_ec_prime_fast_256 | +
SSLClient requires at least 110kb flash and 8kb RAM, and will not compile otherwise. This means that most Arduino boards are not supported. Check your board's specifications before attempting to use this library.
+SSLClient requires at least 110kb flash and 7kb RAM, and will not compile otherwise. This means that most Arduino boards are not supported. Check your board's specifications before attempting to use this library.
You can also view this README in doxygen.
SSLClient is a simple library to add TLS 1.2 functionality to any network library implementing the Arduino Client interface, including the Arduino EthernetClient and WiFiClient classes (though it is better to prefer WiFClient.connectSSL if implemented). In other words, SSLClient implements encrypted communication through SSL on devices that do not otherwise support it.
Using SSLClient should be similar to using any other Arduino-based Client class, since this library was developed around compatibility with EthernetClient. There are a few extra things, however, that you will need to get started:
By default, SSLClient supports only TLS1.2 and the ciphers listed in this file under suites[]
, and the list is relatively small to keep the connection secure and the flash footprint down. These ciphers should work for most applications, however if for some reason you would like to use an older version of TLS or a different cipher, you can change the BearSSL profile being used by SSLClient to an alternate one with support for older protocols. To do this, edit SSLClientImpl::SSLClientImpl
to change these lines:
to this:
If for some unfortunate reason you need SSL 3.0 or SSL 2.0, you will need to modify the BearSSL profile to enable support. Check out the BearSSL profiles documentation and I wish you the best of luck.
+By default, SSLClient supports only TLS1.2 and the ciphers listed in this file under suites[]
, and the list is relatively small to keep the connection secure and the flash footprint down. These ciphers should work for most applications, however if for some reason you would like to use an older version of TLS or a different cipher, you can change the BearSSL profile being used by SSLClient to an alternate one with support for older protocols. To do this, edit SSLClientImpl::SSLClientImpl
to change these lines:
to this:
If for some unfortunate reason you need SSL 3.0 or SSL 2.0, you will need to modify the BearSSL profile to enable support. Check out the BearSSL profiles documentation and I wish you the best of luck.
+ SSLClient
+ v1.1.1
+
+ Add TLS 1.2 functionality to any network library.
+ |
+
This is the complete list of members for SSLClientParameters, including all inherited members.
+chain_len | SSLClientParameters | |
client_cert_chain | SSLClientParameters | |
ec_key | SSLClientParameters |
+ SSLClient
+ v1.1.1
+
+ Add TLS 1.2 functionality to any network library.
+ |
+
This struct stores data required for SSLClient to use mutual authentication. + More...
+ +#include <SSLClientParameters.h>
+Public Attributes | |
const br_x509_certificate * | client_cert_chain |
Pointer to the client certificate chain. More... | |
const size_t | chain_len |
const br_ec_private_key | ec_key |
This struct stores data required for SSLClient to use mutual authentication.
+ +This file contains a simple utility class to store parameters about an SSL Session for reuse later.This file contains a simple struct to package together all the data required to use client certificate authentication with SSLClient.TLS mutual authentication is a process in which both the server and client perform cryptographic operations to verify the authenticity of eachother, for more information check out this article: https://medium.com/sitewards/the-magic-of-tls-x509-and-mutual-authentication-explained-b2162dec4401 . If this struct is provided to SSLClient::SSLClient, SSLClient will automatically send a client certificate if one is requested by the server. This will happen for all SSLClient connections, and may cause issues for websites that do not need mutual authentication— as a result, please only turn on mutual authentication if you are sure it is neccesary.
+At the moment SSLClient only supports mutual authentication using ECC client certificates.
+const size_t SSLClientParameters::chain_len | +
The number of certificates in SSLClientParameters::client_cert_chain
+ +const br_x509_certificate* SSLClientParameters::client_cert_chain | +
Pointer to the client certificate chain.
+Must be availible in memory AT ALL TIMES, should not be a local object. Certificates must be ordered from Client->Intermediate->...->Root.
+ +const br_ec_private_key SSLClientParameters::ec_key | +
The private key corresponding to the first certificate in SSLClientParameters::client_cert_chain
+ +