Isis Lovecruft
2e5363c679
Cleanup verification variable declarations.
2018-07-15 22:04:55 +00:00
Isis Lovecruft
cdbc302da7
Fix a couple docstrings which mentioned r instead of R.
2018-07-15 21:51:23 +00:00
Isis Lovecruft
5c26349b6c
Derive Eq, PartialEq for Signature.
2018-07-15 21:50:20 +00:00
Isis Lovecruft
80075a0b41
Cleanup signing code to use new dalek APIs and Rust syntax.
2018-07-15 21:41:44 +00:00
Henry de Valence
030eff547f
Make verify return a Result.
...
This also simplifies the verification logic. Because the verification check
happens in variable time, we don't need to do a constant-time eq check at the
end, so we can drop the `subtle` dependency entirely.
The `DecodingError` type becomes `SignatureError` and is also used to
signal failing verifications.
2018-07-15 13:07:58 -07:00
Isis Lovecruft
fad39851aa
Add doctests for sign_prehashed() and verify_prehashed().
2018-07-13 23:07:07 +00:00
Isis Lovecruft
68d2ff93f5
Implement ed25519ph from RFC8032 §5.1.
...
* FIXES #21 : https://github.com/dalek-cryptography/ed25519-dalek/issues/21
2018-07-13 23:06:39 +00:00
Isis Lovecruft
9d58954578
Avoid compressing R twice.
2018-07-12 21:47:52 +00:00
Isis Lovecruft
164303eeac
Switch to using criterion for benchmarks.
2018-07-11 22:46:32 +00:00
Isis Lovecruft
a7c318da6e
Fix benchmarks to use new rand_core traits.
2018-05-30 21:01:21 +00:00
Isis Lovecruft
47c1d869ec
Make key generation work with no_std.
2018-05-16 22:09:31 +00:00
Isis Lovecruft
f6a631c229
WIP Update curve25519-dalek dependency to 0.17.
2018-05-15 23:34:01 +00:00
Isis Lovecruft
f790bd2ce1
Update subtle and curve25519-dalek dependencies.
2018-03-26 02:13:39 +00:00
Isis Lovecruft
e648c641cc
Fix typo in benchmark variable name.
2018-02-02 22:17:01 +00:00
Isis Lovecruft
08a5fc34ae
Fix serde expecting() string for Keypair.
2018-01-26 22:19:55 +00:00
Isis Lovecruft
36399cb1ad
Merge remote-tracking branch 'chain/feature/pubkey_no_std' into develop
2018-01-20 02:51:02 +00:00
Isis Lovecruft
04c8574106
Bump versions for several dependencies.
2018-01-20 02:49:34 +00:00
Isis Lovecruft
c7b69c6562
Expand boats' error types to give more detailed reasons for failures.
...
This code was significantly based off without boats' error types in
commit 6c1acaca7c , and also upon
conversation with them. Please target them with praise, and blame me
for whatever mistakes I might have made.
2017-12-24 00:16:52 +00:00
Oleg Andreev
f64b20b351
Do not require feature=std for PublicKey::from_secret
2017-12-12 15:41:39 -08:00
Isis Lovecruft
510a1f89c0
Merge remote-tracking branch 'withoutboats/custom-error-type' into develop
2017-12-09 02:12:39 +00:00
Without Boats
6c1acaca7c
Use failure instead of std::error::Error.
...
failure is no_std compatible, whereas std::error::Error is not.
2017-12-06 15:25:12 -08:00
Without Boats
b5b295e414
Use a custom error type instead of &'static str.
...
Advantages of a custom error type:
- It can be more easily integrated into other error types by clients;
they can implement From<FromBytesError> for their error types, or
they can use a library like failure.
- It is a zero-sized type, which can enable some representational
optimizations.
- It can be easier and more stable to test for.
2017-12-05 18:13:43 -08:00
Isis Lovecruft
9d89e2f660
Upgrade to using curve25519-dalek-0.14.0.
2017-12-04 17:47:06 +00:00
Isis Lovecruft
65b7a21062
Make the Keypair struct inherit repr(C).
2017-12-04 00:50:39 +00:00
Isis Lovecruft
7888bfe3f8
Fix serde expecting string.
2017-12-04 00:50:17 +00:00
Isis Lovecruft
8d0dda0847
Implement serde serialisation support and pre-expanded secret keys.
...
* ADD support for serialisation with serde.
* ADD a new pre-expanded secret key type, `ExpandedSecretKey`.
* FIXES Issue #13 :
https://github.com/isislovecruft/ed25519-dalek/issues/13
2017-11-06 03:51:07 +00:00
Isis Lovecruft
e9cd9a2264
Changes for bumping curve25519-dalek dependency to 0.12.0.
2017-10-05 07:03:35 +00:00
Isis Lovecruft
3596e5ec87
Add licence.
2017-10-05 06:19:55 +00:00
Isis Lovecruft
e706b35d92
Merge remote-tracking branch 'greyspectrum/license-typo' into develop
2017-10-05 06:12:03 +00:00
Zaki Manian
8accff36b3
Replaces the depracted rustc_serialize with hex
2017-10-05 05:20:24 +00:00
greyspectrum
52ecf1669e
Fix a small typo in the license url.
2017-09-06 13:31:52 -04:00
Isis Lovecruft
039533d349
Add additional benchmark for further comparison with ed25519-donna.
...
ed25519-donna includes a "curved25519_scalarmult_basepoint" [sic]
function. See https://github.com/isislovecruft/dalek-benchmarks .
2017-08-16 04:19:04 +00:00
Isis Lovecruft
07dc9f4ba7
Bump curve25519-dalek dependency to 0.11.0.
2017-08-15 05:30:53 +00:00
Isis Lovecruft
27753235ae
Upgrade curve25519-dalek, generic-array, and digest dependencies.
...
As well as adding a dependency on subtle and upgrading dev-dependency sha2.
2017-08-01 18:05:58 +00:00
Isis Lovecruft
df3834c03d
Change SecretKey bytes to only include the secret, not also public, key.
2017-08-01 06:23:46 +00:00
Isis Lovecruft
99d3426569
Refactor to use new curve25519-dalek APIs.
2017-05-14 10:57:59 +00:00
Isis Lovecruft
a195249468
Switch to using new digest v0.5 API.
2017-05-08 07:54:56 +00:00
Isis Lovecruft
0e535a9318
The sha2 dependency is only for tests.
2017-03-15 22:34:46 +00:00
Isis Lovecruft
a6e74ba608
Use b"" instead of "".as_bytes().
2017-03-15 22:34:06 +00:00
Isis Lovecruft
054e9ce6b8
Remove blake2b benchmarks.
2017-03-15 19:09:15 +00:00
Isis Lovecruft
b188516b22
Remove unused import digest::Digest from bench module.
2017-03-15 19:07:21 +00:00
Isis Lovecruft
645d4e0d8c
The sha2 crate is no longer a required dependency.
2017-03-15 19:01:03 +00:00
Isis Lovecruft
89d246ec15
Rearrange extern crates.
2017-03-15 18:57:03 +00:00
Isis Lovecruft
e869d14387
Fix doctests to specify hash function choice.
2017-03-15 18:56:24 +00:00
Isis Lovecruft
394d1face2
Remove the ZeroDigest from the benchmark suite.
...
It turns out that testing scalar_mult_vartime() on all zeroes is fast.
2017-03-15 18:53:48 +00:00
Isis Lovecruft
5e84eedfbb
Add benchmarks with blake2b.
2017-03-15 18:44:59 +00:00
Isis Lovecruft
f1dd165208
Use array_ref! for getting digest during signing.
2017-03-15 18:42:58 +00:00
Isis Lovecruft
e4c085706c
Make signing generic to hash function choice.
2017-03-14 23:54:43 +00:00
Isis Lovecruft
aa6e0a4324
Benchmark signing/verifying blank messages.
2017-03-14 23:53:53 +00:00
Isis Lovecruft
1e2fa1025e
Implement a ZeroDigest for use in benchmarks.
2017-03-14 23:53:53 +00:00
Isis Lovecruft
03f20fdae3
ZeroRng in benchmarks doesn't need to be public.
2017-03-14 23:43:50 +00:00
Isis Lovecruft
b1105618e7
Make verification dependent on hash function.
2017-03-14 23:43:02 +00:00
Isis Lovecruft
b5531c1257
Remove test_ prefix from test functions.
2017-03-14 23:19:38 +00:00
Isis Lovecruft
4eaa1321ee
Feature gate rand on nightly.
...
We can't use features on non-nightly channels.
2017-03-14 23:15:59 +00:00
Isis Lovecruft
d00c3f9f3c
Make all the doctests actually run.
2017-03-14 21:50:17 +00:00
Isis Lovecruft
5a30f4eb0f
Make from_bytes() for keys public.
2017-03-14 21:49:07 +00:00
Isis Lovecruft
807d52f655
Refuse to compile if documentation is missing.
2017-03-14 21:39:28 +00:00
Isis Lovecruft
85b0cd933c
Split off benchmarks into separate module and require --features=bench.
...
This allows us to compile (and test) on the rustc stable and beta channels.
Benchmarking is only available on nightly, with the --features=bench flag.
2017-03-14 21:37:46 +00:00
Isis Lovecruft
304d591756
Make key generation generic to hash function choice.
2017-03-14 21:36:35 +00:00
Isis Lovecruft
4f1447314f
Bump curve25519-dalek version to ^0.6.
2017-03-14 20:16:20 +00:00
Isis Lovecruft
e2a649eddb
Add a missing use ed25519::Signature in a docstring example.
...
* THANKS to Tony Arcieri (@tarcieri) for pointing out the mistake.
2017-03-09 01:12:31 +00:00
Isis Lovecruft
d87930e7b7
Bump curve25519-dalek version to use 0.4.0.
2017-02-21 21:19:00 +00:00
Tony Arcieri
4f81231dc2
Add #![no_std]
...
Use ::core in lieu of ::std, allowing this crate to be usable in #![no_std]
environments.
Gates features that presently depend on ::std (presently just rand) behind a
"std" cargo feature, which is enabled by default.
Switches from the "rust-crypto" crate (which is not #![no_std] compatible) to
the sha2 crate, which is factored out of the original "rust-crypto" project
and being actively maintained.
2017-02-06 13:48:35 -08:00
Tony Arcieri
6269edb266
Update to curve25519-dalek v0.3.0
...
Changes `curve25519_dalek::curve::CompressedPoint` -> `CompressedEdwardsY`
2017-02-06 13:43:37 -08:00
Isis Lovecruft
50f53841bf
Ensure signatures match bytewise with reference and Go implementations.
2016-12-09 01:18:46 +00:00
Isis Lovecruft
b4bcc5e3b5
Remove an unused import.
2016-12-08 10:20:52 +00:00
Isis Lovecruft
d9ec8386da
Remove conversion to/from X25519 keys.
2016-12-08 10:19:34 +00:00
Isis Lovecruft
27ee13b6ef
Initial commit
2016-12-01 22:03:46 +00:00