From e7e74ba33b0e8be4d141f0441a26203b7c2d203c Mon Sep 17 00:00:00 2001 From: "Christoph M. Wintersteiger" Date: Mon, 18 Feb 2019 14:13:44 +0000 Subject: [PATCH] 3rdparty: Improve Everest README.md --- 3rdparty/everest/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/3rdparty/everest/README.md b/3rdparty/everest/README.md index 69134f6ac..aa7d04d46 100644 --- a/3rdparty/everest/README.md +++ b/3rdparty/everest/README.md @@ -1 +1,5 @@ The files in this directory stem from [Project Everest](https://project-everest.github.io/) 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](https://github.com/project-everest/hacl-star/tree/master/code/curve25519) in the [F* language](https://github.com/fstarlang/fstar) by [KreMLin](https://github.com/fstarlang/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. Explictly supported platforms are currently `x86` and `x86_64` using gcc, clang, or arm-cc, and Visual C (2010 and later).