For `ecdsa` crate: MSRV is 1.73 due to a bump of `elliptic-curve` to
v0.14.0-pre.0.
This commit begins the next round of breaking changes and bumps all
crates to prerelease versions.
The main change in `signature` is an upgrade of the `digest` crate to
v0.11.0-pre.3, which is what brings the new MSRV 1.71 requirement.
Basically all of the `actions-rs/*` actions are unmaintained. See
<https://github.com/actions-rs/toolchain/issues/216> for more
information. Due to their age they generate several warnings in
CI runs.
To get rid of some of those warnings the occurrences of
`actions-rs/toolchain` are replaced by `dtolnay/rust-toolchain`,
and the occurrences of `actions-rs/cargo` are replaced by direct
invocations of `cargo`.
The previous approach complicates supporting ECDSA with `FieldSize`
which is different from `C::Uint::ByteSize`.
The new implementation eliminates `crypto-bigint` as a dependency and
makes the API entirely byte-oriented.
This is a simpler approach which also eliminates some previous trait
bounds on the generic ECDSA implementation.
Since workspaces have to be bumped to MSRV 1.60 at the same time, this
also bumps the MSRV of other crates in this repo along with bumping
their version numbers to `-pre`.
Adds an initial implementation of DSA (see #8)
The following things work when tested against OpenSSL:
- The generated keys are valid and can be imported and exported from/to their DER/PEM representation
- Signatures generated by this library can be successfully verified
- Signatures can be imported and exported from/into their DER representation
- Signatures generated by OpenSSL can be successfully imported and verified
Per our SemVer policy, since this is a breaking change to the `pkcs8`
module it also bumps the minor version of this crate (currently to
v1.5.0-pre)
The MSRV with the `pkcs8` feature enabled is now 1.57
Reverts the changes from #433 that split the `ed25519` crate out into
its own namespace.
Instead, temporarily disables the `ring-compat` dependency and doctests
in the `ed25519` crate until it's updated to the latest version of the
`signature` crate.
Fixes#440
There are various feature combinations around `serde` which weren't
working.
This commit fixes those combinations, adds TODOs to eventually simplify
the feature combinations so they aren't needed, and adds CI to ensure it
builds with all feature combinations.
The `elliptic-curve` crate as well as format parsers including `der`,
`sec1`, and `pkcs8` have all been bumped to the 2021 edition:
https://github.com/RustCrypto/traits/pull/795
This commit updates the `ecdsa` crate to the 2021 edition accordingly.
The `ed25519` crate was using a number of hacks to retain builds with
its 1.47 MSRV.
Bumping to `resolver = "2"` allows us to get rid of these hacks and
upgrade the dependencies (e.g. `ring-compat` as used in the rustdoc).
Adds a rustdoc example which completely demonstrates how to use code
written generically with `ed25519::Signature` and `signature::{Signer,
Verifier}` with the concrete `ed25519_dalek::{Keypair, PublicKey}`
types.
Unlike the previous example, which hardly showed anything, this commit
also pulls in `ed25519-dalek` as a `[dev-dependency]`, which makes it
possible to actually doctest the example.