Commit graph

95 commits

Author SHA1 Message Date
Michael Rosenberg
b2d0f0ecd7
Bump to rc.1 2023-02-02 17:21:56 -05:00
Michael Rosenberg
1a388f7135
Bump version to 4.0-rc.0 (#501) 2023-01-27 14:14:58 -05:00
Tony Arcieri
8d1bc31805
Rename basepoint-tables to precomputed-tables (#499)
This is the name we adopted for a similar feature in @RustCrypto.

It's a bit less jargony and also leaves the door open in the future to
other types of precomputed tables.
2023-01-19 14:04:22 -05:00
Tony Arcieri
83f6b149d3
Add basepoint-tables crate feature (#489)
* Add `basepoint-tables` crate feature

Feature-gates the inclusion of basepoint tables under a
`basepoint-tables` feature, with the goal of reducing code size for e.g.
embedded applications.

* Add `mul_base` method to `EdwardsPoint` and `RistrettoPoint`

Provides fixed-base scalar multiplication which optionally uses
precomputed basepoint tables when the `basepoint-tables` feature is
enabled, providing 4X better performance.

Falls back on variable-base scalar multiplication in the event the
feature is disabled.

Co-authored-by: Michael Rosenberg <michael@mrosenberg.pub>
2023-01-08 03:51:51 -05:00
Tony Arcieri
7d53206366
Weakly activate zeroize?/alloc; MSRV 1.60 (#485)
Previously `alloc` implicitly activated `zeroize` via `zeroize/alloc`.

This commit switches to weak feature activation as added in Rust 1.60,
only activating `zeroize/alloc` if the `zeroize` dependency is
explicitly activated (which it is by default).
2022-12-27 05:12:55 -05:00
Tony Arcieri
39dbaea6f9
Make zeroize an optional dependency (#481)
* Make `zeroize` an optional dependency

The `zeroize` crate provides a defense against memory read oracles which
typically arise from memory unsafety.

Pure Rust programs may not benefit from `zeroize`, and in certain cases
the unsafe code used by `zeroize` may be more concerning.

This commit makes `zeroize` into an optional feature so users may elect
to disable it if they so desire.

* Added zeroize feature flag to README

Co-authored-by: Michael Rosenberg <michael@mrosenberg.pub>
2022-12-26 16:19:55 -05:00
pinkforest
39053b1c5d Fix docs release pre.5 2022-12-14 11:28:52 +11:00
Michael Rosenberg
b0b22def50
Bumped prerelease version 2022-12-13 17:17:34 -05:00
Michael Rosenberg
87fc5310b8
Added latest changelog entries to readme 2022-12-12 18:03:58 -05:00
Michael Rosenberg
94a99d82f8
README: Removed non-existent features 2022-12-12 03:03:40 -05:00
Michael Rosenberg
f38d677759
Updated CHANGELOG; added stable/beta instructions to README 2022-12-12 02:54:25 -05:00
pinkforest(she/her)
acd78987f9
Document curve25519_dalek_ backend and bits selection (#467)
Co-authored-by: Michael Rosenberg <michael@mrosenberg.pub>
2022-12-11 16:37:50 -05:00
Michael Rosenberg
f5dada3834
Updates to README (#453)
* Restructure README and CHANGELOG
* Explain semver policy
* Specify feature flags and backends more explicitly
* Remove nightly from the CI bc that didn't belong there
* Add @pinkforest to thankyou list

Co-authored-by: pinkforest <36498018+pinkforest@users.noreply.github.com>
2022-12-09 03:30:44 -05:00
pinkforest(she/her)
29466f1b45
Minor documentation fixes (#444)
* Docs unlink from dalek.rs

* Link katex assets to jsdelivr

Co-authored-by: Michael Rosenberg <michael@mrosenberg.pub>
2022-12-07 05:36:07 -05:00
Michael Rosenberg
1ddad1858f
Fixed README image layout and gave the logo the alt text described in #89 2022-11-26 14:11:57 -05:00
pinkforest
ad7c755f49 Documentation migrate to docs.rs hosted
This change migrates all the documentation from dalek.rs
to docs.rs hosted and fixed the backend documentation
generation that was broken.
2022-11-26 11:26:25 +11:00
Tony Arcieri
081f632d91
Implement simplified backend selection (#428)
As proposed in #414, this commit changes the backend selection approach,
introspecting `target_pointer_width` to select `u32_backend` vs
`u64_backend` (or `fiat_u32_backend`/`fiat_u64_backend` if the
`fiat_backend` feature is enabled).

This helps eliminate the use of non-additive features, and also the
rather confusing errors that happen if multiple backends are selected
(i.e. thousands of lines of rustc errors).

The selection logic checks if `target_pointer_width = "64"` and uses the
64-bit backend, or falls back to the 32-bit backend otherwise. This
means the crate will always have a valid backend regardless of the
pointer width, although there may be odd edge cases for exotic platforms
which would optimally use the 64-bit backend but have a non-"64" target
pointer width for whatever reason. We can handle those cases as they
come up.
2022-11-13 12:17:42 -05:00
Michael Rosenberg
51572dae8d
Relax zeroize dependency and bump MSRV (#412) 2022-10-17 15:08:34 -04:00
Isis Lovecruft
c3ed99bf93
Bump curve25519-dalek version to 4.0.0-pre.2. 2022-02-16 21:26:01 +00:00
Isis Lovecruft
f78215308a
Merge branch 'develop' into release/4.0 2022-02-16 20:57:44 +00:00
bitmold
b06df0376c
Update README.md
master -> main
2022-02-01 02:15:31 -05:00
Isis Lovecruft
396d26e463
Merge branch 'develop' into release/4.0 2021-08-03 23:06:58 +00:00
Isis Lovecruft
032a14cfa5
Update README to thank more contributors. 2021-04-14 03:05:51 +00:00
Isis Lovecruft
53b4ed3098
Update CHANGELOG and README for 4.x alpha. 2021-04-14 02:28:21 +00:00
Isis Lovecruft
2ea17d554a
Update CHANGELOG and README; bump to 3.1.0. 2021-04-14 01:30:57 +00:00
Henry de Valence
6d96eb7796 Bump version to 3.0.0. 2020-08-17 18:20:26 -07:00
Henry de Valence
2b51978553 Remove nightly recommendation now that subtle has stable opt barriers.
This bumps the required `subtle` version to `2.2.1`, which contains those changes.
2019-11-15 14:29:14 -08:00
Henry de Valence
1bd18de291 Add note on 2.x breaking changes. 2019-10-25 16:03:45 -07:00
Henry de Valence
8e6b646e64 Remove extern crate instructions.
This is no longer required in Rust 2018, which is the default.
2019-10-25 15:59:19 -07:00
Henry de Valence
be4cbe2af3 Update README.md with 2.x changes. 2019-10-25 15:58:41 -07:00
root
801bbff563 parallel_doc link fix 2019-08-09 16:19:18 +08:00
Henry de Valence
9b4361db8b Finalize 1.0.0 2018-12-13 15:35:32 -08:00
Henry de Valence
18a7fb360a Bump version to 1.0.0-pre.0 2018-11-05 16:15:07 -08:00
Henry de Valence
451636b99d Bump version 2018-09-26 16:17:44 -07:00
Henry de Valence
b0658b05f8 Bump version 2018-09-25 17:21:10 -07:00
Henry de Valence
2c70cf2c8f this was delayed, add it back later 2018-09-25 17:06:04 -07:00
Isis Lovecruft
7ef7de3461
Merge remote-tracking branch 'hdevalence/add-note-on-ffi' into develop 2018-08-10 22:33:14 +00:00
Henry de Valence
47d85103d3 Add note on FFI to README.md
Closes #182.
2018-08-03 11:00:43 -07:00
Henry de Valence
869a464927 Fix unbumped version number
This is too late for the 0.19.0 release (I missed it because I grepped for
"0.18.", and the version in the README doesn't specify a minor version), but it
will now be in line with the other version strings.

When we put out the 1.0.0-pre.0 release we can change both together (our docs
already say we've released it, because we inserted an extra version, oops).
2018-07-27 10:56:07 -07:00
Henry de Valence
8d46eacd2c Clarify wording on the nightly feature and CT
Closes #147
2018-07-16 21:56:28 -07:00
Henry de Valence
ca8c46220b Add safety notes to the README 2018-07-16 21:56:28 -07:00
Henry de Valence
fa904c2c42 Add note on backend selection requirement 2018-07-05 13:39:29 -07:00
Isis Lovecruft
b3da93b069
Clarify README documentation on nightly-only features. 2018-07-04 21:36:57 +00:00
Isis Lovecruft
1b52b4b7b7
Thank Sean Bowe and Daira Hopwood in the README. 2018-07-04 20:59:37 +00:00
Isis Lovecruft
4a54f66a48
Move documentation of yolocrypto feature in README. 2018-07-04 20:54:05 +00:00
Isis Lovecruft
ebf0801dfc
Update warning statement on production readiness in README. 2018-07-04 20:50:22 +00: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
16f39c82e5 Remove yolocrypto from avx2_backend 2018-06-18 13:32:04 -07:00
Isis Lovecruft
337de2a204
Bump curve25519-dalek version to 0.17.0. 2018-05-15 20:39:01 +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