Skip to content
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

Open
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

iquerejeta
Copy link

@iquerejeta iquerejeta commented Jun 14, 2022

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 variable U and V).

Implements #1177

test/default/vrf.c Outdated Show resolved Hide resolved
test/default/vrf Outdated Show resolved Hide resolved
test/default/vrf.c Outdated Show resolved Hide resolved
@jedisct1 jedisct1 force-pushed the master branch 4 times, most recently from 82c35a0 to 6d1d7ed Compare November 14, 2022 21:16
@jedisct1
Copy link
Owner

@iquerejeta
Copy link
Author

@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.

@jedisct1
Copy link
Owner

@iquerejeta Yes :)

@iquerejeta iquerejeta marked this pull request as ready for review September 6, 2023 09:09
@iquerejeta
Copy link
Author

iquerejeta commented Sep 11, 2023

Got some trouble reproducing the undefined reference to 'crypto_core_ed25519_scalar_negate' and undefined reference to 'crypto_core_ed25519_scalar_negate' errors locally. I made sure I was configuring with the same call as the CI action:

env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking --enable-minimal

But couldn't reproduce it.

This is the failing action https://github.com/jedisct1/libsodium/actions/runs/6095043654

@iquerejeta
Copy link
Author

So, I've managed to reproduce them, but no progress in debugging. I'll try again tomorrow. Any idea why we might have

Undefined symbols for architecture arm64:
...
ld: symbol(s) not found for architecture arm64

type errors for symbols that are exposed in the public API when called within the library?

@jedisct1
Copy link
Owner

Errrrr... this is super weird.

How did you manage to reproduce it? Is it non-deterministic?

@jedisct1
Copy link
Owner

Actually it's not weird.

The core_ed25519 functions are not available in MINIMAL builds.

@iquerejeta
Copy link
Author

Ok, makes sense. What is your preferred way forward? To have core_ed25519 exposed in the MINIMAL build, or instead have from_string and scalar_negate as part of ed25519_ref10.c? Seeing how the library is organised, I presume the second, but just want to check with you before making further changes.

@jedisct1
Copy link
Owner

Yeah, I agree that the second option looks better.

@iquerejeta iquerejeta changed the title Version 12 of ECVRF draft RFC9381 ECVRF implementation Sep 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants