Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6e16a99a87 |
+5
-1
@@ -1,6 +1,10 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
## 0.4.0-pre.2 (April 5, 2022)
|
## 0.4.0-pre.3 (July 1, 2022)
|
||||||
|
* Updated to be in sync with draft-irtf-cfrg-voprf-10, with
|
||||||
|
the only difference from -09 being a constant string change
|
||||||
|
|
||||||
|
## 0.4.0-pre.2 (April 21, 2022)
|
||||||
* Exposes the derive_key function under the "danger" feature
|
* Exposes the derive_key function under the "danger" feature
|
||||||
|
|
||||||
## 0.4.0-pre.1 (April 1, 2022)
|
## 0.4.0-pre.1 (April 1, 2022)
|
||||||
|
|||||||
+3
-3
@@ -9,7 +9,7 @@ name = "voprf"
|
|||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
repository = "https://github.com/novifinancial/voprf/"
|
repository = "https://github.com/novifinancial/voprf/"
|
||||||
rust-version = "1.57"
|
rust-version = "1.57"
|
||||||
version = "0.4.0-pre.2"
|
version = "0.4.0-pre.3"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
alloc = []
|
alloc = []
|
||||||
@@ -30,7 +30,7 @@ curve25519-dalek = { version = "=4.0.0-pre.1", default-features = false, optiona
|
|||||||
derive-where = { version = "=1.0.0-rc.3", features = ["zeroize-on-drop"] }
|
derive-where = { version = "=1.0.0-rc.3", features = ["zeroize-on-drop"] }
|
||||||
digest = "0.10"
|
digest = "0.10"
|
||||||
displaydoc = { version = "0.2", default-features = false }
|
displaydoc = { version = "0.2", default-features = false }
|
||||||
elliptic-curve = { version = "=0.12.0-pre.1", features = [
|
elliptic-curve = { version = "0.12", features = [
|
||||||
"hash2curve",
|
"hash2curve",
|
||||||
"sec1",
|
"sec1",
|
||||||
"voprf",
|
"voprf",
|
||||||
@@ -48,7 +48,7 @@ zeroize = { version = "1.5", default-features = false }
|
|||||||
generic-array = { version = "0.14", features = ["more_lengths"] }
|
generic-array = { version = "0.14", features = ["more_lengths"] }
|
||||||
hex = "0.4"
|
hex = "0.4"
|
||||||
json = "0.12"
|
json = "0.12"
|
||||||
p256 = { version = "=0.11.0-pre.0", default-features = false, features = [
|
p256 = { version = "0.11", default-features = false, features = [
|
||||||
"hash2curve",
|
"hash2curve",
|
||||||
"voprf",
|
"voprf",
|
||||||
] }
|
] }
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ Installation
|
|||||||
Add the following line to the dependencies of your `Cargo.toml`:
|
Add the following line to the dependencies of your `Cargo.toml`:
|
||||||
|
|
||||||
```
|
```
|
||||||
voprf = "0.4.0-pre.2"
|
voprf = "0.4.0-pre.3"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Minimum Supported Rust Version
|
### Minimum Supported Rust Version
|
||||||
|
|||||||
+4
-4
@@ -33,7 +33,7 @@ pub(crate) const STR_DERIVE_KEYPAIR: [u8; 13] = *b"DeriveKeyPair";
|
|||||||
pub(crate) const STR_COMPOSITE: [u8; 9] = *b"Composite";
|
pub(crate) const STR_COMPOSITE: [u8; 9] = *b"Composite";
|
||||||
pub(crate) const STR_CHALLENGE: [u8; 9] = *b"Challenge";
|
pub(crate) const STR_CHALLENGE: [u8; 9] = *b"Challenge";
|
||||||
pub(crate) const STR_INFO: [u8; 4] = *b"Info";
|
pub(crate) const STR_INFO: [u8; 4] = *b"Info";
|
||||||
pub(crate) const STR_VOPRF: [u8; 8] = *b"VOPRF09-";
|
pub(crate) const STR_VOPRF: [u8; 8] = *b"VOPRF10-";
|
||||||
pub(crate) const STR_HASH_TO_SCALAR: [u8; 13] = *b"HashToScalar-";
|
pub(crate) const STR_HASH_TO_SCALAR: [u8; 13] = *b"HashToScalar-";
|
||||||
pub(crate) const STR_HASH_TO_GROUP: [u8; 12] = *b"HashToGroup-";
|
pub(crate) const STR_HASH_TO_GROUP: [u8; 12] = *b"HashToGroup-";
|
||||||
|
|
||||||
@@ -153,7 +153,7 @@ where
|
|||||||
<CS::Hash as OutputSizeUser>::OutputSize:
|
<CS::Hash as OutputSizeUser>::OutputSize:
|
||||||
IsLess<U256> + IsLessOrEqual<<CS::Hash as BlockSizeUser>::BlockSize>,
|
IsLess<U256> + IsLessOrEqual<<CS::Hash as BlockSizeUser>::BlockSize>,
|
||||||
{
|
{
|
||||||
// https://www.ietf.org/archive/id/draft-irtf-cfrg-voprf-09.html#section-2.2.1
|
// https://www.ietf.org/archive/id/draft-irtf-cfrg-voprf-10.html#section-2.2.1
|
||||||
|
|
||||||
let (m, z) = compute_composites::<CS, _, _>(Some(k), b, cs, ds, mode)?;
|
let (m, z) = compute_composites::<CS, _, _>(Some(k), b, cs, ds, mode)?;
|
||||||
|
|
||||||
@@ -216,7 +216,7 @@ where
|
|||||||
<CS::Hash as OutputSizeUser>::OutputSize:
|
<CS::Hash as OutputSizeUser>::OutputSize:
|
||||||
IsLess<U256> + IsLessOrEqual<<CS::Hash as BlockSizeUser>::BlockSize>,
|
IsLess<U256> + IsLessOrEqual<<CS::Hash as BlockSizeUser>::BlockSize>,
|
||||||
{
|
{
|
||||||
// https://www.ietf.org/archive/id/draft-irtf-cfrg-voprf-09.html#section-2.2.2
|
// https://www.ietf.org/archive/id/draft-irtf-cfrg-voprf-10.html#section-2.2.2
|
||||||
let (m, z) = compute_composites::<CS, _, _>(None, b, cs, ds, mode)?;
|
let (m, z) = compute_composites::<CS, _, _>(None, b, cs, ds, mode)?;
|
||||||
let t2 = (a * &proof.s_scalar) + &(b * &proof.c_scalar);
|
let t2 = (a * &proof.s_scalar) + &(b * &proof.c_scalar);
|
||||||
let t3 = (m * &proof.s_scalar) + &(z * &proof.c_scalar);
|
let t3 = (m * &proof.s_scalar) + &(z * &proof.c_scalar);
|
||||||
@@ -285,7 +285,7 @@ where
|
|||||||
<CS::Hash as OutputSizeUser>::OutputSize:
|
<CS::Hash as OutputSizeUser>::OutputSize:
|
||||||
IsLess<U256> + IsLessOrEqual<<CS::Hash as BlockSizeUser>::BlockSize>,
|
IsLess<U256> + IsLessOrEqual<<CS::Hash as BlockSizeUser>::BlockSize>,
|
||||||
{
|
{
|
||||||
// https://www.ietf.org/archive/id/draft-irtf-cfrg-voprf-09.html#section-2.2.1
|
// https://www.ietf.org/archive/id/draft-irtf-cfrg-voprf-10.html#section-2.2.1
|
||||||
|
|
||||||
let elem_len = <CS::Group as Group>::ElemLen::U16.to_be_bytes();
|
let elem_len = <CS::Group as Group>::ElemLen::U16.to_be_bytes();
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -8,7 +8,7 @@
|
|||||||
//! An implementation of a verifiable oblivious pseudorandom function (VOPRF)
|
//! An implementation of a verifiable oblivious pseudorandom function (VOPRF)
|
||||||
//!
|
//!
|
||||||
//! Note: This implementation is in sync with
|
//! Note: This implementation is in sync with
|
||||||
//! [draft-irtf-cfrg-voprf-09](https://www.ietf.org/archive/id/draft-irtf-cfrg-voprf-09.html),
|
//! [draft-irtf-cfrg-voprf-10](https://www.ietf.org/archive/id/draft-irtf-cfrg-voprf-10.html),
|
||||||
//! but this specification is subject to change, until the final version
|
//! but this specification is subject to change, until the final version
|
||||||
//! published by the IETF.
|
//! published by the IETF.
|
||||||
//!
|
//!
|
||||||
@@ -430,7 +430,7 @@
|
|||||||
//! The API for POPRF mode is similar to VOPRF mode, except that a [PoprfServer]
|
//! The API for POPRF mode is similar to VOPRF mode, except that a [PoprfServer]
|
||||||
//! and [PoprfClient] are used, and that each of the functions accept an
|
//! and [PoprfClient] are used, and that each of the functions accept an
|
||||||
//! additional (and optional) info parameter which represents the public input.
|
//! additional (and optional) info parameter which represents the public input.
|
||||||
//! See <https://www.ietf.org/archive/id/draft-irtf-cfrg-voprf-09.html#name-poprf-public-input>
|
//! See <https://www.ietf.org/archive/id/draft-irtf-cfrg-voprf-10.html#name-poprf-public-input>
|
||||||
//! for more detailed information on how this public input should be used.
|
//! for more detailed information on how this public input should be used.
|
||||||
//!
|
//!
|
||||||
//! # Features
|
//! # Features
|
||||||
|
|||||||
+634
-634
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user