All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Each change begins with a version (if applicable) and a timestamp, and then a set of changes, categorized by type:
- Added for new features.
- Changed for changes in existing functionality.
- Deprecated for soon-to-be removed features.
- Removed for now removed features.
- Fixed for any bug fixes.
- Security in case of vulnerabilities.
- Change the return code of the Hacl_Streaming_XXX_update family of functions. These
functions previously returned uint32_t, with 0 to indicating success, and 1
indicating a maximum length exceeded error. These functions have now switched
to an error code shared with other streaming API functions, of type
uint8_t, wherein Hacl_Streaming_Types_Success indicates success, and
Hacl_Streaming_Types_MaximumLengthExceeded conveys the same error as before.
The Success case is defined as 0, meaning that clients that previously did
if (!Hacl_Streaming_XXX_update(...))
do not need any change in their code. - Removal of Hacl_Streaming_SHA2.h -- all of the functions are now to be found in Hacl_Hash_SHA2.h, which brings SHA2 in alignment with other primitives.
- Renamings: Hacl_Hash_SHA2_hash_XXX becomes Hacl_Streaming_SHA2_hash_XXX (subject to change in the very near future, see #789)
- Renamings: Hacl_Streaming_SHA2_shaXXX becomes Hacl_Streaming_SHA2_hash_XXX (subject to change in the very near future, see #789)
- Removed OCaml and JS bindings
- Added JS bindings for secp256k1
- Added an OCaml API for secp256k1
- Align the APIs in Hacl_Hash_SHA2 and Hacl_Streaming_SHA2 for full hashes. The latter now observes the argument order of the former.
- Added secret_to_public for secp256k1
- Tighten the
EverCrypt_Hash
header file to only expose the one-shot and "streaming" APIs.
- Initialized CHANGES.md file with changelog template