Henry de Valence
dd8f17dfb3
Add note on feature-gating
2017-02-21 13:43:10 -08:00
Henry de Valence
95bf09a335
Check xy is nonnegative, y nonzero in decoding.
2017-02-21 13:43:09 -08:00
Henry de Valence
5daa217b18
Fix sign error
2017-02-21 13:43:09 -08:00
Henry de Valence
6b3dbf6870
Add another test and some notes
2017-02-21 13:43:09 -08:00
Henry de Valence
93be83c6df
Check that s = |s| in decompression.
2017-02-21 13:43:09 -08:00
Henry de Valence
9cb48c44ba
Use conditional_negate in Decaf
2017-02-21 13:43:03 -08:00
Henry & Isis
c2bee88c0f
Add a feature gate for unfinished implementations.
2017-02-21 13:39:01 -08:00
Henry & Isis
ea5efcdc29
Add impl of Identity for DecafPoint and CompressedDecaf
2017-02-21 13:39:00 -08:00
Henry & Isis
f06afbc493
Add a coset4 function for debugging
2017-02-21 13:39:00 -08:00
Henry & Isis
375d326e75
Change some tests to use new API
2017-02-21 13:39:00 -08:00
Henry & Isis
db17dc4b78
Add Eq implementation for DecafPoint
2017-02-21 13:39:00 -08:00
Henry & Isis
bf19df64f0
Add ScalarMult and BasepointMult impls for DecafPoint
2017-02-21 13:39:00 -08:00
Henry & Isis
084c29c4ed
Implement addition and subtraction for DecafPoint.
2017-02-21 13:39:00 -08:00
Henry & Isis
f52e2ee37e
Create BasepointMult and ScalarMult traits.
2017-02-21 13:38:59 -08:00
Henry de Valence
66e598a47c
Minor doc tweaks
2017-02-21 13:38:59 -08:00
Henry de Valence
0992237233
XY is a misleading variable name, use T instead
2017-02-21 13:38:59 -08:00
Henry de Valence
ec82e7a4f4
Create a DecafPoint struct, wrapping an ExtendedPoint
2017-02-21 13:38:59 -08:00
Henry de Valence
08fc10f356
Rename DecafPoint -> CompressedDecaf
2017-02-21 13:38:59 -08:00
Henry de Valence
eec7747be7
Move Decaf code to decaf.rs
2017-02-21 13:38:59 -08:00
Henry de Valence
f18ebe9430
First draft of decaf decompression
2017-02-21 13:38:58 -08:00
Henry de Valence
a415caa9fb
Add a seperate invsqrt function.
...
This code isn't constant-time, but maybe should be. However that would
prevent a bunch of nice things (e.g., Option types). Probably good to
think about this.
2017-02-21 13:38:58 -08:00
Henry de Valence
ee5958c407
Add is_[non]negative_decaf functions.
...
Computes whether a point is nonnegative in the same way as Mike Hamburg's code.
2017-02-21 13:37:50 -08:00
Henry de Valence
3fc5f75300
Rename is_negative to is_negative_ed25519
2017-02-21 13:23:57 -08:00
Henry de Valence
5720e249ab
Add constants for points of the eight-torsion subgroup.
2017-02-21 13:23:57 -08:00
Henry de Valence
ee5ea0a013
Make double functions public
2017-02-21 13:23:11 -08:00
Henry de Valence
dd23a48ade
Make ExtendedPoint attrs pub as we need them in constants.rs
2017-02-21 13:23:11 -08:00
Henry de Valence
82041c2c67
Add constant for bytes of (p-1)/2.
2017-02-21 13:23:11 -08:00
Henry de Valence
363ea405d4
Add constant for a-d = -1-d
2017-02-21 13:23:11 -08:00
Henry de Valence
6fd3028956
Add constant for 4*d
2017-02-21 13:23:10 -08:00
Henry de Valence
fb0c431184
Add constant for MSQRT_M1, equal to -SQRT_M1
2017-02-21 13:23:10 -08:00
Henry de Valence
e1feb653be
Add constant value of 1/2 (mod p)
2017-02-21 13:23:10 -08:00
Henry de Valence
79afc6bd0f
Add debugging checks to test if points are on the curve
2017-02-21 13:23:10 -08:00
Henry de Valence
cb4ff3097c
Add FieldElement::is_zero()
2017-02-21 13:23:10 -08:00
Isis Lovecruft
d0bc40783b
Merge branch 'release/0.4.0'
2017-02-21 21:05:29 +00:00
Isis Lovecruft
44e7d500db
Remove unused import of PartialEq and Eq in curve module.
2017-02-21 21:01:58 +00:00
Isis Lovecruft
78701d5441
Bump version to 0.4.0.
2017-02-21 20:59:17 +00:00
Isis Lovecruft
1dac334b84
Whitespace fix.
2017-02-21 20:59:04 +00:00
Isis Lovecruft
a6850f8e82
Fix version number in install instructions in README.
2017-02-21 06:15:48 +00:00
Isis Lovecruft
e4d041836e
Move load3 and load4 to new utils module and remove #[allow(dead_code)].
2017-02-21 06:15:08 +00:00
Isis Lovecruft
4b738c7e19
Remove #[allow(dead_code)] from arrays_equal_ct().
2017-02-21 06:06:16 +00:00
Isis Lovecruft
6f67a7d716
Rename util module to subtle.
...
* CHANGE subtle module documentation slightly to clarify the module's purpose.
* FIXES issue #25 .
2017-02-21 06:01:22 +00:00
Isis Lovecruft
aad1d1751a
Merge branch 'feature/9-vxeddsa-functionality_r2' into develop
2017-02-21 05:50:12 +00:00
Isis Lovecruft
3eb5dcaae7
Implement CTEq for ExtendedPoint.
2017-02-21 05:45:37 +00:00
Isis Lovecruft
b1afdf5204
Implement CTEq for FieldElement.
2017-02-21 05:44:35 +00:00
Isis Lovecruft
5308fef210
Add CTEq trait and implement it for Scalar.
2017-02-21 05:44:35 +00:00
Isis Lovecruft
1381e07ffb
Implement a method for determining if an element is the identity.
...
This corresponds to ge_isneutral() in Open Whispersystems' ed25519 library.
2017-02-21 05:43:20 +00:00
Isis Lovecruft
03589dff43
Add method for determining if an ExtendedPoint is of small order.
2017-02-21 05:41:16 +00:00
Isis Lovecruft
7b57be69fd
Implement constant time equality check for scalars.
2017-02-21 05:41:14 +00:00
Isis Lovecruft
32da4c7d50
Implement Neg for Scalar.
2017-02-21 05:41:14 +00:00
Isis Lovecruft
51f59565f5
Typo fix; Negateable → Negatable.
...
* Fixup on #22 .
2017-02-21 04:15:15 +00:00