#oblivious #verifiable #client-server #rfc #protocols #oprf #non-verifiable

no-std voprf

An implementation of a verifiable oblivious pseudorandom function (VOPRF)

17 releases

0.5.0 Mar 7, 2024
0.5.0-pre.6 Jul 25, 2023
0.5.0-pre.3 Mar 4, 2023
0.5.0-pre.1 Dec 19, 2022
0.3.0 Oct 26, 2021

#468 in Cryptography

Download history 813/week @ 2023-12-22 1479/week @ 2023-12-29 2588/week @ 2024-01-05 2570/week @ 2024-01-12 2398/week @ 2024-01-19 3266/week @ 2024-01-26 2632/week @ 2024-02-02 2819/week @ 2024-02-09 1747/week @ 2024-02-16 2255/week @ 2024-02-23 2097/week @ 2024-03-01 1661/week @ 2024-03-08 2078/week @ 2024-03-15 1787/week @ 2024-03-22 2496/week @ 2024-03-29 2293/week @ 2024-04-05

9,007 downloads per month
Used in 5 crates (via opaque-ke)

MIT license

235KB
4.5K SLoC

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.

Dependencies

~2.3–4MB
~86K SLoC