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

Change internals of PublicKey to store both compressed Edwards Y and decompressed point forms #61

Closed
isislovecruft opened this issue Dec 18, 2018 · 2 comments
Assignees

Comments

@isislovecruft
Copy link
Member

Since the type is currently #[repr(C)] this will cause issues for anyone who was passing it over an FFI boundary directly (i.e. without first using the serde serialisation or calling to_bytes(), etc.). However, this will give us a speedup on non-batch verification as it avoids the point decompression.

@hdevalence
Copy link
Contributor

It might be good to remove the #[repr(C)] and provide byte-oriented functions for FFI, so that the Rust types aren't encumbered by FFI considerations at all and can maintain whatever invariants they want.

@isislovecruft
Copy link
Member Author

This was implemented in #62 and will be available in 1.0.0-pre.1. It gives roughly a 35% speed up on key reuse for signature verification (batch or otherwise).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants