- Improve performance of Salsa by 3x and Chacha by 10x
- Clearly distinguish at the type level various variants of chacha:
- Chacha as IETF (recommended)
- Chacha as original paper (64 bits counters)
- XChacha
- Distinguish at the type level Salsa and XSalsa
Breaking Changes:
- Chacha, Salsa and Poly1305 interface changes to expect fixed sized array instead of slice, for stronger type safety and less runtime error.
Chacha::new_xchacha20::<ROUNDS>()
is nowXChacha::<ROUNDS>::init()
Salsa::new_salsa20::<ROUNDS>()
is nowXSalsa::<ROUNDS>::init()
- fix legacy blake2b and blake2s
output_bits
interface returning a value 8 times bigger.
- add Argon2 support (RFC9106)
- compilation fixes without AVX flags
- add some extra odd size legacy blake2b contextes (and some missing one)
- add some extra legacy blake2b contextes between 256 and 384 bits
- add a new simpler and more individual APIs for hashing in hashing
- optimise and reorganise curve25519 and ed25519
- optimise various hashing algorithms: sha1, sha3, ripemd160
- Add some const qualifier in Sha1 and Sha2
- Revert partially some curve25519 interface changes
- Documentation and examples for all modules
- Unpublish some internals arithmetic from curve25519
- Add Scrypt
- Add SHA1 despite unsecure in hashing context, since it is still used a lot in other context
- Fix blake2 block size specified in bits instead of the expected value in bytes, that will result in bug when using with HMAC
- remove unnecessary inline attribute on macro (lint warning)
- remove SymmetricCipher trait in favor of using simple function associated with the cipher.
- remove Buffer abstraction
- cargo clippy pass
- fix bug in blake2 difference between
new_keyed
andreset_with_key
when key is empty
- Rewrite and optimise Blake2 for AVX and AVX2
- Rewrite and optimise Sha2 for AVX and AVX2
- Optimise ChaCha for AVX and AVX2
- Rewrite SHA3 interface to have specific instance for each size
- Add salsa20
- CI related changes
- reformat modules
- Add incremental streaming interface for Chacha20Poly1305
- add some tests
- add CI
- code tweak in Chacha20Poly1305
- initial commit, source from dagenix/rust-crypto cleanup, streamlined for modern algorithms, fix to work with wasm