MCPcopy Index your code
hub / github.com/facebook/voprf

github.com/facebook/voprf @v0.5.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.5.0 ↗ · + Follow
190 symbols 352 edges 17 files 65 documented · 34%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

voprf Build Status

An implementation of a (verifiable) oblivious pseudorandom function (VOPRF)

A VOPRF is a verifiable oblivious pseudorandom function, a protocol between a client and a server. The regular (non-verifiable) OPRF is also supported in this implementation.

This implementation is based on RFC 9497.

Documentation

The API can be found here along with an example for usage.

Installation

Add the following line to the dependencies of your Cargo.toml:

voprf = "0.5"

Minimum Supported Rust Version

Rust 1.65 or higher.

Contributors

The author of this code is Kevin Lewi (@kevinlewi). To learn more about contributing to this project, see this document.

License

This project is dual-licensed under either the MIT license or the Apache License, Version 2.0. You may select, at your option, one of the above-listed licenses.

Extension points exported contracts — how you extend this code

CipherSuite (Interface)
Configures the underlying primitives used in VOPRF [2 implementers]
src/ciphersuite.rs
Group (Interface)
A prime-order subgroup of a base field (EC, prime-order field ...). This subgroup is noted additively — as in the RFC — [2 …
src/group/mod.rs
DigestExt (Interface)
(no doc) [1 implementers]
src/common.rs
SliceExt (Interface)
(no doc) [1 implementers]
src/serialization.rs

Core symbols most depended-on inside this repo

as_dst
called by 15
src/common.rs
deserialize_scalar
called by 11
src/serialization.rs
i2osp_2
called by 10
src/common.rs
finalize
called by 7
src/oprf.rs
evaluate
called by 5
src/oprf.rs
deserialize_elem
called by 5
src/serialization.rs
deterministic_blind_unchecked
called by 4
src/common.rs
finalize
called by 4
src/poprf.rs

Shape

Method 85
Function 71
Class 27
Interface 4
Enum 3

Languages

Rust100%

Modules by API surface

src/poprf.rs37 symbols
src/voprf.rs34 symbols
src/oprf.rs23 symbols
src/common.rs23 symbols
src/tests/test_cfrg_vectors.rs20 symbols
src/group/ristretto.rs13 symbols
src/group/elliptic_curve.rs12 symbols
src/serialization.rs8 symbols
src/tests/mock_rng.rs7 symbols
src/tests/parser.rs5 symbols
src/group/tests.rs3 symbols
src/group/mod.rs2 symbols

For agents

$ claude mcp add voprf \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact