What is Mbed TLS?

An open source, portable, easy to use, readable and flexible TLS library, and reference implementation of the PSA Cryptography API, with a small code footprint suitable for embedded systems.

SubcategoryCryptography Library
Version4.2.0
PriceFree

What is Mbed TLS?

Introduction to Mbed TLS — what it does and who it is for.

An open source, portable, easy to use, readable and flexible TLS library, and reference implementation of the PSA Cryptography API, with a small code footprint suitable for embedded systems.

What do you need to run Mbed TLS?

System requirements, OS support, and hardware needs for Mbed TLS.

Mbed TLS is written in C (C99) and builds with a C99-compliant toolchain using Make, CMake 3.20.2+, or Visual Studio, with Python 3.8+ and Perl needed for test generation. No official published RAM/ROM footprint figures could be confirmed, though documentation emphasizes a small code footprint suitable for embedded systems.

Operating system
Cross-platform (Linuxembedded/RTOS and bare-metal targets)macOSWindows
Devices
desktop/cross-platform C applicationsEmbedded systemsIoT devicesmicrocontrollersservers
ProcessorAny processor with a C99-compliant toolchain and minimum 32-bit int/size_t

Programming languages

  • C (C99)
  • Python and Perl used for build/test tooling

How much does Mbed TLS cost?

Pricing plans, license type, and availability for Mbed TLS.

Mbed TLS is free, open source software with no license cost, available under a dual Apache-2.0 OR GPL-2.0-or-later license.

Price summaryFree (Open Source)
License detailsDual-licensed: users may choose either the Apache License 2.0 or the GPL 2.0-or-later license for Mbed TLS source files.
AvailabilityAvailable

What is Mbed TLS used for?

Key features, use cases, and capabilities of Mbed TLS.

Mbed TLS implements the TLS and DTLS protocols, X.509 certificate manipulation, and the PSA Cryptography API, offering a configurable build and small code footprint aimed at embedded and IoT use cases.

Key features

  • TLS and DTLS protocol implementation
  • X.509 certificate manipulation
  • PSA Cryptography API reference implementation
  • small code footprint for embedded/IoT use
  • wide range of cryptographic primitives (AES, SHA, ECC, RSA, SHA3)
  • configurable build to remove unused features
  • cross-platform C library (Make/CMake/Visual Studio build support)

Use cases

  • TLS/DTLS security for embedded and IoT devices
  • X.509 certificate handling in constrained systems
  • secure firmware components (used by TF-A, TF-M, OP-TEE)
  • cryptographic library for microcontroller vendor SDKs (e.g., STM32CubeMX, ESP-IDF)

Who should use Mbed TLS?

Target users, industries, and ideal use cases for Mbed TLS.

Mbed TLS is aimed at embedded systems developers, IoT device makers, and firmware/RTOS developers working in the embedded systems and semiconductor/microcontroller space.

Industries
Embedded systemsIoTsecure firmwaresemiconductor/microcontroller ecosystems
Target audienceEmbedded Systems Developers, IoT Device Makers, Firmware And RTOS Developers

How is Mbed TLS deployed?

Deployment options, API, and hosting for Mbed TLS.

As a C library, Mbed TLS is compiled directly into an application or firmware image rather than deployed as a hosted service; it is cross-platform and commonly embedded in microcontroller vendor SDKs.

API integration
Open source
Self-hosting

How do you get started with Mbed TLS?

Installation and onboarding steps for Mbed TLS.

Developers can get started via the official build documentation, which covers Make, CMake, and Visual Studio build methods, or by cloning the source directly from GitHub.

What are the pros and cons of Mbed TLS?

Balanced review of strengths and weaknesses of Mbed TLS.

Developer discussions highlight Mbed TLS's small footprint and permissive licensing as strengths, while noting that vendor-bundled versions can lag behind upstream and major releases can introduce breaking API changes.

ProCon
Much smaller footprint than OpenSSL, suitable for space-constrained embedded devices (OpenWrt forum)Vendor-bundled versions can lag well behind upstream releases, e.g. STM32CubeMX shipping mbedTLS 2.16.2 while 3.6.2 was current (ST Community)
more permissive/accessible open-source licensing (dual Apache-2.0/GPL) compared to alternatives with commercial licensing requirements (ST Community)major version jumps (e.g. 4.0.0) introduce breaking API changes that require migration work (Mbed TLS release announcements)
widely integrated by microcontroller vendors, e.g. bundled by default in STM32CubeMX (ST Community)some users report gaps or ambiguity in API documentation versus actual implemented behavior (GitHub issue #6899)
widely used in a variety of STM32 products per ST staff (ST Community)

Where can you learn more about Mbed TLS?

Documentation, support, and official links for Mbed TLS.

Official resources include the project's documentation site, its GitHub repository, and the TrustedFirmware.org project page.

Frequently asked questions

What is Mbed TLS?

Mbed TLS — An open source, portable, easy to use, readable and flexible TLS library, and reference implementation of the PSA Cryptography API, with a small code footprint suitable for embedded systems.

Is Mbed TLS free?

Mbed TLS is free, open source software with no license cost, available under a dual Apache-2.0 OR GPL-2.0-or-later license.

What is Mbed TLS used for?

Mbed TLS implements the TLS and DTLS protocols, X.509 certificate manipulation, and the PSA Cryptography API, offering a configurable build and small code footprint aimed at embedded and IoT use cases.

Where can I get Mbed TLS?

You can get Mbed TLS via the official website, the install page, GitHub and the source repository. See the resources section on this page for direct links.

Who should use Mbed TLS?

Mbed TLS is aimed at embedded systems developers, IoT device makers, and firmware/RTOS developers working in the embedded systems and semiconductor/microcontroller space.

What do you need to run Mbed TLS?

Mbed TLS is written in C (C99) and builds with a C99-compliant toolchain using Make, CMake 3.20.2+, or Visual Studio, with Python 3.8+ and Perl needed for test generation. No official published RAM/ROM footprint figures could be confirmed, though documentation emphasizes a small code footprint suitable for embedded systems.

How do you get started with Mbed TLS?

Developers can get started via the official build documentation, which covers Make, CMake, and Visual Studio build methods, or by cloning the source directly from GitHub.

How is Mbed TLS deployed?

As a C library, Mbed TLS is compiled directly into an application or firmware image rather than deployed as a hosted service; it is cross-platform and commonly embedded in microcontroller vendor SDKs.

Who developed Mbed TLS?

Mbed TLS is developed by TrustedFirmware.org (Linux Foundation project, formerly maintained by Arm).

What are the pros and cons of Mbed TLS?

Developer discussions highlight Mbed TLS's small footprint and permissive licensing as strengths, while noting that vendor-bundled versions can lag behind upstream and major releases can introduce breaking API changes.