(use ripemd message-digest test) (use srfi-13) (define (ripemd128-digest obj) (message-digest-object (ripemd128-primitive) obj 'hex) ) (define (ripemd160-digest obj) (message-digest-object (ripemd160-primitive) obj 'hex) ) (test-begin "RIPE-MD") (test-group "128 bits" (test "cdf26213a150dc3ecb610f18f6b38b46" (ripemd128-digest "")) (test "86be7afa339d0fc7cfc785e72f578d33" (ripemd128-digest "a")) (test "c14a12199c66e4ba84636b0f69144c77" (ripemd128-digest "abc")) (test "9e327b3d6e523062afc1132d7df9d1b8" (ripemd128-digest "message digest")) (test "fd2aa607f71dc8f510714922b371834e" (ripemd128-digest "abcdefghijklmnopqrstuvwxyz")) (test "a1aa0689d0fafa2ddc22e88b49133a06" (ripemd128-digest "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq")) (test "d1e959eb179c911faea4624c60c5c702" (ripemd128-digest "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")) (test "3f45ef194732c2dbb2c4a2c769795fa3" (ripemd128-digest "12345678901234567890123456789012345678901234567890123456789012345678901234567890")) ) (test-group "160 bits" ;See http://www.cosic.esat.kuleuven.be/nessie/ (test-group "NESSIE Strings" (test "S1.0" "9c1185a5c5e9fc54612808977ee8f548b2258d31" (message-digest-string (ripemd160-primitive) "")) (test "S1.1" "0bdc9d2d256b3ee9daae347be6f4dc835a467ffe" (message-digest-string (ripemd160-primitive) "a")) (test "S1.2" "8eb208f7e05d987a9b044a8e98c6b087f15a0bfc" (message-digest-string (ripemd160-primitive) "abc")) (test "S1.3" "5d0689ef49d2fae572b881b123a85ffa21595f36" (message-digest-string (ripemd160-primitive) "message digest")) (test "S1.4" "f71c27109c692c1b56bbdceb5b9d2865b3708dbc" (message-digest-string (ripemd160-primitive) "abcdefghijklmnopqrstuvwxyz")) (test "S1.5" "12a053384a9c0c88e405a06c27dcf49ada62eb2b" (message-digest-string (ripemd160-primitive) "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq")) (test "S1.6" "b0e20b6e3116640286ed3a87a5713079b21f5189" (message-digest-string (ripemd160-primitive) "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")) (let ((tstr "1234567890")) (test "S1.7" "9b752e45573d4b39f4dbd3323cab82bf63326bfb" (message-digest-string (ripemd160-primitive) (xsubstring tstr 0 (* 8 (string-length tstr))))) ) ) (test-group "byte-vector" (test "9c1185a5c5e9fc54612808977ee8f548b2258d31" (ripemd160-digest (string->blob ""))) (test "0bdc9d2d256b3ee9daae347be6f4dc835a467ffe" (ripemd160-digest (string->blob "a"))) ) ) (test-end) (test-exit)