mirror of
https://github.com/saymrwulf/curve25519-dalek-source.git
synced 2026-09-06 20:41:14 +00:00
Merge branch 'release/0.4.1'
This commit is contained in:
commit
2d7dfc919d
2 changed files with 11 additions and 9 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "ed25519-dalek"
|
name = "ed25519-dalek"
|
||||||
version = "0.4.0"
|
version = "0.4.1"
|
||||||
authors = ["Isis Lovecruft <isis@torproject.org>"]
|
authors = ["Isis Lovecruft <isis@torproject.org>"]
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
license = "CC0-1.0"
|
license = "CC0-1.0"
|
||||||
|
|
@ -16,10 +16,10 @@ exclude = [ ".gitignore", "TESTVECTORS", "res/*" ]
|
||||||
travis-ci = { repository = "isislovecruft/ed25519-dalek", branch = "master"}
|
travis-ci = { repository = "isislovecruft/ed25519-dalek", branch = "master"}
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
arrayref = "0.3.3"
|
arrayref = "0.3.4"
|
||||||
|
|
||||||
[dependencies.curve25519-dalek]
|
[dependencies.curve25519-dalek]
|
||||||
version = "^0.10"
|
version = "^0.11"
|
||||||
default-features = false
|
default-features = false
|
||||||
|
|
||||||
[dependencies.subtle]
|
[dependencies.subtle]
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,8 @@ use digest::FixedOutput;
|
||||||
use generic_array::typenum::U64;
|
use generic_array::typenum::U64;
|
||||||
|
|
||||||
use curve25519_dalek::constants;
|
use curve25519_dalek::constants;
|
||||||
use curve25519_dalek::curve::CompressedEdwardsY;
|
use curve25519_dalek::edwards::CompressedEdwardsY;
|
||||||
use curve25519_dalek::curve::ExtendedPoint;
|
use curve25519_dalek::edwards::ExtendedPoint;
|
||||||
use curve25519_dalek::scalar::Scalar;
|
use curve25519_dalek::scalar::Scalar;
|
||||||
|
|
||||||
use subtle::slices_equal;
|
use subtle::slices_equal;
|
||||||
|
|
@ -298,7 +298,7 @@ impl PublicKey {
|
||||||
digest[31] &= 127;
|
digest[31] &= 127;
|
||||||
digest[31] |= 64;
|
digest[31] |= 64;
|
||||||
|
|
||||||
pk = (&Scalar(*digest) * &constants::ED25519_BASEPOINT).compress_edwards().to_bytes();
|
pk = (&Scalar(*digest) * &constants::ED25519_BASEPOINT_TABLE).compress_edwards().to_bytes();
|
||||||
|
|
||||||
PublicKey(CompressedEdwardsY(pk))
|
PublicKey(CompressedEdwardsY(pk))
|
||||||
}
|
}
|
||||||
|
|
@ -312,6 +312,8 @@ impl PublicKey {
|
||||||
pub fn verify<D>(&self, message: &[u8], signature: &Signature) -> bool
|
pub fn verify<D>(&self, message: &[u8], signature: &Signature) -> bool
|
||||||
where D: Digest<OutputSize = U64> + Default {
|
where D: Digest<OutputSize = U64> + Default {
|
||||||
|
|
||||||
|
use curve25519_dalek::edwards::vartime;
|
||||||
|
|
||||||
let mut h: D = D::default();
|
let mut h: D = D::default();
|
||||||
let mut a: ExtendedPoint;
|
let mut a: ExtendedPoint;
|
||||||
let ao: Option<ExtendedPoint>;
|
let ao: Option<ExtendedPoint>;
|
||||||
|
|
@ -341,7 +343,7 @@ impl PublicKey {
|
||||||
let digest_bytes = h.fixed_result();
|
let digest_bytes = h.fixed_result();
|
||||||
digest = *array_ref!(digest_bytes, 0, 64);
|
digest = *array_ref!(digest_bytes, 0, 64);
|
||||||
digest_reduced = Scalar::reduce(&digest);
|
digest_reduced = Scalar::reduce(&digest);
|
||||||
r = &(&digest_reduced * &a) + &(&Scalar(*top_half) * &constants::ED25519_BASEPOINT);
|
r = vartime::double_scalar_mult_basepoint(&digest_reduced, &a, &Scalar(*top_half));
|
||||||
|
|
||||||
if slices_equal(bottom_half, &r.compress_edwards().to_bytes()) == 1 {
|
if slices_equal(bottom_half, &r.compress_edwards().to_bytes()) == 1 {
|
||||||
return true
|
return true
|
||||||
|
|
@ -459,7 +461,7 @@ impl Keypair {
|
||||||
|
|
||||||
mesg_digest = Scalar::reduce(&hash);
|
mesg_digest = Scalar::reduce(&hash);
|
||||||
|
|
||||||
r = &mesg_digest * &constants::ED25519_BASEPOINT;
|
r = &mesg_digest * &constants::ED25519_BASEPOINT_TABLE;
|
||||||
|
|
||||||
h = D::default();
|
h = D::default();
|
||||||
h.input(&r.compress_edwards().to_bytes()[..]);
|
h.input(&r.compress_edwards().to_bytes()[..]);
|
||||||
|
|
@ -491,7 +493,7 @@ mod test {
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::string::String;
|
use std::string::String;
|
||||||
use std::vec::Vec;
|
use std::vec::Vec;
|
||||||
use curve25519_dalek::curve::ExtendedPoint;
|
use curve25519_dalek::edwards::ExtendedPoint;
|
||||||
use rand::OsRng;
|
use rand::OsRng;
|
||||||
use rustc_serialize::hex::FromHex;
|
use rustc_serialize::hex::FromHex;
|
||||||
use sha2::Sha512;
|
use sha2::Sha512;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue