Commit graph

105 commits

Author SHA1 Message Date
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
Isis Lovecruft
9154e59ec1
Merge remote-tracking branch 'hdevalence/feature/conditional-negation' into develop 2017-02-21 04:13:29 +00:00
Isis Lovecruft
8c432ef78a
Another obsessive compulsive whitespace fix. 2017-02-21 01:46:01 +00:00
Henry de Valence
dc5621f527 Use conditional_negate in select_precomputed_point 2017-02-20 15:30:59 -08:00
Henry de Valence
8a1c13ef49 Make a CTNegateable trait with a generic impl for better ergonomics 2017-02-20 15:30:59 -08:00
Henry de Valence
5f4de0074d Add a conditional negation function. 2017-02-20 15:30:59 -08:00
Isis Lovecruft
57884ecefa
Merge remote-tracking branch 'hdevalence/feature/derive-eq-partialeq-compressededwardsy' into develop 2017-02-20 02:14:37 +00:00
Isis Lovecruft
90cbe8b0e0
Merge remote-tracking branch 'tarcieri/categories' into develop 2017-02-20 02:00:35 +00:00
Isis Lovecruft
5f70ab55f8
Obsessive compulsive whitespace fix. 2017-02-20 01:58:56 +00:00
Henry de Valence
eaa5d3e595 Derive Eq, PartialEq for CompressedEdwardsY 2017-02-19 17:39:48 -05:00
Tony Arcieri
90baaba591 Add "cryptography" and "no-std" categories 2017-02-14 08:34:24 -08:00
Isis Lovecruft
46d2ee0520
Merge branch 'master' into develop 2017-01-27 02:31:14 +00:00
Isis Lovecruft
7034a875bd
Merge branch 'release/0.3.0' 2017-01-27 02:31:04 +00:00
Isis Lovecruft
7d434f2d37
Bump curve25519-dalek version to 0.3.0 in Cargo.toml. 2017-01-27 02:23:10 +00:00
Isis Lovecruft
1e7199dcc4
Remove now unused core::clone::Clone from scalar. 2017-01-27 02:16:30 +00:00
Isis Lovecruft
366e9029bf
Rename a CompressedPoint from #17 to CompressedEdwardsY (from #6). 2017-01-27 02:15:31 +00:00
Isis Lovecruft
d88b6c01c4
Merge remote-tracking branch 'tarcieri/no-std' into develop 2017-01-27 02:13:04 +00:00
Isis Lovecruft
d4cccbc4d8
Whitespace cleanup in constants module. 2017-01-27 01:38:56 +00:00
Isis Lovecruft
0c14f58797
Merge remote-tracking branch 'burdges/patch-1' into develop 2017-01-27 00:40:32 +00:00
Isis Lovecruft
8c986fb3da
Allow non-snakecase in constants.
We follow the standard mathematical naming convention of lowercase to
denote affine coordinates and uppercase to for projective.
2017-01-27 00:34:38 +00:00
Isis Lovecruft
3f900e60bd
Change CompressedPoint in constants module to CompressedEdwardsY. 2017-01-27 00:33:59 +00:00