Commit graph

895 commits

Author SHA1 Message Date
Michael Rosenberg
42e93d7faf
Remove mocks (#460)
Gated random() construtors on cfg(test)
2022-12-08 15:36:22 -05:00
Tony Arcieri
1013560fe4
Remove std feature (#459)
All of the existing usages of `std` can be replaced with `alloc`.

They are legacy usages from before when liballoc was stabilized.
2022-12-08 15:05:59 -05:00
pinkforest(she/her)
6b56edf776
Make digest optional (#446)
As proposed in #442 this makes `digest` an
optional feature that is not covered by the
SemVer public API stability guarantees.

Co-authored-by: Michael Rosenberg <michael@mrosenberg.pub>
2022-12-08 13:59:28 -05:00
pinkforest(she/her)
47a0c3eacc
Make rand_core optional (#447)
As proposed in #442 this makes `rand_core` an
optional feature that is not covered by the
SemVer public API stability guarantees.

Co-authored-by: Michael Rosenberg <michael@mrosenberg.pub>
2022-12-08 13:50:17 -05:00
pinkforest(she/her)
2190332b67
Add target u32/u64 backend override (#454)
As suggested in #453 it is sometimes feasible to
select the backend bits via an override.

This change provides `cfg(curve25519_dalek_bits)`
to override the bits used in serial or fiat target backend.
2022-12-08 11:52:42 -05:00
pinkforest(she/her)
e01bb1bdc6
Fix all clippy warnings replay (#441)
Also fixes CI not running on all branches

Co-authored-by: Anthony Ramine <nox@nox.paris>
2022-12-04 03:40:51 -05:00
Michael Rosenberg
03b8668b29
Merge pull request #440 from dalek-cryptography/docs-cleanup 2022-11-26 22:00:45 -05:00
Chris Beck
840a9dc866
Relax Rng trait bounds to allow ?Sized Rngs (#394)
This allows the code to compile if you pass it `&mut dyn RngType`,
since trait objects are unsized.

See here for an example of caller code that is simplified by this
change:

https://github.com/mobilecoinfoundation/mobilecoin/pull/1977#discussion_r872906913
2022-11-26 20:56:04 -05:00
Michael Rosenberg
01672bfc63
Applied @pinkforest's patch to make make doc build on non-x86_64 arches 2022-11-26 13:53:51 -05:00
Michael Rosenberg
791ba170b1 Cleanup: enabled doc_auto_cfg and doc_cfg_hide 2022-11-26 06:34:48 -05:00
pinkforest
289cc52fef Document backend mod as INTERNALS: 2022-11-26 22:20:18 +11:00
Michael Rosenberg
fec474b1ba Shouldn't have removed stdsimd feature 2022-11-26 05:58:29 -05:00
Michael Rosenberg
774e56e2c1 Removed unnecessary unstable features 2022-11-26 05:54:22 -05:00
Michael Rosenberg
a35ca1e9cf Added cfg_attr everywhere possible, and simplified cfg over std/alloc 2022-11-26 05:53:28 -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
Michael Rosenberg
969940e954
Wibble 2022-11-24 02:37:07 -05:00
Michael Rosenberg
a743ea5348
Fixed doc warnings 2022-11-24 02:37:05 -05:00
Michael Rosenberg
6eafb1ebda
Deprecate EdwardsPoint::hash_from_bytes (#438)
* Deprecated `EdwardsPoint::hash_from_bytes` and renamed to
  `EdwardsPoint::nonspec_map_to_curve`

* Added KAT test vectors for `RistrettoPoint::from_uniform_bytes`
2022-11-24 01:45:03 -05:00
Tony Arcieri
f88cf6836b
Use include_str! for .md inclusion in rustdoc (#434)
Previously a now-removed nightly-only feature was used, but now that
it's stable, `include_str!` can be used for all of these cases.
2022-11-14 00:22:50 -05:00
Tony Arcieri
d05afa02a3
Add alloc feature gates to simd tests that need it (#433) 2022-11-14 00:11:23 -05: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
pinkforest
62fe24e022 Include README.md into the crate Documentation
As proposed in #426 this commit changes to include README.md into
the crate documentation instead of maintaining a carbon copy in
the code.

This helps to keep the documentation in a single place without
duplicating the documentation in multiple places leading to less
errors and out of date documentation.
2022-11-11 22:36:57 +11:00
Thomas Pornin
d687cc8f82
Fix double-and-compress on Ristretto identity (issue #398). (#399) 2022-11-05 11:35:30 -04:00
Michael Rosenberg
d2bf310330
cargo fmt 2022-10-28 17:00:24 -04:00
Michael Rosenberg
a959787c2e
Added more #[rusfmt::skip] 2022-10-28 16:58:40 -04:00
Michael Rosenberg
95b368a431
Whitespace formatting fixes on the [rustfmt::skip] functions 2022-10-28 16:32:45 -04:00
Michael Rosenberg
6d906bb70c
Added #[rustfmt::skip] where necessary 2022-10-28 13:51:20 -04:00
Michael Rosenberg
a32f56ba36
Undid the bad reformatting job from 5758b8c 2022-10-28 13:22:49 -04:00
Michael Rosenberg
8fa201639a
Fix AVX2 and AVX-512 builds (#419)
Build was broken by 5758b8c.
This adds a regression test to CI so it doesn't happen again
2022-10-28 13:10:44 -04:00
Hugo Tunius
c000957bae
Remove byteorder (#418)
Instead of having a dependency on `byteorder`, use methods from the
standard library(`{to,from}_le_bytes`).
2022-10-22 03:42:23 -04:00
Michael Rosenberg
5758b8cce1
Updated to edition 2021 (#413) 2022-10-18 13:45:59 -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
f9f0384aee
Bump sha2 and digest dependencies to 0.10. 2022-02-01 23:48:11 +00:00
Isis Lovecruft
df4e2fa129
Bump alpha curve25519-dalek version to 4.0.0-pre.1. 2021-08-17 00:40:38 +00:00
Isis Lovecruft
9f80197f05
Merge branch 'develop' into release/4.0 2021-08-04 01:09:38 +00:00
Isis Lovecruft
09a726cc8c
Merge branch 'develop' into release/3.2 2021-08-04 00:26:47 +00:00
Isis Lovecruft
2d40d2d923
Merge branch 'main' into develop 2021-08-04 00:24:45 +00:00
Isis Lovecruft
90aab8423c
Update CHANGELOG and bump version to 3.1.2. 2021-08-03 23:33:33 +00:00
Isis Lovecruft
74210d28fc
Update copyright years. 2021-08-03 23:13:45 +00:00
Isis Lovecruft
52986bc3ec
Revert "Update copyright years."
This reverts commit 1491f0db36.

This is due to code which was erroneously deleted during the commit,
due to being based off the wrong version, see
https://github.com/dalek-cryptography/curve25519-dalek/pull/361.
2021-08-03 23:10:35 +00:00
Isis Lovecruft
396d26e463
Merge branch 'develop' into release/4.0 2021-08-03 23:06:58 +00:00
Isis Lovecruft
a7f4f0ec14
Merge branch 'develop' into release/3.2 2021-08-03 23:04:34 +00:00
Isis Lovecruft
9f93a5c0f5
Merge branch 'main' into develop 2021-08-03 22:53:58 +00:00
Isis Lovecruft
b9710d59f2
Minor documentation fixes. 2021-08-03 22:49:09 +00:00
Isis Lovecruft
f8cb7197f9
Fix error introduced in 59a8616 merge. 2021-07-20 03:22:27 +00:00
Isis Lovecruft
fccc5d54f8
Bump version for html_root_url. 2021-07-20 02:56:44 +00:00
Isis Lovecruft
59a8616e7a Release curve25519-dalek version 3.0.3.
-----BEGIN PGP SIGNATURE-----
 
 iQB1BAAWCAAdFiEEOy1KvpA7Nj5/r96Eq0ExNTPo6BIFAmD2LGkACgkQq0ExNTPo6BJcpQD9HeDu
 PNtHRcAA6/OI1rko+PNScTUa4wRFJ9nIov8lXJwA/i/c2k0MX3Gms55wjWhdaTrFgsC+m+6F/Cmq
 xChOaPUN
 =L+SN
 -----END PGP SIGNATURE-----
 
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQB1BAAWCAAdFiEEOy1KvpA7Nj5/r96Eq0ExNTPo6BIFAmD2OpIACgkQq0ExNTPo6BLEHwEAk4Ax
 pUxJ1axcVriU3CrQANmvfJafSUU1HvUF/15HA70A/3uVJUzT5vDdb0CKNhFtar3as/zZw+pimcXb
 KvnrB54G
 =6fZN
 -----END PGP SIGNATURE-----
 

Merge tag '3.0.3' into release/3.1.1

Release curve25519-dalek version 3.0.3.
2021-07-20 02:53:03 +00:00
Isis Lovecruft
6ea874cb31
Bump curve25519-dalek version to 3.0.3. 2021-07-13 06:44:49 +00:00
Isis Lovecruft
dc87de0073 Release curve25519-dalek version 2.1.3.
-----BEGIN PGP SIGNATURE-----
 
 iQB1BAAWCAAdFiEEOy1KvpA7Nj5/r96Eq0ExNTPo6BIFAmDtLDQACgkQq0ExNTPo6BJG2QEAqYkN
 LL4I8XGFs7HiaUmafT5ROWh3J+tl6+1F0dxDfAwA/2N7TFpuBr9Ij9xL9Z1QOxO5Tj3A2pcTsbg3
 f4i/D30B
 =MsLB
 -----END PGP SIGNATURE-----
 
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQB1BAAWCAAdFiEEOy1KvpA7Nj5/r96Eq0ExNTPo6BIFAmDtMT4ACgkQq0ExNTPo6BJoJQD+PHTb
 ol7DCvSX4zr5WP38vrf5kvqg++90SGR0b6rZKxMBAMi1gpV0kaVNsY31bJSVBD89Qi+jcZXcxqkI
 PwVovFAI
 =U/np
 -----END PGP SIGNATURE-----
 

Merge tag '2.1.3' into HEAD

Release curve25519-dalek version 2.1.3.
2021-07-13 06:22:52 +00:00
Isis Lovecruft
ff25109f25
Bump curve25519-dalek version to 2.1.3. 2021-07-13 05:57:44 +00:00