awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
Mbed-TLS avatar

Mbed-TLS/mbedtls

0
View on GitHub↗
6,711 stars·2,902 forks·C·18 viewswww.trustedfirmware.org/projects/mbed-tls↗

Mbedtls

Mbed TLS is a C library that provides a full implementation of the TLS and DTLS protocols for secure network communication, a library of fundamental cryptographic primitives, and a reference implementation of the PSA Cryptography API. It also includes libraries for parsing, validating, and managing X.509 digital certificates, as well as support for integrating hardware cryptoprocessors through the PSA Cryptoprocessor Driver Interface.

The library is designed for resource-constrained environments and is built from source with a customizable feature set, allowing developers to select which TLS versions, key exchanges, and cryptographic modules to include. It offers a platform abstraction layer that lets users replace default memory allocation, file I/O, network transport, timer callbacks, and diagnostic output with custom implementations. Build-time configuration is managed through C header files, with an option to use an external configuration file, and a Python script is available to programmatically enable or disable build options.

Mbed TLS supports static memory allocation for environments without a heap, and provides mechanisms to register custom entropy sources, disable file system access or real-time clock dependencies, and initialize platform hardware. The library can be integrated into larger CMake projects as a subdirectory or consumed as a CMake dependency, and pre-packaged source archives are available for download.

Features

  • TLS Libraries - Provides a full TLS and DTLS library with a small footprint for embedded systems.
  • PSA Cryptoprocessor Integrations - Offloads cryptographic operations to dedicated hardware through the PSA Cryptoprocessor Driver Interface.
  • Platform Abstraction Layers - Ships a platform abstraction layer that lets users replace memory, I/O, network, and timer callbacks.
  • Compile-Time Header Configurations - Build options are set by editing C header files before compilation for fine-grained feature selection.
  • PSA Cryptography Implementations - Provides a reference implementation of the PSA Cryptography API for standardized cryptographic operations.
  • Compile-Time Configurations - Sets build-time options by editing dedicated configuration header files.
  • Embedded - Provides a full implementation of TLS and DTLS protocols for secure communication in embedded systems.
  • Feature Set Customizations - Selects which TLS versions, key exchanges, and cryptographic modules to include or exclude from the build.
  • Cryptographic Primitives - Ships a library of fundamental cryptographic primitives including encryption, hashing, and signing.
  • Hardware-Accelerated Primitive Substitutions - Substitutes software cipher or hash implementations with hardware-accelerated drivers using compile-time ALT macros.
  • PSA Crypto API Implementations - Implements the PSA Cryptography API for standardized cryptographic operations across platforms.
  • X.509 Certificate Parsing and Validation - Provides libraries for parsing, validating, and managing X.509 digital certificates in PKI deployments.
  • Library Feature Configurators - Compile-time configuration of TLS library features, algorithms, and platform abstractions.
  • General TLS Connection Establishment - Implements the TLS protocol for establishing encrypted communication channels between peers.
  • Platform Abstraction Layers - Provides a platform abstraction layer to replace I/O, timing, memory, and diagnostics with custom implementations.
  • DTLS Protocol Implementations - Implements the DTLS protocol for secure communication over unreliable datagram transports.
  • Library Lifecycle Hardware Initializers - Provides custom setup and teardown functions to manage underlying hardware or accelerators.
  • Memory-Buffer File I/O Replacements - Removes all file I/O dependencies by using memory-buffer equivalents for every file-accessing function.
  • Custom Memory Allocators - Overrides default dynamic memory functions with custom allocators, including a buffer-based static memory option.
  • Static Memory Allocations - Supports static memory allocation for environments without a heap.
  • Clock-Abstracted Time Validation - Switches off time-based features like certificate validity checks using usage-count fallbacks.
  • Predefined Security Configurations - Loads ready-made minimal configurations such as the NSA Suite B TLS profile.
  • DTLS Session Managers - Manages DTLS session lifecycles including handshake retransmission over unreliable datagram transports.
  • Custom Entropy Source Registrations - Allows registering custom hardware or OS-specific entropy collectors to feed the random number generator.
  • Cryptography - Portable TLS library and PSA reference implementation.

Star history

Star history chart for mbed-tls/mbedtlsStar history chart for mbed-tls/mbedtls

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does mbed-tls/mbedtls do?

Mbed TLS is a C library that provides a full implementation of the TLS and DTLS protocols for secure network communication, a library of fundamental cryptographic primitives, and a reference implementation of the PSA Cryptography API. It also includes libraries for parsing, validating, and managing X.509 digital certificates, as well as support for integrating hardware cryptoprocessors through the PSA Cryptoprocessor Driver Interface.

What are the main features of mbed-tls/mbedtls?

The main features of mbed-tls/mbedtls are: TLS Libraries, PSA Cryptoprocessor Integrations, Platform Abstraction Layers, Compile-Time Header Configurations, PSA Cryptography Implementations, Compile-Time Configurations, Embedded, Feature Set Customizations.

What are some open-source alternatives to mbed-tls/mbedtls?

Open-source alternatives to mbed-tls/mbedtls include: armmbed/mbedtls — Mbed TLS is an open-source TLS and DTLS library with a small footprint, designed for embedded systems and IoT devices.… digitalbazaar/forge — Forge is a JavaScript cryptography library providing a comprehensive set of tools for symmetric and asymmetric… guanzhi/gmssl — GmSSL is an open-source cryptographic library that implements the Chinese national cryptographic standards SM2, SM3,… tianocore/edk2 — edk2 is a development project for creating system firmware that complies with the UEFI specification. It provides the… pyca/cryptography — This project is a Python cryptography library that provides a collection of cryptographic primitives and high-level… jedisct1/libsodium — Libsodium is a portable, C-based cryptographic library that provides a collection of modern primitives for encryption,…

Open-source alternatives to Mbedtls

Similar open-source projects, ranked by how many features they share with Mbedtls.
  • armmbed/mbedtlsARMmbed avatar

    ARMmbed/mbedtls

    6,712View on GitHub↗

    Mbed TLS is an open-source TLS and DTLS library with a small footprint, designed for embedded systems and IoT devices. It provides a portable cryptographic library that includes symmetric ciphers, hashing, and public-key cryptography, along with a reference implementation of the PSA Cryptography API for standardized cryptographic operations across platforms. The library also offers X.509 certificate management for parsing, validating, and managing certificate chains in secure communications. The library is built around a platform abstraction layer that decouples it from OS-specific services t

    C
    View on GitHub↗6,712
  • digitalbazaar/forgedigitalbazaar avatar

    digitalbazaar/forge

    5,311View on GitHub↗

    Forge is a JavaScript cryptography library providing a comprehensive set of tools for symmetric and asymmetric encryption, hashing, and digital signatures. It includes a full Transport Layer Security implementation for establishing secure network connections and managing encrypted traffic. The project implements a wide array of public key infrastructure tools, including X.509 certificate management, the generation of certificate signing requests, and the validation of certificate chains. It provides a PKCS cryptographic toolkit for handling secure archives and signed messages, alongside suppo

    JavaScript
    View on GitHub↗5,311
  • guanzhi/gmsslguanzhi avatar

    guanzhi/GmSSL

    6,075View on GitHub↗

    GmSSL is an open-source cryptographic library that implements the Chinese national cryptographic standards SM2, SM3, SM4, SM9, and ZUC as a unified algorithm suite. It provides a comprehensive set of cryptographic primitives including symmetric and asymmetric encryption, digital signatures, hashing, and key exchange, all built around these national standards for government and enterprise security applications. The library distinguishes itself through several integration capabilities. It includes an OpenSSL compatibility layer that maps GmSSL functions to OpenSSL API calls, enabling drop-in re

    Ccryptoencryptionpairing
    View on GitHub↗6,075
  • tianocore/edk2tianocore avatar

    tianocore/edk2

    6,061View on GitHub↗

    edk2 is a development project for creating system firmware that complies with the UEFI specification. It provides the necessary infrastructure to initialize hardware platforms and boot operating systems across multiple CPU architectures. The project utilizes a modular firmware architecture that decouples high-level management protocols from physical transport layers. It implements critical security features, including a measured boot chain, cryptographic primitives for image authentication, and support for Trusted Platform Module hardware and software implementations. Its capability surface

    Ccfirmwarepython
    View on GitHub↗6,061
See all 30 alternatives to Mbedtls→