Commit graph

2309 commits

Author SHA1 Message Date
Ruben De Smet
3a61a0b70c Make Scalar::from_bits a const fn.
const_fn is stable since Rust 1.31
(https://github.com/rust-lang/rust/pull/54835) and enables calling
`Scalar::from_bits(..)` from other const fn contexts, potentially
saving some overhead here and there.

Especially useful in contexts where constants are being built from a bit
pattern.
2020-05-28 10:28:28 +02:00
Tony Arcieri
6e0667d429 Use ed25519 + signature interop crates
The `signature` crate provides `Signer` and `Verifier` traits generic
over signature types:

https://github.com/RustCrypto/traits/tree/master/signature

There's presently an open call to stabilize the parts of its API needed
by Ed25519 signatures and release a 1.0 version:

https://github.com/RustCrypto/traits/issues/78

The `ed25519` crate, based on the `signature` crate, provides an
`ed25519::Signature` type which can be shared across multiple Ed25519
crates (e.g. it is also used by the `yubihsm` crate):

https://github.com/RustCrypto/signatures/tree/master/ed25519

This commit integrates the `ed25519::Signature` type, and changes the
existing `sign` and `verify` methods (where applicable) to use the
`Signer` and `Verifier` traits from the `signature` crate. Additionally,
it replaces `SignatureError` with the `signature` crate's error type.

This has the drawback of requiring the `Signer` and/or `Verifier` traits
are in scope in order to create and/or verify signatures, but with the
benefit of supporting interoperability with other Ed25519 crates which
also make use of these traits.
2020-04-20 09:15:10 -07:00
François Garillot
aa38c6419d
Updates the merlin dependency to ^2 and the correct repo
This fixes the "batch" feature, see #126.
2020-04-16 20:48:49 -07:00
gedigi
c9fe6c5533 implemented Zeroize for CompressedRistretto and RistrettoPoint 2020-03-19 14:16:06 -07:00
Henry de Valence
5115951681
Merge pull request #55 from huitseeker/bump-criterion
Bump criterion version
2020-03-06 09:10:35 -08:00
François Garillot
be420d4ffc
Bump criterion version 2020-03-04 22:35:33 -05:00
Henry de Valence
9753fe4528
Merge pull request #316 from huitseeker/bump-criterion
Bump criterion version
2020-03-02 09:50:11 -08:00
Henry de Valence
59b1a42bed
Merge pull request #318 from Fiono11/new_branch
Derive of Hash trait to CompressedRistretto, CompressedEdwardsY, MontgomeryPoint, and Scalar
2020-03-02 09:39:51 -08:00
Rui Morais
6a8e466063 add derive Hash to Scalar, MontgomeryPoint and CompressedEdwardsY 2020-02-25 22:39:19 +00:00
Henry de Valence
ebb4981232
Merge pull request #54 from tarcieri/readme/crypto_box
README.md: Add "See also" section with link to `crypto_box` crate
2020-02-25 13:30:39 -08:00
Tony Arcieri
bdc6412faa README.md: Add "See also" section with link to crypto_box crate
The `crypto_box` crate provides a pure Rust implementation of the
public-key authenticated encryption primitive from NaCl which combines
X25519 + XSalsa20Poly1305 (a.k.a. "Curve25519XSalsa20Poly1305")

This commit adds a link to it case x25519-dalek users are interested in
using it as part of a hybrid cryptosystem.
2020-02-25 12:14:41 -08:00
Rui Morais
d57fb6caeb Derive of Hash trait to CompressedRistretto 2020-02-25 18:16:06 +00:00
François Garillot
7b1363a964
Bump criterion version 2020-02-24 14:24:49 -05:00
phayes
2dad99a60e
Removing double 2020-02-23 07:32:45 -08:00
NikVolf
dedbb9b96a fix alloc feature 2020-02-22 15:10:21 +03:00
Isis Lovecruft
dc7e411d9a
Merge branch 'main' into develop 2020-02-07 11:33:45 +00:00
Isis Lovecruft
eb827d5779
Pin zeroize dependency to =1.3.0 to maintain MSRV 1.41. 2020-02-07 11:31:41 +00:00
Isis Lovecruft
4d0af53ccf
Merge branch 'feature/github-ci-nightlies' into main 2020-02-07 11:28:00 +00:00
Isis Lovecruft
ee0c6baa45
Add Github action to test with nightly compilers. 2021-09-23 21:13:26 +00:00
James Munns
3d9d11dcdf Add additional visitor methods for deserialization 2020-01-13 00:59:08 +01:00
Isis Lovecruft
e82910d215
Add test for basepoint table multiplication by unreduced scalar. 2020-01-07 08:06:27 +00:00
Isis Lovecruft
1f8a19a753
Fix an attempted overflow on absolute value computation for radix-256 tables.
Found by the fuzzer in 4f5d2d4.
2020-01-07 08:04:46 +00:00
Isis Lovecruft
ca1f730790
Fix debug_assert! range in Scalar::to_radix_2w_size_hint(). 2020-01-03 23:56:30 +00:00
Isis Lovecruft
c01bd780dc
Implement radix-32 precomputed scalar multiplication tables. 2019-12-31 02:26:03 +00:00
Isis Lovecruft
cfbcb6ca61
Implement conversions between basepoint table sizes.
This is useful for programs/protocol which can do some heuristics or
learning-based approach towards optimising the table size based on the number of
uses of e.g. a public key, the second basepoint in a Pedersen commitment, etc.,
i.e. the first time a public key is used to verify a signature, the usual
variable-time basepoint multiscalar multiplication is used, however after 1000
verifications, the table size is upgraded, and again after 10000 verifications,
etc.
2019-12-31 02:26:03 +00:00
Isis Lovecruft
8a9e09ba34
Implement larger sizes of basepoint tables.
This implements a macro for implementing the BasepointTable trait, and
uses the macro to create basepoint table types. The default table
still uses radix-16 representation and is ~30KB in size.  The new
table types, and their memory usage and additions required per
basepoint multiplication are:

 * `EdwardsBasepointTableRadix64`: ~120KB, 43 additions
 * `EdwardsBasepointTableRadix128`: ~240KB, 37 additions
 * `EdwardsBasepointTableRadix256`: ~480KB, 32 additions
2019-12-31 02:26:03 +00:00
Isis Lovecruft
383e65f6bd
Add a trait for implementing a basepoint table. 2019-12-27 12:54:52 +00:00
Isis Lovecruft
4f29935c2c
Create macro for generating different sized LookupTable<T>s. 2019-12-27 12:49:32 +00:00
Isis Lovecruft
3a9101933b
Enable serde/std if std is enabled.
* FIXES part of https://github.com/dalek-cryptography/ed25519-dalek/pull/107
2019-12-11 23:14:29 +00:00
isis agora lovecruft
2ed9fa932d
Merge pull request #107 from cbeck88/serde_no_std
Use `default-features = false` with `serde`
2019-12-11 23:11:24 +00:00
Isis Lovecruft
8a2e9af9d6
Fix breakage on builds with the rand crate disabled.
* CLOSES https://github.com/dalek-cryptography/ed25519-dalek/issues/108
 * THANKS TO @tarcieri
2019-12-11 23:02:44 +00:00
Isis Lovecruft
af15a0e553
Merge remote-tracking branch 'dalek/develop' into develop 2019-12-11 22:49:06 +00:00
Isis Lovecruft
9363690191
Fix outdated docstring for verify_batch(). 2019-12-11 22:48:33 +00:00
Henry de Valence
6a44f31702 Revert "Merge pull request #296 from isislovecruft/feature/compressed-try-from"
This reverts commit 46f56f91ee, reversing
changes made to a9b1d50c5a.

These changes are not semver-compatible with the 2.0.0 release.
2019-12-10 14:16:24 -08:00
Chris Beck
0a191a86f6 Use default-features = false with serde
It doesn't appear to me that ed25519-dalek crate needs any of the std-related
features of serde. But it turns them on anyways because it doesn't put
`default-features = false`.

This breaks no_std builds. Otherwise I think we could use 1.0.0-pre3 in mobilecoin.
I'm going to test this revision in our build and see if I'm right. I don't think
this is a breaking change from dalek's point of view.
2019-12-10 13:30:56 -08:00
isis agora lovecruft
7c38546f97
Merge pull request #106 from isislovecruft/feature/zeroize
Switch to using zeroize rather than clear_on_drop.
2019-12-10 20:37:30 +00:00
Isis Lovecruft
7e2aed3943
Fix typo of Pippenger's name. 2019-12-10 20:33:53 +00:00
Isis Lovecruft
8ca3be99e9
Switch to using zeroize rather than clear_on_drop. 2019-12-09 22:39:57 +00:00
Isis Lovecruft
7db743bd43
Merge branch 'master' into develop 2019-12-07 01:25:10 +00:00
Isis Lovecruft
36a51acbf0
Merge branch 'release/1.0.0-pre.3' 2019-12-07 01:24:30 +00:00
Isis Lovecruft
29a06e494d
Bump ed25519-dalek version to 1.0.0-pre.3. 2019-12-06 23:42:52 +00:00
Isis Lovecruft
52a7fc88b6
Update README w.r.t. new features, malleability, synthethic randomness. 2019-11-27 22:26:58 +00:00
Isis Lovecruft
b5ffcdf3ac
Merge branch 'feature/batch_deterministic' into develop 2019-11-26 23:06:14 +00:00
Isis Lovecruft
1be2a65777
Maybe I should try compiling my code before showing other cryptographers?
lol
2019-11-26 22:57:24 +00:00
Isis Lovecruft
8938069053
Update curve25519-dalek dependency to 2.0.0. 2019-11-26 22:54:53 +00:00
Henry de Valence
52050e4e10 Merge branch 'master' into develop 2019-11-26 14:05:18 -08:00
Henry de Valence
ecd6be6748 Merge branch 'release/0.6' 2019-11-26 14:05:10 -08:00
Henry de Valence
d9c7f2814e Bump version to 0.6.0 and update CHANGELOG. 2019-11-26 14:03:08 -08:00
Henry de Valence
d588e2fd18
Merge pull request #52 from DebugSteven/bump-rand
Bump rand_core Version
2019-11-26 13:56:19 -08:00
isis agora lovecruft
46f56f91ee
Merge pull request #296 from isislovecruft/feature/compressed-try-from
Impl TryFrom<&[u8]> for all compressed point types.
2019-11-26 21:43:29 +00:00