Skip to content

Commit

Permalink
docs: update README
Browse files Browse the repository at this point in the history
Adds the motivation, and some more acknowledgements.
  • Loading branch information
kikuomax committed Nov 23, 2024
1 parent 136b9e9 commit 48b88da
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

An [Ed448](https://datatracker.ietf.org/doc/html/rfc8032#section-5.2) verifier written in [Rust](https://www.rust-lang.org).

This crate does nothing but wraps the [`ed448-goldilocks`](https://crates.io/crates/ed448-goldilocks) crate which undertakes all the complicated arithmetics in an implementation of [`Verifier`](https://docs.rs/signature/latest/signature/trait.Verifier.html) of the [`signature`](https://crates.io/crates/signature) crate.
This crate does nothing but wraps the [`ed448-goldilocks`](https://crates.io/crates/ed448-goldilocks) crate which undertakes all the complicated arithmetics in an implementation of the [`Verifier`](https://docs.rs/signature/latest/signature/trait.Verifier.html) trait of the [`signature`](https://crates.io/crates/signature) crate.

As this crate has not been audited for security at all, use it at **YOUR OWN RISK**.

Expand Down Expand Up @@ -37,10 +37,24 @@ fn main() {

You can find the API documentation at <https://codemonger-io.github.io/ed448-verifier/ed448_verifier/index.html>.

## Motivation

This crate was developed in the course of [my project](https://github.com/codemonger-io/webauthn-rs) where I am trying to remove the OpenSSL dependency from [`webauthn-rs`](https://github.com/kanidm/webauthn-rs).
As of November 23, 2024, there is no Ed448 verifier that implements the [`Verifier`](https://docs.rs/signature/2.2.0/signature/trait.Verifier.html) trait as far as I searched.
There is an unreleased crate [`ed448-signature`](https://github.com/RustCrypto/signatures/tree/master/ed448) maintained by [Rust Crypto](https://github.com/rustcrypto), but it is not intended to provide the actual curve implementation.

## License

While [`ed448-goldilocks` has no clear license](https://github.com/crate-crypto/Ed448-Goldilocks/pull/37), the original part of this crate is licensed under the [MIT license](./LICENSE).

## Acknowledgements

This crate was designed after [`ed22519-dalek`](https://github.com/dalek-cryptography/curve25519-dalek/tree/main/ed25519-dalek).
This crate was designed after [`ed22519-dalek`](https://github.com/dalek-cryptography/curve25519-dalek/tree/main/ed25519-dalek).

The curve implementation is provided by [`ed448-goldilocks`](https://crates.io/crates/ed448-goldilocks).

The default [SHAKE256](https://en.wikipedia.org/wiki/SHA-3) implementation is provided by [`sha3`](https://crates.io/crates/sha3).

Test vectors for Ed448 verification were taken from [RFC 8032](https://datatracker.ietf.org/doc/html/rfc8032).

Test vectors for SHAKE256 were downloaded from <https://csrc.nist.gov/projects/cryptographic-algorithm-validation-program/secure-hashing>.

0 comments on commit 48b88da

Please sign in to comment.