sun
0ea12f922e
fix doc code
2018-08-24 11:27:15 +08:00
Isis Lovecruft
3ad616a23c
Remove unused csprng parameter from verify_batch() function.
2018-07-27 17:30:57 +00:00
Isis Lovecruft
e35323412d
Merge remote-tracking branch 'hdevalence/feature/27-batch' into develop
2018-07-27 17:24:37 +00:00
Henry de Valence
4c838decd8
Use 128-bit scalars
2018-07-26 21:09:52 -07:00
Henry de Valence
f60987dee5
Try optional_multiscalar_mul
2018-07-26 20:58:11 -07:00
Isis Lovecruft
318898fac1
Merge branch 'feature/drop-with-clear' into develop
2018-07-27 03:56:13 +00:00
Isis Lovecruft
a92a5b73a1
It's 2018 and nothing's gotten any better outside.
2018-07-27 03:48:37 +00:00
Isis Lovecruft
81a3d3298b
Leave a comment explaining why we derive Default.
2018-07-26 20:15:13 +00:00
Isis Lovecruft
6513d4980a
Implement Drop for secret key material using clear_on_drop.
2018-07-20 23:08:08 +00:00
Isis Lovecruft
d896886691
Overwrite secret key material with zeroes on drop.
2018-07-20 20:20:40 +00:00
Isis Lovecruft
ce46a12d92
Implement batch verification.
...
The API for this isn't the greatest and I apologise for that. Suggestions for
improvement welcome. One thing which @hdevalence and I considered was to
change the function signature to:
pub fn verify_batch<D, C, M, S, K>(messages: M,
signatures: S,
public_keys: K,
csprng: &mut C) -> Result<(), SignatureError>
where D: Digest<OutputSize = U64> + Default,
C: Rng + CryptoRng,
M: IntoIterator<Item = &[u8]>,
S: IntoIterator,
S::Item: Borrow<Signature>,
K: IntoIterator,
K::Item: Borrow<Signature>,
The other improvement which could be made is to implement 128-bit scalars for
the randomnesses.
* CLOSES #27
2018-07-17 19:03:46 +00:00
Isis Lovecruft
b32e39c801
Fix match statements on public key decompression.
2018-07-15 22:21:32 +00:00
Isis Lovecruft
cdebf245cc
Merge branch 'feature/cleanup-sig-code' into develop
2018-07-15 22:13:37 +00:00
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