-
Notifications
You must be signed in to change notification settings - Fork 195
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
6966d65
commit d5a2233
Showing
287 changed files
with
101,110 additions
and
33,397 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
# Classify all '.function' files as C for syntax highlighting purposes | ||
*.function linguist-language=C |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
# Random seed file created by test scripts and sample programs | ||
seedfile | ||
|
||
# CMake build artifacts: | ||
CMakeCache.txt | ||
CMakeFiles | ||
CTestTestfile.cmake | ||
cmake_install.cmake | ||
Testing | ||
# CMake generates *.dir/ folders for in-tree builds (used by MSVC projects), ignore all of those: | ||
*.dir/ | ||
# MSVC files generated by CMake: | ||
/*.sln | ||
/*.vcxproj | ||
/*.filters | ||
|
||
# Test coverage build artifacts: | ||
Coverage | ||
*.gcno | ||
*.gcda | ||
coverage-summary.txt | ||
|
||
# generated by scripts/memory.sh | ||
massif-* | ||
|
||
# Eclipse project files | ||
.cproject | ||
.project | ||
/.settings | ||
|
||
# MSVC build artifacts: | ||
*.exe | ||
*.pdb | ||
*.ilk | ||
*.lib | ||
|
||
# Python build artifacts: | ||
*.pyc | ||
|
||
# CMake generates *.dir/ folders for in-tree builds (used by MSVC projects), ignore all of those: | ||
*.dir/ | ||
|
||
# Microsoft CMake extension for Visual Studio Code generates a build directory by default | ||
/build/ | ||
|
||
# Visual Studio artifacts | ||
/visualc/VS2010/.localhistory/ | ||
/visualc/VS2010/.vs/ | ||
/visualc/VS2010/Debug/ | ||
/visualc/VS2010/Release/ | ||
/visualc/VS2010/*.vcxproj.filters | ||
/visualc/VS2010/*.vcxproj.user | ||
|
||
# Generated documentation: | ||
/apidoc | ||
|
||
# PSA Crypto compliance test repo, cloned by test_psa_compliance.py | ||
/psa-arch-tests | ||
|
||
# Editor navigation files: | ||
/GPATH | ||
/GRTAGS | ||
/GSYMS | ||
/GTAGS | ||
/TAGS | ||
/cscope*.out | ||
/tags |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
default:\ | ||
:langmap=c\:.c.h.function:\ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
[mypy] | ||
mypy_path = scripts | ||
namespace_packages = True | ||
warn_unused_configs = True |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
[MASTER] | ||
init-hook='import sys; sys.path.append("scripts")' | ||
|
||
[BASIC] | ||
# We're ok with short funtion argument names. | ||
# [invalid-name] | ||
argument-rgx=[a-z_][a-z0-9_]*$ | ||
|
||
# Allow filter and map. | ||
# [bad-builtin] | ||
bad-functions=input | ||
|
||
# We prefer docstrings, but we don't require them on all functions. | ||
# Require them only on long functions (for some value of long). | ||
# [missing-docstring] | ||
docstring-min-length=10 | ||
|
||
# No upper limit on method names. Pylint <2.1.0 has an upper limit of 30. | ||
# [invalid-name] | ||
method-rgx=[a-z_][a-z0-9_]{2,}$ | ||
|
||
# Allow module names containing a dash (but no underscore or uppercase letter). | ||
# They are whole programs, not meant to be included by another module. | ||
# [invalid-name] | ||
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+)|[a-z][-0-9a-z]+)$ | ||
|
||
# Some functions don't need docstrings. | ||
# [missing-docstring] | ||
no-docstring-rgx=(run_)?main$ | ||
|
||
# We're ok with short local or global variable names. | ||
# [invalid-name] | ||
variable-rgx=[a-z_][a-z0-9_]*$ | ||
|
||
[DESIGN] | ||
# Allow more than the default 7 attributes. | ||
# [too-many-instance-attributes] | ||
max-attributes=15 | ||
|
||
[FORMAT] | ||
# Allow longer modules than the default recommended maximum. | ||
# [too-many-lines] | ||
max-module-lines=2000 | ||
|
||
[MESSAGES CONTROL] | ||
# * locally-disabled, locally-enabled: If we disable or enable a message | ||
# locally, it's by design. There's no need to clutter the Pylint output | ||
# with this information. | ||
# * logging-format-interpolation: Pylint warns about things like | ||
# ``log.info('...'.format(...))``. It insists on ``log.info('...', ...)``. | ||
# This is of minor utility (mainly a performance gain when there are | ||
# many messages that use formatting and are below the log level). | ||
# Some versions of Pylint (including 1.8, which is the version on | ||
# Ubuntu 18.04) only recognize old-style format strings using '%', | ||
# and complain about something like ``log.info('{}', foo)`` with | ||
# logging-too-many-args (Pylint supports new-style formatting if | ||
# declared globally with logging_format_style under [LOGGING] but | ||
# this requires Pylint >=2.2). | ||
# * no-else-return: Allow the perfectly reasonable idiom | ||
# if condition1: | ||
# return value1 | ||
# else: | ||
# return value2 | ||
# * unnecessary-pass: If we take the trouble of adding a line with "pass", | ||
# it's because we think the code is clearer that way. | ||
disable=locally-disabled,locally-enabled,logging-format-interpolation,no-else-return,unnecessary-pass | ||
|
||
[REPORTS] | ||
# Don't diplay statistics. Just the facts. | ||
reports=no | ||
|
||
[VARIABLES] | ||
# Allow unused variables if their name starts with an underscore. | ||
# [unused-argument] | ||
dummy-variables-rgx=_.* | ||
|
||
[SIMILARITIES] | ||
# Ignore imports when computing similarities. | ||
ignore-imports=yes |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
language: c | ||
compiler: gcc | ||
sudo: false | ||
cache: ccache | ||
|
||
jobs: | ||
include: | ||
- name: basic checks and reference configurations | ||
addons: | ||
apt: | ||
packages: | ||
- gnutls-bin | ||
- doxygen | ||
- graphviz | ||
- gcc-arm-none-eabi | ||
- libnewlib-arm-none-eabi | ||
- gcc-arm-linux-gnueabi | ||
- libc6-dev-armel-cross | ||
language: python # Needed to get pip for Python 3 | ||
python: 3.5 # version from Ubuntu 16.04 | ||
install: | ||
- scripts/min_requirements.py | ||
script: | ||
- tests/scripts/all.sh -k 'check_*' | ||
- tests/scripts/all.sh -k test_default_out_of_box | ||
- tests/scripts/all.sh -k test_ref_configs | ||
- tests/scripts/all.sh -k build_arm_linux_gnueabi_gcc_arm5vte build_arm_none_eabi_gcc_m0plus | ||
|
||
- name: full configuration | ||
os: linux | ||
dist: focal | ||
addons: | ||
apt: | ||
packages: | ||
- clang-10 | ||
- gnutls-bin | ||
script: | ||
# Do a manual build+test sequence rather than using all.sh, | ||
# because there's no all.sh component that does what we want, | ||
# which is a build with Clang >= 10 and ASan, running all the SSL | ||
# testing. | ||
# - The clang executable in the default PATH is Clang 7 on | ||
# Travis's focal instances, but we want Clang >= 10. | ||
# - Running all the SSL testing requires a specific set of | ||
# OpenSSL and GnuTLS versions and we don't want to bother | ||
# with those on Travis. | ||
# So we explicitly select clang-10 as the compiler, and we | ||
# have ad hoc restrictions on SSL testing based on what is | ||
# passing at the time of writing. We will remove these limitations | ||
# gradually. | ||
- make CC=clang-10 CFLAGS='-Werror -Wall -Wextra -fsanitize=address,undefined -fno-sanitize-recover=all -O2' LDFLAGS='-Werror -Wall -Wextra -fsanitize=address,undefined -fno-sanitize-recover=all' | ||
- make test | ||
- programs/test/selftest | ||
- tests/scripts/test_psa_constant_names.py | ||
# Exclude a few test cases that are failing mysteriously. | ||
# https://github.com/Mbed-TLS/mbedtls/issues/6660 | ||
- tests/ssl-opt.sh -e 'Fallback SCSV:\ .*list' | ||
# Modern OpenSSL does not support fixed ECDH, null or ancient ciphers. | ||
- tests/compat.sh -p OpenSSL -e 'NULL\|ECDH-\|DES\|RC4' | ||
- tests/scripts/travis-log-failure.sh | ||
# GnuTLS supports CAMELLIA but compat.sh doesn't properly enable it. | ||
# Modern GnuTLS does not support DES. | ||
# One NULL cipher suite is strangely missing in pre-1.2 protocol | ||
# versions (it works with (D)TLS1.2, but don't bother). | ||
- tests/compat.sh -p GnuTLS -e 'CAMELLIA\|DES\|TLS-RSA-WITH-NULL-SHA256' | ||
- tests/scripts/travis-log-failure.sh | ||
- tests/context-info.sh | ||
|
||
- name: Windows | ||
os: windows | ||
script: | ||
- scripts/windows_msbuild.bat v141 # Visual Studio 2017 | ||
|
||
after_failure: | ||
- tests/scripts/travis-log-failure.sh | ||
|
||
env: | ||
global: | ||
- SEED=1 | ||
- secure: "JECCru6HASpKZ0OLfHh8f/KXhKkdrCwjquZghd/qbA4ksxsWImjR7KEPERcaPndXEilzhDbKwuFvJiQX2duVgTGoq745YGhLZIjzo1i8tySkceCVd48P8WceYGz+F/bmY7r+m6fFNuxDSoGGSVeA4Lnjvmm8PFUP45YodDV9no4=" | ||
|
||
addons: | ||
apt: | ||
packages: | ||
- gnutls-bin | ||
coverity_scan: | ||
project: | ||
name: "ARMmbed/mbedtls" | ||
notification_email: support-mbedtls@arm.com | ||
build_command_prepend: | ||
build_command: make | ||
branch_pattern: coverity_scan |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
# Maintained branches | ||
|
||
At any point in time, we have a number of maintained branches consisting of: | ||
|
||
- The [`master`](https://github.com/Mbed-TLS/mbedtls/tree/master) branch: | ||
this always contains the latest release, including all publicly available | ||
security fixes. | ||
- The [`development`](https://github.com/Mbed-TLS/mbedtls/tree/development) branch: | ||
this is where new features land, | ||
as well as bug fixes and security fixes. | ||
- One or more long-time support (LTS) branches: | ||
these only get bug fixes and security fixes. | ||
|
||
We use [Semantic Versioning](https://semver.org/). In particular, we maintain | ||
API compatibility in the `master` branch between major version changes. We | ||
also maintain ABI compatibility within LTS branches; see the next section for | ||
details. | ||
|
||
## Backwards Compatibility for application code | ||
|
||
We maintain API compatibility in released versions of Mbed TLS. If you have | ||
code that's working and secure with Mbed TLS x.y.z and does not rely on | ||
undocumented features, then you should be able to re-compile it without | ||
modification with any later release x.y'.z' with the same major version | ||
number, and your code will still build, be secure, and work. | ||
|
||
Note that this guarantee only applies if you either use the default | ||
compile-time configuration (`mbedtls/config.h`) or the same modified | ||
compile-time configuration. Changing compile-time configuration options can | ||
result in an incompatible API or ABI, although features will generally not | ||
affect unrelated features (for example, enabling or disabling a | ||
cryptographic algorithm does not break code that does not use that | ||
algorithm). | ||
|
||
There are rare exceptions: code that was relying on something that became | ||
insecure in the meantime (for example, crypto that was found to be weak) may | ||
need to be changed. In case security comes in conflict with backwards | ||
compatibility, we will put security first, but always attempt to provide a | ||
compatibility option. | ||
|
||
For the LTS branches, additionally we try very hard to also maintain ABI | ||
compatibility (same definition as API except with re-linking instead of | ||
re-compiling) and to avoid any increase in code size or RAM usage, or in the | ||
minimum version of tools needed to build the code. The only exception, as | ||
before, is in case those goals would conflict with fixing a security issue, we | ||
will put security first but provide a compatibility option. (So far we never | ||
had to break ABI compatibility in an LTS branch, but we occasionally had to | ||
increase code size for a security fix.) | ||
|
||
For contributors, see the [Backwards Compatibility section of | ||
CONTRIBUTING](CONTRIBUTING.md#backwards-compatibility). | ||
|
||
## Backward compatibility for the key store | ||
|
||
We maintain backward compatibility with previous versions of the | ||
PSA Crypto persistent storage since Mbed TLS 2.25.0, provided that the | ||
storage backend (PSA ITS implementation) is configured in a compatible way. | ||
We intend to maintain this backward compatibility throughout a major version | ||
of Mbed TLS (for example, all Mbed TLS 3.y versions will be able to read | ||
keys written under any Mbed TLS 3.x with x <= y). | ||
|
||
Mbed TLS 3.x can also read keys written by Mbed TLS 2.25.0 through 2.28.x | ||
LTS, but future major version upgrades (for example from 2.28.x/3.x to 4.y) | ||
may require the use of an upgrade tool. | ||
|
||
## Current Branches | ||
|
||
The following branches are currently maintained: | ||
|
||
- [master](https://github.com/Mbed-TLS/mbedtls/tree/master) | ||
- [`development`](https://github.com/Mbed-TLS/mbedtls/) | ||
- [`mbedtls-2.28`](https://github.com/Mbed-TLS/mbedtls/tree/mbedtls-2.28) | ||
maintained until at least the end of 2024, see | ||
<https://github.com/Mbed-TLS/mbedtls/releases/tag/v2.28.2>. | ||
|
||
Users are urged to always use the latest version of a maintained branch. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
## Known issues | ||
|
||
Known issues in Mbed TLS are [tracked on GitHub](https://github.com/Mbed-TLS/mbedtls/issues). | ||
|
||
## Reporting a bug | ||
|
||
If you think you've found a bug in Mbed TLS, please follow these steps: | ||
|
||
1. Make sure you're using the latest version of a | ||
[maintained branch](BRANCHES.md): `master`, `development`, | ||
or a long-time support branch. | ||
2. Check [GitHub](https://github.com/Mbed-TLS/mbedtls/issues) to see if | ||
your issue has already been reported. If not, … | ||
3. If the issue is a security risk (for example: buffer overflow, | ||
data leak), please report it confidentially as described in | ||
[`SECURITY.md`](SECURITY.md). If not, … | ||
4. Please [create an issue on on GitHub](https://github.com/Mbed-TLS/mbedtls/issues). | ||
|
||
Please do not use GitHub for support questions. If you want to know | ||
how to do something with Mbed TLS, please see [`SUPPORT.md`](SUPPORT.md) for available documentation and support channels. |
Oops, something went wrong.