Merge remote-tracking branch 'hdevalence/master'

This commit is contained in:
Isis Lovecruft 2016-12-10 00:13:23 +00:00
commit 9630b91a03
Failed to extract signature
2 changed files with 13 additions and 14 deletions

View file

@ -18,9 +18,9 @@ universe's beauty, but also his deep hatred of the Daleks. Rusty destroys the
other Daleks and departs the ship, determined to track down and bring an end
to the Dalek race.*
Significant portions of this code are ported from
[Adam Langley's Golang ed25519 library](https://github.com/agl/ed25519), along
with referencing the ref10 implementation.
Significant portions of this code are ported from [Adam Langley's
Golang ed25519 library](https://github.com/agl/ed25519), which is in
turn a port of the reference `ref10` implementation.
## Warning
@ -52,5 +52,13 @@ Then, in your library or executable source, add:
## TODO
* Implement hashing to a point on the curve.
* Maybe implement Mike Hamburg's Decaf point compression format.
* Implement hashing to a point on the curve (Elligator).
* Add conversion to Montgomery form and rework compressed point types.
* Maybe implement Mike Hamburg's Decaf point compression format, so that
users can be guaranteed to be in a prime-order subgroup and not have to
worry about cofactors.
* Review finite field arithmetic.
* Review scalar arithmetic.
* Review addition formulas.
* Proofread mathematics in documentation.
* Maybe use serde for serialization.

View file

@ -372,15 +372,6 @@ impl ExtendedPoint {
pub fn compress(&self) -> CompressedPoint {
self.to_projective().compress()
}
/// XXX rewrite
/// We only need the x-coordinate of the curve25519 point, which I'll
/// call u. The isomorphism is u=(y+1)/(1-y), since y=Y/Z, this gives
/// u=(Y+Z)/(Z-Y). We know that Z=1, thus u=(Y+1)/(1-Y).
pub fn edwards_to_montgomery_x(&self) -> FieldElement { // edwardsToMontgomeryX
let one = FieldElement::one();
&((&one - &self.Y).invert()) * &(&self.Y + &one)
}
}
impl CompletedPoint {