Colfenor / classic-mceliece-rust

This is a pure-rust safe-rust implementation of the Classic McEliece post-quantum scheme
MIT License
24 stars 11 forks source link

Support of RustCrypto types and signatures #14

Closed prokls closed 2 years ago

prokls commented 2 years ago

This is a tracking issue for all steps and related discussions to move our reference-implementation-based infrastructure towards support of RustCrypto defined types and function/method signatures. We want to support a more rust-like API and better integrate with existing cryptographic abstraction in the rust ecosystem.

This is a direct result of discussions in issues #6, #11, and #12.

dkales commented 2 years ago

I'll probably tackle this and the other proposed v2 changes, but I'm offline for the next 10 days or so, FYI

faern commented 2 years ago

Any updates on this, @dkales? If not, we might put some energy into implementing the RustCrypto traits and submit a PR.

dkales commented 2 years ago

Hi, sorry, due to new employment situation on my side I did not really have time to work more on this. I wanted to do everything in one go, also enabling the use of all mceliece variants at once. An old status of this is is in the correct_feature_usage branch, but there is a still a lot of cleanup left to make this nicer.

If you just want the KEM interface, this is an orthogonal change that can probably be done pretty quickly on the current master status. I'll see if I get some time to finish this in the near future, however, no promises.

faern commented 2 years ago

For our use case I mainly want to se a release to crates.io with what's currently in the main branch. Because we currently depend on a git version, which is long term less reliable than crates.io. We don't really need the RustCrypto traits. BUT I think it's great to have those implemented before releasing the next version. That's why I want that pushed before the publishing.

Regarding being able to use multiple variants in the same binary at once: Sounds like a good thing to support. But I think it can be a later breaking release, since it's going to be a pretty large rewrite. The main problem right now is that the latest version published on crates.io currently is not really "usable" given how awkward/homegrown the RNG-code is there. So just releasing a version using a proper rand RNG would be a great win for the usability.

faern commented 2 years ago

This is being worked on in #16

dkales commented 2 years ago

Closed with #20