Skip to content

Allow device certificate update #522

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Jan 24, 2025
Merged

Conversation

pennam
Copy link
Collaborator

@pennam pennam commented Jan 22, 2025

This pull request includes changes to device certificate management within the ArduinoIoTCloudTCP class. The most significant updates include the introduction of new methods for certificate updating and broker port setup. Alongside this changes new certificates where added to trust the new broker identity.

Enhancements to secure element handling and device certificate management:

  • Added _writeCertOnConnect flag to handle device certificate updates after broker connection
  • Introduced updateCertificate method to update device certificates and mqttPort method to determine the appropriate MQTT port based on the certificate's authority key identifier
  • Modified begin method to include logic for certificate update and broker port determination

Adjustments to device trust anchors:

  • Updated AIoTCSSCert, AIoTCUPCert and ArduinoIoTCloudTrustAnchor to include certificates of the new broker identity

Copy link

codecov bot commented Jan 22, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 95.39%. Comparing base (c28ca7a) to head (88aedae).
Report is 11 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #522   +/-   ##
=======================================
  Coverage   95.39%   95.39%           
=======================================
  Files          33       33           
  Lines        1520     1520           
=======================================
  Hits         1450     1450           
  Misses         70       70           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link

Memory usage change @ 88aedae

Board flash % RAM for global variables %
arduino:esp32:nano_nora 🔺 0 - +11120 0.0 - +0.35 0 - 0 0.0 - 0.0
arduino:mbed_edge:edge_control 🔺 0 - +2072 0.0 - +0.21 0 - 0 0.0 - 0.0
arduino:mbed_giga:giga 🔺 0 - +1136 0.0 - +0.06 0 - 0 0.0 - 0.0
arduino:mbed_nano:nanorp2040connect 🔺 0 - +1123 0.0 - +0.01 0 - 0 0.0 - 0.0
arduino:mbed_nicla:nicla_vision 🔺 0 - +3336 0.0 - +0.17 0 - 0 0.0 - 0.0
arduino:mbed_opta:opta 🔺 0 - +1136 0.0 - +0.06 0 - 0 0.0 - 0.0
arduino:mbed_portenta:envie_m7 N/A N/A N/A N/A
arduino:renesas_portenta:portenta_c33 🔺 0 - +2520 0.0 - +0.12 0 - 0 0.0 - 0.0
arduino:renesas_uno:unor4wifi 🔺 0 - +2464 0.0 - +0.94 🔺 0 - +8 0.0 - +0.02
arduino:samd:mkr1000 🔺 0 - +784 0.0 - +0.3 0 - 0 0.0 - 0.0
arduino:samd:mkrgsm1400 🔺 0 - +784 0.0 - +0.3 0 - 0 0.0 - 0.0
arduino:samd:mkrnb1500 🔺 0 - +784 0.0 - +0.3 0 - 0 0.0 - 0.0
arduino:samd:mkrwan1300 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:samd:mkrwifi1010 🔺 0 - +3368 0.0 - +1.28 🔺 0 - +272 0.0 - +0.83
arduino:samd:nano_33_iot 🔺 0 - +3368 0.0 - +1.28 🔺 0 - +272 0.0 - +0.83
esp32:esp32:esp32 💚 -58624 - 0 -4.47 - 0.0 💚 -8 - 0 -0.0 - 0.0
esp8266:esp8266:huzzah 🔺 0 - +16 0.0 - 0.0 0 - 0 0.0 - 0.0
Click for full report table
Board examples/ArduinoIoTCloud-Advanced
flash
% examples/ArduinoIoTCloud-Advanced
RAM for global variables
% examples/ArduinoIoTCloud-Basic
flash
% examples/ArduinoIoTCloud-Basic
RAM for global variables
% examples/ArduinoIoTCloud-Callbacks
flash
% examples/ArduinoIoTCloud-Callbacks
RAM for global variables
% examples/ArduinoIoTCloud-Schedule
flash
% examples/ArduinoIoTCloud-Schedule
RAM for global variables
% examples/utility/ArduinoIoTCloud_Travis_CI
flash
% examples/utility/ArduinoIoTCloud_Travis_CI
RAM for global variables
% examples/ArduinoIoTCloud-DeferredOTA
flash
% examples/ArduinoIoTCloud-DeferredOTA
RAM for global variables
% examples/ArduinoIoTCloud-Notecard
flash
% examples/ArduinoIoTCloud-Notecard
RAM for global variables
% examples/utility/Provisioning
flash
% examples/utility/Provisioning
RAM for global variables
% examples/utility/SelfProvisioning
flash
% examples/utility/SelfProvisioning
RAM for global variables
%
arduino:esp32:nano_nora 11068 0.35 0 0.0 11120 0.35 0 0.0 11072 0.35 0 0.0 11096 0.35 0 0.0 11084 0.35 0 0.0 11084 0.35 0 0.0 0 0.0 0 0.0
arduino:mbed_edge:edge_control 2064 0.21 0 0.0 2064 0.21 0 0.0 2072 0.21 0 0.0 2072 0.21 0 0.0 2072 0.21 0 0.0 0 0.0 0 0.0
arduino:mbed_giga:giga 1128 0.06 0 0.0 1128 0.06 0 0.0 1064 0.05 0 0.0 1136 0.06 0 0.0 1136 0.06 0 0.0 1128 0.06 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:mbed_nano:nanorp2040connect 1123 0.01 0 0.0 1123 0.01 0 0.0 1123 0.01 0 0.0 1123 0.01 0 0.0 1123 0.01 0 0.0 1123 0.01 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:mbed_nicla:nicla_vision 3336 0.17 0 0.0 3336 0.17 0 0.0 3336 0.17 0 0.0 3336 0.17 0 0.0 3336 0.17 0 0.0 3336 0.17 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:mbed_opta:opta 1128 0.06 0 0.0 1136 0.06 0 0.0 1064 0.05 0 0.0 1136 0.06 0 0.0 1136 0.06 0 0.0 1128 0.06 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:mbed_portenta:envie_m7 N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
arduino:renesas_portenta:portenta_c33 2520 0.12 0 0.0 2512 0.12 0 0.0 2520 0.12 0 0.0 2520 0.12 0 0.0 2512 0.12 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:renesas_uno:unor4wifi 2448 0.93 0 0.0 2464 0.94 8 0.02 2448 0.93 0 0.0 2440 0.93 8 0.02 2448 0.93 8 0.02 0 0.0 0 0.0
arduino:samd:mkr1000 784 0.3 0 0.0 776 0.3 0 0.0 784 0.3 0 0.0 776 0.3 0 0.0 776 0.3 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:samd:mkrgsm1400 776 0.3 0 0.0 784 0.3 0 0.0 776 0.3 0 0.0 776 0.3 0 0.0 776 0.3 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:samd:mkrnb1500 776 0.3 0 0.0 784 0.3 0 0.0 776 0.3 0 0.0 776 0.3 0 0.0 776 0.3 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:samd:mkrwan1300 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:samd:mkrwifi1010 3368 1.28 272 0.83 3368 1.28 272 0.83 3368 1.28 272 0.83 3368 1.28 272 0.83 3368 1.28 272 0.83 3368 1.28 272 0.83 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:samd:nano_33_iot 3368 1.28 272 0.83 3368 1.28 272 0.83 3368 1.28 272 0.83 3368 1.28 272 0.83 3368 1.28 272 0.83 3368 1.28 272 0.83 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
esp32:esp32:esp32 -58608 -4.47 -8 -0.0 -58620 -4.47 -8 -0.0 -58624 -4.47 -8 -0.0 -58592 -4.47 -8 -0.0 -58600 -4.47 -8 -0.0 -58608 -4.47 -8 -0.0 0 0.0 0 0.0
esp8266:esp8266:huzzah 0 0.0 0 0.0 0 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0 16 0.0 0 0.0
Click for full report CSV
Board,examples/ArduinoIoTCloud-Advanced<br>flash,%,examples/ArduinoIoTCloud-Advanced<br>RAM for global variables,%,examples/ArduinoIoTCloud-Basic<br>flash,%,examples/ArduinoIoTCloud-Basic<br>RAM for global variables,%,examples/ArduinoIoTCloud-Callbacks<br>flash,%,examples/ArduinoIoTCloud-Callbacks<br>RAM for global variables,%,examples/ArduinoIoTCloud-Schedule<br>flash,%,examples/ArduinoIoTCloud-Schedule<br>RAM for global variables,%,examples/utility/ArduinoIoTCloud_Travis_CI<br>flash,%,examples/utility/ArduinoIoTCloud_Travis_CI<br>RAM for global variables,%,examples/ArduinoIoTCloud-DeferredOTA<br>flash,%,examples/ArduinoIoTCloud-DeferredOTA<br>RAM for global variables,%,examples/ArduinoIoTCloud-Notecard<br>flash,%,examples/ArduinoIoTCloud-Notecard<br>RAM for global variables,%,examples/utility/Provisioning<br>flash,%,examples/utility/Provisioning<br>RAM for global variables,%,examples/utility/SelfProvisioning<br>flash,%,examples/utility/SelfProvisioning<br>RAM for global variables,%
arduino:esp32:nano_nora,11068,0.35,0,0.0,11120,0.35,0,0.0,11072,0.35,0,0.0,11096,0.35,0,0.0,11084,0.35,0,0.0,11084,0.35,0,0.0,0,0.0,0,0.0
arduino:mbed_edge:edge_control,2064,0.21,0,0.0,2064,0.21,0,0.0,2072,0.21,0,0.0,2072,0.21,0,0.0,2072,0.21,0,0.0,,,,,0,0.0,0,0.0
arduino:mbed_giga:giga,1128,0.06,0,0.0,1128,0.06,0,0.0,1064,0.05,0,0.0,1136,0.06,0,0.0,1136,0.06,0,0.0,1128,0.06,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:mbed_nano:nanorp2040connect,1123,0.01,0,0.0,1123,0.01,0,0.0,1123,0.01,0,0.0,1123,0.01,0,0.0,1123,0.01,0,0.0,1123,0.01,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:mbed_nicla:nicla_vision,3336,0.17,0,0.0,3336,0.17,0,0.0,3336,0.17,0,0.0,3336,0.17,0,0.0,3336,0.17,0,0.0,3336,0.17,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,
arduino:mbed_opta:opta,1128,0.06,0,0.0,1136,0.06,0,0.0,1064,0.05,0,0.0,1136,0.06,0,0.0,1136,0.06,0,0.0,1128,0.06,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,
arduino:mbed_portenta:envie_m7,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,,,,
arduino:renesas_portenta:portenta_c33,2520,0.12,0,0.0,2512,0.12,0,0.0,2520,0.12,0,0.0,2520,0.12,0,0.0,2512,0.12,0,0.0,,,,,0,0.0,0,0.0,0,0.0,0,0.0,,,,
arduino:renesas_uno:unor4wifi,2448,0.93,0,0.0,2464,0.94,8,0.02,2448,0.93,0,0.0,2440,0.93,8,0.02,2448,0.93,8,0.02,,,,,0,0.0,0,0.0,,,,,,,,
arduino:samd:mkr1000,784,0.3,0,0.0,776,0.3,0,0.0,784,0.3,0,0.0,776,0.3,0,0.0,776,0.3,0,0.0,,,,,0,0.0,0,0.0,0,0.0,0,0.0,,,,
arduino:samd:mkrgsm1400,776,0.3,0,0.0,784,0.3,0,0.0,776,0.3,0,0.0,776,0.3,0,0.0,776,0.3,0,0.0,,,,,0,0.0,0,0.0,0,0.0,0,0.0,,,,
arduino:samd:mkrnb1500,776,0.3,0,0.0,784,0.3,0,0.0,776,0.3,0,0.0,776,0.3,0,0.0,776,0.3,0,0.0,,,,,0,0.0,0,0.0,0,0.0,0,0.0,,,,
arduino:samd:mkrwan1300,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,0,0.0,0,0.0,,,,,,,,
arduino:samd:mkrwifi1010,3368,1.28,272,0.83,3368,1.28,272,0.83,3368,1.28,272,0.83,3368,1.28,272,0.83,3368,1.28,272,0.83,3368,1.28,272,0.83,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:samd:nano_33_iot,3368,1.28,272,0.83,3368,1.28,272,0.83,3368,1.28,272,0.83,3368,1.28,272,0.83,3368,1.28,272,0.83,3368,1.28,272,0.83,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
esp32:esp32:esp32,-58608,-4.47,-8,-0.0,-58620,-4.47,-8,-0.0,-58624,-4.47,-8,-0.0,-58592,-4.47,-8,-0.0,-58600,-4.47,-8,-0.0,-58608,-4.47,-8,-0.0,0,0.0,0,0.0,,,,,,,,
esp8266:esp8266:huzzah,0,0.0,0,0.0,0,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,16,0.0,0,0.0,,,,,,,,,,,,,,,,

@pennam pennam merged commit 5289da7 into arduino-libraries:master Jan 24, 2025
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant