Skip to content

TLS networking APIs#252

Draft
andreagilardoni wants to merge 2 commits intoarduino:masterfrom
andreagilardoni:tls-net-api
Draft

TLS networking APIs#252
andreagilardoni wants to merge 2 commits intoarduino:masterfrom
andreagilardoni:tls-net-api

Conversation

@andreagilardoni
Copy link
Contributor

The objective of this pr is to generalize the usage of TLS features inside of networking communication across all different Arduino cores. Currently there is no proper definition and standardization of TLS communication in Arduino Clients.

The objective of this PR is to discuss and reach a common point on how we should design and integrate the TLS extension across all Arduino cores.

The following aspects are going to be addressed:

  1. Not every TCP derived protocol is going to be stream like. For example MQTT. proposed solution:
    • split the definition of Client into 2 classes
  2. TLS Connections require to a way to provide Certificates
    • If not using mTls communication a client may be required to generate a temporary self signed certificate
  3. TLS Connections have multiple kind of verification that can be put in place:
    • mTls: the identity od both client and server need to be verified
    • Tls: the identity of the server needs to be verified against the provided CA
    • insecure: The identity of both ends is not verified
  4. hostname verification using TLS SNI field

Open points:

  • Certificate Class abstraction
  • Certificate Formats

- ClientConnect provides the abstraction required to address connection
  methods for TCP like sessions.
- Client provides the same Features as before, but it is specialized to
  handle connections that are then handled like a stream, like a
  classical TCP connection

This distinction will be used to differentiate stream like communication
protocols, i.e. websocket, tcp, http streaming, from discrete sized
packets communication, like MQTT.
Added Interfaces to handle Tls api standardization in arduino core api.
@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@arduino arduino deleted a comment from CLAassistant Mar 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants