Skip to content

Commit 7bbfc8a

Browse files
authored
Merge pull request #148 from arduino-libraries/integrate-bearssl
Integrate ArduinoBearSSL 1.5.0 with ArduinoIoTCloud and reduce ressource requirements.
2 parents 51981c1 + c02a10e commit 7bbfc8a

File tree

306 files changed

+71775
-12
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

306 files changed

+71775
-12
lines changed

Diff for: examples/utility/Provisioning/Provisioning.ino

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#include <ArduinoIoTCloud.h>
22
#include "ECCX08TLSConfig.h"
33

4-
#include <ArduinoBearSSL.h>
54
#include <ArduinoECCX08.h>
65

76
const bool DEBUG = true;

Diff for: src/ArduinoIoTCloudTCP.cpp

+3-5
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,8 @@
2525
#include <ArduinoIoTCloudTCP.h>
2626
#include "utility/time/TimeService.h"
2727
#ifdef BOARD_HAS_ECCX08
28-
#include <ArduinoECCX08.h>
29-
#include "utility/crypto/CryptoUtil.h"
30-
#include "utility/crypto/BearSSLTrustAnchor.h"
28+
#include "tls/BearSSLTrustAnchors.h"
29+
#include "tls/utility/CryptoUtil.h"
3130
#endif
3231

3332
/******************************************************************************
@@ -65,7 +64,7 @@ ArduinoIoTCloudTCP::ArduinoIoTCloudTCP()
6564
, _mqtt_data_len{0}
6665
, _mqtt_data_request_retransmit{false}
6766
#ifdef BOARD_HAS_ECCX08
68-
, _sslClient(nullptr, ArduinoIoTCloudTrustAnchor, ArduinoIoTCloudTrustAnchor_NUM)
67+
, _sslClient(nullptr, ArduinoIoTCloudTrustAnchor, ArduinoIoTCloudTrustAnchor_NUM, getTime)
6968
#endif
7069
#ifdef BOARD_ESP
7170
, _password("")
@@ -110,7 +109,6 @@ int ArduinoIoTCloudTCP::begin(String brokerAddress, uint16_t brokerPort)
110109
if (!ECCX08.begin()) { Debug.print(DBG_ERROR, "Cryptography processor failure. Make sure you have a compatible board."); return 0; }
111110
if (!CryptoUtil::readDeviceId(ECCX08, getDeviceId(), ECCX08Slot::DeviceId)) { Debug.print(DBG_ERROR, "Cryptography processor read failure."); return 0; }
112111
if (!CryptoUtil::reconstructCertificate(_eccx08_cert, getDeviceId(), ECCX08Slot::Key, ECCX08Slot::CompressedCertificate, ECCX08Slot::SerialNumberAndAuthorityKeyIdentifier)) { Debug.print(DBG_ERROR, "Cryptography certificate reconstruction failure."); return 0; }
113-
ArduinoBearSSL.onGetTime(getTime);
114112
_sslClient.setClient(_connection->getClient());
115113
_sslClient.setEccSlot(static_cast<int>(ECCX08Slot::Key), _eccx08_cert.bytes(), _eccx08_cert.length());
116114
#elif defined(BOARD_ESP)

Diff for: src/ArduinoIoTCloudTCP.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
#include <ArduinoIoTCloud.h>
2828

2929
#ifdef BOARD_HAS_ECCX08
30-
#include <ArduinoBearSSL.h>
31-
#include "utility/crypto/ECCX08Cert.h"
30+
#include "tls/BearSSLClient.h"
31+
#include "tls/utility/ECCX08Cert.h"
3232
#elif defined(BOARD_ESP)
3333
#include <WiFiClientSecure.h>
3434
#endif

0 commit comments

Comments
 (0)