|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 * http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 |
|
4 _("Make sure sha1 digests works with various messages"); |
|
5 |
|
6 Cu.import("resource://services-crypto/utils.js"); |
|
7 |
|
8 function run_test() { |
|
9 let mes1 = "hello"; |
|
10 let mes2 = "world"; |
|
11 |
|
12 let dig0 = CryptoUtils.UTF8AndSHA1(mes1); |
|
13 do_check_eq(dig0, |
|
14 "\xaa\xf4\xc6\x1d\xdc\xc5\xe8\xa2\xda\xbe\xde\x0f\x3b\x48\x2c\xd9\xae\xa9\x43\x4d"); |
|
15 |
|
16 _("Make sure right sha1 digests are generated"); |
|
17 let dig1 = CryptoUtils.sha1(mes1); |
|
18 do_check_eq(dig1, "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d"); |
|
19 let dig2 = CryptoUtils.sha1(mes2); |
|
20 do_check_eq(dig2, "7c211433f02071597741e6ff5a8ea34789abbf43"); |
|
21 let dig12 = CryptoUtils.sha1(mes1 + mes2); |
|
22 do_check_eq(dig12, "6adfb183a4a2c94a2f92dab5ade762a47889a5a1"); |
|
23 let dig21 = CryptoUtils.sha1(mes2 + mes1); |
|
24 do_check_eq(dig21, "5715790a892990382d98858c4aa38d0617151575"); |
|
25 |
|
26 _("Repeated sha1s shouldn't change the digest"); |
|
27 do_check_eq(CryptoUtils.sha1(mes1), dig1); |
|
28 do_check_eq(CryptoUtils.sha1(mes2), dig2); |
|
29 do_check_eq(CryptoUtils.sha1(mes1 + mes2), dig12); |
|
30 do_check_eq(CryptoUtils.sha1(mes2 + mes1), dig21); |
|
31 |
|
32 _("Nested sha1 should work just fine"); |
|
33 let nest1 = CryptoUtils.sha1(CryptoUtils.sha1(CryptoUtils.sha1(CryptoUtils.sha1(CryptoUtils.sha1(mes1))))); |
|
34 do_check_eq(nest1, "23f340d0cff31e299158b3181b6bcc7e8c7f985a"); |
|
35 let nest2 = CryptoUtils.sha1(CryptoUtils.sha1(CryptoUtils.sha1(CryptoUtils.sha1(CryptoUtils.sha1(mes2))))); |
|
36 do_check_eq(nest2, "1f6453867e3fb9876ae429918a64cdb8dc5ff2d0"); |
|
37 } |