-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsha-digest.html
executable file
·90 lines (78 loc) · 3.32 KB
/
sha-digest.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<html>
<head>
<script type="text/javascript" src="DJS/encoding.js"></script>
<script type="text/javascript" src="DJS/hashing.js"></script>
<script type="text/javascript" src="DJS/aes.js"></script>
<script type="text/javascript" src="DJS/rsa.js"></script>
<script type="text/javascript" src="asn1JS.js"></script>
<script type="text/javascript" src="functions.js"></script>
<script type="text/javascript" src="algorithms.js"></script>
<script type="text/javascript" src="Key.js"></script>
<script type="text/javascript" src="generateKey.js"></script>
<script type="text/javascript" src="sign.js"></script>
<script type="text/javascript" src="decrypt.js"></script>
<script type="text/javascript" src="encrypt.js"></script>
<script type="text/javascript" src="exportKey.js"></script>
<script type="text/javascript" src="importKey.js"></script>
<script type="text/javascript" src="verify.js"></script>
<script type="text/javascript" src="digest.js"></script>
<script type="text/javascript" src="deriveKey.js"></script>
<script type="text/javascript" src="wrapKey.js"></script>
<script type="text/javascript" src="unwrapKey.js"></script>
<script type="text/javascript" src="resources/common.js"></script>
<script type="text/javascript" src="resources/js-test.js"></script>
<script type="text/javascript" src="subtleinriacrypto.js"></script>
<script type="text/javascript">
function init(){
var start = new Date().getTime();
window.crypto = inriacrypto;
kDigestTestVectors = [
{
algorithm: "SHA-1",
input: "",
output: "da39a3ee5e6b4b0d3255bfef95601890afd80709"
},
{
algorithm: "SHA-256",
input: "",
output: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
algorithm: "SHA-1",
input: "00",
output: "5ba93c9db0cff93f52b521d7420e43f6eda2784f"
},
{
algorithm: "SHA-256",
input: "00",
output: "6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d"
},
{
algorithm: "SHA-1",
input: "000102030405",
output: "868460d98d09d8bbb93d7b6cdd15cc7fbec676b9"
},
{
algorithm: "SHA-256",
input: "000102030405",
output: "17e88db187afd62c16e5debf3e6527cd006bc012bc90b51a810cd80c2d511f43"
},
];
function runTest(testCase)
{
return inriacrypto.subtle.digest({name: testCase.algorithm}, hexStringToUint8Array(testCase.input)).then(function(result) {
var testDescription = testCase.algorithm + " of [" + testCase.input + "]";
bytesShouldMatchHexString(testDescription, testCase.output, result);
});
}
var lastPromise = Promise.resolve(null);
kDigestTestVectors.forEach(function(test) {
lastPromise = lastPromise.then(runTest.bind(null, test));
});
lastPromise.then(finishJSTest, failAndFinishJSTest);
}
</script>
</head>
<body onload="init()">
</body>
</html>