Commit graph

769 commits

Author SHA1 Message Date
Henry de Valence
d6b8389428 Use criterion.rs instead of libtest for benchmarks.
Since Criterion can only benchmark public API, these changes just drop
all internal benchmarks (e.g., benchmarks for field operations). But
those are usually microbenchmarks whose meaning is kind of questionable
anyways, so I don't think this is a big loss.

The `bench` feature disappears, since Criterion works on stable Rust.
2018-03-25 17:14:37 -07:00
Henry de Valence
049e338430 Merge branch 'master' into develop 2018-03-22 12:37:41 -07:00
Henry de Valence
ffeb8cfadd Merge branch 'release/0.16.0' 2018-03-22 12:37:09 -07:00
Henry de Valence
ce439458a1 Bump version to 0.16.0 2018-03-22 12:35:41 -07:00
Henry de Valence
c9239f54e9 Merge branch 'fix/warnings' into develop 2018-03-22 12:34:31 -07:00
Henry de Valence
8091609bc1 Merge branch 'fix/avx2-docs' into develop 2018-03-22 12:20:13 -07:00
Henry de Valence
6f9c229e65 Remove Elligator stubs for now, since this isn't the API we want anyways 2018-03-22 12:17:23 -07:00
Henry de Valence
f2e44898ee Suppress warnings about square() on UnpackedScalars 2018-03-22 12:17:23 -07:00
Henry de Valence
0ba5c72122 This variable doesn't need to be mut since it's immediately consumed 2018-03-22 12:17:23 -07:00
Henry de Valence
e73b635fe0 Remove unused constants 2018-03-22 12:17:23 -07:00
Henry de Valence
844da9712b Fix AVX2 docs formatting, remove obsolete AVX512 note 2018-03-22 12:13:39 -07:00
Henry de Valence
d67e895619 Merge branch 'feature/rename-to-multiscalar-mul' into develop 2018-03-22 12:08:49 -07:00
Henry de Valence
132b1a9d77 Merge branch 'feature/ristretto-uniform-hash' into develop 2018-03-22 11:44:52 -07:00
Henry de Valence
7b0e6495e7 Merge branch 'feature/batch-scalar-inversion' into develop 2018-03-22 11:43:31 -07:00
Henry de Valence
2e73b2bc20 Use scalar_mul instead of scalar_mult 2018-03-22 11:40:13 -07:00
Henry de Valence
70eee5208a Rename double_scalar_mult_basepoint to double_scalar_mul_basepoint for consistency 2018-03-22 11:39:47 -07:00
Henry de Valence
296cd16463 Rename mult_by_cofactor to mul_by_cofactor for consistency 2018-03-22 11:36:34 -07:00
Henry de Valence
8de3d7576a Rename mult_by_pow_2 to mul_by_pow_2 for consistency 2018-03-22 11:35:42 -07:00
Henry de Valence
b48d568f47 Add debug_assert that Scalar::batch_invert inputs are nonzero 2018-03-22 11:32:00 -07:00
Henry de Valence
0e7d872ad0 Add batch inversion for Scalars 2018-03-22 11:32:00 -07:00
Henry de Valence
1f0e2d2ed6 Merge branch 'feature/subtle-choice_r1' into develop 2018-03-22 11:20:31 -07:00
Henry de Valence
792ac0775e Change to the updated subtle API. 2018-03-22 11:13:26 -07:00
Henry de Valence
7f39656b4a Apply the Elligator map twice to ensure a uniform distribution
As noted in the Decaf paper, mapping twice and adding the results ensures a
uniform distribution over the group.  This changes our random point and
hash-to-point functions to do this, matching the Sage script.
2018-03-19 15:37:38 -07:00
Henry de Valence
c20e09f6cc Rename multiscalar_mult->multiscalar_mul to match Mul traits 2018-03-19 14:28:21 -07:00
Henry de Valence
fc6672ab43 Merge branch 'fix/missing-avx2-import' into develop 2018-03-19 11:55:11 -07:00
Henry de Valence
c5fcc6602d Fix build for AVX2 backend.
A missing import of the Borrow trait caused the build to break with the
"yolocrypto" feature enabled; this was't caught by CI because the CI machine
that Travis used didn't have AVX2, so the code was never built.

This commit adds the missing import and changes `std` to `core` so that the
AVX2 backend builds with no_std, but this isn't tested and is, actually,
"yolocrypto".
2018-03-19 11:15:52 -07:00
Isis Lovecruft
de90f16994
Merge branch 'feature/dalek-rs-assets' into develop 2018-03-12 19:50:56 +00:00
Isis Lovecruft
c2be44749f
Add a custom docs badge. 2018-03-09 23:59:20 +00:00
Isis Lovecruft
ea66ab469b
Merge remote-tracking branch 'hdevalence/feature/refine-multiscalar-trait-bounds' into develop 2018-03-09 23:21:32 +00:00
Henry de Valence
a271ff907d add link to curve models docs 2018-02-22 15:37:16 -08:00
Henry de Valence
3969d80c89 Add links to dalek.rs 2018-02-21 11:11:17 -08:00
Henry de Valence
2b42966bb4 Load resources from our own domain 2018-02-21 11:03:18 -08:00
Henry de Valence
70f06338f9 Remove docs.rs
docs.rs won't be the authoritative source for docs any more. Also, it won't build our docs properly, because the nightly Rust it uses is too old to support stuff like markdown-included-in-docs :(
2018-02-21 11:01:59 -08:00
Henry de Valence
0f185d3e28 Generalize trait bounds on multiscalar multiplication.
This allows iterators returning either &Scalars or Scalars, so that it's
possible to use map() and friends to adjust scalars as they're being fed into
the multiscalar multiplication.
2018-02-20 18:31:23 -08:00
Henry de Valence
4a4ec74100 Add example to edwards::multiscalar_mult 2018-02-20 17:32:50 -08:00
Henry de Valence
0c1f912b93 Merge branch 'master' into develop 2018-02-06 11:24:43 -08:00
Henry de Valence
ad36709e69 Merge branch 'release/0.15.1' 2018-02-06 11:24:29 -08:00
Henry de Valence
151911bc47 Try to tell docs.rs to build using the "nightly" feature
We need this to put the README.md into the docs, or else the crate description is bare.
2018-02-06 11:19:50 -08:00
Henry de Valence
d5203b1687 Merge branch 'master' into develop 2018-02-06 11:11:44 -08:00
Henry de Valence
0d483d2238 Merge branch 'release/0.15' 2018-02-06 11:10:54 -08:00
Henry de Valence
3fb0ccc68f Bump version to 0.15 2018-02-06 10:56:39 -08:00
Isis Lovecruft
fd5b6c4f05
Merge remote-tracking branch 'hdevalence/feature/refactor-montgomery' into develop 2018-02-05 19:21:31 +00:00
Henry de Valence
6748dddb96 Simplify and optimize Montgomery code.
The `MontgomeryPoint` struct is now a point on the Kummer line of the Montgomery curve.

The `ProjectivePoint` struct is made private, since its only purpose is
internal to the Montgomery ladder.

The Montgomery ladder takes affine input, making it faster, and produces affine output.

The Edwards-Montgomery correspondence is simplified.
2018-02-05 10:40:25 -08:00
Henry de Valence
a4256fd9b1
Merge pull request #106 from isislovecruft/feature/compressed-ristretto-basepoint
Add compressed ristretto basepoint
2018-02-02 21:52:20 +00:00
Isis Lovecruft
b5e664ab16
Add RISTRETTO_BASEPOINT_COMPRESSED constant. 2018-02-02 02:33:51 +00:00
Isis Lovecruft
23bc6ff848
Change README and docs sidebar image to transparent version. 2018-01-31 02:26:28 +00:00
Isis Lovecruft
cd112afff5
Whitespace EOL fixes. 2018-01-31 02:19:53 +00:00
Isis Lovecruft
5f1320bb3b
Merge remote-tracking branch 'hdevalence/feature/refactor-docs' into develop 2018-01-31 02:11:46 +00:00
Isis Lovecruft
f6030dbe85
Merge remote-tracking branch 'hdevalence/feature/fixup-deps' into develop 2018-01-31 01:29:08 +00:00
Henry de Valence
9698435e38 Add note on point validity and "make illegal states unrepresentable".
Remove references to Montgomery conversions, as a prelude to putting the
Montgomery/Edwards conversion docs in the Montgomery module.
2018-01-30 12:31:53 -08:00