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 field::FieldElement;
use scalar::Scalar;
use util::arrays_equal_ct;
use util::bytes_equal_ct;
use util::CTAssignable;
use util::CTEq;
use util::CTNegatable;
use subtle::arrays_equal_ct;
use subtle::bytes_equal_ct;
use subtle::CTAssignable;
use subtle::CTEq;
use subtle::CTNegatable;
// ------------------------------------------------------------------------
// Compressed points
@ -865,7 +865,7 @@ mod test {
use test::Bencher;
use field::FieldElement;
use scalar::Scalar;
use util::CTAssignable;
use subtle::CTAssignable;
use constants;
use constants::BASE_CMPRSSD;
use super::*;

View file

@ -24,10 +24,10 @@ use core::ops::{Index, IndexMut};
use core::cmp::{Eq, PartialEq};
use core::ops::Neg;
use util::arrays_equal_ct;
use util::byte_is_nonzero;
use util::CTAssignable;
use util::CTEq;
use subtle::arrays_equal_ct;
use subtle::byte_is_nonzero;
use subtle::CTAssignable;
use subtle::CTEq;
/// FieldElements are represented as an array of ten "Limbs", which are radix
/// 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::util::CTAssignable;
/// # use curve25519_dalek::subtle::CTAssignable;
/// 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 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::util::CTAssignable;
/// # use curve25519_dalek::subtle::CTAssignable;
/// # 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 mut h = FieldElement([1,1,1,1,1,1,1,1,1,1]);
@ -815,7 +815,7 @@ impl FieldElement {
mod test {
use field::*;
use test::Bencher;
use util::CTNegatable;
use subtle::CTNegatable;
#[bench]
fn bench_fieldelement_a_mul_a(b: &mut Bencher) {

View file

@ -47,9 +47,9 @@ pub mod field;
pub mod curve;
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.

View file

@ -39,9 +39,9 @@ use rand::Rng;
// XXX should these be in a utility module ?
use constants;
use field::{load3, load4};
use util::CTAssignable;
use util::CTEq;
use util::arrays_equal_ct;
use subtle::CTAssignable;
use subtle::CTEq;
use subtle::arrays_equal_ct;
/// 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::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,
/// 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,

View file

@ -9,7 +9,7 @@
// - Isis Agora Lovecruft <isis@patternsinthevoid.net>
// - Henry de Valence <hdevalence@hdevalence.ca>
//! Utility functions and tools for constant-time comparisons.
//! Constant-time traits and utility functions.
use core::ops::Neg;
@ -31,7 +31,7 @@ pub trait CTEq {
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
/// implementation is provided.
@ -55,7 +55,7 @@ impl<T> CTNegatable for T
///
/// # Return
///
/// Returns 1 if `a == b` and 0 otherwise.
/// Returns `1u8` if `a == b` and `0u8` otherwise.
#[inline(always)]
pub fn bytes_equal_ct(a: u8, b: u8) -> u8 {
let mut x: u8;
@ -94,7 +94,7 @@ pub fn byte_is_nonzero(b: u8) -> u8 {
///
/// # Return
///
/// Returns 1 if `a == b` and 0 otherwise.
/// Returns `1u8` if `a == b` and `0u8` otherwise.
#[inline(always)]
// We don't use this in curve25519-dalek, but it's useful for e.g. an ed25519 implementation.
#[allow(dead_code)]