Index: LayoutTests/crypto/sign-verify.html |
diff --git a/LayoutTests/crypto/sign-verify.html b/LayoutTests/crypto/sign-verify.html |
index 8e4fcc1801027274d7f7d18c8fe6d8e726c98806..2b07f145f080f59bc5bfcf4ce1d3f93d1546d009 100644 |
--- a/LayoutTests/crypto/sign-verify.html |
+++ b/LayoutTests/crypto/sign-verify.html |
@@ -76,7 +76,8 @@ var kHmacTestVectors = [ |
function runSuccessTestCase(testCase) |
{ |
- var algorithm = {name: 'HMAC', hash: {name: testCase.algorithm}}; |
+ var importAlgorithm = {name: 'HMAC', hash: {name: testCase.algorithm}}; |
+ var algorithm = {name: 'HMAC'}; |
var key = null; |
var keyData = hexStringToUint8Array(testCase.key); |
@@ -84,7 +85,7 @@ function runSuccessTestCase(testCase) |
var extractable = false; |
// (1) Import the key |
- return crypto.subtle.importKey('raw', keyData, algorithm, extractable, usages).then(function(result) { |
+ return crypto.subtle.importKey('raw', keyData, importAlgorithm, extractable, usages).then(function(result) { |
key = result; |
// shouldBe() can only resolve variables in global context. |
@@ -92,6 +93,7 @@ function runSuccessTestCase(testCase) |
shouldBe("tmpKey.type", "'secret'") |
shouldBe("tmpKey.extractable", "false") |
shouldBe("tmpKey.algorithm.name", "'HMAC'") |
+ shouldBe("tmpKey.algorithm.hash.name", "'" + testCase.algorithm + "'") |
shouldBe("tmpKey.usages.join(',')", "'sign,verify'") |
// (2) Sign. |
@@ -119,16 +121,16 @@ for (var i = 0; i < kHmacTestVectors.length; ++i) { |
allTests.push(runSuccessTestCase(kHmacTestVectors[i])); |
} |
-hmacSha1 = {name: 'hmac', hash: {name: 'sha-1'}}; |
+hmac = {name: 'hmac'}; |
data = asciiToUint8Array("hello"); |
allTests.push(importTestKeys().then(function(importedKeys) { |
keys = importedKeys; |
// Pass invalid signature parameters to verify() |
- shouldThrow("crypto.subtle.verify(hmacSha1, keys.hmacSha1, null, data)"); |
- shouldThrow("crypto.subtle.verify(hmacSha1, keys.hmacSha1, 'a', data)"); |
- shouldThrow("crypto.subtle.verify(hmacSha1, keys.hmacSha1, [], data)"); |
+ shouldThrow("crypto.subtle.verify(hmac, keys.hmacSha1, null, data)"); |
+ shouldThrow("crypto.subtle.verify(hmac, keys.hmacSha1, 'a', data)"); |
+ shouldThrow("crypto.subtle.verify(hmac, keys.hmacSha1, [], data)"); |
// Operation does not support signing. |
shouldRejectPromiseWithNull("crypto.subtle.sign({name: 'sha-1'}, keys.hmacSha1, data)"); |
@@ -136,19 +138,6 @@ allTests.push(importTestKeys().then(function(importedKeys) { |
// Operation doesn't support signing (also given an invalid key, but the |
// first failure takes priority) |
shouldRejectPromiseWithNull("crypto.subtle.sign({name: 'RSAES-PKCS1-v1_5'}, keys.hmacSha1, data)"); |
- |
- // Key's algorithm must match. |
- shouldRejectPromiseWithNull("crypto.subtle.sign({name: 'hmac', hash: {name: 'sha-256'}}, keys.hmacSha1, data)"); |
- |
- // --------------------------------------------------- |
- // HMAC normalization failures (HmacParams) |
- // --------------------------------------------------- |
- shouldRejectPromiseWithNull("crypto.subtle.sign({name: 'hmac'}, keys.hmacSha1, data)"); |
- shouldRejectPromiseWithNull("crypto.subtle.sign({name: 'hmac', hash: 3}, keys.hmacSha1, data)"); |
- shouldRejectPromiseWithNull("crypto.subtle.sign({name: 'hmac', hash: null}, keys.hmacSha1, data)"); |
- shouldRejectPromiseWithNull("crypto.subtle.sign({name: 'hmac', hash: {}}, keys.hmacSha1, data)"); |
- shouldRejectPromiseWithNull("crypto.subtle.sign({name: 'hmac', hash: {name: 'foo'}}, keys.hmacSha1, data)"); |
- shouldRejectPromiseWithNull("crypto.subtle.sign({name: 'hmac', hash: {name: 'AES-CBC'}}, keys.hmacSha1, data)"); |
})); |
// ------------------------------------------------- |