Henry de Valence
dd80421094
Move field constants to constants module
2018-01-03 12:13:52 -08:00
Jean Pierre Dudey
b7376512dd
Update rand >= 0.4
...
Signed-off-by: Jean Pierre Dudey <jeandudey@hotmail.com>
2018-01-03 10:04:40 -04:00
Isis Lovecruft
28f114f127
Combine differential_add and differential_double in Montgomery ladder.
2017-12-24 00:17:15 +00:00
Henry de Valence
9ad2188bb8
Try to get travis working if yolocrypto=>nightly
2017-12-18 15:15:23 -08:00
Henry de Valence
ce68b8d72b
Document bounds yoga in doubling
2017-12-18 14:48:44 -08:00
Henry de Valence
af3c2b2821
Document readdition
2017-12-18 13:58:37 -08:00
Henry de Valence
c0f64009a7
Implement readdition using a CachedPoint type
2017-12-18 11:42:53 -08:00
Tony Arcieri
55e49b436a
Update digest => 0.7, generic_array => 0.9
...
These are the latest releases of these crates.
2017-12-16 13:14:01 -08:00
Henry de Valence
80813e81b1
make diff_sum maskable
2017-12-15 15:24:13 -08:00
Henry de Valence
89753e7274
for some reason stdsimd dep isn't picked up if it's optional
2017-12-15 13:57:01 -08:00
Henry de Valence
0f6171b788
Try to make stdsimd an optional dependency
2017-12-15 13:57:01 -08:00
Henry de Valence
caf296a546
Try to make target_feature work on stable
2017-12-15 13:57:01 -08:00
Henry de Valence
70f710eafe
Use the LookupTable struct in AVX2 code
2017-12-15 13:57:01 -08:00
Henry de Valence
34f44dcf5d
Merge branch 'develop' into feature/avx2_r8
2017-12-15 11:37:10 -08:00
Henry de Valence
ad18f164bd
Merge remote-tracking branch 'origin/develop' into develop
2017-12-15 11:13:37 -08:00
Henry de Valence
640888198e
Eliminate a carry pass through tighter bounds checks
2017-12-14 14:17:34 -08:00
Isis Lovecruft
06d802b986
Merge remote-tracking branch 'hdevalence/feature/clear-memory' into develop
2017-12-13 00:13:17 +00:00
Henry de Valence
d6e93b6383
Merge branch 'feature/clear-memory_r2' into develop
2017-12-08 15:16:55 -08:00
Henry de Valence
a3f53c9134
Refactor select_precomputed_point into a LookupTable struct.
...
Originally this was for hygiene, so that we could erase points from
heap-allocated memory in multiscalar_mult, but it ends up providing a cleaner
API for scalar multiplication.
It's kept inside curve_models for now, but it could go somewhere else if that's a better place.
2017-12-07 12:46:57 -08:00
Henry de Valence
98a78d7a58
Clear scalar digits from memory in multiscalar_mult
2017-12-07 12:34:40 -08:00
Henry de Valence
d62fc7caf1
Rearrange signs to avoid a subtraction
2017-12-07 10:55:33 -08:00
Henry de Valence
1d39d2ec6e
Implement Default for internal point types
2017-12-06 17:30:19 -08:00
Henry de Valence
7d2d87441b
Connect double_scalar_mult_basepoint to AVX2 backend
2017-12-04 11:05:24 -08:00
Henry de Valence
2c29d9a2ad
tweak docs
2017-12-04 10:37:37 -08:00
Henry de Valence
3814beeafe
Fix typo and add note on AVX512VL
2017-12-04 10:37:37 -08:00
Henry de Valence
fbd0e74357
Fix Cargo.toml to use upstream stdsimd
2017-12-04 10:37:37 -08:00
Henry de Valence
bf5e3581d2
Update AVX2 docs
2017-12-04 10:37:37 -08:00
Henry de Valence
1103c5c43a
Implement Sub by pre-negating the point
2017-12-04 10:37:37 -08:00
Henry de Valence
e3579995c0
Add double-base scalar vartime for AVX2
2017-12-04 10:37:37 -08:00
Henry de Valence
9213dc0bbb
Implement point subtraction
2017-12-04 10:37:37 -08:00
Henry de Valence
3094866442
Fix up after Scalar API changes
2017-12-04 10:37:37 -08:00
Henry de Valence
ba071f12aa
Write up notes on the AVX2 backend
2017-12-04 10:37:37 -08:00
Henry de Valence
3d435a1f4f
Fix up tests to use new Scalar API
2017-12-04 10:37:37 -08:00
Henry de Valence
b5305b4e30
Connect multiscalar_mult to the AVX2 backend
2017-12-04 10:37:37 -08:00
Henry de Valence
912fc5d412
Never build avx2 without avx2
2017-12-04 10:37:37 -08:00
Henry de Valence
97fe2f0bf4
Try to connect the AVX2 backend to the ExtendedPoint frontend
2017-12-04 10:37:37 -08:00
Henry de Valence
77766b3422
Add benchmark for conversion to avx2 format
2017-12-04 10:37:37 -08:00
Henry de Valence
208180dc72
Simplify mul, square implementations
2017-12-04 10:37:37 -08:00
Henry de Valence
f28635ab4e
Add a new 'avx2_backend' yolocrypto feature
2017-12-04 10:37:37 -08:00
Henry de Valence
841e0d5b64
Fix wrong feature for benchmarks
2017-12-04 10:37:37 -08:00
Henry de Valence
81ecef89ee
Connect AVX2 and u64 backends
2017-12-04 10:37:37 -08:00
Henry de Valence
ed24d1c5fa
Move AVX2 code into a backend
2017-12-04 10:37:37 -08:00
Henry de Valence
2b37a65d66
Remove debugging code
2017-12-04 10:37:37 -08:00
Henry de Valence
1ba7cb1e2c
Add stub implementations of multiscalar mult
2017-12-04 10:37:37 -08:00
Henry de Valence
7354b569bb
Add 32bit reduction code
2017-12-04 10:37:37 -08:00
Henry de Valence
e7ec5b3dd1
Add basepoint table code
2017-12-04 10:37:37 -08:00
Henry de Valence
34ae1b15e0
Add a squaring implementation
2017-12-04 10:37:37 -08:00
Henry de Valence
2f32f6355c
Add doubling skeleton and scalar mult
2017-12-04 10:37:37 -08:00
Henry de Valence
9e383ffccb
Add doubling test harness
2017-12-04 10:37:37 -08:00
Henry de Valence
e2a2b3a3b5
Add comment to mul draft
2017-12-04 10:37:37 -08:00