-
Notifications
You must be signed in to change notification settings - Fork 188
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
8 changed files
with
440 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -57,6 +57,7 @@ let runtime = | |
; effect | ||
; zstd | ||
; runtime_events | ||
; blake2 | ||
] | ||
|
||
include Files |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
(* TEST | ||
*) | ||
|
||
module Test(H: Digest.S) = struct | ||
|
||
let string (msg, hh) = | ||
if not ( (H.(equal (string msg) (of_hex hh)))) | ||
then ( | ||
Printf.printf "Expecting %S\ | ||
\nGot %S\n" hh (H.to_hex (H.string msg)); assert false) | ||
|
||
let file wlen rlen = | ||
let data = String.init wlen Char.unsafe_chr in | ||
Out_channel.with_open_bin "data.tmp" | ||
(fun oc -> Out_channel.output_string oc data); | ||
let h1 = H.file "data.tmp" in | ||
assert (H.equal h1 (H.string data)); | ||
let h2 = | ||
In_channel.with_open_bin "data.tmp" | ||
(fun ic -> H.channel ic rlen) in | ||
assert (H.equal h2 (H.substring data 0 rlen)); | ||
Sys.remove "data.tmp" | ||
|
||
let run_tests tests = | ||
List.iter string tests; | ||
file 100 99; | ||
file 100_000 10_000 | ||
end | ||
|
||
(* Test inputs *) | ||
|
||
let in1 = "" | ||
let in2 = "a" | ||
let in3 = "abc" | ||
let in4 = "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmno\ | ||
ijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu" | ||
let in5 = String.make 100_000 'a' | ||
|
||
(* Test vectors *) | ||
|
||
module TestMD5 = Test(Digest.MD5) | ||
let _ = TestMD5.run_tests | ||
[in1, "d41d8cd98f00b204e9800998ecf8427e"; | ||
in2, "0cc175b9c0f1b6a831c399e269772661"; | ||
in3, "900150983cd24fb0d6963f7d28e17f72"; | ||
in4, "03dd8807a93175fb062dfb55dc7d359c"; | ||
in5, "1af6d6f2f682f76f80e606aeaaee1680"] | ||
|
||
module TestBLAKE512 = Test(Digest.BLAKE512) | ||
let _ = TestBLAKE512.run_tests | ||
[in1, "786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419\ | ||
d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2ce"; | ||
in2, "333fcb4ee1aa7c115355ec66ceac917c8bfd815bf7587d325aec1864edd24e34\ | ||
d5abe2c6b1b5ee3face62fed78dbef802f2a85cb91d455a8f5249d330853cb3c"; | ||
in3, "ba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d1\ | ||
7d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923"; | ||
in4, "ce741ac5930fe346811175c5227bb7bfcd47f42612fae46c0809514f9e0e3a11\ | ||
ee1773287147cdeaeedff50709aa716341fe65240f4ad6777d6bfaf9726e5e52"; | ||
in5, "fe89a110a412012e7cc5c0e05b03b48a6b9d0ba108187826c5ac82ce7aa45e7e\ | ||
31b054979ec8ca5acd0bcc85f379d848f90f9d1593358cba8d88c7cd94ea8eee"] | ||
|
||
module TestBLAKE256 = Test(Digest.BLAKE256) | ||
let _ = TestBLAKE256.run_tests | ||
[in1, "0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8"; | ||
in2, "8928aae63c84d87ea098564d1e03ad813f107add474e56aedd286349c0c03ea4"; | ||
in3, "bddd813c634239723171ef3fee98579b94964e3bb1cb3e427262c8c068d52319"; | ||
in4, "90a0bcf5e5a67ac1578c2754617994cfc248109275a809a0721feebd1e918738"; | ||
in5, "b717c86cf745507ec5373f12f21350eb8550039b4263f7ba6e8df9030b5673c6"] | ||
|
||
module TestBLAKE128 = Test(Digest.BLAKE128) | ||
let _ = TestBLAKE128.run_tests | ||
[in1, "cae66941d9efbd404e4d88758ea67670"; | ||
in2, "27c35e6e9373877f29e562464e46497e"; | ||
in3, "cf4ab791c62b8d2b2109c90275287816"; | ||
in4, "8fa81cd08c10a6e4dd94583e6fb48c2f"; | ||
in5, "5c4b4b762807b3290e7eee0aa9b18655"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.