Eliminate array_ref dependency

This commit is contained in:
Henry de Valence 2017-11-20 14:53:08 -08:00
parent 504a557b33
commit 2d69a8a7dc
6 changed files with 9 additions and 16 deletions

View file

@ -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"

View file

@ -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;

View file

@ -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 {

View file

@ -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
//------------------------------------------------------------------------

View file

@ -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 {

View file

@ -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))
}