equal
deleted
inserted
replaced
1 (* Title: Pure/General/sha1_samples.ML |
|
2 Author: Makarius |
|
3 |
|
4 Some SHA1 samples found in the wild. |
|
5 *) |
|
6 |
|
7 signature SHA1_SAMPLES = |
|
8 sig |
|
9 val test: unit -> unit |
|
10 end; |
|
11 |
|
12 structure SHA1_Samples: SHA1_SAMPLES = |
|
13 struct |
|
14 |
|
15 fun check (msg, key) = |
|
16 let val key' = SHA1.rep (SHA1.digest msg) in |
|
17 if key = key' then () |
|
18 else |
|
19 raise Fail ("SHA1 library integrity test failed on " ^ quote msg ^ ":\n" ^ |
|
20 key ^ " expected, but\n" ^ key' ^ " was found") |
|
21 end; |
|
22 |
|
23 fun test () = |
|
24 List.app check |
|
25 [("", "da39a3ee5e6b4b0d3255bfef95601890afd80709"), |
|
26 ("a", "86f7e437faa5a7fce15d1ddcb9eaeaea377667b8"), |
|
27 ("abc", "a9993e364706816aba3e25717850c26c9cd0d89d"), |
|
28 ("abcdefghijklmnopqrstuvwxyz", "32d10c7b8cf96570ca04ce37f2a19d84240d3a89"), |
|
29 ("The quick brown fox jumps over the lazy dog", "2fd4e1c67a2d28fced849ee1bb76e7391b93eb12"), |
|
30 (replicate_string 100 "\000", "ed4a77d1b56a118938788fc53037759b6c501e3d"), |
|
31 ("a\000b", "4a3dec2d1f8245280855c42db0ee4239f917fdb8"), |
|
32 ("\000\001", "3f29546453678b855931c174a97d6c0894b8f546")]; |
|
33 |
|
34 val _ = test (); |
|
35 |
|
36 end; |
|