Commit graph

1441 commits

Author SHA1 Message Date
Isis Lovecruft
e6b7192d5e
Merge branch 'feature/rename-niels-point' into develop 2017-02-25 01:26:33 +00:00
Isis Lovecruft
4c5da50359
Merge remote-tracking branch 'hdevalence/feature/ct-invsqrt' into develop 2017-02-25 01:26:09 +00:00
Isis Lovecruft
a649ea38ee
Rename {PreComputed,Cached}Point → {Affine,Projective}NielsPoint.
* FIXES Issue #28: https://github.com/isislovecruft/curve25519-dalek/issues/28
2017-02-25 00:47:06 +00:00
Henry de Valence
d450659b7f Rewrite CompressedEdwardsY::decompress() to use FieldElement::sqrt_ratio 2017-02-22 20:59:51 -08:00
Henry de Valence
1febf3f753 Add an invsqrt_ratio function. 2017-02-22 20:59:50 -08:00
Henry de Valence
a202f36916 Rewrite invsqrt to avoid using an Option type. 2017-02-22 16:24:11 -08:00
Isis Lovecruft
f8139da0b6
We're not so yolo that we're not gonna test. Test yolocrypto by default. 2017-02-22 22:47:55 +00:00
Isis Lovecruft
a1e9f10db2
Merge branch 'master' into develop 2017-02-22 22:36:54 +00:00
Isis Lovecruft
f69c73e83e
Merge branch 'release/0.5.0' 2017-02-22 22:36:45 +00:00
Isis Lovecruft
f0c43ce798
Bump version to 0.5.0. 2017-02-22 22:25:13 +00:00
Isis Lovecruft
74feb0db75
Merge remote-tracking branch 'hdevalence/feature/decaf_r15' into develop 2017-02-22 05:30:18 +00:00
Isis Lovecruft
ff28cacd13
Enable std and std macros during test builds. 2017-02-22 03:07:57 +00:00
Henry de Valence
f93dd4ccf5 Use is_identity() in the torsion subgroup tests.
ht @dconnolly for pointing this out
2017-02-21 15:13:18 -08:00
Henry de Valence
9473299d04 Add benchmarks for Decaf [de]compression 2017-02-21 14:59:25 -08:00
Isis Lovecruft
f168e6c70a
Point to the github repo since that's where issues are. 2017-02-21 21:53:06 +00:00
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
fb7b048ea2
Merge branch 'master' into develop 2017-02-21 21:05:35 +00:00
Isis Lovecruft
d0bc40783b
Merge branch 'release/0.4.0' 2017-02-21 21:05:29 +00:00