Commit graph

2267 commits

Author SHA1 Message Date
Henry de Valence
724c929130
Merge pull request #35 from DebugSteven/staticsecret
Static secret keys
2019-02-16 13:38:47 -08:00
Henry de Valence
aee783ae82
use clamp_scalar for StaticSecret
This ensures that the `StaticSecret`'s scalar always has the X25519 bit-twiddles applied.

Co-Authored-By: DebugSteven <debugsteven@gmail.com>
2019-02-16 16:31:05 -05:00
Henry de Valence
bcea24308f Fix benchmark 2019-02-16 10:17:15 -08:00
Henry de Valence
e25c72b476 Update README tests and ensure they're run in Travis. 2019-02-16 10:13:39 -08:00
DebugSteven
6797c0969f summarize how types are used & how they relate to one another 2019-02-16 10:57:42 -07:00
DebugSteven
29edaa17ac informative doc comments 2019-02-16 10:22:06 -07:00
DebugSteven
ad670a4d03 methods to convert a StaticSecret to and from bytes 2019-02-16 09:42:56 -07:00
DebugSteven
4caffdcca0 impl StaticSecret & create DH method that borrows our StaticSecret 2019-02-16 09:14:43 -07:00
DebugSteven
9fe535dcc7 rename EphemeralPublic to PublicKey 2019-02-16 08:57:09 -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
Henry de Valence
c6acdfd5e2 Add serial implementation of precomputation. 2019-02-12 12:52:02 -08:00
Henry de Valence
5daff66079 Move cfgs into outer module. 2019-02-12 12:52:02 -08:00
Henry de Valence
00675b4c56 Add benchmarks for precomputed multiscalar multiplication. 2019-02-12 12:52:02 -08:00
Henry de Valence
98e713ef91 Add a trait for multiscalar multiplication with precomputation. 2019-02-12 12:52:02 -08:00
Sean Bowe
d71b6650d6
Check the equality of EdwardsPoints in the projective coordinates to avoid expensive compressions. 2019-02-06 17:45:25 -07:00
Henry de Valence
9c5650113e Merge branch 'master' into develop 2019-02-04 12:37:33 -08:00
Henry de Valence
2a775621b3 Merge branch 'release/0.4.5' 2019-02-04 12:37:14 -08:00
Henry de Valence
89d474ae55 Bump patch version to 0.4.5 2019-02-04 12:31:29 -08:00
Henry de Valence
abff3ddc47
Merge pull request #34 from rozbb/master
Removed "nightly" from default features
2019-02-04 12:30:15 -08:00