Skip to content

Commit 1867206

Browse files
committed
Update Readme
1 parent 295c1db commit 1867206

File tree

2 files changed

+43
-4
lines changed

2 files changed

+43
-4
lines changed

README.md

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,16 @@ Supports ESP32, ESP8266, RP2040, STM32, SAMD, Teensy, and AVR (with external SRA
2222
* [📋 Requirements](#-requirements)
2323
4. [🧠 Memory Usage Discrepancy Note](#-memory-usage-discrepancy-note)
2424
5. [📦 Buffer Configuration Guide](#-buffer-configuration-guide)
25-
6. [🧰 Macro Summary](#-macro-summary)
26-
7. [🌐 Duplex Mode Guide](#-duplex-mode-guide-when-to-use-half-duplex)
27-
8. [🧪 Basic Usage](#-basic-usage)
28-
9. [📄 License](#-license)
25+
* [🧠 Notes](#-notes)
26+
6. [🧪 Basic Usage](#-basic-usage)
27+
7. [🧰 API Highlights](#-api-highlights)
28+
8. [🔬 Performance Profile Summary (Insecure Mode)](#-performance-profile-summary-insecure-mode)
29+
9. [🧠 Memory Expansion Guide (AVR)](#-memory-expansion-guide-avr)
30+
10. [🧰 Macro Summary](#-macro-summary)
31+
11. [🌐 Duplex Mode Guide: When to Use Half-Duplex](#-duplex-mode-guide-when-to-use-half-duplex)
32+
12. [🧪 Diagnostic Tips](#-diagnostic-tips)
33+
13. [📊 Supported Algorithms](#-supported-algorithms)
34+
14. [📄 License](#-license)
2935

3036
---
3137

@@ -34,6 +40,7 @@ Supports ESP32, ESP8266, RP2040, STM32, SAMD, Teensy, and AVR (with external SRA
3440
- 🛡️ **Secure Data:** Data encryption via BearSSL (native or bundled)
3541
- **⬆️ Duplex Modes:** Supports **Full-Duplex** (simultaneous RX/TX) and **Half-Duplex** (sequential RX or TX) operation for advanced memory optimization.
3642
- 🔄 **TLS Upgrade:** Support for protocol negotiation (e.g., STARTTLS)
43+
- 🌟 **Supported Protocols** TLS1.0, TLS1.1, TLS1.2.
3744
- 🔐 **Validation:** Full Certificate validation or quick testing via `setInsecure()` mode
3845
- 🔁 **Runtime Flexibility:** Client switching at runtime via pointer assignment
3946
- 📦 **Configurable Buffers:** Adjust RX/TX buffer sizes (512–16384 bytes)
@@ -327,6 +334,20 @@ Define these in your main sketch or `platformio.ini` to customize the build.
327334
328335
---
329336
337+
## 📊 Supported Algorithms
338+
339+
The core BearSSL implementation included in this library supports a comprehensive suite of modern and necessary cryptographic primitives:
340+
341+
| Component | Supported Algorithms |
342+
| :--- | :--- |
343+
| **TLS Protocols** | **TLS 1.2, TLS 1.1, TLS 1.0** |
344+
| **Key Exchange (Kx)** | **ECDHE** (Ephemeral), **ECDH** (Static), **RSA** (Static) |
345+
| **Authentication (Auth)** | **ECDSA** (Elliptic Curve), **RSA** |
346+
| **Bulk Encryption** | **AES-128, AES-256, ChaCha20, 3DES** |
347+
| **Encryption Modes** | **GCM** (Galois/Counter Mode), **CCM** (Counter with CBC-MAC), **CBC** (Cipher Block Chaining) |
348+
| **Hash Functions** | **SHA-256, SHA-384** (Modern/Required), **SHA1, MD5** (Legacy/Compatibility) |
349+
---
350+
330351
## 📄 License
331352
332353
MIT License

src/client/Helper.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -988,6 +988,24 @@ class BearSSL_Session
988988
br_ssl_session_parameters _session;
989989
};
990990

991+
/* The "full" profile supports all implemented cipher suites.
992+
*
993+
* Rationale for suite order, from most important to least
994+
* important rule:
995+
*
996+
* -- Don't use 3DES if AES or ChaCha20 is available.
997+
* -- Try to have Forward Secrecy (ECDHE suite) if possible.
998+
* -- When not using Forward Secrecy, ECDH key exchange is
999+
* better than RSA key exchange (slightly more expensive on the
1000+
* client, but much cheaper on the server, and it implies smaller
1001+
* messages).
1002+
* -- ChaCha20+Poly1305 is better than AES/GCM (faster, smaller code).
1003+
* -- GCM is better than CCM and CBC. CCM is better than CBC.
1004+
* -- CCM is preferable over CCM_8 (with CCM_8, forgeries may succeed
1005+
* with probability 2^(-64)).
1006+
* -- AES-128 is preferred over AES-256 (AES-128 is already
1007+
* strong enough, and AES-256 is 40% more expensive).
1008+
*/
9911009
static const uint16_t suites_P[] CONST_IN_FLASH = {
9921010
#ifndef BEARSSL_SSL_BASIC
9931011
BR_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,

0 commit comments

Comments
 (0)