- Implement Try and Increment when converting hash to scalar #128
Improves performance and security of conversion 🔥 - Get rid of deprecated
rust-crypto
dependency #137- Changed the crate providing merkle trees support:
merkle-sha3 v0.1
→merkle-cbt v0.3
- Merkle trees API has been slightly changed
- Merkle trees are generic over hash function (it used to work with keccak256 only)
- Merkle proofs built by previous versions of
curv
are incompatible with latestcurv
- Changed the crate providing merkle trees support:
- Make the commitments generic over the hash function #129
Allows the user to choose their own hash function when using our hash and related commitments - Unify and optimise bigint serialization #139
- Bigints are serialized as bytes (instead of converting to hex/decimal format), that should save communication size (depends on serialization backend)
- Different backends serialize bigints in the same way, ie. number serialized via
rust-gmp
backend will be properly deserialized vianum-bigint
backend and vice-versa - Compatibility notes: bigints serialization format is changed, so numbers serialized with older curv are not compatible with the newest version
- Fix point subtraction. Bug was introduced in
v0.8.0-rc1
. #127 - Add
Polynomial::lagrange_basis
function #130 - Katex <> Docs integration #131
Allows using KaTeX in documentation comments. Math formulas will be properly rendered on docs.rs. - LDEI proof minor improvements #133
Adds missing implementations of Clone and serialization traits. - Update
hmac
,digest
,sha2
,sha3
dependencies #134
hmac
:v0.7.1
→v0.11
digest
:v0.8.1
→v0.9
sha2
:v0.8.0
→v0.9
sha3
:v0.8.2
→v0.9
-
Elliptic curve API has been significantly changed #120
In particular: ECPoint, ECScalar traits were redesigned. They remain, but are not supposed to be used directly anymore. In replacement, we introduce structures Point, Scalar representing elliptic point and scalar. See curv::elliptic::curves module-level documentation to learn more.
-
Add low degree exponent interpolation proof #119