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

Implement key sharing #294

Closed
wants to merge 4 commits into from
Closed

Implement key sharing #294

wants to merge 4 commits into from

Commits on Aug 10, 2023

  1. ppoprf: Add method to export the oprf key

    Support private key extraction so multiple instances of the same
    ppoprf::Server can be created, for example to support a cluster
    of indistinguishable instances to scale throughput.
    
    Adds a new `ServerPrivateKey` which can be extracted and converted
    to a byte slice. Since it just wraps `RistrettoScalar` I picked this
    over serde traits.
    
    Also add a new `ppoprf::Server` contstructor which accepts a
    key rather than generating a new one.
    
    NB: This only represents the `oprf_key` field of the `Server`
    struct. The `GGM` instance has its own random internal state,
    so this commit IS NOT SUFFICIENT for repeatable behavior.
    A more complex key structure is necessary.
    rillian committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    5a95a44 View commit details
    Browse the repository at this point in the history
  2. ppoprf: Add tests for ServerPrivateKey

    Confirm the various new methods work.
    rillian committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    e3496f9 View commit details
    Browse the repository at this point in the history
  3. ppoprf: Update private key test to check deterministic output

    Verify that a `ppoprf::Server` created from a `ServerPrivateKey`
    produces identical output to the original.
    rillian committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    8d451fe View commit details
    Browse the repository at this point in the history
  4. ppoprf: Remove redundant clone calls

    The `ristretto::Scalar` type is an array, which are `Copy` up to 32
    bytes, so the clone() call is unnecessary. Addresses a clippy lint.
    rillian committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    741da37 View commit details
    Browse the repository at this point in the history