Skip to content

[RFC] switch from axTLS to BearSSL #3490

Closed
@igrr

Description

@igrr

BearSSL is a relatively new TLS library. It has a some features which may come handy in ESP8266 environment, such as:

  • can work without any dynamic memory allocation (much easier to support memory pools, more predictable than axTLS, easier handling of out-of-memory conditions)
  • IO interface is state machine based, doesn't assume existence of threads. Hence easy to integrate with LwIP raw API (i think). @me-no-dev: this may be useful for async libraries as well.
  • configurable fragment buffers: can support half-duplex, full-duplex, asymmetric buffer sizes, etc. AxTLS only supports half-duplex, and we have patched it to somewhat support dynamic (on-demand) fragment buffer size.

See https://bearssl.org/goals.html for more.

On the other hand, axTLS is fairly well studied by now. I have spent a good amount of time reading its source and doing some optimizations. Others (@slaff, @earlephilhower, @ADiea) have also become familiar with axTLS and did many improvements and bug fixes. If we switch to BearSSL, that would mean investing more time to learn ins and outs of it. If we do it though, we may end up with a more predictable and reliable TLS implementation.

This issue is mainly intended to collect feedback and host discussion related to BearSSL in the context of this project.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions