mbedtls/3rdparty/everest
David Horstmann de527fbfe0 Add MBEDTLS_TARGET_PREFIX to 3rdparty CMake
MBEDTLS_TARGET_PREFIX is prepended to the CMake targets for Mbed TLS
except for targets in 3rdparty. Change this so that 3rdparty targets use
the prefix as well.

This allows multiple copies of Mbed TLS to be used in the same CMake
tree when using code in the 3rdparty directory.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-09-28 18:39:33 +01:00
..
include/everest Update spelling "mbed TLS" to "Mbed TLS" 2023-09-12 19:18:17 +02:00
library Update spelling "mbed TLS" to "Mbed TLS" 2023-09-12 19:18:17 +02:00
.gitignore Ignore *.o everywhere 2023-05-12 13:58:05 +02:00
CMakeLists.txt Add MBEDTLS_TARGET_PREFIX to 3rdparty CMake 2023-09-28 18:39:33 +01:00
Makefile.inc 3rdparty: Fix Everest build to not depend on build-time macros 2019-08-19 13:37:46 +01:00
README.md Redo of PR#5345. Fixed spelling and typographical errors found by CodeSpell. 2022-05-11 21:25:51 +01:00

The files in this directory stem from Project Everest and are distributed under the Apache 2.0 license.

This is a formally verified implementation of Curve25519-based handshakes. The C code is automatically derived from the (verified) original implementation in the F* language by KreMLin. In addition to the improved safety and security of the implementation, it is also significantly faster than the default implementation of Curve25519 in mbedTLS.

The caveat is that not all platforms are supported, although the version in everest/library/legacy should work on most systems. The main issue is that some platforms do not provide a 128-bit integer type and KreMLin therefore has to use additional (also verified) code to simulate them, resulting in less of a performance gain overall. Explicitly supported platforms are currently x86 and x86_64 using gcc or clang, and Visual C (2010 and later).