Formats the `R` and `s` signature components as hexidecimal to make the
representation more compact, as requested in #723:
ed25519::Signature {
R: 0x3f3e3d3c3b3a393837363534333231302f2e2d2c2b2a29282726252423222120,
s: 0x1f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100,
}
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`.
We've had a couple request to make signature parsing infallible.
Presently it checks that the `s` scalar component of the signature has
its three highest bits clear, which will reject some but not all
signatures where `s` overflows the curve's order.
However, this check will not reject *all* such invalid signatures (at
least as presently implemented), and the same check will be performed at
the time the signature is verified (which *will* reject all such invalid
signatures).
Though we already shipped `ed25519` v2.0.0 and this is a breaking
change, that release has been yanked so we can get this change in last
minute.
Adds a `ComponentBytes` type alias for `[u8; 32]` and stores the `R` and
`s` component signatures as separate byte arrays.
This allows for simple, infallible `ComponentBytes` accessors:
- `pub fn r_bytes(&self) -> &ComponentBytes`
- `pub fn s_bytes(&self) -> &ComponentBytes`
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
Adds a type for representing serialized Ed25519 public keys.
The type implements the serialization traits from the `spki` crate,
which is used for representing the public keys associated with a
PKCS#8-encoded private key.