7347 Commits

Author SHA1 Message Date
Gilles Peskine
89361c9471 Remove obsolete options from config.pl
These options haven't existed for a long time.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-29 15:51:28 +02:00
Gilles Peskine
b8da88d398
Merge pull request #3284 from gilles-peskine-arm/changelog-20200421-2.7
2.7 only: Add missing changelog entry for PRs since 2.7.15
2020-04-28 13:10:43 +02:00
Manuel Pégourié-Gonnard
b60bf72b05
Merge pull request #3204 from irwir/fix_vcxproj-2.7
[backport 2.7] Finalize fixing bugs in .vcxproj files
2020-04-28 13:03:23 +02:00
Gilles Peskine
a958a01400 Add changelog entry for #3196: x509_crt max_pathlen int overflow fix
Backport of #3192

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-28 12:14:32 +02:00
Gilles Peskine
00f2436bf3 Travis: Windows: target Visual Studio 2017
Only the Visual Studio 2017 toolset is currently preinstalled on Travis.
Use this, instead of our solution's default which is VS 2010.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-27 11:27:39 +02:00
Gilles Peskine
a1cf6d5bda Travis: add a build with Visual Studio on Windows
Travis now offers a Windows environment. Do a build with Visual
Studio. This brings diversity into the Travis CI which otherwise only
uses GCC and Clang.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-27 11:27:39 +02:00
Gilles Peskine
35170f1190 Add a simple build script for Windows with Visual Studio
Keep it simple and mostly non-parametrizable for now.
A path to Visual Studio 2017 is hard-coded.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-27 11:27:39 +02:00
Gilles Peskine
86e5816dda check-files: support Windows .bat files
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-27 11:27:39 +02:00
Gilles Peskine
e4fdfc499c Travis: add a build on macOS
Just do the default build with Clang and run the unit tests. The
objective is to have one build on a Unix-like platform other than
Linux.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-27 11:27:39 +02:00
Gilles Peskine
59afb731da Travis: add a baremetal build
Add a baremetal build to Travis, to catch inadvertent dependencies on
platform functions.

The exact choice of target platform doesn't matter for this purpose.
Pick one that's present in all.sh, that uses a compiler that's
available in the Travis build environment (Ubuntu 16.04), and that
happens to be close to the Debian "armel" distribution.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-27 11:27:36 +02:00
Gilles Peskine
04c4a7e3f2 Travis: call all depends_* tests
Call all.sh to run all the available test_depends_* components. This
adds a run of depends-hashes.pl and depends-pkgalgs.pl.

Keep invoking test-ref-configs.pl rather than via all.sh so that it
doesn't run with ASan. This saves some time and ASan there doesn't
turn up much more than in the full config.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-27 11:25:45 +02:00
Gilles Peskine
2bebfc9476 Travis: install gnutls-bin for all jobs
Some jobs don't actually test against GnuTLS, but all.sh checks its
presence in all test jobs, so it needs to be installed regardless.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-27 11:25:45 +02:00
Gilles Peskine
12141d0fac Travis: replace "default configuration by "full configuration"
For the one long job with ASan, use the full configuration.

We get more coverage this way, at the cost of a slightly longer
runtime which we can afford since the "enumerated configurations" job
is slower.

Add a default-configuration build to the "basic checks" job. This job
is fairly quick (no ASan, no SSL testing).

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-27 11:25:45 +02:00
Gilles Peskine
fb5c8b4e94 Travis: call all.sh for the default-configuration build
This way anything we change in all.sh, such as adding tests for
programs/*/*, will be reflected here.

The build now uses GCC instead of Clang, which doesn't make much
difference in practice. The build now enables ASan and UBSan.

The tests now run compat.sh and ssl-opt.sh fully.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-27 11:25:45 +02:00
Gilles Peskine
dadd3bd703 Travis: call all.sh for sanity checks
Different releases have different sets of sanity checks. Keep the list
in one place, namely all.sh.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-27 11:25:45 +02:00
Gilles Peskine
7b5f0d3cfc Travis: run Pylint
Declare an explicit Python version. Pick 3.5 which is the default
version on Ubuntu 16.04. This is necessary on Travis to have a working
pip for Python 3.

Install Pylint 2.4.4. There's nothing special about this version, it's
just the latest version.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-27 11:25:45 +02:00
Gilles Peskine
a7ef8a1d7f Travis: move doxygen dependencies into the "sanity" job
Only this job uses doxygen and graphviz.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-27 11:25:45 +02:00
Gilles Peskine
b9d0fd60e4 Travis: split the build into three parallel jobs
Split the build between:
* Basic checks
* A build in the default configuration with extensive tests
* Builds in other configurations with less testing

The intent is to have one shorter job with basic tests, and two longer
jobs that take roughly the same amount of time (split as evenly as
possible while keeping an easy-to-understand separation).

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-27 11:25:44 +02:00
Gilles Peskine
e021233cbc Travis: don't test with both gcc and clang
In practice, we hardly ever get different outcomes, so there is no
gain in running tests with different compilers.

Experimentally, with the builds and tests we currently do and with the
compiler versions on a Travis Ubuntu 16.04, gcc jobs are significantly
faster than clang jobs (13 min vs 24 min). So use gcc.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-27 11:24:42 +02:00
Gilles Peskine
cd7b0422ef all.sh: make the arm-gcc cross-compiler prefix configurable
Make it possible to use a compiler that isn't in $PATH, or that's
installed with a different name, or even a compiler for a different
target such as arm-linux-gnueabi.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-27 11:24:40 +02:00
Gilles Peskine
bfda033f3d all.sh: run selftest in the full config and with ASan
Almost everything the selftest program does is in the test suites. But
just in case run the selftest program itself once in the full
configuration, and once in the default configuration with ASan, in
addition to running it out of box.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-27 11:23:11 +02:00
Vikas Katariya
53a77012e7 Update notification e-mail address
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-27 11:23:05 +02:00
Vikas Katariya
6c371a4067 Update Coverity secure token
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-27 11:22:11 +02:00
Gilles Peskine
a4a872c27a
Merge pull request #3214 from gilles-peskine-arm/changelog-assemble-2.7
Backport 2.7: assemble_changelog.py
2020-04-22 09:16:24 +02:00
Gilles Peskine
96377d397b Copy the changelog entry assembling script from development
This commit is the combined cherry-pick of the following commits:
dba4de0a1294d14840ccfc812799ef6b63725935
b695d5e30a87a8d574ad21393a037710396f27d3
7c3f7cdeae991733573ed2ab81a213f0784cd9cb
4d977a4f4011be14b52330b7224d5b8cf88dc85a
e248e83f9f23ffe07bc54579522bf3182018b68f
eebf24f7a8d138f656b8cd1f724bfc73d2c4f033
6e97c439592b51c4277328a3ef0e0f61ddccc059
c68c7c8864fd5eaea891712c5a3455c87aae4d40
ac0f0860f17b319c8dd36052f8df5bda075274af
42f384c186db02c0a96b9a0ae5c95df6eae92726
98a53aa3990a6a7730bb15d27e215d3163485ac2
13dc6342822bd4158f8dc4ed30bb2f88af2de356
7fa3eb7d44bd01beaeff145bc1f00a5af37e2751
28af958ea4299eea9e0e3a112f04fcf7e8fc7049
8f46bbf46f3387fa93dd69040d039ad5cdc1ed4b
27a1facd486dc178a1c2e597ccb006b7ccc30258
afc9db8bb71bd76dce45f5246f9ea5b52d59a700
a26079613a0fb75ba616657f9e15a73912a056ef
da14e8225e48250375c2f9aa07d195f7f5e9a5b8
37d670a1e17f86b3411fdf15c643b4e1caf7a503
974349d40e69b4e93102abebc79dd54e7beeb4bc
d8b6c77388f2c6756aa16bfe3932d956b4d1d2d1
2b242495e12ffb9010c177fa2d62fc01854e70b8
6e91009cfe0bf578ee6afb0cba09f188a238f4af
566407d6f68e906946ff80648c2bde9024bda192
8c4a84c5ded7bb19a5a607591b38971ed79b0a11
5e39c9e94f62d924ec94f8887baa088f05930b07
974232f045781a17b494f6993b2b02e150476653
40b3f411ecb16522beb073e1131f8e727be29ea4

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-21 18:36:17 +02:00
Gilles Peskine
5d32e64ad0
Merge pull request #3170 from gilles-peskine-arm/check-windows-files-2.7
Backport 2.7: Check Windows files for sanity as well
2020-04-20 13:59:22 +02:00
Gilles Peskine
016e4ac11b
Merge pull request #3199 from mpg/fix-overflow-benchmark-2.7
[backport 2.7] Fix arithmetic overflow in benchmark
2020-04-20 12:02:58 +02:00
Gilles Peskine
bc8c513ecb
Merge pull request #3185 from gilles-peskine-arm/pylint-up-to-2.4-2.7
Backport 2.7: Pass Pylint up to 2.4
2020-04-20 09:47:54 +02:00
irwir
2eb0c50986 [backport 2.7] Finalize fixing bugs in .vcxproj files
This is the 2.7 backport of #2853

Signed-off-by: irwir <irwir@users.noreply.github.com>
2020-04-19 17:03:27 +03:00
Jaeden Amero
8aaf2c5861
Merge pull request #3196 from piotr-now/max_pathlen_overflow_mbedtls-2.7
Backport 2.7: Guard from undefined behaviour in case of an INT_MAX max_pathlen
2020-04-17 14:24:45 +01:00
Andrzej Kurek
3fd9297658 Guard from undefined behaviour in case of an INT_MAX max_pathlen
When parsing a certificate with the basic constraints extension
the max_pathlen that was read from it was incremented regardless
of its value. However, if the max_pathlen is equal to INT_MAX (which
is highly unlikely), an undefined behaviour would occur.
This commit adds a check to ensure that such value is not accepted
as valid. Relevant tests for INT_MAX and INT_MAX-1 are also introduced.
Certificates added in this commit were generated using the
test_suite_x509write, function test_x509_crt_check. Input data taken
from the "Certificate write check Server1 SHA1" test case, so the generated
files are like the "server1.crt", but with the "is_ca" field set to 1 and
max_pathlen as described by the file name.

Signed-off-by: Andrzej Kurek <andrzej.kurek@arm.com>
Signed-off-by: Piotr Nowicki <piotr.nowicki@arm.com>
2020-04-17 11:30:21 +02:00
Manuel Pégourié-Gonnard
49e7a951da Get rid of a magic value in benchmark.c
Also update its value while at it.

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2020-04-17 11:19:53 +02:00
Manuel Pégourié-Gonnard
5408f72027 Fix integer overflow in benchmark program
When building with MBEDTLS_MEMORY_DEBUG enabled, and running the ecdh part,
the benchmark program would start writing a very large number of space
characters on stdout, and would have to be killed because it never seemed to
terminate.

This was due to an integer overflow in computing how many space to leave after
the title in order to get memory measurements aligned, which resulted in up
to SIZE_MAX spaces being printed.

This commit just fixes the overflow, the next commit is going to fix the magic
number (12).

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2020-04-17 11:19:49 +02:00
Gilles Peskine
e61988a766
Merge pull request #3165 from ronald-cron-arm/unmet-dependencies-buffer-overflow-fix-2.7
[backport 2.7] Unmet dependencies buffer overflow fix
2020-04-17 10:08:18 +02:00
Gilles Peskine
b5847d20d3 Pylint: abide by useless-object-inheritance warnings
Inheriting from object is a remainder of Python 2 habits and is just
clutter in Python 3.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-11 21:08:26 +02:00
Gilles Peskine
558e26dbda Document more methods in Python scripts
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-11 21:07:43 +02:00
Janos Follath
21522a49aa
Merge pull request #683 from ARMmbed/prepare-rc-2.7.15-updated
Prepare rc 2.7.15 updated
mbedtls-2.7.15
2020-04-09 14:12:49 +01:00
Manuel Pégourié-Gonnard
0a997082fe Merge branch 'mbedtls-2.7-restricted' into prepare-rc-2.7.15-update
* mbedtls-2.7-restricted:
  Parse HelloVerifyRequest buffer overread: add changelog entry
  Parse HelloVerifyRequest: avoid buffer overread at the start
  Parse HelloVerifyRequest: avoid buffer overread on the cookie
2020-04-09 12:31:52 +02:00
Manuel Pégourié-Gonnard
6e0806b338 Merge remote-tracking branch 'restricted/pr/671' into mbedtls-2.7-restricted
* restricted/pr/671:
  Parse HelloVerifyRequest buffer overread: add changelog entry
  Parse HelloVerifyRequest: avoid buffer overread at the start
  Parse HelloVerifyRequest: avoid buffer overread on the cookie
2020-04-09 11:57:18 +02:00
Janos Follath
f1bd55fd16 Add missing ChangeLog entry
Signed-off-by: Janos Follath <janos.follath@arm.com>
2020-04-09 09:36:33 +01:00
Janos Follath
b4b458fe01 Bump version to Mbed TLS 2.7.15
Signed-off-by: Janos Follath <janos.follath@arm.com>
2020-04-08 17:22:51 +01:00
Janos Follath
e170ee7e18 Merge branch 'mbedtls-2.7-restricted' into mbedtls-2.7.15r0
Signed-off-by: Janos Follath <janos.follath@arm.com>
2020-04-08 15:17:55 +01:00
Gilles Peskine
c8355101c9
Merge pull request #3158 from mpg/improve-make-tags-2.7
[backport 2.7] Improve ctags invocation in Makefile
2020-04-06 17:48:52 +02:00
Gilles Peskine
85e712c668 Systematically use Windows line endings in Windows files
Don't mix Windows and Unix line endings, it's the worst of both worlds.

Update the Visual Studio templates and regenerate the generated files.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-06 16:41:13 +02:00
Gilles Peskine
70ef5c6c9a In Windows files, detect CR without LF as well as LF without CR
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-06 16:39:06 +02:00
Gilles Peskine
783da6345e Check that Windows files have Windows line endings
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-06 16:39:04 +02:00
Gilles Peskine
227dfd435e Also check Windows files
Check Windows files for some issues, including permissions. Omit the
checks related to special characters (whitespace, line endings,
encoding) as appropriate.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-06 16:39:03 +02:00
Gilles Peskine
318f15ef92 Sort the list for easier maintenance
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-06 16:39:02 +02:00
Gilles Peskine
c7153226f6 List each item on a separate line for easier maintenance
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-06 16:39:00 +02:00
Gilles Peskine
c251e0d75a Clarify confusion between file names and suffixes of file names
To test a file name exactly, prepend a / to the base name.

files_to_check actually checks suffixes, not file names, so rename it
to extensions_to_check.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2020-04-06 16:38:58 +02:00