mirage / mirage-crypto

Cryptographic primitives for OCaml, in OCaml (also used in MirageOS)
ISC License
75 stars 42 forks source link

Implement X448 and Ed448 #112

Open hannesm opened 3 years ago

hannesm commented 3 years ago

This curve is still missing, fiat has support for it on 64 bit (not 32 bit, see https://github.com/mit-plv/fiat-crypto/issues/797). I have not found any Ed448 implementation based on fiat-crypto (neither X448).

kevaundray commented 3 years ago

In case you are interested:

For Ed448 here is an implementation: https://github.com/crate-crypto/Ed448-Goldilocks

For x448 here is also a possible implementation: https://github.com/crate-crypto/x448

The default backend being used is the fiat u64 backend: https://github.com/crate-crypto/Ed448-Goldilocks/blob/master/Cargo.toml#L26

There is a u32 backend but it does not use fiat-crypto.

Also this was the PR which added tests for crate-crypto/ed448-goldilocks into fiat-crypto: https://github.com/mit-plv/fiat-crypto/pull/795

hannesm commented 3 years ago

Thanks @kevaundray for the pointers :)