Initial project import
This commit is contained in:
commit
23f2d29e32
11957 files changed
+1754577
No files matched your search
@@ -0,0 +1,50 @@
|
||||
import crypto.ripemd160
|
||||
|
||||
struct MdTest {
|
||||
o string
|
||||
i string
|
||||
}
|
||||
|
||||
const vectors = [
|
||||
MdTest{'9c1185a5c5e9fc54612808977ee8f548b2258d31', ''},
|
||||
MdTest{'0bdc9d2d256b3ee9daae347be6f4dc835a467ffe', 'a'},
|
||||
MdTest{'8eb208f7e05d987a9b044a8e98c6b087f15a0bfc', 'abc'},
|
||||
MdTest{'5d0689ef49d2fae572b881b123a85ffa21595f36', 'message digest'},
|
||||
MdTest{'f71c27109c692c1b56bbdceb5b9d2865b3708dbc', 'abcdefghijklmnopqrstuvwxyz'},
|
||||
MdTest{'12a053384a9c0c88e405a06c27dcf49ada62eb2b', 'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'},
|
||||
MdTest{'b0e20b6e3116640286ed3a87a5713079b21f5189', 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'},
|
||||
MdTest{'9b752e45573d4b39f4dbd3323cab82bf63326bfb', '12345678901234567890123456789012345678901234567890123456789012345678901234567890'},
|
||||
]
|
||||
|
||||
fn test_vectors() {
|
||||
for tv in vectors {
|
||||
mut md := ripemd160.new()
|
||||
for j := 0; j < 3; j++ {
|
||||
if j < 2 {
|
||||
md.write(tv.i.bytes()) or { panic(err) }
|
||||
} else {
|
||||
half := tv.i.len / 2
|
||||
md.write(tv.i.bytes()[0..tv.i.len / 2]) or { panic(err) }
|
||||
md.sum([])
|
||||
md.write(tv.i.bytes()[tv.i.len / 2..]) or { panic(err) }
|
||||
}
|
||||
assert md.sum([]).hex() == tv.o
|
||||
assert ripemd160.hexhash(tv.i) == tv.o
|
||||
md.reset()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn million_a() string {
|
||||
mut md := ripemd160.new()
|
||||
for _ in 0 .. 100000 {
|
||||
md.write('aaaaaaaaaa'.bytes()) or { panic(err) }
|
||||
}
|
||||
return md.sum([]).hex()
|
||||
}
|
||||
|
||||
fn test_million_a() {
|
||||
out := '52783243c1697bdbe16d37f97f68f08325dc1528'
|
||||
s := million_a()
|
||||
assert s == out
|
||||
}
|
||||
Reference in new issue
Block a user