Date: September 19, 2023.
Changelog:
1.70.0
.fiat-crypto
to 0.2.1
.Date: July 4, 2023.
Changelog:
experimental
crate feature.1.64
.Date: March 4, 2023.
Changelog:
actions-rs/tarpaulin
to cargo-tarpaulin
(#322)cargo-audit
which was redundant to cargo-deny
(#311).1.59.0
.html_root_url
(#325).Date: December 7, 2022.
Changelog:
Balek2b::new()
docs (#303).1.57.0
and criterion
updated (#299).serde
doc feature-tag to PasswordHash
ser/deser impls (#297).Date: August 16, 2022.
Changelog:
Hasher
enum now implements Debug + PartialEq
(#278 (by @black-eagle17)).audit-check
and replaced with cargo-deny
(#292).Date: January 30, 2022.
Changelog:
cargo test --no-default-features
, as the erroneous usages have been feature-gated (#254).Cargo.toml
via rust-version
field (#250).audit-check
GitHub Action added in addition to cargo-audit
(#257).std::io::Write
for BLAKE2 and SHA2, also adding orion::hash::digest_from_reader
(#228) (by Vince Mutolo).0.17.0
(#270).Date: November 24, 2021.
Changelog:
orion::hazardous::mac::blake2b
and orion::hazardous::hash::blake2::blake2b
respectively). The keyed now returns a Tag
instead of Digest
(#208).Tag
s (not only those used by BLAKE2b, but all) now implement Drop
but no longer implement Copy
(#208).seal_chunk()
used in streaming AEAD now take StreamTag
by reference (#212) (by 24seconds).Date: November 3, 2021.
Changelog:
orion::hazardous::ecc
and orion::kex
) (#197).Serialize
and Deserialize
for relevant types (#192) (by Vince Mutolo).is_empty()
to newtypes (#206).StreamTag::Finish
(#139).assert!(a == b)
to assert_eq!(a, b)
where possible (#210) (by Emmanuel Leblond).Clone
+ Copy
for StreamTag
(#211) (by 24seconds).Tag
s used in their corresponding HKDF API (#224).1.52.0
(#222) (#223).Date: March 29, 2021.
Changelog:
pwhash::hash_password_verify()
(#138) (by Vince Mutolo).isize::MAX
(#130).orion::kdf::derive_key_verify()
and orion::hazardous::kdf::hkdf::verify()
(#179, #184).StreamTag
used in orion::hazardous::aead::streaming
and orion::aead::streaming
to lower-case acronyms (i.e StreamTag::MESSAGE
-> StreamTag::Message
) (#190).base64
dependency with ct-codecs
to support constant-time encoding & decoding in orion::pwhash::PasswordHash
(#188, #189).#[quickcheck]
attribute, introducing quickcheck_macros
as a dev-dependency (#180).1.51.0
.Date: February 9, 2021.
Changelog:
cargo-deny
to CI jobs (#174).quickcheck
.generate()
output-size for HMAC-based secret key newtypes which was incorrect (#169).orion::auth
(Vince Mutolo).SECURITY.md
, specifying a disclosure policy, threat-model and information regarding yanking (#163).Date: October 13, 2020.
Changelog:
base64
to 0.13.0
.Date: September 25, 2020.
Changelog:
hazardous::aead
(#127).getrandom
to 0.2
.1.41
due to bump in subtle
.Date: August 8, 2020.
Changelog:
no_std
context, using the new alloc
feature (#126).release
and bench
profiles now use the default LTO (thin local LTO) instead of fat LTO.Date: June 7, 2020.
Changelog:
no_std
feature from CONTRIBUTING guidelines.Date: March 9, 2020.
Changelog:
base64
dependency from 0.11.0
to 0.12.0
.Date: February 25, 2020.
Changelog:
secure_cmp
and all verification functions now return Result<(), UnknownCryptoError>
instead of Result<bool, UnknownCryptoError>
(#97).hazardous::hash::blake2b
is now 32 bytes instead of 64 bytes (#88).orion::auth
now uses BLAKE2b in keyed-mode as MAC (#88, by Vince Mutolo).orion::kdf
and orion::pwhash
modules (#113).chacha20::keystream_block
is no longer available.usize
to u64
conversion would be lossy.no_std
-compatible on stable Rust and the no_std
and nightly
features have been removed (#111).CONTRIBUTING.md
.CHANGELOG.md
file.secure_cmp
(#93, by snsmac)#[must_use]
public APIs that return a Result
(#95, by Cole Lawrence)PartialEq<&[u8]>
impl.util::secure_rand_bytes
stated that a panic would occur if the function failed to generate random bytes without throwing an error, which was not the case. This has been corrected.Blake2b::verify
to fuzzing targets.rust-crypto
crate on RustSec.UnknownCryptoError
now implements std::error::Error
for better interoperability with error-handling crates.#![deny(warnings)]
has been removed and replaced with flags in CI build jobs.crates-published
branch. Travis CI runs only weekly on crates-published
branch now (daily before).Date: January 25, 2020.
Changelog:
nightly
build breakage.Date: August 21, 2019.
Changelog:
Date: August 1, 2019.
Changelog:
PartialEq<&[u8]>
for all newtypes and provide documentation for usage of such (by Vince Mutolo).v0.1.7
) getrandom
errors.Date: June 10, 2019.
Changelog:
zeroize
dependency.wasm32-unknown-unknown
) support in CI.Date: May 27, 2019.
Changelog:
zeroize
dependency.Date: May 4, 2019.
Changelog:
as_bytes()
for public newtypes are replaced with AsRef<>
trait implementations. This means all as_bytes()
calls need to be replaced with as_ref()
.SecretKey
for BLAKE2b is longer padded with zeroes to the length of the blocksize. Thus, the SecretKey
no longer has a get_original_length()
function, but the same result will be represented by the get_length()
function instead.as_ref()
and unprotected_as_bytes()
return the newtypes data with what it was initialized, regardless of padding. (With the exception of HMAC)get_length()
return the length of the newtype with what is what initialized, regardless of padding. (With the exception of HMAC)generate()
now panic if the RNG fails to initialize of read from its source. This also means that newtype generate()
functions, that do not take in a size parameter, no longer return a Result
.ValidationCryptoError
and FinalizationCryptoError
have been removed. Though this doesn't mean that there is less information available, see issue here.unsafe
code in dependencies.fuzz
that used libFuzzer have been deprecated in favor of those in orion-fuzz using honggfuzz-rs.From<[u8; C]>
trait implementations for C-length fixed-sized newtypes, so that the caller may avoid using Result
when not working with slices.hazardous::constants
has been removed and all types made private. Only a select number of constants have been re-exported in their respective modules. See here for more information.opt-level = 0
with orion, is also advised against. See security section.rand_os
has been replaced with getrandom
..unwrap()
but ?
instead.Date: April 1, 2019.
Changelog:
Date: March 31, 2019.
Changelog:
zeroize
to 0.6.0
.Date: March 13, 2019.
Changelog:
Note: Strictly speaking, the first two changes are breaking, but because of the unlikeliness that this has an effect on anybody, they were not marked as such.
Date: February 16, 2019.
Changelog:
Date: February 10, 2019.
Changelog:
orion::hazardous::hash::sha512
previously used the same Digest
as BLAKE2b. This is no longer the case, making it impossible to specify a non fixed-length hash as Digest
with SHA512.HLEN
constant renamed to SHA512_OUTSIZE
and SHA2_BLOCKSIZE
constant renamed to SHA512_BLOCKSIZE
.POLY1305_OUTSIZE
constant.Password
, SecretKey
in hazardous
s hmac
and blake2b
, as well as Password
in pbkdf2
of hazardous
.Date: February 8, 2019.
Changelog:
Date: February 4, 2019.
Changelog:
byteorder
dependency using instead the endianness conversion functions that came with Rust 1.32.Date: January 31, 2019.
Changelog:
PartialEq
is now implemented for orion::kdf::Salt
and Nonce
in both chacha20
and xchacha20
.get_length()
for blake2b::Digest
.Date: January 29, 2019.
Changelog:
byteorder
and serde_json
dependencies (fixes build-failures related to rand_core
).Date: January 26, 2019.
Changelog:
out
parameters, with seal()
/open()
in hazardous
, with a length above a given point.Date: January 16, 2019.
Changelog:
rand
dependency out with rand_os
.Date: December 29, 2018.
Changelog:
Password
in pbkdf2
, SecretKey
and hmac()
of hmac
and extract()
of hkdf
in hazardous
now return a Result.generate()
taking a length
parameter, and orion::kdf
calls to a length of less than u32::max_value()
as maximum.orion::kdf
and orion::pwhash
take a new Password
parameter that is heap-allocated and returns a Result.sha2
dependency and ring
dev-dependency. sha2
has been replaced with orion's own SHA512 implementation.Thanks to Gabe Langlais for valuable feedback, especially on the API design.
Date: December 22, 2018.
Changelog:
Date: November 24, 2018.
Changelog:
v0.10
.Date: November 23, 2018.
Changelog:
default
API has been dropped. All high-level functionality is now accessible through these interfaces: orion::aead
, orion::auth
, orion::kdf
and orion::pwhash
.hazardous
and in the high-level API (previously default::encrypt
, etc.) have been renamed to seal
and open
to reflect the authentication and hopefully increase familiarity.finalize_to_dst()
has been dropped for HMAC.#[must_use]
attribute.info
for HKDF and ad
for AEADs are now Option
.util::gen_rand_key
and util::compare_ct
are now util::secure_rand_bytes
and util::secure_cmp
.CShake
, Hmac
and Poly1305
) now implement Debug
.clear_on_drop
to wipe memory in favor of seckey
.nightly
and no_std
. To use orion in a no_std
context, some dependency specifications are needed. Refer to the README for these.Date: November 11, 2018.
Changelog:
Date: November 4, 2018.
Changelog:
default
APIs encryption/decryption interface has been reintroduced, now offering authenticated encryption through the AEAD XChaCha20Poly1305 implementation.Date: October 7, 2018.
Changelog:
keystream_block()
public function to retrieve a keystream from chacha20
default::encrypt
and default::decrypt
removed until orion offers XChaCha20 with Poly1305sha2
dependencyDate: September 27, 2018.
Changelog:
Date: September 26, 2018.
Changelog:
subtle
dependencyDate: September 26, 2018.
Changelog:
Date: September 20, 2018.
Changelog:
default::chacha20_*
initial counter set to 0Date: September 17, 2018.
Changelog:
FinalizationCryptoError
which means cshake
and hmac
now return a Result
on finalization and update function calls.no_std
.update()
after finalization on both cshake
and hmac
.cshake_verify()
function dropped from default API.Date: September 5, 2018.
Changelog:
subtle
dependencyDate: August 31, 2018.
Changelog:
byteorder
and rand
imported correctly for no_std
safe_api
, meaning that for no_std
, import orion with default features disabledsafe_api
gen_rand_key
now only available with safe_api
Date: August 22, 2018.
Changelog:
byte-tools
with byteorder
crate as byte-tools
no longer offers the required functionalityDate: August 20, 2018.
Changelog:
reset()
function to cSHAKEDate: August 13, 2018.
Changelog:
#![no_std]
added.clear_on_drop
with seckey
.constant_time_eq
with subtle
.default::pbkdf2
no longer appends salt to password before hashing due to some problems integrating this using #![no_std]
. This might be re-introduced later on.orion::core
renamed to orion::utilities
.Performance improvements compared to v0.4.3:
This was benchmarked on a MacBook Air 1,6 GHz Intel Core i5, 4GB.
Date: August 8, 2018.
Changelog:
rigel
crate, avoiding allocation as before but without the Cow
borrow