-
Notifications
You must be signed in to change notification settings - Fork 129
Add hfs kyber nist round three #106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
5589f00 to
681d473
Compare
681d473 to
e20b9de
Compare
|
Note that until open-quantum-safe/liboqs#909 and cloudflare/circl#213 are resolved we should NOT merge this pull-request; The issue is that the liboqs Kyber is not compatible with Cloudflare's Golang Circl library's Kyber. I want them to be compatible because I'm using them both in my software. Obviously they should be compatible, but alas they are not. That having been said, please do review this PR! I will make requested corrections and maintain this branch until the above compatibility issues are resolved. Thanks and cheers! |
|
As Thom pointed out, the current Rust crate implements Round 2 Kyber, whereas Circl has been updated to Round 3 Kyber. You'll have to wait for a release of libels or use an older version of Circl. https://github.com/katzenpost/noise/issues/9#issuecomment-778034278 Note that it is quite possible there will be more breaking changes to Kyber in the future. |
@bwesterb I'm hoping that the maintainer of snow @mcginty will allow us to just use the main branch of the oqs rust crate for the time being until a new version of the oqs crate is released. Or better yet, a specific commit id from the main branch that way it won't just break unexpectedly one day. |
8850ac9 to
515e75e
Compare
|
I've confirmed that this branch can interoperate with the Katzenpost fork of Go noise: |
Given that Kyber support is still an experiment hidden behind a non-default feature flag, this seems fine. |
515e75e to
407222e
Compare
|
@mcginty Alright I've made the corrections you specified but now I'm wondering if you can help me figure out why the build fails: |
That's a benign warning. Your build is failing on windows because of https://github.com/mcginty/snow/pull/106/checks?check_run_id=1897933780#step:4:661 |
|
The current issue the CI failures are seeing is due to |
I have no idea how to do that. |
407222e to
95ccb41
Compare
| x25519-dalek = { version = "1.1", optional = true } | ||
| pqcrypto-kyber = { version = "0.6", optional = true } | ||
| pqcrypto-traits = { version = "0.3", optional = true } | ||
| oqs = { git = "https://github.com/open-quantum-safe/liboqs-rust.git", rev = "6653b262d8548a8c93000a5b847b65c9b51e6e78", optional = true, default-features = false } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is dangerous, in the context of publishing on https://crates.io. crates.io does not allow dependencies that are pulled from a Git repo. (See also RFC 2141.) There has to be a crate here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right. Can we convince the maintainers of the oqs crate to adopt a reasonable versioning scheme which progresses faster than every 6 months?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd really rather not have to fork oqs and fork snow. But the way things are now it's looking like I'm going to have to in order to actually do a "cargo publish". So sad.
95ccb41 to
d32d6bf
Compare
|
Closing, since it's aged long enough. |
Okay. This is ready for review. I got rid of all the .unwrap() calls except for the two located in the "generate" method:
Should I change the function signature or keep it as is?