mirror of
https://github.com/saymrwulf/risc0-curve25519-dalek-source.git
synced 2026-09-04 20:03:40 +00:00
Implement Identity for CompressedEdwardsY
This commit is contained in:
parent
f39566cf16
commit
1dac2f53bb
2 changed files with 16 additions and 3 deletions
15
src/curve.rs
15
src/curve.rs
|
|
@ -218,6 +218,15 @@ pub trait Identity {
|
|||
fn identity() -> Self;
|
||||
}
|
||||
|
||||
impl Identity for CompressedEdwardsY {
|
||||
fn identity() -> CompressedEdwardsY {
|
||||
CompressedEdwardsY([1, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0])
|
||||
}
|
||||
}
|
||||
|
||||
impl Identity for ExtendedPoint {
|
||||
fn identity() -> ExtendedPoint {
|
||||
ExtendedPoint{ X: FieldElement::zero(),
|
||||
|
|
@ -1161,6 +1170,12 @@ mod test {
|
|||
assert!(p2.is_small_order() == false);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_compressed_identity() {
|
||||
assert_eq!(ExtendedPoint::identity().compress(),
|
||||
CompressedEdwardsY::identity());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_is_identity() {
|
||||
assert!(ExtendedPoint::identity().is_identity());
|
||||
|
|
|
|||
|
|
@ -308,9 +308,7 @@ mod test {
|
|||
fn test_decaf_decompress_id() {
|
||||
let compressed_id = CompressedDecaf::identity();
|
||||
let id = compressed_id.decompress().unwrap();
|
||||
// This should compress (as ed25519) to the following:
|
||||
let mut bytes = [0u8; 32]; bytes[0] = 1;
|
||||
assert_eq!(id.0.compress(), CompressedEdwardsY(bytes));
|
||||
assert_eq!(id.0.compress(), CompressedEdwardsY::identity());
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
|||
Loading…
Reference in a new issue