Rename util module to subtle.

* CHANGE subtle module documentation slightly to clarify the module's purpose.
 * FIXES issue #25.
This commit is contained in:
Isis Lovecruft 2017-02-21 06:01:17 +00:00
parent aad1d1751a
commit 6f67a7d716
Failed to extract signature
5 changed files with 23 additions and 23 deletions

View file

@ -85,11 +85,11 @@ use core::cmp::{PartialEq, Eq};
use constants; use constants;
use field::FieldElement; use field::FieldElement;
use scalar::Scalar; use scalar::Scalar;
use util::arrays_equal_ct; use subtle::arrays_equal_ct;
use util::bytes_equal_ct; use subtle::bytes_equal_ct;
use util::CTAssignable; use subtle::CTAssignable;
use util::CTEq; use subtle::CTEq;
use util::CTNegatable; use subtle::CTNegatable;
// ------------------------------------------------------------------------ // ------------------------------------------------------------------------
// Compressed points // Compressed points
@ -865,7 +865,7 @@ mod test {
use test::Bencher; use test::Bencher;
use field::FieldElement; use field::FieldElement;
use scalar::Scalar; use scalar::Scalar;
use util::CTAssignable; use subtle::CTAssignable;
use constants; use constants;
use constants::BASE_CMPRSSD; use constants::BASE_CMPRSSD;
use super::*; use super::*;

View file

@ -24,10 +24,10 @@ use core::ops::{Index, IndexMut};
use core::cmp::{Eq, PartialEq}; use core::cmp::{Eq, PartialEq};
use core::ops::Neg; use core::ops::Neg;
use util::arrays_equal_ct; use subtle::arrays_equal_ct;
use util::byte_is_nonzero; use subtle::byte_is_nonzero;
use util::CTAssignable; use subtle::CTAssignable;
use util::CTEq; use subtle::CTEq;
/// FieldElements are represented as an array of ten "Limbs", which are radix /// FieldElements are represented as an array of ten "Limbs", which are radix
/// 25.5, that is, each Limb of a FieldElement alternates between being /// 25.5, that is, each Limb of a FieldElement alternates between being
@ -162,7 +162,7 @@ impl CTAssignable for FieldElement {
/// ///
/// ``` /// ```
/// # use curve25519_dalek::field::FieldElement; /// # use curve25519_dalek::field::FieldElement;
/// # use curve25519_dalek::util::CTAssignable; /// # use curve25519_dalek::subtle::CTAssignable;
/// let f = FieldElement([1,1,1,1,1,1,1,1,1,1]); /// let f = FieldElement([1,1,1,1,1,1,1,1,1,1]);
/// let g = FieldElement([2,2,2,2,2,2,2,2,2,2]); /// let g = FieldElement([2,2,2,2,2,2,2,2,2,2]);
/// let mut h = FieldElement([1,1,1,1,1,1,1,1,1,1]); /// let mut h = FieldElement([1,1,1,1,1,1,1,1,1,1]);
@ -174,7 +174,7 @@ impl CTAssignable for FieldElement {
/// ///
/// ``` /// ```
/// # use curve25519_dalek::field::FieldElement; /// # use curve25519_dalek::field::FieldElement;
/// # use curve25519_dalek::util::CTAssignable; /// # use curve25519_dalek::subtle::CTAssignable;
/// # let f = FieldElement([1,1,1,1,1,1,1,1,1,1]); /// # let f = FieldElement([1,1,1,1,1,1,1,1,1,1]);
/// # let g = FieldElement([2,2,2,2,2,2,2,2,2,2]); /// # let g = FieldElement([2,2,2,2,2,2,2,2,2,2]);
/// # let mut h = FieldElement([1,1,1,1,1,1,1,1,1,1]); /// # let mut h = FieldElement([1,1,1,1,1,1,1,1,1,1]);
@ -815,7 +815,7 @@ impl FieldElement {
mod test { mod test {
use field::*; use field::*;
use test::Bencher; use test::Bencher;
use util::CTNegatable; use subtle::CTNegatable;
#[bench] #[bench]
fn bench_fieldelement_a_mul_a(b: &mut Bencher) { fn bench_fieldelement_a_mul_a(b: &mut Bencher) {

View file

@ -47,9 +47,9 @@ pub mod field;
pub mod curve; pub mod curve;
pub mod scalar; pub mod scalar;
// Utilities module. // Constant-time functions and other miscelaneous utilities.
pub mod util; pub mod subtle;
// Low-level curve and point constants, as well as pre-computed curve group elements. // Low-level curve and point constants, as well as pre-computed curve group elements.

View file

@ -39,9 +39,9 @@ use rand::Rng;
// XXX should these be in a utility module ? // XXX should these be in a utility module ?
use constants; use constants;
use field::{load3, load4}; use field::{load3, load4};
use util::CTAssignable; use subtle::CTAssignable;
use util::CTEq; use subtle::CTEq;
use util::arrays_equal_ct; use subtle::arrays_equal_ct;
/// The `Scalar` struct represents an element in /l, where /// The `Scalar` struct represents an element in /l, where
/// ///
@ -115,7 +115,7 @@ impl CTAssignable for Scalar {
/// ///
/// ``` /// ```
/// # use curve25519_dalek::scalar::Scalar; /// # use curve25519_dalek::scalar::Scalar;
/// # use curve25519_dalek::util::CTAssignable; /// # use curve25519_dalek::subtle::CTAssignable;
/// let a = Scalar([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /// let a = Scalar([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
/// 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]); /// 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);
/// let b = Scalar([1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /// let b = Scalar([1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,

View file

@ -9,7 +9,7 @@
// - Isis Agora Lovecruft <isis@patternsinthevoid.net> // - Isis Agora Lovecruft <isis@patternsinthevoid.net>
// - Henry de Valence <hdevalence@hdevalence.ca> // - Henry de Valence <hdevalence@hdevalence.ca>
//! Utility functions and tools for constant-time comparisons. //! Constant-time traits and utility functions.
use core::ops::Neg; use core::ops::Neg;
@ -31,7 +31,7 @@ pub trait CTEq {
fn ct_eq(&self, other: &Self) -> u8; fn ct_eq(&self, other: &Self) -> u8;
} }
// Trait for items which can be conditionally negated in constant time. /// Trait for items which can be conditionally negated in constant time.
/// ///
/// Note: it is not necessary to implement this trait, as a generic /// Note: it is not necessary to implement this trait, as a generic
/// implementation is provided. /// implementation is provided.
@ -55,7 +55,7 @@ impl<T> CTNegatable for T
/// ///
/// # Return /// # Return
/// ///
/// Returns 1 if `a == b` and 0 otherwise. /// Returns `1u8` if `a == b` and `0u8` otherwise.
#[inline(always)] #[inline(always)]
pub fn bytes_equal_ct(a: u8, b: u8) -> u8 { pub fn bytes_equal_ct(a: u8, b: u8) -> u8 {
let mut x: u8; let mut x: u8;
@ -94,7 +94,7 @@ pub fn byte_is_nonzero(b: u8) -> u8 {
/// ///
/// # Return /// # Return
/// ///
/// Returns 1 if `a == b` and 0 otherwise. /// Returns `1u8` if `a == b` and `0u8` otherwise.
#[inline(always)] #[inline(always)]
// We don't use this in curve25519-dalek, but it's useful for e.g. an ed25519 implementation. // We don't use this in curve25519-dalek, but it's useful for e.g. an ed25519 implementation.
#[allow(dead_code)] #[allow(dead_code)]