File: mod.rs

package info (click to toggle)
rust-ripemd 0.1.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 204 kB
  • sloc: makefile: 2
file content (112 lines) | stat: -rw-r--r-- 2,665 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
use digest::dev::{feed_rand_16mib, fixed_reset_test};
use digest::new_test;
use hex_literal::hex;
use ripemd::{Digest, Ripemd128, Ripemd160, Ripemd256, Ripemd320};

// Test vectors from FIPS 180-1 and from the [RIPEMD webpage][1].
//
// [1] https://homes.esat.kuleuven.be/~bosselae/ripemd160.html
new_test!(ripemd128_main, "ripemd128", Ripemd128, fixed_reset_test);
new_test!(ripemd160_main, "ripemd160", Ripemd160, fixed_reset_test);
new_test!(ripemd256_main, "ripemd256", Ripemd256, fixed_reset_test);
new_test!(ripemd320_main, "ripemd320", Ripemd320, fixed_reset_test);

#[test]
fn ripemd128_1mil_a() {
    let mut h = Ripemd128::new();
    let buf = [b'a'; 1000];
    for _ in 0..1000 {
        h.update(&buf[..]);
    }
    assert_eq!(
        h.finalize(),
        hex!("4a7f5723f954eba1216c9d8f6320431f").into()
    );
}

#[test]
fn ripemd128_rand() {
    let mut h = Ripemd128::new();
    feed_rand_16mib(&mut h);
    assert_eq!(
        h.finalize()[..],
        hex!("01eb52529bcec15bd0cb4040ec998632")[..]
    );
}

#[test]
fn ripemd160_1mil_a() {
    let mut h = Ripemd160::new();
    let buf = [b'a'; 1000];
    for _ in 0..1000 {
        h.update(&buf[..]);
    }
    assert_eq!(
        h.finalize(),
        hex!("52783243c1697bdbe16d37f97f68f08325dc1528").into()
    );
}

#[test]
fn ripemd160_rand() {
    let mut h = Ripemd160::new();
    feed_rand_16mib(&mut h);
    assert_eq!(
        h.finalize()[..],
        hex!("bcd8c672932125776af3c60eeeb58bbaf206f386")[..]
    );
}

#[test]
fn ripemd256_1mil_a() {
    let mut h = Ripemd256::new();
    let buf = [b'a'; 1000];
    for _ in 0..1000 {
        h.update(&buf[..]);
    }
    assert_eq!(
        h.finalize(),
        hex!("ac953744e10e31514c150d4d8d7b677342e33399788296e43ae4850ce4f97978").into()
    );
}

#[test]
fn ripemd256_rand() {
    let mut h = Ripemd256::new();
    feed_rand_16mib(&mut h);
    assert_eq!(
        h.finalize()[..],
        hex!("6492ffe075896441b737900bdf58fc960e77477e42a2a61bc02c66fd689b69d0")[..]
    );
}

#[test]
#[rustfmt::skip]
fn ripemd320_1mil_a() {
    let mut h = Ripemd320::new();
    let buf = [b'a'; 1000];
    for _ in 0..1000 {
        h.update(&buf[..]);
    }
    assert_eq!(
        h.finalize(),
        hex!("
            bdee37f4371e20646b8b0d862dda16292ae36f40
            965e8c8509e63d1dbddecc503e2b63eb9245bb66
        ").into()
    );
}

#[test]
#[rustfmt::skip]
fn ripemd320_rand() {
    let mut h = Ripemd320::new();
    feed_rand_16mib(&mut h);
    assert_eq!(
        h.finalize()[..],
        hex!("
            3a905312162c5c173639f6cc1cdf51d14e8bda02
            865767592e26d9343fbec348ce55ce39b4b4b56f
        ")[..]
    );
}