diff --git a/.travis.yml b/.travis.yml index 526648e..709f428 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,10 +6,11 @@ rust: - nightly env: - - TEST_COMMAND=test FEATURES='yolocrypto' - - TEST_COMMAND=test FEATURES='yolocrypto nightly' - - TEST_COMMAND=bench FEATURES='yolocrypto bench' - - TEST_COMMAND=bench FEATURES='yolocrypto nightly bench' + - TEST_COMMAND=test FEATURES=--features="yolocrypto" + - TEST_COMMAND=test FEATURES=--features="yolocrypto nightly" + - TEST_COMMAND=bench FEATURES=--features="yolocrypto bench" + - TEST_COMMAND=bench FEATURES=--features="yolocrypto nightly bench" + - TEST_COMMAND=build FEATURES=--no-default-features matrix: exclude: @@ -18,18 +19,23 @@ matrix: # run benchmarks, which causes dalek not to build on stable. See # https://github.com/isislovecruft/curve25519-dalek/pull/38#issuecomment-286027562 - rust: stable - env: TEST_COMMAND=bench FEATURES='yolocrypto bench' + env: TEST_COMMAND=bench FEATURES=--features="yolocrypto bench" - rust: beta - env: TEST_COMMAND=bench FEATURES='yolocrypto bench' + env: TEST_COMMAND=bench FEATURES=--features="yolocrypto bench" - rust: stable - env: TEST_COMMAND=bench FEATURES='yolocrypto nightly bench' + env: TEST_COMMAND=bench FEATURES=--features="yolocrypto nightly bench" - rust: beta - env: TEST_COMMAND=bench FEATURES='yolocrypto nightly bench' + env: TEST_COMMAND=bench FEATURES=--features="yolocrypto nightly bench" # Test nightly features, such as radix_51, only on nightly. - rust: stable - env: TEST_COMMAND=test FEATURES='yolocrypto nightly' + env: TEST_COMMAND=test FEATURES=--features="yolocrypto nightly" - rust: beta - env: TEST_COMMAND=test FEATURES='yolocrypto nightly' + env: TEST_COMMAND=test FEATURES=--features="yolocrypto nightly" + # Test no_std only on nightly. + - rust: stable + env: TEST_COMMAND=build FEATURES=--no-default-features + - rust: beta + env: TEST_COMMAND=build FEATURES=--no-default-features script: - - cargo $TEST_COMMAND --features="$FEATURES" + - cargo $TEST_COMMAND $FEATURES diff --git a/Cargo.toml b/Cargo.toml index 484a117..1e06fd9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "curve25519-dalek" -version = "0.7.0" +version = "0.7.1" authors = ["Isis Lovecruft ", "Henry de Valence "] readme = "README.md" diff --git a/README.md b/README.md index 16bad4e..ecd519f 100644 --- a/README.md +++ b/README.md @@ -57,12 +57,7 @@ fast. ## TODO * Implement hashing to a point on the curve (Elligator). -* Add conversion to Montgomery form and rework compressed point types. -* Maybe implement Mike Hamburg's Decaf point compression format, so that - users can be guaranteed to be in a prime-order subgroup and not have to - worry about cofactors. -* Review finite field arithmetic. -* Review scalar arithmetic. -* Review addition formulas. -* Proofread mathematics in documentation. * Maybe use serde for serialization. +* Make a new `mask` type in `subtle.rs` and return that instead of `u8`s. +* Implement all utilities in Golang's `crypto/subtle` package, and + move the module to its own crate. diff --git a/src/curve.rs b/src/curve.rs index 46358ad..552e736 100644 --- a/src/curve.rs +++ b/src/curve.rs @@ -77,6 +77,9 @@ // affine and projective cakes and eat both of them too. #![allow(non_snake_case)] +#[cfg(not(feature = "std"))] +use collections::Vec; + use core::fmt::Debug; use core::iter::Iterator; use core::ops::{Add, Sub, Neg};