These crates were previously nested under `signature/async` and
`signature/derive`, which complicates tooling that expects crates to be
in toplevel directories, and as things currently stand also meant that
releases of the `signature` crate accidentally included stale copies of
the other two crates.
This commit moves them to toplevel `async-signature` and
`signature-derive` directories.
To simplify the workspace, which contains weak/namespaced features, this
bumps both `async-signature` and `signature` to MSRV 1.60.
So as for the bump to have some justification, it adds weak feature
activation for `rand_core?/std`, and uses this impl to write a
`From<rand_core::Error>` conversion which can preserve the original
error as the boxed source.
Replaces `generic-array` with `hybrid-array`, which is built on a
combination of `typenum` and const generics, providing a degree of
interoperability between the two systems.
Replaces `generic-array` with `hybrid-array`, which is built on a
combination of `typenum` and const generics, providing a degree of
interoperability between the two systems.
When both `getrandom` and `rand_core` are enabled, activates the
`rand_core/getrandom` feature, which makes `OsRng` available as
`crypto_common::rand_core::OsRng`.
Pre-1.60 crates can't be used in workspaces with other crates that use
namespaced/weak features.
This commit places all MSRV 1.60+ crates into `members` and moves the
ones with earlier MSRVs into `exclude`.
Replaces `generic-array` with `hybrid-array`, which is built on a
combination of `typenum` and const generics, providing a degree of
interoperability between the two systems.
`hybrid-array` is designed to be a largely drop-in replacement, and the
number of changes required to switch are relatively minimal aside from
some idiosyncrasies.
Replaces `generic-array` with `hybrid-array`, which is built on a
combination of `typenum` and const generics, providing a degree of
interoperability between the two systems.
`hybrid-array` is designed to be a largely drop-in replacement, and the
number of changes required to switch are relatively minimal aside from
some idiosyncrasies.
The combination of `alloc`+`arithmetic` would previously cause compile
errors because some `sec1`-related code was not properly gated.
This fixes the feature gating.
This also moves `elliptic-curve` out of the toplevel workspace since
`crypto-bigint` now uses namespaced features, which are incompatible
with older crates.
Previously `PasswordHash::hash_password` and `PasswordHash::generate`
took `&str` for `Salt`, however this is a bit of a confusing API because
the first thing it does is attempt to convert to a `Salt` which upholds
several invariants including "B64" encoding.
This change makes the `Salt` parameter explicit so it's clear what type
is responsible for checking those invariants.
Breaking changes were introduced in #1024, so this bumps the crate
version to v0.13.0-pre to note that happened.
Note that there is no crate release associated with this version. When a
crate release occurs, it will be bumped to `-pre.0`.