Revision 1990ae634d0602ff022afc946ef66933e4e4a2dc authored by Santiago Zanella-Beguelin on 09 December 2019, 17:48:55 UTC, committed by Santiago Zanella-Beguelin on 09 December 2019, 17:50:10 UTC
1 parent ae8e182
Changes.md
## EverCrypt v0.1 alpha 2
### October 17, 2019
- Addition of HKDF-Extract and HKDF-Expand in `Hacl_HKDF.{h,c}`.
These replace the previous implementations in `EverCrypt_HKDF.c`.
In particular, the implementation of `EverCrypt_HKDF_hkdf_expand` is no
longer recursive but calls into the iterative `Hacl_HKDF_expand`.
- **Breaking change** The `EverCrypt_HKDF_hkdf_expand` and
`EverCrypt_HKDF_hkdf_extract` functions are marked as deprecated.
Use `EverCrypt_HKDF_expand` and `EverCrypt_HKDF_extract` instead.
This may break clients that compile with -Werror.
### October 2, 2019
- Vectorized implementations of Chacha20Poly1305
### August 9th, 2019
- Addition of the box API under `Hacl_Nacl.h`. There is no multiplexing between
implementations and as such, there will be no `EverCrypt.Nacl`.
- Addition of Salsa20 under `Hacl_Salsa20.h`. Salsa20 *may* be added to
`EverCrypt.CTR` if there is demand for it (please speak up).
### August 5th, 2019
- OCaml bindings for EverCrypt (alpha, work in progress).
### July 13th, 2019
- Fully-verified implementation of Ed25519. Not currently multiplexing, but
eventually will be. `EverCrypt_Ed25519.h` will perform multiplexing once
multiple implementations of Ed25519 are available.
### July 9th, 2019
- `EverCrypt_CTR.h`, an agile, multiplexing API that exposes one block of the
counter-mode construction (will eventually support complete encryption).
### June 27th, 2019
- (possibly) **Breaking change**: KreMLin now compiles deprecation warnings in
F\* into C deprecation warnings. This may break clients who compile with -Werror.
- Functions in EverCrypt.h for which a replacement exists have been marked
with the attribute.
- The public headers now take an additional header dependency on
`kremlin/internal/target.h`
### June 25th, 2019
- **Breaking change** for F\* (`EverCrypt.AEAD.fst`) clients.
The state in EverCrypt.AEAD now contains scratch space to use in
encrypt/decrypt. It is therefore modified at each encryption/decryption.
(Aymeric Fromherz)
### June 20th, 2019
- **Breaking change** for C (`EverCrypt_AEAD.h`) and F\* (`EverCrypt.AEAD.fst`) clients.
EverCrypt now supports arbitrary length IVs for AES-GCM. A new
parameter `iv_len` needs to be passed during encryption and decryption. In C, a
new error InvalidIVLength is returned if the length of the iv does not satisfy
an algorithm's requirements. (Aymeric Fromherz)
### Before then
- **Breaking change** for C (`EverCrypt_Hash.h`) and F\*
(`EverCrypt.Hash.Incremental.fst`) clients.
The API now takes erased algorithm parameters; the style is now in line with
other modules, relying on abstract states and framing lemmas (now with
patterns). (Jonathan Protzenko)
- **New feature**: WASM implementation, found in dist/wasm. There are only
tests, no proper JavaScript wrappers yet. (Jonathan Protzenko)
- **New feature**: fully-verified AVX and AVX2 implementations of Poly1305
(Marina Polubelova, Karthikeyan Bhargavan)
- **New feature**: fully-verified ASM implementation of SHA2-256 using the
SHA-EXT dedicated Intel instructions (Chris Hawblitzel, Bryan Parno)
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...