Commit graph

1136 commits

Author SHA1 Message Date
Henry de Valence
dfcac0d8e2 rustfmt and copyright fixes 2019-05-22 11:38:52 -07:00
Oleg Andreev
7fba2a1bcc avoid unnecessary allocation 2019-05-22 11:14:26 -07:00
Oleg Andreev
df745e98a2 oops - forgot to switch on pippenger 2019-05-21 14:10:56 -07:00
Oleg Andreev
33b41ac10d fix type conversions 2019-05-21 13:48:29 -07:00
Oleg Andreev
42648aa460 cgs 2019-05-21 13:32:50 -07:00
Oleg Andreev
b52c2053c1 new pippenger radix 6/7/8 implementation 2019-05-21 12:35:58 -07:00
Henry de Valence
e726147af8
Merge pull request #245 from dalek-cryptography/optimize-variable-base
Save 2.5% on variable-base scmul by squeezing some multiplications.
2019-05-21 08:52:53 -07:00
Henry de Valence
23ca520ac2
Merge pull request #226 from ebfull/faster-equality
Check the equality of `EdwardsPoint`s in the projective coordinates
2019-05-21 08:50:32 -07:00
Henry de Valence
6503378fef Save 2.5% on variable-base scmul by squeezing some multiplications.
This saves 4 point doublings by unwrapping the first loop iteration,
as well as 63 field multiplications (one per iteration) by managing
curve model choice explicitly.
2019-05-08 21:04:13 -07:00
Henry de Valence
076f32686f Merge branch 'master' into develop 2019-05-06 19:11:24 -07:00
Henry de Valence
f630041af2 Merge branch 'release/1.1.4' 2019-05-06 19:11:12 -07:00
Henry de Valence
ea9d7411d5 Bump version to 1.1.4 2019-05-06 19:09:04 -07:00
Henry de Valence
8f02cf5bf8
Merge pull request #244 from dalek-cryptography/fix-typo
Suppress a generated <br> which breaks KaTeX.
2019-05-06 19:04:01 -07:00
Henry de Valence
b52c7ddafe Suppress a generated <br> which breaks KaTeX. 2019-05-06 15:18:16 -07:00
Henry de Valence
e1c56cbf8e
Merge pull request #241 from markblunk/feature/torsion-doc-fix
fix typo in torsion documentation
2019-04-02 14:04:11 -07:00
Mark Blunk
50f46c7685 fix typo in torsion documentation 2019-04-02 14:33:27 -06:00
Henry de Valence
1a3da32e97
Merge pull request #239 from dpc/patch-1
Remove unnecessary trait bound
2019-03-20 23:43:05 -07:00
Dawid Ciężarkiewicz
f612dd9dfa
Remove unnecessary trait bound 2019-03-20 20:30:58 -07:00
Henry de Valence
0fac27bbc4 Merge branch 'master' into develop 2019-02-15 13:48:51 -08:00
Henry de Valence
ca6305232f Merge branch 'release/1.1.3' 2019-02-15 13:48:39 -08:00
Henry de Valence
bd96f25baa Bump patch version 2019-02-15 13:47:16 -08:00
Henry de Valence
d4cc9997ec
Merge pull request #233 from dalek-cryptography/revert-rng-changes-from-219
Revert #219.
2019-02-15 13:44:27 -08:00
Henry de Valence
9a623868c5 Revert #219.
See discussion at https://github.com/dalek-cryptography/curve25519-dalek/issues/232 , copied below:

`1.1` changed the trait bounds for `RistrettoPoint::random` and `Scalar::random`, see #222 and #219.

These changes have two benefits:
* they unlink us from the `rand` crate and make us depend only on `rand_core`;
* they allow passing both owned and borrowed RNGs.

The change was not supposed to be a breaking change, since the new bounds are strictly more general than the old ones (as every `RngCore` is an `Rng` and every `&mut RngCore` is an `RngCore`), so the new bound is satisfied in every situation where the old bound applied.

The `1.1.0-pre.0` version didn't cause problems on the crates I tested it on, but there was an unexpected problem: ce71c93a9a/spacesuit/src/value.rs (L160-L161) broke, since it took a borrow as input and used it twice. So there was slight breakage.

One option is to revert the changes (probably just the ones from #219) and release 1.1.3; another would be to fix up `slingshot` and leave the new bound.
2019-02-15 13:30:05 -08:00
Henry de Valence
d41026e7d9 Merge branch 'master' into develop 2019-02-15 11:45:40 -08:00
Henry de Valence
a95c5040d6 Merge branch 'release/1.1.1' 2019-02-15 11:45:20 -08:00
Henry de Valence
96796e620e Bump patch version 2019-02-15 11:32:54 -08:00
Henry de Valence
64c542ec84 Bump patch version 2019-02-15 11:20:25 -08:00
Henry de Valence
b8c62ec4b4 Attempt to fix cfg(rustdoc) on docs.rs
Building the docs currently doesn't work, because rustdoc enables parts of the
code (to document them) which then don't check (because there are missing
exports or dependencies).  This **should** fix the issue, but there's no way to
test without publishing a new version.
2019-02-15 11:18:25 -08:00
Henry de Valence
77b4c7b30d Merge branch 'master' into develop 2019-02-15 10:12:56 -08:00
Henry de Valence
99de6a7039 Merge branch 'release/1.1.0' 2019-02-15 10:12:48 -08:00
Henry de Valence
ad838ecd73 Remove -pre.0; reword CHANGELOG entries. 2019-02-15 10:11:18 -08:00
Henry de Valence
b29943e7da Merge branch 'master' into develop 2019-02-14 14:51:16 -08:00
Henry de Valence
8b2742cb9d Merge branch 'release/1.1.0-pre.0' 2019-02-14 14:51:03 -08:00
Henry de Valence
a35adbef84 Bump version number to 1.1.0-pre.0 2019-02-14 14:49:36 -08:00
Henry de Valence
a38b77b965 Add a changelog. 2019-02-14 14:44:49 -08:00
Henry de Valence
a67accd635 Merge branch 'burdges-rng_ref' into develop 2019-02-14 14:38:26 -08:00
Henry de Valence
66b38ce5fc Merge branch 'rng_ref' of git://github.com/burdges/curve25519-dalek into burdges-rng_ref 2019-02-14 14:38:14 -08:00
Henry de Valence
63c19c1dcd Merge branch 'newpavlov-rand_core' into develop 2019-02-14 14:31:28 -08:00
Henry de Valence
cf7a1a4a0f Merge branch 'rand_core' of git://github.com/newpavlov/curve25519-dalek into newpavlov-rand_core 2019-02-14 14:29:58 -08:00
Henry de Valence
a1123e7cd3
Merge pull request #230 from hdevalence/updated-precomputation
Multiscalar multiplication with precomputation.
2019-02-14 12:18:29 -08:00
Henry de Valence
47967b49f0 Use rerandomized inputs for variable-time benchmarks.
This avoids potentially misleading benchmark results where the memory cost of
precomputation becomes "free" as re-running the benchmark loop lifts exactly
the required table entries into the highest-level caches.
2019-02-14 09:38:09 -08:00
Henry de Valence
2c3629b30e Add a separate benchmark for pure-fixed multiscalar mul. 2019-02-14 07:16:20 -08:00
Henry de Valence
092ff52cb0 Remove constant-time multiscalar precomputation.
This doesn't (yet) give any speedup over the non-precomputed multiscalar
multiplication, and it's not clear that it's a good idea to commit to
supporting it in the future.  Removing it means that it's not committed-to as
part of the public API, but the source is still there in the tree if we want to
revisit it later.
2019-02-13 12:26:31 -08:00
Henry de Valence
73eee8a1da
Merge pull request #231 from hdevalence/fix-to-monty-doc
Fix comment on Montgomery conversion.
2019-02-12 19:31:42 -08:00
Henry de Valence
96df60895f Fix comment on Montgomery conversion.
Closes #213.
2019-02-12 19:30:18 -08:00
Henry de Valence
27daa5215e Add Ristretto precomputation facade. 2019-02-12 12:52:02 -08:00
Henry de Valence
8adcfb7fa3 Simplify length checking. 2019-02-12 12:52:02 -08:00
Henry de Valence
727ba86292 Rework the vartime precomputation trait to be Option-al 2019-02-12 12:52:02 -08:00
Henry de Valence
e693d7f020 fixup AVX2 ascii blocks so they don't run as doctests 2019-02-12 12:52:02 -08:00
Henry de Valence
8b0ad2b03d Add vector implementation of precomputation. 2019-02-12 12:52:02 -08:00