| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 <!DOCTYPE html> |  | 
| 2 <html> |  | 
| 3 <head> |  | 
| 4 <script src="../resources/js-test.js"></script> |  | 
| 5 <script src="resources/common.js"></script> |  | 
| 6 </head> |  | 
| 7 <body> |  | 
| 8 <p id="description"></p> |  | 
| 9 <div id="console"></div> |  | 
| 10 |  | 
| 11 <script> |  | 
| 12 description("Tests the digest() operation for SHA-*"); |  | 
| 13 |  | 
| 14 jsTestIsAsync = true; |  | 
| 15 |  | 
| 16 // These SHA-* test vectors were taking from: |  | 
| 17 // http://csrc.nist.gov/groups/STM/cavp/documents/shs/shabytetestvectors.zip |  | 
| 18 // |  | 
| 19 // This is not intended to be an exhaustive test, but rather give basic |  | 
| 20 // confidence that things work. |  | 
| 21 // |  | 
| 22 // Both inputs and outputs are written as a hex-encoded string. |  | 
| 23 kDigestTestVectors = [ |  | 
| 24   { |  | 
| 25     algorithm: "SHA-1", |  | 
| 26     input: "", |  | 
| 27     output: "da39a3ee5e6b4b0d3255bfef95601890afd80709" |  | 
| 28   }, |  | 
| 29   { |  | 
| 30     algorithm: "SHA-256", |  | 
| 31     input: "", |  | 
| 32     output: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" |  | 
| 33   }, |  | 
| 34   { |  | 
| 35     algorithm: "SHA-384", |  | 
| 36     input: "", |  | 
| 37     output: "38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274
     edebfe76f65fbd51ad2f14898b95b" |  | 
| 38   }, |  | 
| 39   { |  | 
| 40     algorithm: "SHA-512", |  | 
| 41     input: "", |  | 
| 42     output: "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d
     0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e" |  | 
| 43   }, |  | 
| 44   { |  | 
| 45     algorithm: "SHA-1", |  | 
| 46     input: "00", |  | 
| 47     output: "5ba93c9db0cff93f52b521d7420e43f6eda2784f" |  | 
| 48   }, |  | 
| 49   { |  | 
| 50     algorithm: "SHA-256", |  | 
| 51     input: "00", |  | 
| 52     output: "6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d" |  | 
| 53   }, |  | 
| 54   { |  | 
| 55     algorithm: "SHA-384", |  | 
| 56     input: "00", |  | 
| 57     output: "bec021b4f368e3069134e012c2b4307083d3a9bdd206e24e5f0d86e13d663665593
     3ec2b413465966817a9c208a11717" |  | 
| 58   }, |  | 
| 59   { |  | 
| 60     algorithm: "SHA-512", |  | 
| 61     input: "00", |  | 
| 62     output: "b8244d028981d693af7b456af8efa4cad63d282e19ff14942c246e50d9351d22704
     a802a71c3580b6370de4ceb293c324a8423342557d4e5c38438f0e36910ee" |  | 
| 63   }, |  | 
| 64   { |  | 
| 65     algorithm: "SHA-1", |  | 
| 66     input: "000102030405", |  | 
| 67     output: "868460d98d09d8bbb93d7b6cdd15cc7fbec676b9" |  | 
| 68   }, |  | 
| 69   { |  | 
| 70     algorithm: "SHA-256", |  | 
| 71     input: "000102030405", |  | 
| 72     output: "17e88db187afd62c16e5debf3e6527cd006bc012bc90b51a810cd80c2d511f43" |  | 
| 73   }, |  | 
| 74   { |  | 
| 75     algorithm: "SHA-384", |  | 
| 76     input: "000102030405", |  | 
| 77     output: "79f4738706fce9650ac60266675c3cd07298b09923850d525604d040e6e448adc7d
     c22780d7e1b95bfeaa86a678e4552" |  | 
| 78   }, |  | 
| 79   { |  | 
| 80     algorithm: "SHA-512", |  | 
| 81     input: "000102030405", |  | 
| 82     output: "2f3831bccc94cf061bcfa5f8c23c1429d26e3bc6b76edad93d9025cb91c903af6cf
     9c935dc37193c04c2c66e7d9de17c358284418218afea2160147aaa912f4c" |  | 
| 83   }, |  | 
| 84 ]; |  | 
| 85 |  | 
| 86 function runTest(testCase) |  | 
| 87 { |  | 
| 88     return crypto.subtle.digest({name: testCase.algorithm}, hexStringToUint8Arra
     y(testCase.input)).then(function(result) { |  | 
| 89         var testDescription = testCase.algorithm + " of [" + testCase.input + "]
     "; |  | 
| 90         bytesShouldMatchHexString(testDescription, testCase.output, result); |  | 
| 91     }); |  | 
| 92 } |  | 
| 93 |  | 
| 94 var lastPromise = Promise.resolve(null); |  | 
| 95 |  | 
| 96 kDigestTestVectors.forEach(function(test) { |  | 
| 97     lastPromise = lastPromise.then(runTest.bind(null, test)); |  | 
| 98 }); |  | 
| 99 |  | 
| 100 lastPromise.then(finishJSTest, failAndFinishJSTest); |  | 
| 101 |  | 
| 102 </script> |  | 
| 103 |  | 
| 104 </body> |  | 
| 105 </html> |  | 
| OLD | NEW | 
|---|