Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(120)

Side by Side Diff: LayoutTests/crypto/sign-verify.html

Issue 209853010: [ABANDONED] Enable V8 Promises (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <script src="../resources/js-test.js"></script> 4 <script src="../resources/js-test.js"></script>
5 <script src="resources/common.js"></script> 5 <script src="resources/common.js"></script>
6 <script src="resources/keys.js"></script> 6 <script src="resources/keys.js"></script>
7 </head> 7 </head>
8 <body> 8 <body>
9 <p id="description"></p> 9 <p id="description"></p>
10 <div id="console"></div> 10 <div id="console"></div>
11 11
12 <script> 12 <script>
13 description("Tests cypto.subtle.sign and crypto.subtle.verify"); 13 description("Tests cypto.subtle.sign and crypto.subtle.verify");
14 14
15 jsTestIsAsync = true; 15 jsTestIsAsync = true;
16 16
17 // A list of Promises for every test to run. 17 var runTests;
18 var allTests = []; 18 var allTests = new Promise(function(resolve) {
19 runTests = resolve;
20 });
19 21
20 // ------------------------------------------------- 22 // -------------------------------------------------
21 // Successful sign/verify for HMAC 23 // Successful sign/verify for HMAC
22 // ------------------------------------------------- 24 // -------------------------------------------------
23 25
24 // The "key", "message", and "mac" are written as hex encoded strings. 26 // The "key", "message", and "mac" are written as hex encoded strings.
25 // 27 //
26 // Unless indicated otherwise, the data comes from: 28 // Unless indicated otherwise, the data comes from:
27 // http://csrc.nist.gov/groups/STM/cavp/index.html#07 29 // http://csrc.nist.gov/groups/STM/cavp/index.html#07
28 // Which can be downloaded from: 30 // Which can be downloaded from:
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 // (4) Verify truncated mac (by stripping 1 byte off of it). 114 // (4) Verify truncated mac (by stripping 1 byte off of it).
113 var expectedMac = hexStringToUint8Array(testCase.mac); 115 var expectedMac = hexStringToUint8Array(testCase.mac);
114 return crypto.subtle.verify(algorithm, key, expectedMac.subarray(0, expe ctedMac.byteLength - 1), hexStringToUint8Array(testCase.message)); 116 return crypto.subtle.verify(algorithm, key, expectedMac.subarray(0, expe ctedMac.byteLength - 1), hexStringToUint8Array(testCase.message));
115 }).then(function(result) { 117 }).then(function(result) {
116 verifyResult = result; 118 verifyResult = result;
117 shouldBe("verifyResult", "false") 119 shouldBe("verifyResult", "false")
118 }); 120 });
119 } 121 }
120 122
121 // Add all of the tests defined above. 123 // Add all of the tests defined above.
122 for (var i = 0; i < kHmacTestVectors.length; ++i) { 124 kHmacTestVectors.forEach(function(data) {
123 allTests.push(runSuccessTestCase(kHmacTestVectors[i])); 125 allTests = allTests.then(function() {
124 } 126 return runSuccessTestCase(data);
127 });
128 });
125 129
126 hmac = {name: 'hmac'}; 130 hmac = {name: 'hmac'};
127 data = asciiToUint8Array("hello"); 131 data = asciiToUint8Array("hello");
128 132
129 allTests.push(importTestKeys().then(function(importedKeys) { 133 allTests = allTests.then(function() {
eroman 2014/03/26 09:07:58 In fact I have a similar changelist pending which
134 return importTestKeys();
135 }).then(function(importedKeys) {
130 keys = importedKeys; 136 keys = importedKeys;
131 137
132 // Pass invalid signature parameters to verify() 138 // Pass invalid signature parameters to verify()
133 shouldThrow("crypto.subtle.verify(hmac, keys.hmacSha1, null, data)"); 139 shouldThrow("crypto.subtle.verify(hmac, keys.hmacSha1, null, data)");
134 shouldThrow("crypto.subtle.verify(hmac, keys.hmacSha1, 'a', data)"); 140 shouldThrow("crypto.subtle.verify(hmac, keys.hmacSha1, 'a', data)");
135 shouldThrow("crypto.subtle.verify(hmac, keys.hmacSha1, [], data)"); 141 shouldThrow("crypto.subtle.verify(hmac, keys.hmacSha1, [], data)");
136 142
137 // Operation does not support signing. 143 // Operation does not support signing.
138 shouldRejectPromiseWithNull("crypto.subtle.sign({name: 'sha-1'}, keys.hmacSh a1, data)"); 144 shouldRejectPromiseWithNull("crypto.subtle.sign({name: 'sha-1'}, keys.hmacSh a1, data)");
139 145
140 // Operation doesn't support signing (also given an invalid key, but the 146 // Operation doesn't support signing (also given an invalid key, but the
141 // first failure takes priority) 147 // first failure takes priority)
142 shouldRejectPromiseWithNull("crypto.subtle.sign({name: 'RSAES-PKCS1-v1_5'}, keys.hmacSha1, data)"); 148 shouldRejectPromiseWithNull("crypto.subtle.sign({name: 'RSAES-PKCS1-v1_5'}, keys.hmacSha1, data)");
143 })); 149 });
144 150
145 // ------------------------------------------------- 151 // -------------------------------------------------
146 // Wait until all the tests have been run. 152 // Wait until all the tests have been run.
147 // ------------------------------------------------- 153 // -------------------------------------------------
148 154 allTests = allTests.then(finishJSTest, failAndFinishJSTest);
149 Promise.all(allTests).then(finishJSTest, failAndFinishJSTest); 155 runTests();
150 156
151 </script> 157 </script>
152 158
153 </body> 159 </body>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698