Skip to content

Commit

Permalink
refactor(digest): Get rid of strange proxy struct and change names Sh…
Browse files Browse the repository at this point in the history
…a512_224 and Sha512_256 to Sha512224 and Sha512256
  • Loading branch information
silmeth committed Nov 15, 2015
1 parent 588e1f8 commit 8be3dfc
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 41 deletions.
4 changes: 2 additions & 2 deletions examples/sums.rs
Expand Up @@ -40,8 +40,8 @@ fn main() {
println!("SHA-256: {}", hex(&data, sha2::Sha256::default()));
println!("SHA-384: {}", hex(&data, sha2::Sha384::default()));
println!("SHA-512: {}", hex(&data, sha2::Sha512::default()));
println!("SHA-512/224: {}", hex(&data, sha2::Sha512_224::default()));
println!("SHA-512/256: {}", hex(&data, sha2::Sha512_256::default()));
println!("SHA-512/224: {}", hex(&data, sha2::Sha512224::default()));
println!("SHA-512/256: {}", hex(&data, sha2::Sha512256::default()));
println!("SHA3-224: {}", hex(&data, sha3::Sha224::default()));
println!("SHA3-256: {}", hex(&data, sha3::Sha256::default()));
println!("SHA3-384: {}", hex(&data, sha3::Sha384::default()));
Expand Down
46 changes: 7 additions & 39 deletions src/digest/sha2.rs
Expand Up @@ -325,40 +325,8 @@ impl_sha!(low Sha256, SHA256_INIT, 256);
impl_sha!(high Sha384, SHA384_INIT, 384);
impl_sha!(high Sha512, SHA512_INIT, 512);

// bits output by SHA-512/224 are not multiple of 64, thus it needs some hackery
impl_sha!(high _Sha512_224, SHA512_224_INIT, 256);
impl_sha!(high Sha512_256, SHA512_256_INIT, 256);

pub struct Sha512_224 {
_sha512_224: _Sha512_224,
}

impl Default for Sha512_224 {
fn default() -> Self {
Sha512_224 {
_sha512_224: _Sha512_224::default(),
}
}
}

impl Digest for Sha512_224 {
fn update<T: AsRef<[u8]>>(&mut self, data: T) {
self._sha512_224.update(data);
}

fn output_bits() -> usize { 224 }
fn block_size() -> usize { 128 }

fn result<T: AsMut<[u8]>>(self, mut out: T) {
let mut res: Vec<u8> = vec![0; Self::output_bytes()+4 ];
self._sha512_224.result(&mut res[..]);
let mut out = out.as_mut();
// copy first 28 bytes to out
for i in 0..Self::output_bytes() {
out[i] = res[i];
}
}
}
impl_sha!(high Sha512224, SHA512_224_INIT, 224);
impl_sha!(high Sha512256, SHA512_256_INIT, 256);

#[cfg(test)]
mod tests {
Expand Down Expand Up @@ -549,9 +517,9 @@ mod tests {
}
}

mod sha512_224 {
mod sha512224 {
use digest::test::Test;
use digest::sha2::Sha512_224;
use digest::sha2::Sha512224;

// TODO: find appropriate test vectors, temporary using values found on: http://self.gutenberg.org/articles/sha512
const TESTS: &'static [Test<'static>] = &[
Expand All @@ -563,7 +531,7 @@ mod tests {
#[test]
fn simple_test_vectors() {
for test in TESTS {
test.test(Sha512_224::default());
test.test(Sha512224::default());
}
}

Expand All @@ -573,7 +541,7 @@ mod tests {

mod sha512_256 {
use digest::test::Test;
use digest::sha2::Sha512_256;
use digest::sha2::Sha512256;

// TODO: find appropriate test vectors, temporary using values found on: http://self.gutenberg.org/articles/sha512
const TESTS: &'static [Test<'static>] = &[
Expand All @@ -585,7 +553,7 @@ mod tests {
#[test]
fn simple_test_vectors() {
for test in TESTS {
test.test(Sha512_256::default());
test.test(Sha512256::default());
}
}

Expand Down

0 comments on commit 8be3dfc

Please sign in to comment.