Isis Lovecruft
3dbfad2f7a
Update rand dependency to 0.5.
2018-07-04 20:16:31 +00:00
Henry de Valence
ce3595f642
Merge pull request #151 from ebfull/fix-mont-constant-comment
...
Fix adjustment factor comment
2018-07-02 14:14:10 -07:00
Sean Bowe
61d6d89cd8
Fix comment describing Montgomery adjustment factor's value.
2018-07-02 10:41:45 -06:00
Henry de Valence
2ea2d8e381
Merge branch 'master' into develop
2018-06-22 12:27:23 -07:00
Henry de Valence
3a5aef7eea
Merge branch 'release/0.18.0'
2018-06-22 12:27:14 -07:00
Henry de Valence
28b7ed5709
Change version to 0.18.0 (since feature flags changed)
2018-06-22 12:24:20 -07:00
Henry de Valence
3d14343d61
Merge pull request #146 from hdevalence/refactor-avx2
...
Refactor AVX2 code and remove its "yolocrypto" designation
2018-06-21 16:39:48 -07:00
Henry de Valence
791506a29f
Add avx2_backend to make doc FEATURES
2018-06-21 12:01:09 -07:00
Henry de Valence
16f39c82e5
Remove yolocrypto from avx2_backend
2018-06-18 13:32:04 -07:00
Henry de Valence
d791047aac
Rewrite notes and documentation.
2018-06-18 13:22:03 -07:00
Henry de Valence
15f97221ba
Suppress extraneous warnings
2018-06-15 13:44:31 -07:00
Henry de Valence
7198719419
Document bounds on FieldElement32x4 functions
2018-06-15 13:36:38 -07:00
Henry de Valence
9f5bd8c4c0
Rename reduce32 to reduce and have it return its result.
...
This means that all FieldElement32x4 operations return values, vs mutating interior state.
2018-06-14 15:54:36 -07:00
Henry de Valence
bab1ebbeb8
Replace scale_by_curve_constants by a Mul<(u32,u32,u32,u32)> impl
2018-06-14 15:42:20 -07:00
Henry de Valence
6ef9e9dcfb
Make publicity a little more consistent
2018-06-14 15:22:16 -07:00
Henry de Valence
97292fef91
Move packing functions to top of the module
2018-06-14 15:21:51 -07:00
Henry de Valence
4dc219910a
Move blend_lanes into the blend function
2018-06-14 15:13:53 -07:00
Henry de Valence
64b1b481ba
Rewrite diff_sum in terms of shuffle, blend, negate
2018-06-14 14:59:11 -07:00
Henry de Valence
fe51adad31
Don't expose u32x8 unpacking functions
2018-06-14 14:32:13 -07:00
Henry de Valence
c46ec9638c
Add documentation
2018-06-14 14:23:24 -07:00
Henry de Valence
eea3eadf5b
Replace special-case swap_{AB,CD} methods with general shuffles
2018-06-14 14:23:24 -07:00
Henry de Valence
02296fafb5
Delete unused constant
2018-06-14 14:23:24 -07:00
Henry de Valence
25d9f3f6ca
Eliminate vector constants from edwards module
2018-06-14 14:23:24 -07:00
Henry de Valence
cc8728b2a6
Add comment about rustc-constant-info to blend function
2018-06-14 14:23:24 -07:00
Henry de Valence
28f10bc183
Change Lanes::ALL to Lanes::ABCD for consistency
2018-06-14 14:23:24 -07:00
Henry de Valence
794ed5c8e3
Rewrite the doubling horrorshow
2018-06-14 14:23:24 -07:00
Henry de Valence
30a2b01c05
Add more selectors to the Lanes enum
2018-06-14 14:19:46 -07:00
Henry de Valence
64cb999866
Make platform-vector lanes constants private
2018-06-14 14:19:26 -07:00
Henry de Valence
00d8b6ea4f
Change negate_D, negate_D_lazy to impl Neg, negate_lazy
2018-06-14 14:17:36 -07:00
Henry de Valence
14ce6d3da6
Add a shuffling abstraction for FieldElement32x4
2018-06-14 14:10:37 -07:00
Henry de Valence
c8dc2a6418
Implement addition for FieldElement32x4
2018-06-14 14:10:32 -07:00
Henry de Valence
bd1e3c5f3e
some rustfmt changes
2018-06-14 14:05:52 -07:00
Henry de Valence
d29618ca2e
Merge pull request #145 from tarcieri/rand-0-5
...
Upgrade rand to (non-pre)release version 0.5
2018-06-03 11:47:26 -07:00
Tony Arcieri
42430f1a1f
Upgrade rand to (non-pre)release version 0.5
...
It was previously using pre-release version 0.5.0-pre.2
2018-06-02 11:17:10 -07:00
Isis Lovecruft
3b825e7a32
Merge branch 'master' into develop
2018-05-15 20:59:24 +00:00
Isis Lovecruft
32288e8625
Merge branch 'release/0.17.0'
2018-05-15 20:59:23 +00:00
Isis Lovecruft
337de2a204
Bump curve25519-dalek version to 0.17.0.
2018-05-15 20:39:01 +00:00
Isis Lovecruft
9a89a217f8
Merge remote-tracking branch 'dalek/multiscalar-trait-without-precomputation_r1' into develop
2018-05-15 20:23:05 +00:00
Isis Lovecruft
325cdcad2a
Merge remote-tracking branch 'dalek/rand-0.5' into develop
2018-05-15 20:21:01 +00:00
Henry de Valence
bbb64312f7
Use rand 0.5
...
Requires `0.5.0-pre.2`, which adds `impl CryptoRng for OsRng`.
2018-05-15 12:30:28 -07:00
Henry de Valence
bab642c5af
Add doc comments
2018-05-15 11:33:38 -07:00
Henry de Valence
2eed24109e
Move double-base scmul to the EdwardsPoint type
2018-05-15 11:33:38 -07:00
Henry de Valence
149c5004e8
Use multiscalar traits for the backend implementations.
2018-05-15 11:33:38 -07:00
Henry de Valence
e3bf9b0213
Add MultiscalarMul and VartimeMultiscalarMul traits.
...
These traits have the same interface, but with different names, so that it's
not possible to use them interchangeably. (Constant-time and variable-time
routines should not be used interchangeably).
This commit changes the external API to use these traits, replacing
```
edwards::multiscalar_mul
edwards::vartime::multiscalar_mul
```
with
```
EdwardsPoint::multiscalar_mul (as an impl)
EdwardsPoint::vartime_multiscalar_mul (as an impl)
```
and similarly for Ristretto.
Refactoring the backend is for a later commit.
Multiscalar multiplication with precomputation is for a later commit.
The `edwards::vartime` module is retained since it's used for
`vartime_double_base_scalar_mul`.
It should be subsumed into the precomputation API in a later commit.
2018-05-15 11:33:38 -07:00
Isis Lovecruft
83280ca181
Fix travis no_std builds after merging #143 .
2018-05-15 02:56:29 +00:00
Isis Lovecruft
32b561013f
Merge remote-tracking branch 'dalek/select-backend-in-build.rs' into develop
2018-05-15 02:27:41 +00:00
Henry de Valence
34c43c20a9
Rework backend selection code.
...
Each backend can now be selected by an individual feature:
- `u32_backend` for `backend::u32`;
- `u64_backend` for `backend::u64`;
- `avx2_backend` for `backend::avx2`;
The `u64_backend` is selected by default, since most people use X64 and we have
no way to select based on target (see discussion in #126 ). However, these
changes mean that it is possible to select the backend explicitly, and if we
had the ability to select target-default features, we could do so easily.
2018-05-14 17:43:54 -07:00
Henry de Valence
9b6c932635
Rename 'precomputed_tables' to the more accurate 'stage2_build'
2018-05-14 15:41:45 -07:00
Henry de Valence
615095817b
Merge branch 'master' into develop
2018-05-10 17:50:33 -07:00
Henry de Valence
696e965c39
Merge branch 'release/0.16.4'
2018-05-10 17:50:17 -07:00