-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
RFC9381 ECVRF implementation #1188
Conversation
82c35a0
to
6d1d7ed
Compare
@jedisct1 , does this mean that we are good to push this forward? If yes, I'll make a pass to make sure that the implemented version is what got finalised in the draft, and mark it as ready. |
@iquerejeta Yes :) |
a57cada
to
fae333b
Compare
59beda3
to
9db7738
Compare
Also changed the style of tests, where the expected output is in vrf.exp rather than in test data (following the style of the hashing).
939466b
to
9d834f7
Compare
Got some trouble reproducing the
But couldn't reproduce it. This is the failing action https://github.com/jedisct1/libsodium/actions/runs/6095043654 |
7d794f1
to
e15f2f7
Compare
So, I've managed to reproduce them, but no progress in debugging. I'll try again tomorrow. Any idea why we might have
type errors for symbols that are exposed in the public API when called within the library? |
Errrrr... this is super weird. How did you manage to reproduce it? Is it non-deterministic? |
Actually it's not weird. The |
Ok, makes sense. What is your preferred way forward? To have |
Yeah, I agree that the second option looks better. |
Look like this is the first time a VLA was used in libsodium. At least according to ComCert, a formally verified mostly-C99 (it doesn't support VLAs) compiler intended for life-critical and mission-critical software:
Not sure if you have a no-VLA policy or anything like that, just thought I would let you know. |
VLAs and |
The master branch might include staging code that is subject to change, e.g. code including VLAs, which CompCert does not support and thus would fail on, which will be changed to not use VLAs once merged into the stable branch. See jedisct1/libsodium#1188 (comment)
Implementation of RFC9381.
Made a change to ed25519_ref10 for performance reasons. Mainly, I have included a variable base variable time scalar multiplication (to compute
a * U + b * V
for variableU
andV
).Implements #1177