Commit graph

890 commits

Author SHA1 Message Date
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