Isis Lovecruft
4afe4ae37f
Move scalar module benchmarks to separate module.
2017-03-14 01:52:42 +00:00
Isis Lovecruft
cb3b3144be
Remove prefix from field tests.
2017-03-14 01:11:54 +00:00
Isis Lovecruft
904911e2b8
Move field module benchmarks to separate module.
2017-03-14 01:11:03 +00:00
Henry de Valence
cf9f9aa402
Enable radix_51 on nightly
2017-03-13 17:04:37 -07:00
Isis Lovecruft
ba9d3be011
Merge remote-tracking branch 'isislovecruft/develop' into develop
2017-03-13 23:49:13 +00:00
Henry de Valence
f80754a954
Further rename fixups in benchmark test names
2017-03-13 16:38:05 -07:00
Henry de Valence
45cc82d258
Move multiply() into the Mul impl
2017-03-13 16:38:05 -07:00
Henry de Valence
f11c97e75c
Remove obsolete test code
2017-03-13 16:38:05 -07:00
Henry de Valence
d2a51197d7
Add a carry-reduction during subtraction.
2017-03-13 16:38:05 -07:00
Henry de Valence
b75a88458a
Add monte carlo test for FieldElements
2017-03-13 16:38:05 -07:00
Henry de Valence
e1d3281c2d
Add debug asserts for multiplication preconditions.
2017-03-13 16:38:05 -07:00
Henry de Valence
9524c079ee
Reduce mod p in radix51 to_bytes
2017-03-13 16:38:05 -07:00
Henry de Valence
0fa8d8f4a7
Reduce to narrower range before to_bytes
2017-03-13 16:38:05 -07:00
Henry de Valence
24f11427a1
Add 2p to avoid underflows
2017-03-13 16:38:05 -07:00
Henry de Valence
a9cbca668b
Implement squaring for radix51
2017-03-13 16:38:05 -07:00
Henry de Valence
df080411e0
Implement multiply() for radix51
2017-03-13 16:38:05 -07:00
Henry de Valence
d6465ccd5e
Fix remaining compile errors for radix_51
2017-03-13 16:38:05 -07:00
Henry de Valence
147b9d90b8
Revert "Add radix51 impl of reduce"
...
This reverts commit 488e886d1e1b11400dedc6c41e7108e34c6747cc.
2017-03-13 16:38:05 -07:00
Henry de Valence
75baefabeb
Stub remaining radix_51 functions with unimplemented!()
2017-03-13 16:38:05 -07:00
Henry de Valence
b515e43dfd
Move to_bytes_64 to to_bytes for radix51
2017-03-13 16:38:05 -07:00
Henry de Valence
7591c74018
Add radix51 impl of reduce
2017-03-13 16:38:05 -07:00
Henry de Valence
08ac5a9068
Add radix51 impl of from_bytes
2017-03-13 16:38:05 -07:00
Henry de Valence
7f8b3fe594
Rename combine_coeffs to reduce
2017-03-13 16:38:05 -07:00
Henry de Valence
f16f5d1e73
Add minus_one for radix51
2017-03-13 16:38:05 -07:00
Henry de Valence
3eab4acbd8
Add p constant for subtraction
2017-03-13 16:38:05 -07:00
Henry de Valence
08ef9e5d1e
Add constants in radix_51 form
2017-03-13 16:38:05 -07:00
Henry de Valence
4ef22b679c
Implement sub_assign for radix_51
2017-03-13 16:38:05 -07:00
Henry de Valence
87001f9d6e
Add utility for extracting constants in the new repr
2017-03-13 16:38:05 -07:00
Henry de Valence
4db735ca44
Add subtraction stub
2017-03-13 16:38:05 -07:00
Henry de Valence
eb66088cb9
Add to/from bytes for radix 51
2017-03-13 16:38:05 -07:00
Henry de Valence
afd42a4628
More feature-gating
2017-03-13 16:38:05 -07:00
Henry de Valence
a884260341
Add radix_51 and radix_25_5 features and start feature-gating
2017-03-13 16:38:05 -07:00
Henry de Valence
3a55a2f410
Add a test for radix-51 multiplication
2017-03-13 16:36:32 -07:00
Henry de Valence
92bf47f990
Clean up field tests
2017-03-13 16:36:32 -07:00
Henry de Valence
97b60d61ab
draft of 64-bit multiplication
2017-03-13 16:36:32 -07:00
Isis Lovecruft
10fa989883
Print "CompressedEdwardsY" in Debug impl, not "CompressedPoint".
2017-03-13 23:29:13 +00:00
Henry de Valence
2610ab872a
Feature-gate basepoint table creation on a nightly feature
2017-03-13 16:28:52 -07:00
Henry & Isis
049556147f
Add wrapper for basepoint precomputations for decaf
2017-03-13 15:50:44 -07:00
Henry & Isis
c873f725a5
Rename BasepointTable as EdwardsBasepointTable.
2017-03-13 15:50:43 -07:00
Henry & Isis
f312160d2c
Fixup errors introduced from not running yolocrypto tests by default
2017-03-13 15:50:43 -07:00
Henry de Valence
e757959bb8
Add benchmark for basepoint table creation
2017-03-13 15:50:43 -07:00
Henry de Valence
a4ed8e2b81
Use box syntax instead of an unsafe block
2017-03-13 15:50:43 -07:00
Henry de Valence
640f40287f
Wrap the existing basepoint table as a BasepointTable
2017-03-13 15:50:43 -07:00
Henry de Valence
05fa1318b9
First work on dynamic basepoint table generation
2017-03-13 15:50:41 -07:00
Henry & Isis
7a2ea44ce6
Test multiplication by basepoint order
2017-03-13 15:49:18 -07:00
Henry de Valence
80d4566853
Merge remote-tracking branch 'tarcieri/nostd-cleanups' into develop
2017-03-13 15:00:20 -07:00
Isis Lovecruft
65136a202a
Merge remote-tracking branch 'isislovecruft/develop' into develop
2017-03-13 21:52:20 +00:00
Isis Lovecruft
f9c237bd6a
Typo fix in utils module docstring.
2017-03-10 02:36:15 +00:00
Isis Lovecruft
1f871ea0a0
Obsessive whitespace fix.
2017-03-10 02:36:01 +00:00
Isis Lovecruft
2039a66cb3
Fix two decaf unittests to use compress_edwards().
2017-03-10 02:35:38 +00:00
Tony Arcieri
384cf1df31
no_std import cleanups
...
- Gate no_std on the "std" feature
- Import core when std is present
- Import collections when std is absent
- Add a placeholder gated "use" directive for Box in curve.rs
2017-03-08 00:19:08 -08:00
Henry de Valence
ab6d32efe1
Make functions pub to suppress dead code warnings
2017-03-07 23:03:48 -08:00
Henry de Valence
0e9dc1d38d
Remove warnings about unused variables
...
These bindings are shadowed by the later let statements, so they're considered unused.
2017-03-07 23:01:49 -08:00
Henry de Valence
3f208359b3
Merge branch 'feature/test-reorg' into develop
2017-03-07 22:20:22 -08:00
Henry de Valence
b61ed818b8
Remove all remaining warnings
2017-03-07 01:37:31 -08:00
Henry de Valence
913e699145
Rename Decaf tests
2017-03-07 01:28:38 -08:00
Henry de Valence
e446bc8a1f
The identity point is already in EIGHT_TORSION
2017-03-07 00:58:32 -08:00
Henry de Valence
cf24cb8900
Also test points that are not the identity
2017-03-07 00:58:32 -08:00
Henry de Valence
47143e9114
Rewrite conditional assignment test for AffineNielsPoints
2017-03-07 00:58:32 -08:00
Henry de Valence
9414a2f4db
Remove old tests that aren't so useful any more
2017-03-07 00:49:21 -08:00
Henry de Valence
78fe9c490d
Eliminate BASE_CMPRSSD or rename it to constants::BASE_CMPRSSD and do misc cleanup
2017-03-07 00:48:36 -08:00
Henry de Valence
94416eb1cb
Clean decompression_sign_handling
2017-03-07 00:11:47 -08:00
Henry de Valence
b5b0ac7628
Add doc comments to test vectors
2017-03-07 00:11:16 -08:00
Henry de Valence
0585af6c68
Move sqrt(-(A+2)) test to constants.rs
2017-03-07 00:03:59 -08:00
Henry de Valence
3a9ee16a30
Remove test_ prefix from test functions in curve.rs
2017-03-06 23:59:49 -08:00
Henry de Valence
31c350b6f2
Split benchmarks into their own module
2017-03-06 23:53:38 -08:00
Isis Lovecruft
9f0c6c86f3
Change another unittest compress() to compress_edwards().
2017-03-07 01:33:38 +00:00
Henry & Isis
e5f5dea444
Rename to_{cached,precomputed} to to_{projective,affine}_niels
2017-03-05 15:27:26 -08:00
Isis Lovecruft
9171a03894
Merge branch 'feature/rename-compress' into develop
2017-03-04 05:52:57 +00:00
Isis Lovecruft
b81f84bee8
Merge branch 'feature/montgomery-x-format_r1' into develop
2017-03-04 05:48:12 +00:00
Isis Lovecruft
2c83d48cfa
Demote a docstring note to inline code comment to avoid confusing users.
2017-03-04 05:29:19 +00:00
Isis Lovecruft
20ace8da48
Rename compress() to compress_edwards().
2017-03-04 03:41:47 +00:00
Isis Lovecruft
cfd0e8ad6e
Add method for recovery of Edwards x-coordinate given Montgomery (u, v).
...
This function is necessary for matching Signal's hash_to_point() behaviour.
2017-03-04 03:39:58 +00:00
Isis Lovecruft
b9de92aeaf
Add benchmarks for Edwards-Y and Mongomery-U decompression.
2017-03-04 03:39:57 +00:00
Isis Lovecruft
915f41c643
Fixup CompressedMontgomeryU::decompress() and ensure no divide-by-zeroes.
...
Also, match Signal behaviour, and split off recovery of other
coordinates into separate functions.
2017-03-04 03:39:56 +00:00
Isis Lovecruft
5edd8d6d26
Merge remote-tracking branch 'hdevalence/feature/montgomery-x-format_r1' into develop
2017-03-04 02:40:17 +00:00
Isis Lovecruft
1c9637490c
Obsessive whitespace fix.
2017-03-04 02:00:59 +00:00
Henry de Valence
5d3d114628
fixup! Properly handle exceptional points.
2017-02-27 23:15:39 -08:00
Isis Lovecruft
f48947fb57
Merge remote-tracking branch 'hdevalence/feature/some-cleanup-tweaks' into develop
2017-02-28 05:50:22 +00:00
Henry de Valence
db53b58e89
Properly handle exceptional points.
2017-02-27 21:13:24 -08:00
Henry de Valence
19d452c2dc
Test decompressing an invalid montgomery point
2017-02-27 13:42:13 -08:00
Henry de Valence
45fbcb45f6
First notes and code on Montgomery conversion
2017-02-27 13:41:50 -08:00
Henry de Valence
fe15bc1d0b
Add note on fn main() in doctest
2017-02-27 11:22:07 -08:00
Henry de Valence
a93798d209
Add a function to hash a byte slice to a scalar.
2017-02-27 11:19:06 -08:00
Henry de Valence
e5c0d789fd
Add a Scalar::as_bytes() method.
2017-02-26 15:25:05 -08:00
Henry de Valence
950519b97b
Implement Debug for Scalar
2017-02-26 15:25:05 -08:00
Henry de Valence
1dac2f53bb
Implement Identity for CompressedEdwardsY
2017-02-26 15:25:05 -08:00
Henry de Valence
f39566cf16
Change CompressedDecaf::to_bytes to ::as_bytes
2017-02-26 15:25:05 -08:00
Henry de Valence
2cef5fcecd
Add CompressedEdwardsY::as_bytes
2017-02-26 15:25:05 -08:00
Isis Lovecruft
e6b7192d5e
Merge branch 'feature/rename-niels-point' into develop
2017-02-25 01:26:33 +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
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
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