Mbed TLS is an open-source C library for cryptographic operations, optimized for embedded systems. Managed by TrustedFirmware.org, it supports SSL/TLS protocols and includes a reference implementation of the PSA Cryptography API. The project is actively evolving with a focus on integrating new cryptographic standards and enhancing test coverage.
Gilles Peskine (gilles-peskine-arm)
Ronald Cron (ronald-cron-arm)
David Horstmann (davidhorstmann-arm)
Valerio Setti (valeriosetti)
Harry Ramsey (Harry-Ramsey)
Gergely Korcsák (gergelykarm)
Timespan | Opened | Closed | Comments | Labeled | Milestones |
---|---|---|---|---|---|
7 Days | 13 | 4 | 1 | 2 | 1 |
30 Days | 78 | 26 | 39 | 4 | 1 |
90 Days | 149 | 71 | 180 | 25 | 1 |
All Time | 3997 | 2765 | - | - | - |
Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
David Horstmann | 5 | 1/0/1 | 22 | 32 | 496938 | |
Gilles Peskine | 2 | 7/6/1 | 37 | 18 | 3661 | |
Ronald Cron | 1 | 1/2/0 | 12 | 6 | 323 | |
Valerio Setti | 4 | 3/1/1 | 6 | 4 | 164 | |
Harry Ramsey | 1 | 4/4/0 | 8 | 37 | 107 | |
Gergely Korcsák | 2 | 2/2/0 | 2 | 3 | 14 | |
Manuel Pégourié-Gonnard (mpg) | 0 | 2/0/1 | 0 | 0 | 0 | |
Janos Follath | 0 | 0/0/0 | 0 | 0 | 0 | |
Elena Uziunaite (eleuzi01) | 0 | 2/0/0 | 0 | 0 | 0 | |
Dave Rodgman (daverodgman) | 0 | 1/0/0 | 0 | 0 | 0 | |
Tom Cosgrove | 0 | 0/0/0 | 0 | 0 | 0 | |
Waleed-Ziad Maamoun-Elmelegy (waleed-elmelegy-arm) | 0 | 1/0/0 | 0 | 0 | 0 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
Risk | Level (1-5) | Rationale |
---|---|---|
Delivery | 4 | The project faces significant delivery risks due to a growing backlog of issues and unresolved dependencies. With 1232 open issues and a trend of more issues being opened than closed, there's a clear risk of not meeting delivery targets. Dependencies on unmerged PRs like #9690 further exacerbate this risk, as they can delay critical updates. |
Velocity | 4 | Velocity is at risk due to the imbalance in issue resolution (13 opened vs. 4 closed recently) and dependency bottlenecks such as PR #9703 waiting on #9690. The uneven distribution of commits among developers also suggests potential team-related velocity issues. |
Dependency | 3 | Dependency risks are moderate, with specific issues like #9687 indicating challenges in maintaining compatibility with external libraries. Unresolved dependencies in PRs such as #9703 also highlight potential delays. |
Team | 3 | Team risks are present due to uneven workload distribution among developers and potential bottlenecks in decision-making, as indicated by help-wanted labels on several issues (#9677, #9649). |
Code Quality | 3 | Code quality is generally good but faces risks from large changes by key contributors (e.g., David Horstmann's significant refactoring) and incomplete documentation in PRs like #9667. The presence of spurious framework changes in PRs like #9701 also raises concerns. |
Technical Debt | 3 | Technical debt is a concern due to complex logic and conditional compilation blocks in core files like ssl_tls.c and ssl_msg.c . Efforts to refactor and remove outdated code (#9685) are ongoing but need more focus. |
Test Coverage | 4 | Test coverage is at risk due to incomplete testing in key PRs (#9667) and temporary removal of slow tests affecting CI performance. Numerous issues and PRs focus on testing enhancements, but gaps remain. |
Error Handling | 3 | Error handling is addressed through consistent use of return codes and debug messages, but manual memory management poses risks. Recent fixes for buffer overruns (#9690) highlight ongoing challenges. |
Recent activity in the Mbed TLS repository shows a focus on enhancing cryptographic capabilities, resolving bugs, and improving test coverage. Notable themes include the integration of PSA Crypto APIs, TLS 1.3 enhancements, and addressing configuration issues.
PSA Cryptography Integration: Many issues (#9705, #9704, #9678) focus on integrating and testing PSA cryptography features, indicating a significant push towards adopting the PSA API.
TLS 1.3 Enhancements: Several issues (#9697, #9650) address TLS 1.3 support and improvements, reflecting ongoing efforts to enhance protocol support.
Configuration Challenges: Issues like #9627 and #9622 highlight challenges with configuration management, especially concerning generated files and PSA configurations.
Legacy Feature Removal: There is a trend towards removing outdated features (e.g., DES in #9164), aligning with modern security practices.
Testing Gaps: Multiple issues (#9591, #9589) focus on improving test coverage for various configurations, indicating an ongoing effort to ensure robustness across different setups.
#9705: Implement tf-psa-crypto pointer CI check
#9704: Implement framework pointer CI check
#9697: TLS1.3 support ClientHello extension certificate_authorities
#9699: Slow tests with old GCC + Asan in Mbed TLS 3.6.2
#9670: mbedtls_ssl_renegotiate and mbedtls_ssl_handshake symbols occur more than once?
#9658: Enable MBEDTLS_PSA_CRYPTO_CONFIG in test_psa_crypto_drivers
Overall, the Mbed TLS project is actively evolving to incorporate new cryptographic standards while addressing legacy issues and enhancing its testing infrastructure.
#9702: [Backport 3.6] Refactor all.sh
#9701: Neon impl of ChaCha20 (better size & perf)
#9694: Release 3.6.2 with 3.6.1 + the pkwrite patch
#9639: Add PSA interruptible key generation setup & abort APIs
By addressing these areas, the Mbed TLS project can continue to enhance its cryptographic capabilities while maintaining stability across its various versions and configurations.
library/x509_crt.c
x509_crt_verify_chain_item
for managing certificate chains.mbedtls_x509_crt_profile
) to enforce security policies.tests/scripts/check_files.py
FileIssueTracker
with subclasses for specific issues (e.g., ShebangIssueTracker
, Utf8BomIssueTracker
).tf-psa-crypto/tests/suites/test_suite_pkwrite.function
BEGIN_CASE
, END_CASE
) for structured test definitions.fix_new_lines
to handle platform-specific newline issues.TEST_EQUAL
, TEST_ASSERT
) to validate outcomes effectively.CMakeLists.txt
ENABLE_PROGRAMS
, UNSAFE_BUILD
) to customize the build process.docs/architecture/psa-keystore-design.md
Overall, the codebase demonstrates high quality with a focus on modularity, configurability, and adherence to standards. Error handling is robust across files, with clear documentation aiding maintainability.
Overall, the development team is actively engaged in enhancing Mbed TLS's functionality, performance, and maintainability through collaborative efforts.