From 2d69a8a7dc4fd9cc117150b21bb581e4cab462d6 Mon Sep 17 00:00:00 2001 From: Henry de Valence Date: Mon, 20 Nov 2017 14:53:08 -0800 Subject: [PATCH] Eliminate array_ref dependency --- Cargo.toml | 3 --- build.rs | 2 -- src/edwards.rs | 5 +++-- src/lib.rs | 6 ------ src/ristretto.rs | 5 +++-- src/scalar.rs | 4 +++- 6 files changed, 9 insertions(+), 16 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 952c778..6aac33f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,9 +26,6 @@ travis-ci = { repository = "isislovecruft/curve25519-dalek", branch = "master"} version = "1.0" optional = true -[dependencies.arrayref] -version = "0.3.4" - [dependencies.rand] optional = true version = "0.3" diff --git a/build.rs b/build.rs index 6131ed5..13d9715 100644 --- a/build.rs +++ b/build.rs @@ -8,8 +8,6 @@ extern crate subtle; extern crate rand; extern crate digest; extern crate generic_array; -#[macro_use] -extern crate arrayref; use std::env; use std::fs::File; diff --git a/src/edwards.rs b/src/edwards.rs index c0e6bb1..d31db32 100644 --- a/src/edwards.rs +++ b/src/edwards.rs @@ -141,8 +141,9 @@ impl<'de> Deserialize<'de> for ExtendedPoint { where E: serde::de::Error { if v.len() == 32 { - let arr32 = array_ref!(v, 0, 32); // &[u8;32] from &[u8] - CompressedEdwardsY(*arr32) + let mut arr32 = [0u8; 32]; + arr32[0..32].copy_from_slice(v); + CompressedEdwardsY(arr32) .decompress() .ok_or(serde::de::Error::custom("decompression failed")) } else { diff --git a/src/lib.rs b/src/lib.rs index 98efe09..5811fbc 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -63,12 +63,6 @@ extern crate serde; #[cfg(all(test, feature = "serde"))] extern crate serde_cbor; -// this appears to only be used for serde support right now? -// XXX let's eliminate this dep -#[cfg(feature = "serde")] -#[macro_use] -extern crate arrayref; - //------------------------------------------------------------------------ // curve25519-dalek public modules //------------------------------------------------------------------------ diff --git a/src/ristretto.rs b/src/ristretto.rs index 1c04c45..27208e4 100644 --- a/src/ristretto.rs +++ b/src/ristretto.rs @@ -533,8 +533,9 @@ impl<'de> Deserialize<'de> for RistrettoPoint { where E: serde::de::Error { if v.len() == 32 { - let arr32 = array_ref!(v, 0, 32); // &[u8;32] from &[u8] - CompressedRistretto(*arr32) + let mut arr32 = [0u8; 32]; + arr32[0..32].copy_from_slice(v); + CompressedRistretto(arr32) .decompress() .ok_or(serde::de::Error::custom("decompression failed")) } else { diff --git a/src/scalar.rs b/src/scalar.rs index 1fe9f11..8041cc7 100644 --- a/src/scalar.rs +++ b/src/scalar.rs @@ -227,7 +227,9 @@ impl<'de> Deserialize<'de> for Scalar { { if v.len() == 32 { // array_ref turns &[u8] into &[u8;32] - Ok(Scalar(*array_ref!(v, 0, 32))) + let mut bytes = [0u8;32]; + bytes.copy_from_slice(v); + Ok(Scalar(bytes)) } else { Err(serde::de::Error::invalid_length(v.len(), &self)) }