mirror of
https://github.com/saymrwulf/curve25519-dalek-source.git
synced 2026-09-05 20:30:57 +00:00
Merge branch 'release/3.0.2'
This commit is contained in:
commit
73100b74ff
7 changed files with 48 additions and 8 deletions
22
CHANGELOG.md
22
CHANGELOG.md
|
|
@ -5,6 +5,10 @@ major series.
|
||||||
|
|
||||||
## 3.x series
|
## 3.x series
|
||||||
|
|
||||||
|
### 3.0.2
|
||||||
|
|
||||||
|
* Fixes to make using alloc+no_std possible for stable Rust.
|
||||||
|
|
||||||
### 3.0.1
|
### 3.0.1
|
||||||
|
|
||||||
* Update the optional `packed-simd` dependency to rely on a newer,
|
* Update the optional `packed-simd` dependency to rely on a newer,
|
||||||
|
|
@ -18,6 +22,15 @@ major series.
|
||||||
|
|
||||||
## 2.x series
|
## 2.x series
|
||||||
|
|
||||||
|
### 2.1.2
|
||||||
|
|
||||||
|
* Fixes to make using alloc+no_std possible for stable Rust.
|
||||||
|
|
||||||
|
### 2.1.1
|
||||||
|
|
||||||
|
* Update the optional `packed-simd` dependency to rely on a newer,
|
||||||
|
maintained version of the `packed-simd-2` crate.
|
||||||
|
|
||||||
### 2.1.0
|
### 2.1.0
|
||||||
|
|
||||||
* Make `Scalar::from_bits` a `const fn`, allowing its use in `const` contexts.
|
* Make `Scalar::from_bits` a `const fn`, allowing its use in `const` contexts.
|
||||||
|
|
@ -43,6 +56,15 @@ besides the `rand_core` version bump, there are no other user-visible changes.
|
||||||
|
|
||||||
## 1.x series
|
## 1.x series
|
||||||
|
|
||||||
|
### 1.2.6
|
||||||
|
|
||||||
|
* Fixes to make using alloc+no_std possible for stable Rust.
|
||||||
|
|
||||||
|
### 1.2.5
|
||||||
|
|
||||||
|
* Update the optional `packed-simd` dependency to rely on a newer,
|
||||||
|
maintained version of the `packed-simd-2` crate.
|
||||||
|
|
||||||
### 1.2.4
|
### 1.2.4
|
||||||
|
|
||||||
* Specify a semver bound for `clear_on_drop` rather than an exact version,
|
* Specify a semver bound for `clear_on_drop` rather than an exact version,
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ name = "curve25519-dalek"
|
||||||
# - update CHANGELOG
|
# - update CHANGELOG
|
||||||
# - update html_root_url
|
# - update html_root_url
|
||||||
# - update README if required by semver
|
# - update README if required by semver
|
||||||
version = "3.0.1"
|
version = "3.0.2"
|
||||||
authors = ["Isis Lovecruft <isis@patternsinthevoid.net>",
|
authors = ["Isis Lovecruft <isis@patternsinthevoid.net>",
|
||||||
"Henry de Valence <hdevalence@hdevalence.ca>"]
|
"Henry de Valence <hdevalence@hdevalence.ca>"]
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ representation (which uses radix \\(2^{51}\\)) amounts to regrouping
|
||||||
digits.
|
digits.
|
||||||
|
|
||||||
The field element representation is oriented around the AVX2
|
The field element representation is oriented around the AVX2
|
||||||
`vpmuluqdq` instruction, which multiplies the low 32 bits of each
|
`vpmuludq` instruction, which multiplies the low 32 bits of each
|
||||||
64-bit lane of each operand to produce a 64-bit result.
|
64-bit lane of each operand to produce a 64-bit result.
|
||||||
|
|
||||||
```text,no_run
|
```text,no_run
|
||||||
|
|
|
||||||
|
|
@ -327,7 +327,7 @@ There are several directions for future improvement:
|
||||||
[sandy2x]: https://eprint.iacr.org/2015/943.pdf
|
[sandy2x]: https://eprint.iacr.org/2015/943.pdf
|
||||||
[avx2trac]: https://trac.torproject.org/projects/tor/ticket/8897#comment:28
|
[avx2trac]: https://trac.torproject.org/projects/tor/ticket/8897#comment:28
|
||||||
[hwcd08]: https://www.iacr.org/archive/asiacrypt2008/53500329/53500329.pdf
|
[hwcd08]: https://www.iacr.org/archive/asiacrypt2008/53500329/53500329.pdf
|
||||||
[curve_models]: https://doc-internal.dalek.rs/curve25519_dalek/curve_models/index.html
|
[curve_models]: https://doc-internal.dalek.rs/curve25519_dalek/backend/serial/curve_models/index.html
|
||||||
[bbjlp08]: https://eprint.iacr.org/2008/013
|
[bbjlp08]: https://eprint.iacr.org/2008/013
|
||||||
[cmo98]: https://link.springer.com/content/pdf/10.1007%2F3-540-49649-1_6.pdf
|
[cmo98]: https://link.springer.com/content/pdf/10.1007%2F3-540-49649-1_6.pdf
|
||||||
[intel]: https://software.intel.com/sites/default/files/managed/9e/bc/64-ia-32-architectures-optimization-manual.pdf
|
[intel]: https://software.intel.com/sites/default/files/managed/9e/bc/64-ia-32-architectures-optimization-manual.pdf
|
||||||
|
|
|
||||||
|
|
@ -443,7 +443,6 @@ mod test {
|
||||||
fn from_bytes_wide() {
|
fn from_bytes_wide() {
|
||||||
let bignum = [255u8; 64]; // 2^512 - 1
|
let bignum = [255u8; 64]; // 2^512 - 1
|
||||||
let reduced = Scalar52::from_bytes_wide(&bignum);
|
let reduced = Scalar52::from_bytes_wide(&bignum);
|
||||||
println!("{:?}", reduced);
|
|
||||||
for i in 0..5 {
|
for i in 0..5 {
|
||||||
assert!(reduced[i] == C[i]);
|
assert!(reduced[i] == C[i]);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,7 @@ impl ExtendedPoint {
|
||||||
// Set tmp1 = ( S_9, S_6, S_6, S_9)
|
// Set tmp1 = ( S_9, S_6, S_6, S_9)
|
||||||
// b < ( 1.6, 1.6, 1.6, 1.6)
|
// b < ( 1.6, 1.6, 1.6, 1.6)
|
||||||
tmp1 = tmp0.shuffle(Shuffle::DBBD);
|
tmp1 = tmp0.shuffle(Shuffle::DBBD);
|
||||||
// Set tmp1 = ( S_8, S_5, S_8, S_5)
|
// Set tmp0 = ( S_8, S_5, S_8, S_5)
|
||||||
// b < (2.33, 1.01, 2.33, 1.01)
|
// b < (2.33, 1.01, 2.33, 1.01)
|
||||||
tmp0 = tmp0.shuffle(Shuffle::CACA);
|
tmp0 = tmp0.shuffle(Shuffle::CACA);
|
||||||
|
|
||||||
|
|
@ -188,7 +188,7 @@ impl From<ExtendedPoint> for CachedPoint {
|
||||||
let mut x = P.0;
|
let mut x = P.0;
|
||||||
|
|
||||||
x = x.blend(x.diff_sum(), Lanes::AB);
|
x = x.blend(x.diff_sum(), Lanes::AB);
|
||||||
// x = (X1 - Y1, X2 + Y2, Z2, T2) = (S2 S3 Z2 T2)
|
// x = (Y2 - X2, Y2 + X2, Z2, T2) = (S2 S3 Z2 T2)
|
||||||
|
|
||||||
x = x * (121666, 121666, 2 * 121666, 2 * 121665);
|
x = x * (121666, 121666, 2 * 121666, 2 * 121665);
|
||||||
// x = (121666*S2 121666*S3 2*121666*Z2 2*121665*T2)
|
// x = (121666*S2 121666*S3 2*121666*Z2 2*121665*T2)
|
||||||
|
|
@ -521,4 +521,24 @@ mod test {
|
||||||
let P = &constants::ED25519_BASEPOINT_TABLE * &Scalar::from(8475983829u64);
|
let P = &constants::ED25519_BASEPOINT_TABLE * &Scalar::from(8475983829u64);
|
||||||
doubling_test_helper(P);
|
doubling_test_helper(P);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn basepoint_odd_lookup_table_verify() {
|
||||||
|
use constants;
|
||||||
|
use backend::vector::avx2::constants::{BASEPOINT_ODD_LOOKUP_TABLE};
|
||||||
|
|
||||||
|
let basepoint_odd_table = NafLookupTable8::<CachedPoint>::from(&constants::ED25519_BASEPOINT_POINT);
|
||||||
|
println!("basepoint_odd_lookup_table = {:?}", basepoint_odd_table);
|
||||||
|
|
||||||
|
let table_B = &BASEPOINT_ODD_LOOKUP_TABLE;
|
||||||
|
for (b_vec, base_vec) in table_B.0.iter().zip(basepoint_odd_table.0.iter()) {
|
||||||
|
let b_splits = b_vec.0.split();
|
||||||
|
let base_splits = base_vec.0.split();
|
||||||
|
|
||||||
|
assert_eq!(base_splits[0], b_splits[0]);
|
||||||
|
assert_eq!(base_splits[1], b_splits[1]);
|
||||||
|
assert_eq!(base_splits[2], b_splits[2]);
|
||||||
|
assert_eq!(base_splits[3], b_splits[3]);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@
|
||||||
|
|
||||||
#![no_std]
|
#![no_std]
|
||||||
#![cfg_attr(feature = "nightly", feature(test))]
|
#![cfg_attr(feature = "nightly", feature(test))]
|
||||||
#![cfg_attr(all(feature = "alloc", not(feature = "std")), feature(alloc))]
|
|
||||||
#![cfg_attr(feature = "nightly", feature(external_doc))]
|
#![cfg_attr(feature = "nightly", feature(external_doc))]
|
||||||
#![cfg_attr(feature = "nightly", feature(doc_cfg))]
|
#![cfg_attr(feature = "nightly", feature(doc_cfg))]
|
||||||
#![cfg_attr(feature = "simd_backend", feature(stdsimd))]
|
#![cfg_attr(feature = "simd_backend", feature(stdsimd))]
|
||||||
|
|
@ -22,7 +21,7 @@
|
||||||
|
|
||||||
#![cfg_attr(feature = "nightly", doc(include = "../README.md"))]
|
#![cfg_attr(feature = "nightly", doc(include = "../README.md"))]
|
||||||
#![doc(html_logo_url = "https://doc.dalek.rs/assets/dalek-logo-clear.png")]
|
#![doc(html_logo_url = "https://doc.dalek.rs/assets/dalek-logo-clear.png")]
|
||||||
#![doc(html_root_url = "https://docs.rs/curve25519-dalek/3.0.0")]
|
#![doc(html_root_url = "https://docs.rs/curve25519-dalek/3.0.2")]
|
||||||
|
|
||||||
//! Note that docs will only build on nightly Rust until
|
//! Note that docs will only build on nightly Rust until
|
||||||
//! [RFC 1990 stabilizes](https://github.com/rust-lang/rust/issues/44732).
|
//! [RFC 1990 stabilizes](https://github.com/rust-lang/rust/issues/44732).
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue