-
Notifications
You must be signed in to change notification settings - Fork 11
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
Update to round 4 specification #33
Conversation
Hello @octeep :) ! First, thank you for your PR ! Please first run You can run the unit test for a specific variant using e.g.: |
Sorry, I am really behind with reviewing the source code. I will still go through it and dedicate some time tomorrow. |
FTR the following changes have been applied in the reference C implementation:
diff = crypto_int16_nonzero_mask(diff);
crypto_declassify(&diff,sizeof diff);
I wonder whether we should make a new major release for it |
|
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.
Great work!
This definitely is a In our client implementation, we expect to receive Please release this as a major version. EDIT: Please also remember to push a git tag. I can't see one for the 2.0.1 release. Would appreciate one 🙏 |
@prokls thanks also for taking time to review :) can you elaborate on what you mean with @faern I've added the git tag v2.0.1 on commit 68fdbe6 concerning major release, since this change does seem to break an implementation depending on the crate, I'd opt for a major release |
Thanks! But it's not just that, the release is breaking the public API and should be a major bump to be semver compliant anyway. The return type of a public method has changed. It's not so much about the Thank you 🙏 |
The |
I concur this should be a breaking change. |
Can we rebase this onto the current main and then we should merge this and release as 3.0. |
Thank you very much for the comments here. Apparently I did not pay enough attention to this. I ran "cargo doc" now and can clearly see arguments to declare this as breaking change. As @faern mentioned
It was not a “problem” per se. It just exposes the length of an array and thus the value changes with the Round 4 implementation. This can have various implications on software depending on our crate. As a result, we should look for changing values in the public API and decide on them whether a new major release is required. The changes of the round 4 implementation indeed (unlike my previous comments) require a new major version. Since I did not find the time to thoroughly review the tests: what do you think is necessary to accomplish to make it a major release? Is |
I guess there should also be some tests that test the kem interface against KATs, since this would have detected the breakage introduced before. |
Changing values is not by definition an API breakage. The fact that the constant Changing values can be classified as breaking. A bit depending on how strict the library author want to be, and how important the value is for users of the library. But that's more of a grey zone. Changing function signatures however is 100% clear API breakage :) |
Hello 👋, just wanted to say this change is desired, and that I hope code review proceeds in the near future! 🚀 |
I agree. Having access to round 4 CME in Rust is desirable for us as well. |
Hello from my side, yes I also want to see this merged, however before that I'm currently in the progress of creating a PR which implements the tests for the @faern maybe my reply was lost on this issue #34 I have a few questions to you regarding the Moreover I created this isse here dealing with the unit tests of |
I so wish we never went ahead and implemented RustCryptos kem interface. It has terrible ergonomics, does not lend itself very well to zeroing out key material and is a pain to work with 🙈 |
Alright, yup I agree, the unit test for the |
alright, we should be good to go, (fingers crossed that nothing breaks now in the final steps) thanks everyone for the discussion & thoughts and review and happy encrypting/decrypting stuff with classic-mceliece-rust round-4 :) |
@faern do you want to be added to the MIT license, since you provided a couple of contributions ? I'm not sure about the etiquette, therefore I want to ask |
thx, that was some timing ^^ the version is not released yet on crates.io |
I'd be honored to be mentioned as a contributor/copyright holder, but I do not demand it. Do as you see fit, you are allowed to include my name (Please use "Linus Färnstrand"). |
The Classic McEliece team has announced the round 4 specification (See here). This PR updates the implementation and the KAT tests according to the specification.