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

[WIP] VXEdDSA #167

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

[WIP] VXEdDSA #167

wants to merge 6 commits into from

Conversation

liamsi
Copy link
Member

@liamsi liamsi commented Feb 5, 2017

resolves #128
working version; still needs some cleanup:

  • use cached public-key
  • cleanup ed25519 package (unexport funcs, keep only one elligator2 implementation, test-vectors for elligator)
  • adopt to google's keytransparency vrf interface (?)
  • asserts
  • increase code readability (and make it more golang idiomatic)
  • TODOs, XXXs

@liamsi liamsi force-pushed the vxeddsa branch 3 times, most recently from 5dd17d8 to 509c439 Compare February 5, 2017 21:44
…needs some cleanup:

- [ ] increase code readability (and more golang idiomatic)
- [ ] use cached public-key
- [ ] cleanup ed25519 package (unexport funcs, keep only one elligator2 implementation, test-vectors for elligator)
- [ ] adopt to google's keytransparency vrf interface (?)
- [ ] asserts
- [ ] TODOs, XXXs
@liamsi liamsi force-pushed the vxeddsa branch 2 times, most recently from 3813426 to 95a8fd1 Compare February 5, 2017 22:07
ErrGetPubKey = errors.New("[vrf] Couldn't get corresponding public-key from private-key")
)
// PrivateKey represents a Curve25519 private key.
type PrivateKey [PrivateKeySize]byte
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we keep using the old bytes slice type PrivateKey []byte instead?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, thanks. It makes sense to keep independent from the actual implementation/key-size used.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool!

Copy link
Member Author

@liamsi liamsi Mar 2, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On the long run (or maybe even in this pull?) we should switch to using an interface which completely hides the underlying representation (similar to this: https://github.com/google/keytransparency/blob/master/core/vrf/vrf.go)

Copy link
Member

@vqhuy vqhuy Mar 2, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also the signer. It is tracked in #50.

@vqhuy vqhuy added this to the 0.2.0 milestone Apr 12, 2017
@masomel masomel modified the milestones: 0.2.0, VRF change Aug 3, 2017
@aarshkshah1992
Copy link

Hey guys,

This looks like great work. Any plans to merge this ?

@vqhuy
Copy link
Member

vqhuy commented Dec 25, 2018

Hi, I'm afraid that we don't have any plan to merge this soon. In the meantime, you can merge it on your own fork if you want ;)

@aarshkshah1992
Copy link

Thanks vqhuy. May I ask why there are no plans to merge this ? Do you need a developer to help clean this up before it is merged ?

@vqhuy
Copy link
Member

vqhuy commented Dec 26, 2018

Do you need a developer to help clean this up before it is merged ?

Yes, you are more than welcome. You might want to take a look at this list, especially the VRF interface.

/cc @liamsi.

@aarshkshah1992
Copy link

@liamsi Thanks for the awesome work. I'd like to take this forward. Please can you elaborate a bit on these points of your checklist

  1. Use cached Public key
  2. Asserts

Also, would you be willing to review this once it is done ?

@liamsi
Copy link
Member Author

liamsi commented Jan 2, 2019

@liamsi Thanks for the awesome work. I'd like to take this forward. Please can you elaborate a bit on these points of your checklist

Unfortunately, I do not remember off the top of my head what those points on the checklist mean in detail. I'd need to look into the code (this implementation and the whispersystem C code) to understand what I was planning 🙈

Also, would you be willing to review this once it is done ?

Yes, of course! I'd be happy to review this!

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.

Switch to VXEdDSA
4 participants