Name |
Date |
Size |
#Lines |
LOC |
||
---|---|---|---|---|---|---|
.. | - | - | ||||
include/everest/ | 18-Mar-2025 | - | 1,508 | 659 | ||
library/ | 18-Mar-2025 | - | 2,423 | 2,075 | ||
.gitignore | D | 18-Mar-2025 | 9 | 2 | 1 | |
CMakeLists.txt | D | 18-Mar-2025 | 1.4 KiB | 43 | 35 | |
Makefile.inc | D | 18-Mar-2025 | 337 | 7 | 5 | |
README.md | D | 18-Mar-2025 | 1.1 KiB | 6 | 3 |
README.md
1The files in this directory stem from [Project Everest](https://project-everest.github.io/) and are distributed under the Apache 2.0 license. 2 3This 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. 4 5The 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). 6