mirror of
https://github.com/saymrwulf/curve25519-dalek-source.git
synced 2026-09-08 21:00: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;
|
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 {
|
impl Identity for ExtendedPoint {
|
||||||
fn identity() -> ExtendedPoint {
|
fn identity() -> ExtendedPoint {
|
||||||
ExtendedPoint{ X: FieldElement::zero(),
|
ExtendedPoint{ X: FieldElement::zero(),
|
||||||
|
|
@ -1161,6 +1170,12 @@ mod test {
|
||||||
assert!(p2.is_small_order() == false);
|
assert!(p2.is_small_order() == false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_compressed_identity() {
|
||||||
|
assert_eq!(ExtendedPoint::identity().compress(),
|
||||||
|
CompressedEdwardsY::identity());
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_is_identity() {
|
fn test_is_identity() {
|
||||||
assert!(ExtendedPoint::identity().is_identity());
|
assert!(ExtendedPoint::identity().is_identity());
|
||||||
|
|
|
||||||
|
|
@ -308,9 +308,7 @@ mod test {
|
||||||
fn test_decaf_decompress_id() {
|
fn test_decaf_decompress_id() {
|
||||||
let compressed_id = CompressedDecaf::identity();
|
let compressed_id = CompressedDecaf::identity();
|
||||||
let id = compressed_id.decompress().unwrap();
|
let id = compressed_id.decompress().unwrap();
|
||||||
// This should compress (as ed25519) to the following:
|
assert_eq!(id.0.compress(), CompressedEdwardsY::identity());
|
||||||
let mut bytes = [0u8; 32]; bytes[0] = 1;
|
|
||||||
assert_eq!(id.0.compress(), CompressedEdwardsY(bytes));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue