Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/ArduinoBearSSLConfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
#define ARDUINO_BEARSSL_CONFIG_H_

/* Enabling this define allows the usage of ArduinoBearSSL without crypto chip. */
//#define ARDUINO_DISABLE_ECCX08
//#define ARDUINO_DISABLE_SECURE_ELEMENT

/* Enable/Disable global instances*/
#define ARDUINO_BEARSSL_DISABLE_AES128
Expand Down
18 changes: 9 additions & 9 deletions src/ArduinoIoTCloudTCP.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ int ArduinoIoTCloudTCP::begin(ConnectionHandler & connection, bool const enable_
if(_authMode == ArduinoIoTAuthenticationMode::CERTIFICATE)
{
#if defined(BOARD_HAS_SECURE_ELEMENT)
if (!_selement.begin())
if (!SecureElement.begin())
{
DEBUG_ERROR("ArduinoIoTCloudTCP::%s could not initialize secure element.", __FUNCTION__);
#if defined(ARDUINO_UNOWIFIR4)
Expand All @@ -100,14 +100,14 @@ int ArduinoIoTCloudTCP::begin(ConnectionHandler & connection, bool const enable_
#endif
return 0;
}
if (!SElementArduinoCloudDeviceId::read(_selement, getDeviceId(), SElementArduinoCloudSlot::DeviceId))
if (!SElementArduinoCloudDeviceId::read(SecureElement, getDeviceId(), SElementArduinoCloudSlot::DeviceId))
{
DEBUG_ERROR("ArduinoIoTCloudTCP::%s could not read device id.", __FUNCTION__);
return 0;
}
if (!_writeCertOnConnect) {
/* No update pending read certificate stored in secure element */
if (!SElementArduinoCloudCertificate::read(_selement, _cert, SElementArduinoCloudSlot::CompressedCertificate))
if (!SElementArduinoCloudCertificate::read(SecureElement, _cert, SElementArduinoCloudSlot::CompressedCertificate))
{
DEBUG_ERROR("ArduinoIoTCloudTCP::%s could not read device certificate.", __FUNCTION__);
return 0;
Expand Down Expand Up @@ -389,7 +389,7 @@ ArduinoIoTCloudTCP::State ArduinoIoTCloudTCP::handle_ConnectMqttBroker()
/* A device certificate update was pending */
if (_writeCertOnConnect)
{
if (SElementArduinoCloudCertificate::write(_selement, _cert, SElementArduinoCloudSlot::CompressedCertificate))
if (SElementArduinoCloudCertificate::write(SecureElement, _cert, SElementArduinoCloudSlot::CompressedCertificate))
{
DEBUG_INFO("ArduinoIoTCloudTCP::%s device certificate update done.", __FUNCTION__);
_writeCertOnConnect = false;
Expand Down Expand Up @@ -670,7 +670,7 @@ int ArduinoIoTCloudTCP::write(String const topic, byte const data[], int const l
#if defined(BOARD_HAS_SECURE_ELEMENT)
int ArduinoIoTCloudTCP::updateCertificate(String authorityKeyIdentifier, String serialNumber, String notBefore, String notAfter, String signature)
{
if (!_selement.begin())
if (!SecureElement.begin())
{
DEBUG_ERROR("ArduinoIoTCloudTCP::%s could not initialize secure element.", __FUNCTION__);
#if defined(ARDUINO_UNOWIFIR4)
Expand All @@ -680,13 +680,13 @@ int ArduinoIoTCloudTCP::updateCertificate(String authorityKeyIdentifier, String
#endif
return 0;
}
if (!SElementArduinoCloudDeviceId::read(_selement, getDeviceId(), SElementArduinoCloudSlot::DeviceId))
if (!SElementArduinoCloudDeviceId::read(SecureElement, getDeviceId(), SElementArduinoCloudSlot::DeviceId))
{
DEBUG_ERROR("ArduinoIoTCloudTCP::%s could not read device id.", __FUNCTION__);
return 0;
}
/* read certificate stored in secure element to compare AUTHORITY_KEY_ID */
if (!SElementArduinoCloudCertificate::read(_selement, _cert, SElementArduinoCloudSlot::CompressedCertificate))
if (!SElementArduinoCloudCertificate::read(SecureElement, _cert, SElementArduinoCloudSlot::CompressedCertificate))
{
DEBUG_ERROR("ArduinoIoTCloudTCP::%s could not read device certificate.", __FUNCTION__);
return 0;
Expand All @@ -697,11 +697,11 @@ int ArduinoIoTCloudTCP::updateCertificate(String authorityKeyIdentifier, String
return 0;
}
/* rebuild device certificate */
if (SElementArduinoCloudCertificate::rebuild(_selement, _cert, getDeviceId(), notBefore, notAfter, serialNumber, authorityKeyIdentifier, signature))
if (SElementArduinoCloudCertificate::rebuild(SecureElement, _cert, getDeviceId(), notBefore, notAfter, serialNumber, authorityKeyIdentifier, signature))
{
DEBUG_INFO("ArduinoIoTCloudTCP::%s request started.", __FUNCTION__);
#if defined(BOARD_HAS_OFFLOADED_ECCX08)
if (SElementArduinoCloudCertificate::write(_selement, _cert, SElementArduinoCloudSlot::CompressedCertificate))
if (SElementArduinoCloudCertificate::write(SecureElement, _cert, SElementArduinoCloudSlot::CompressedCertificate))
{
DEBUG_INFO("ArduinoIoTCloudTCP::%s update done.", __FUNCTION__);
}
Expand Down
9 changes: 0 additions & 9 deletions src/ArduinoIoTCloudTCP.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,6 @@ static constexpr uint16_t DEFAULT_BROKER_PORT_AUTO = 0;

typedef bool (*onOTARequestCallbackFunc)(void);

#if defined(BOARD_HAS_SECURE_ELEMENT)
#ifdef SECURE_ELEMENT_GI
using SecureElement_t = SecureElementClass;
#else
using SecureElement_t = SecureElement;
#endif
#endif // BOARD_HAS_SECURE_ELEMENT

/******************************************************************************
CLASS DECLARATION
******************************************************************************/
Expand Down Expand Up @@ -153,7 +145,6 @@ class ArduinoIoTCloudTCP: public ArduinoIoTCloudClass
#endif

#if defined(BOARD_HAS_SECURE_ELEMENT)
SecureElement_t _selement;
ECP256Certificate _cert;
/* Flag used to store updated device certificate after broker connection has succeeded */
bool _writeCertOnConnect;
Expand Down
4 changes: 2 additions & 2 deletions src/tls/BearSSLClientProfile.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
******************************************************************************/

#include <AIoTC_Config.h>
#ifdef BOARD_HAS_ECCX08
#ifdef BOARD_HAS_SECURE_ELEMENT

#include "bearssl/inner.h"

Expand Down Expand Up @@ -88,4 +88,4 @@ void aiotc_client_profile_init(br_ssl_client_context *cc, br_x509_minimal_contex
br_ssl_engine_set_default_aes_gcm(&cc->eng);
}

#endif /* #ifdef BOARD_HAS_ECCX08 */
#endif /* #ifdef BOARD_HAS_SECURE_ELEMENT */
4 changes: 2 additions & 2 deletions src/tls/BearSSLClientProfile.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@
******************************************************************************/

#include <AIoTC_Config.h>
#ifdef BOARD_HAS_ECCX08
#ifdef BOARD_HAS_SECURE_ELEMENT

extern "C" void aiotc_client_profile_init(br_ssl_client_context *cc, br_x509_minimal_context *xc, const br_x509_trust_anchor *trust_anchors, size_t trust_anchors_num);

#endif /* #ifdef BOARD_HAS_ECCX08 */
#endif /* #ifdef BOARD_HAS_SECURE_ELEMENT */

#endif /* _BEAR_SSL_CLIENT_PROFILE_H_ */

4 changes: 2 additions & 2 deletions src/tls/BearSSLTrustAnchors.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
******************************************************************************/

#include <AIoTC_Config.h>
#ifdef BOARD_HAS_ECCX08
#ifdef BOARD_HAS_SECURE_ELEMENT

#include "bearssl/bearssl_ssl.h"

Expand Down Expand Up @@ -98,6 +98,6 @@ static const br_x509_trust_anchor ArduinoIoTCloudTrustAnchor[2] = {

#define ArduinoIoTCloudTrustAnchor_NUM (2)

#endif /* #ifdef BOARD_HAS_ECCX08 */
#endif /* #ifdef BOARD_HAS_SECURE_ELEMENT */

#endif /* _BEAR_SSL_TRUST_ANCHOR_H_ */
13 changes: 3 additions & 10 deletions src/tls/utility/TLSClientMqtt.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@
#include "tls/AIoTCUPCert.h"
#endif

#if defined(BOARD_HAS_SE050) || defined(BOARD_HAS_SOFTSE)
#if defined(BOARD_HAS_SOFTSE)
#include "tls/AIoTCSSCert.h"
#endif

#ifdef BOARD_HAS_ECCX08
#ifdef BOARD_HAS_SECURE_ELEMENT
#include "tls/BearSSLTrustAnchors.h"
#include "tls/BearSSLClientProfile.h"
extern "C" {
Expand All @@ -38,19 +38,12 @@ void TLSClientMqtt::begin(ConnectionHandler & connection, ArduinoIoTAuthenticati
* https://github.com/arduino/nina-fw/blob/master/arduino/libraries/ArduinoBearSSL/src/BearSSLTrustAnchors.h
*/
(void)authMode;
#elif defined(BOARD_HAS_ECCX08)
#elif defined(BOARD_HAS_SECURE_ELEMENT)
(void)authMode;
setClient(connection.getClient());
setProfile(aiotc_client_profile_init);
setTrustAnchors(ArduinoIoTCloudTrustAnchor, ArduinoIoTCloudTrustAnchor_NUM);
ArduinoBearSSL.onGetTime(getTime);
#elif defined(ARDUINO_PORTENTA_C33)
(void)authMode;
setClient(connection.getClient());
setCACert(AIoTSSCert);
#elif defined(ARDUINO_NICLA_VISION)
(void)authMode;
appendCustomCACert(AIoTSSCert);
#elif defined(ARDUINO_EDGE_CONTROL)
(void)authMode;
appendCustomCACert(AIoTUPCert);
Expand Down
14 changes: 1 addition & 13 deletions src/tls/utility/TLSClientMqtt.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ enum class ArduinoIoTAuthenticationMode
*/
#include "WiFiSSLClient.h"
class TLSClientMqtt : public WiFiBearSSLClient {
#elif defined(BOARD_HAS_ECCX08)
#elif defined(BOARD_HAS_SECURE_ELEMENT)
/*
* Arduino MKR GSM 1400
* Arduino MKR NB 1500
Expand All @@ -38,18 +38,6 @@ enum class ArduinoIoTAuthenticationMode
#include <ArduinoBearSSLConfig.h>
#include <ArduinoBearSSL.h>
class TLSClientMqtt : public BearSSLClient {
#elif defined(ARDUINO_PORTENTA_C33)
/*
* Arduino Portenta C33
*/
#include <SSLClient.h>
class TLSClientMqtt : public SSLClient {
#elif defined(ARDUINO_NICLA_VISION)
/*
* Arduino Nicla Vision
*/
#include <WiFiSSLSE050Client.h>
class TLSClientMqtt : public WiFiSSLSE050Client {
#elif defined(ARDUINO_EDGE_CONTROL)
/*
* Arduino Edge Control
Expand Down
6 changes: 2 additions & 4 deletions src/tls/utility/TLSClientOta.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
#include "tls/AIoTCSSCert.h"
#endif

#ifdef BOARD_HAS_ECCX08
#ifdef BOARD_HAS_SECURE_ELEMENT
#include "tls/BearSSLTrustAnchors.h"
#include "tls/BearSSLClientProfile.h"
extern "C" {
Expand All @@ -35,16 +35,14 @@ void TLSClientOta::begin(ConnectionHandler &connection) {
/* AWS Root CAs are configured in nina-fw
* https://github.com/arduino/nina-fw/blob/master/data/roots.pem
*/
#elif defined(BOARD_HAS_ECCX08)
#elif defined(BOARD_HAS_SECURE_ELEMENT)
setClient(*getNewClient(connection.getInterface()));
setProfile(aiotc_client_profile_init);
setTrustAnchors(ArduinoIoTCloudTrustAnchor, ArduinoIoTCloudTrustAnchor_NUM);
ArduinoBearSSL.onGetTime(getTime);
#elif defined(ARDUINO_PORTENTA_C33)
setClient(*getNewClient(connection.getInterface()));
setCACert(AIoTSSCert);
#elif defined(ARDUINO_NICLA_VISION)
appendCustomCACert(AIoTSSCert);
#elif defined(ARDUINO_EDGE_CONTROL)
appendCustomCACert(AIoTUPCert);
#elif defined(ARDUINO_UNOR4_WIFI)
Expand Down
8 changes: 1 addition & 7 deletions src/tls/utility/TLSClientOta.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
*/
#include "WiFiSSLClient.h"
class TLSClientOta : public WiFiBearSSLClient {
#elif defined(BOARD_HAS_ECCX08)
#elif defined(BOARD_HAS_SECURE_ELEMENT)
/*
* Arduino MKR GSM 1400
* Arduino MKR NB 1500
Expand All @@ -38,12 +38,6 @@
*/
#include <SSLClient.h>
class TLSClientOta : public SSLClient {
#elif defined(ARDUINO_NICLA_VISION)
/*
* Arduino Nicla Vision
*/
#include <WiFiSSLSE050Client.h>
class TLSClientOta : public WiFiSSLSE050Client {
#elif defined(ARDUINO_EDGE_CONTROL)
/*
* Arduino Edge Control
Expand Down
8 changes: 4 additions & 4 deletions src/utility/time/NTPUtils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
#include "NTPUtils.h"

#include <Arduino.h>
#ifdef BOARD_HAS_ECCX08
#include <ArduinoECCX08.h>
#ifdef BOARD_HAS_SECURE_ELEMENT
#include <Arduino_SecureElement.h>
#endif

/******************************************************************************
Expand Down Expand Up @@ -91,8 +91,8 @@ void NTPUtils::sendNTPpacket(UDP & udp)

int NTPUtils::getRandomPort(int const min_port, int const max_port)
{
#if defined (BOARD_HAS_ECCX08)
return ECCX08.random(min_port, max_port);
#if defined (BOARD_HAS_SECURE_ELEMENT)
return SecureElement.random(min_port, max_port);
#elif defined (ARDUINO_ARCH_ESP8266) || (ARDUINO_ARCH_ESP32)
/* Uses HW Random Number Generator */
return random(min_port, max_port);
Expand Down
Loading