Skip to content

Commit 68cc7d3

Browse files
authored
Test P-521 (#127)
1 parent 59e3fed commit 68cc7d3

File tree

7 files changed

+63
-0
lines changed

7 files changed

+63
-0
lines changed

Cargo.toml

+4
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ p384 = { version = "0.13", default-features = false, features = [
5353
"hash2curve",
5454
"voprf",
5555
] }
56+
p521 = { version = "0.13.3", default-features = false, features = [
57+
"hash2curve",
58+
"voprf",
59+
] }
5660
proptest = "1"
5761
rand = "0.8"
5862
regex = "1"

src/group/tests.rs

+4
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ use crate::{Error, Group, Result};
1717
fn test_group_properties() -> Result<()> {
1818
use p256::NistP256;
1919
use p384::NistP384;
20+
use p521::NistP521;
2021

2122
#[cfg(feature = "ristretto255")]
2223
{
@@ -32,6 +33,9 @@ fn test_group_properties() -> Result<()> {
3233
test_identity_element_error::<NistP384>()?;
3334
test_zero_scalar_error::<NistP384>()?;
3435

36+
test_identity_element_error::<NistP521>()?;
37+
test_zero_scalar_error::<NistP521>()?;
38+
3539
Ok(())
3640
}
3741

src/oprf.rs

+8
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,7 @@ mod tests {
427427
fn test_functionality() -> Result<()> {
428428
use p256::NistP256;
429429
use p384::NistP384;
430+
use p521::NistP521;
430431

431432
#[cfg(feature = "ristretto255")]
432433
{
@@ -454,6 +455,13 @@ mod tests {
454455
zeroize_oprf_client::<NistP384>();
455456
zeroize_oprf_server::<NistP384>();
456457

458+
base_retrieval::<NistP521>();
459+
base_inversion_unsalted::<NistP521>();
460+
server_evaluate::<NistP521>();
461+
462+
zeroize_oprf_client::<NistP521>();
463+
zeroize_oprf_server::<NistP521>();
464+
457465
Ok(())
458466
}
459467
}

src/poprf.rs

+8
Original file line numberDiff line numberDiff line change
@@ -967,6 +967,7 @@ mod tests {
967967
fn test_functionality() -> Result<()> {
968968
use p256::NistP256;
969969
use p384::NistP384;
970+
use p521::NistP521;
970971

971972
#[cfg(feature = "ristretto255")]
972973
{
@@ -994,6 +995,13 @@ mod tests {
994995
zeroize_verifiable_client::<NistP384>();
995996
zeroize_verifiable_server::<NistP384>();
996997

998+
verifiable_retrieval::<NistP521>();
999+
verifiable_bad_public_key::<NistP521>();
1000+
verifiable_server_evaluate::<NistP521>();
1001+
1002+
zeroize_verifiable_client::<NistP521>();
1003+
zeroize_verifiable_server::<NistP521>();
1004+
9971005
Ok(())
9981006
}
9991007
}

src/serialization.rs

+1
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,7 @@ mod test {
391391

392392
let _ = $item::<p256::NistP256>::deserialize(&$bytes[..]);
393393
let _ = $item::<p384::NistP384>::deserialize(&$bytes[..]);
394+
let _ = $item::<p521::NistP521>::deserialize(&$bytes[..]);
394395
};
395396
}
396397

src/tests/test_cfrg_vectors.rs

+28
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ macro_rules! json_to_test_vectors {
8989
fn test_vectors() -> Result<()> {
9090
use p256::NistP256;
9191
use p384::NistP384;
92+
use p521::NistP521;
9293

9394
let rfc: Value = serde_json::from_str(rfc_to_json(super::cfrg_vectors::VECTORS).as_str())
9495
.expect("Could not parse json");
@@ -188,6 +189,33 @@ fn test_vectors() -> Result<()> {
188189
test_poprf_finalize::<NistP384>(&p384_poprf_tvs)?;
189190
test_poprf_evaluate::<NistP384>(&p384_poprf_tvs)?;
190191

192+
let p521_oprf_tvs =
193+
json_to_test_vectors!(rfc, String::from("P521-SHA512"), String::from("OPRF"));
194+
assert_ne!(p521_oprf_tvs.len(), 0);
195+
test_oprf_seed_to_key::<NistP521>(&p521_oprf_tvs)?;
196+
test_oprf_blind::<NistP521>(&p521_oprf_tvs)?;
197+
test_oprf_blind_evaluate::<NistP521>(&p521_oprf_tvs)?;
198+
test_oprf_finalize::<NistP521>(&p521_oprf_tvs)?;
199+
test_oprf_evaluate::<NistP521>(&p521_oprf_tvs)?;
200+
201+
let p521_voprf_tvs =
202+
json_to_test_vectors!(rfc, String::from("P521-SHA512"), String::from("VOPRF"));
203+
assert_ne!(p521_voprf_tvs.len(), 0);
204+
test_voprf_seed_to_key::<NistP521>(&p521_voprf_tvs)?;
205+
test_voprf_blind::<NistP521>(&p521_voprf_tvs)?;
206+
test_voprf_blind_evaluate::<NistP521>(&p521_voprf_tvs)?;
207+
test_voprf_finalize::<NistP521>(&p521_voprf_tvs)?;
208+
test_voprf_evaluate::<NistP521>(&p521_voprf_tvs)?;
209+
210+
let p521_poprf_tvs =
211+
json_to_test_vectors!(rfc, String::from("P521-SHA512"), String::from("POPRF"));
212+
assert_ne!(p521_poprf_tvs.len(), 0);
213+
test_poprf_seed_to_key::<NistP521>(&p521_poprf_tvs)?;
214+
test_poprf_blind::<NistP521>(&p521_poprf_tvs)?;
215+
test_poprf_blind_evaluate::<NistP521>(&p521_poprf_tvs)?;
216+
test_poprf_finalize::<NistP521>(&p521_poprf_tvs)?;
217+
test_poprf_evaluate::<NistP521>(&p521_poprf_tvs)?;
218+
191219
Ok(())
192220
}
193221

src/voprf.rs

+10
Original file line numberDiff line numberDiff line change
@@ -836,6 +836,7 @@ mod tests {
836836
fn test_functionality() -> Result<()> {
837837
use p256::NistP256;
838838
use p384::NistP384;
839+
use p521::NistP521;
839840

840841
#[cfg(feature = "ristretto255")]
841842
{
@@ -869,6 +870,15 @@ mod tests {
869870
zeroize_voprf_client::<NistP384>();
870871
zeroize_voprf_server::<NistP384>();
871872

873+
verifiable_retrieval::<NistP521>();
874+
verifiable_batch_retrieval::<NistP521>();
875+
verifiable_bad_public_key::<NistP521>();
876+
verifiable_batch_bad_public_key::<NistP521>();
877+
verifiable_server_evaluate::<NistP521>();
878+
879+
zeroize_voprf_client::<NistP521>();
880+
zeroize_voprf_server::<NistP521>();
881+
872882
Ok(())
873883
}
874884
}

0 commit comments

Comments
 (0)