Skip to content

Commit 4fe745d

Browse files
committed
addional checking for ecvrf_decode_proof
1 parent c5fa4ca commit 4fe745d

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

packages/crypto/src/ecvrf.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,10 @@ fn ecvrf_decode_proof(pi: &[u8]) -> CryptoResult<((Mpz, Mpz), Mpz, Mpz)> {
139139
let c = parse_rev_bytes(&pi[32..48]);
140140
let s = parse_rev_bytes(&pi[48..]);
141141

142+
if s >= *ORDER {
143+
return Err(CryptoError::generic_err("s is out of range"));
144+
}
145+
142146
Ok((gamma, c, s))
143147
}
144148

@@ -790,5 +794,15 @@ mod tests {
790794
).unwrap(),
791795
true
792796
);
797+
assert_eq!(
798+
ecvrf_verify(
799+
&decode("0b6ebe53e0e8665f43a6836fedacf22fb0b19f1136e90bf0e1705c5a1cf06460")
800+
.unwrap(),
801+
&decode("1948c53146fe557db8e0f599a6be574e5b5fb5e8311c9cc26b8bd4added68cc8857cd34925f0b26f9f69e4a03519552898c2998bc0dadff45c5965fb7cb67b9d498bce3ad3c29c60165703d4ce3efa01").unwrap(),
802+
&decode("656366666538303130663636636165393131383865383661646235393532656530626334623538316261663235636535303566646231353363383139643437373a31363634383632393030")
803+
.unwrap(),
804+
).unwrap(),
805+
true
806+
);
793807
}
794808
}

0 commit comments

Comments
 (0)