Commit dc774031 authored by eroman@chromium.org's avatar eroman@chromium.org

[webcrypto] Remove support for AES 192-bit keys (1 of 2)

Removes uses of 192-bit AES keys from the LayoutTests. Since once the corresponding Chromium change lands they will no longer work.

BUG=381829

Review URL: https://codereview.chromium.org/325323004

git-svn-id: svn://svn.chromium.org/blink/trunk@176066 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent c0fcf79e
...@@ -15,14 +15,6 @@ PASS tmpKey.type is "secret" ...@@ -15,14 +15,6 @@ PASS tmpKey.type is "secret"
PASS typeof tmpKey.extractable is 'boolean' PASS typeof tmpKey.extractable is 'boolean'
PASS tmpKey.extractable is false PASS tmpKey.extractable is false
PASS tmpKey.algorithm.name is "AES-CBC" PASS tmpKey.algorithm.name is "AES-CBC"
PASS tmpKey.algorithm.length is 192
PASS tmpKey.usages.join(',') is "encrypt,decrypt"
PASS: Encryption should be [4f021db243bc633d7178183a9fa071e8b4d9ada9ad7dedf4e5e738763f69145a571b242012fb7ae07fa9baac3df102e0288c6f9ec554652e50ab55e121f099ae] and was
PASS: Decryption should be [6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff6] and was
PASS tmpKey.type is "secret"
PASS typeof tmpKey.extractable is 'boolean'
PASS tmpKey.extractable is false
PASS tmpKey.algorithm.name is "AES-CBC"
PASS tmpKey.algorithm.length is 256 PASS tmpKey.algorithm.length is 256
PASS tmpKey.usages.join(',') is "encrypt,decrypt" PASS tmpKey.usages.join(',') is "encrypt,decrypt"
PASS: Encryption should be [f58c4c04d6e5f1ba779eabfb5f7bfbd69cfc4e967edb808d679f777bc6702c7d39f23369a9d9bacfa530e26304231461c9aaf02a6a54e9e242ccbf48c59daca6] and was PASS: Encryption should be [f58c4c04d6e5f1ba779eabfb5f7bfbd69cfc4e967edb808d679f777bc6702c7d39f23369a9d9bacfa530e26304231461c9aaf02a6a54e9e242ccbf48c59daca6] and was
......
...@@ -35,18 +35,6 @@ var kAesCbcSuccessVectors = [ ...@@ -35,18 +35,6 @@ var kAesCbcSuccessVectors = [
"8cb82807230e1321d3fae00d18cc2012" "8cb82807230e1321d3fae00d18cc2012"
}, },
// 192-bit key, where final block of plaintext has to pad by 15.
// Derived from [1] F.2.3 (CBC-AES192.Encrypt), by stripping 15 bytes off
// plaintext and adding padding block.
{
key: "8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b",
iv: "000102030405060708090a0b0c0d0e0f",
plainText: "6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff6",
cipherText: "4f021db243bc633d7178183a9fa071e8b4d9ada9ad7dedf4e5e738763f69145a571b242012fb7ae07fa9baac3df102e0" +
// Padding block.
"288c6f9ec554652e50ab55e121f099ae"
},
// 256-bit key, where final block of plaintext has to pad by 3. // 256-bit key, where final block of plaintext has to pad by 3.
// Derived from [1] F.2.6 CBC-AES256.Decrypt, by stripping 3 bytes off // Derived from [1] F.2.6 CBC-AES256.Decrypt, by stripping 3 bytes off
// plaintext and adding padding block. // plaintext and adding padding block.
......
...@@ -8,11 +8,11 @@ Importing a key... ...@@ -8,11 +8,11 @@ Importing a key...
PASS key.type is 'secret' PASS key.type is 'secret'
PASS key.extractable is false PASS key.extractable is false
PASS key.algorithm.name is 'AES-CBC' PASS key.algorithm.name is 'AES-CBC'
PASS key.algorithm.length is 192 PASS key.algorithm.length is 256
PASS key.usages is ["encrypt"] PASS key.usages is ["encrypt"]
Using the key to encrypt plaintext... Using the key to encrypt plaintext...
PASS bytesToHexString(new Uint8Array(encryptionResult)) is '4f021db243bc633d7178183a9fa071e8b4d9ada9ad7dedf4e5e738763f69145a571b242012fb7ae07fa9baac3df102e008b0e27988598881d920a9e64f5615cd612ccd79224b350935d45dd6a98f8176' PASS bytesToHexString(new Uint8Array(encryptionResult)) is 'f58c4c04d6e5f1ba779eabfb5f7bfbd69cfc4e967edb808d679f777bc6702c7d39f23369a9d9bacfa530e26304231461c9aaf02a6a54e9e242ccbf48c59daca6'
PASS successfullyParsed is true PASS successfullyParsed is true
TEST COMPLETE TEST COMPLETE
......
...@@ -16,14 +16,15 @@ jsTestIsAsync = true; ...@@ -16,14 +16,15 @@ jsTestIsAsync = true;
var extractable = true; var extractable = true;
var iv = hexStringToUint8Array("000102030405060708090a0b0c0d0e0f"); var iv = hexStringToUint8Array("000102030405060708090a0b0c0d0e0f");
var plaintext = hexStringToUint8Array("6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710"); var plaintext = hexStringToUint8Array("6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be6");
var cipherText = ""
var jwkKey = { var jwkKey = {
"kty": "oct", "kty": "oct",
"alg": "A192CBC", "alg": "A256CBC",
"use": "enc", "use": "enc",
"ext": true, "ext": true,
"k": "jnOw99oOZFLIEPMrgJB55WL46tJSLGt7" "k": "YD3rEBXKcb4rc67whX13gR81LAc7YQjXLZgQowkU3_Q"
}; };
var jwkKeyAsArrayBuffer = asciiToUint8Array(JSON.stringify(jwkKey)); var jwkKeyAsArrayBuffer = asciiToUint8Array(JSON.stringify(jwkKey));
...@@ -35,14 +36,14 @@ crypto.subtle.importKey("jwk", jwkKeyAsArrayBuffer, {name: 'AES-CBC'}, false, [" ...@@ -35,14 +36,14 @@ crypto.subtle.importKey("jwk", jwkKeyAsArrayBuffer, {name: 'AES-CBC'}, false, ["
shouldBe("key.type", "'secret'"); shouldBe("key.type", "'secret'");
shouldBe("key.extractable", "false"); shouldBe("key.extractable", "false");
shouldBe("key.algorithm.name", "'AES-CBC'"); shouldBe("key.algorithm.name", "'AES-CBC'");
shouldBe("key.algorithm.length", "192"); shouldBe("key.algorithm.length", "256");
shouldBe("key.usages", '["encrypt"]'); shouldBe("key.usages", '["encrypt"]');
debug("\nUsing the key to encrypt plaintext..."); debug("\nUsing the key to encrypt plaintext...");
return crypto.subtle.encrypt({name: "aes-cbc", iv: iv}, key, plaintext); return crypto.subtle.encrypt({name: "aes-cbc", iv: iv}, key, plaintext);
}).then(function(result) { }).then(function(result) {
encryptionResult = result; encryptionResult = result;
shouldBe("bytesToHexString(new Uint8Array(encryptionResult))", "'4f021db243bc633d7178183a9fa071e8b4d9ada9ad7dedf4e5e738763f69145a571b242012fb7ae07fa9baac3df102e008b0e27988598881d920a9e64f5615cd612ccd79224b350935d45dd6a98f8176'"); shouldBe("bytesToHexString(new Uint8Array(encryptionResult))", "'f58c4c04d6e5f1ba779eabfb5f7bfbd69cfc4e967edb808d679f777bc6702c7d39f23369a9d9bacfa530e26304231461c9aaf02a6a54e9e242ccbf48c59daca6'");
finishJSTest(); finishJSTest();
}).then(finishJSTest, failAndFinishJSTest); }).then(finishJSTest, failAndFinishJSTest);
......
...@@ -17,11 +17,11 @@ error is: SyntaxError: Invalid keyFormat argument ...@@ -17,11 +17,11 @@ error is: SyntaxError: Invalid keyFormat argument
error is: SyntaxError: Invalid keyFormat argument error is: SyntaxError: Invalid keyFormat argument
Exporting the key as raw data... Exporting the key as raw data...
PASS bytesToHexString(new Uint8Array(exportedData)) is '8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b' PASS bytesToHexString(new Uint8Array(exportedData)) is '8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b8e73b0f7da0e6452'
Exporting the key as JWK... Exporting the key as JWK...
PASS exportedJWK.kty is 'oct' PASS exportedJWK.kty is 'oct'
PASS exportedJWK.k is 'jnOw99oOZFLIEPMrgJB55WL46tJSLGt7' PASS exportedJWK.k is 'jnOw99oOZFLIEPMrgJB55WL46tJSLGt7jnOw99oOZFI'
PASS exportedJWK.alg is 'A192CBC' PASS exportedJWK.alg is 'A256CBC'
PASS exportedJWK.ext is true PASS exportedJWK.ext is true
PASS exportedJWK.use is undefined PASS exportedJWK.use is undefined
PASS exportedJWK.key_ops is ['encrypt', 'decrypt', 'wrapKey', 'unwrapKey'] PASS exportedJWK.key_ops is ['encrypt', 'decrypt', 'wrapKey', 'unwrapKey']
......
...@@ -18,7 +18,7 @@ var nonExtractable = false; ...@@ -18,7 +18,7 @@ var nonExtractable = false;
var jwkKey = { var jwkKey = {
kty: "oct", kty: "oct",
k: "jnOw99oOZFLIEPMrgJB55WL46tJSLGt7" k: "jnOw99oOZFLIEPMrgJB55WL46tJSLGt7jnOw99oOZFI"
}; };
var jwkKeyAsArrayBuffer = asciiToUint8Array(JSON.stringify(jwkKey)); var jwkKeyAsArrayBuffer = asciiToUint8Array(JSON.stringify(jwkKey));
...@@ -65,15 +65,15 @@ Promise.resolve(null).then(function(result) { ...@@ -65,15 +65,15 @@ Promise.resolve(null).then(function(result) {
return crypto.subtle.exportKey("raw", key); return crypto.subtle.exportKey("raw", key);
}).then(function(result) { }).then(function(result) {
exportedData = result; exportedData = result;
shouldBe("bytesToHexString(new Uint8Array(exportedData))", "'8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b'"); shouldBe("bytesToHexString(new Uint8Array(exportedData))", "'8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b8e73b0f7da0e6452'");
debug("Exporting the key as JWK..."); debug("Exporting the key as JWK...");
return crypto.subtle.exportKey("jwk", key); return crypto.subtle.exportKey("jwk", key);
}).then(function(result) { }).then(function(result) {
exportedJWK = JSON.parse(bytesToASCIIString(result)); exportedJWK = JSON.parse(bytesToASCIIString(result));
shouldBe("exportedJWK.kty", "'oct'"); shouldBe("exportedJWK.kty", "'oct'");
shouldBe("exportedJWK.k", "'jnOw99oOZFLIEPMrgJB55WL46tJSLGt7'"); shouldBe("exportedJWK.k", "'jnOw99oOZFLIEPMrgJB55WL46tJSLGt7jnOw99oOZFI'");
shouldBe("exportedJWK.alg", "'A192CBC'"); shouldBe("exportedJWK.alg", "'A256CBC'");
shouldBe("exportedJWK.ext", "true"); shouldBe("exportedJWK.ext", "true");
shouldBe("exportedJWK.use", "undefined"); shouldBe("exportedJWK.use", "undefined");
shouldBe("exportedJWK.key_ops", "['encrypt', 'decrypt', 'wrapKey', 'unwrapKey']"); shouldBe("exportedJWK.key_ops", "['encrypt', 'decrypt', 'wrapKey', 'unwrapKey']");
......
...@@ -29,8 +29,8 @@ PASS typeof tmpKey.extractable is 'boolean' ...@@ -29,8 +29,8 @@ PASS typeof tmpKey.extractable is 'boolean'
PASS tmpKey.extractable is false PASS tmpKey.extractable is false
PASS tmpKey.algorithm.name is "AES-GCM" PASS tmpKey.algorithm.name is "AES-GCM"
PASS tmpKey.usages.join(',') is "encrypt,decrypt" PASS tmpKey.usages.join(',') is "encrypt,decrypt"
PASS: Encryption should be [c4489fa64a6edf80e7e6a3b8855bc37c772ee7de0f91a981c36c93a35c88] and was PASS: Encryption should be [fda718aa1ec163487e21afc34f5a3a34795a9ee71dd3e7ee9a18fdb24181dc982b29c6ec723294a130ca2234952bb0ef68c0f34795fbe0] and was
PASS: Decryption should be [d30b02c343487105219d6fa080acc743] and was PASS: Decryption should be [69fd0c9da10b56ec6786333f8d76d4b74f8a434195f2f241f088b2520fb5fa29455df9893164fb1638abe6617915d9497a8fe2] and was
PASS successfullyParsed is true PASS successfullyParsed is true
TEST COMPLETE TEST COMPLETE
......
...@@ -61,18 +61,18 @@ var kAesGcmSuccessVectors = ...@@ -61,18 +61,18 @@ var kAesGcmSuccessVectors =
"authenticationTag": "ba82e49c55a22ed02ca67da4ec6f" "authenticationTag": "ba82e49c55a22ed02ca67da4ec6f"
}, },
// [Keylen = 192] // [Keylen = 256]
// [IVlen = 96] // [IVlen = 1024]
// [PTlen = 128] // [PTlen = 408]
// [AADlen = 384] // [AADlen = 720]
// [Taglen = 112] // [Taglen = 32]
{ {
"key": "ae7972c025d7f2ca3dd37dcc3d41c506671765087c6b61b8", "key": "e03548984a7ec8eaf0870637df0ac6bc17f7159315d0ae26a764fd224e483810",
"iv": "984c1379e6ba961c828d792d", "iv": "f4feb26b846be4cd224dbc5133a5ae13814ebe19d3032acdd3a006463fdb71e83a9d5d96679f26cc1719dd6b4feb3bab5b4b7993d0c0681f36d105ad3002fb66b201538e2b7479838ab83402b0d816cd6e0fe5857e6f4adf92de8ee72b122ba1ac81795024943b7d0151bbf84ce87c8911f512c397d14112296da7ecdd0da52a",
"plainText": "d30b02c343487105219d6fa080acc743", "cipherText": "fda718aa1ec163487e21afc34f5a3a34795a9ee71dd3e7ee9a18fdb24181dc982b29c6ec723294a130ca2234952bb0ef68c0f3",
"cipherText": "c4489fa64a6edf80e7e6a3b8855bc37c", "additionalData": "aab26eb3e7acd09a034a9e2651636ab3868e51281590ecc948355e457da42b7ad1391c7be0d9e82895e506173a81857c3226829fbd6dfb3f9657a71a2934445d7c05fa9401cddd5109016ba32c3856afaadc48de80b8a01b57cb",
"additionalData": "edd8f630f9bbc31b0acf122998f15589d6e6e3e1a3ec89e0c6a6ece751610ebbf57fdfb9d82028ff1d9faebe37a268c1", "authenticationTag": "4795fbe0",
"authenticationTag": "772ee7de0f91a981c36c93a35c88" "plainText": "69fd0c9da10b56ec6786333f8d76d4b74f8a434195f2f241f088b2520fb5fa29455df9893164fb1638abe6617915d9497a8fe2"
} }
]; ];
......
...@@ -13,13 +13,6 @@ PASS Generated unique key data of length: 128 bits ...@@ -13,13 +13,6 @@ PASS Generated unique key data of length: 128 bits
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is true PASS generatedKey.extractable is true
PASS generatedKey.algorithm.name is "AES-CBC" PASS generatedKey.algorithm.name is "AES-CBC"
PASS generatedKey.algorithm.length is 192
PASS generatedKey.usages.join(',') is ""
PASS keyData.byteLength is 24
PASS Generated unique key data of length: 192 bits
PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is true
PASS generatedKey.algorithm.name is "AES-CBC"
PASS generatedKey.algorithm.length is 256 PASS generatedKey.algorithm.length is 256
PASS generatedKey.usages.join(',') is "" PASS generatedKey.usages.join(',') is ""
PASS keyData.byteLength is 32 PASS keyData.byteLength is 32
...@@ -34,13 +27,6 @@ PASS Generated unique key data of length: 128 bits ...@@ -34,13 +27,6 @@ PASS Generated unique key data of length: 128 bits
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is true PASS generatedKey.extractable is true
PASS generatedKey.algorithm.name is "AES-CBC" PASS generatedKey.algorithm.name is "AES-CBC"
PASS generatedKey.algorithm.length is 192
PASS generatedKey.usages.join(',') is "encrypt"
PASS keyData.byteLength is 24
PASS Generated unique key data of length: 192 bits
PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is true
PASS generatedKey.algorithm.name is "AES-CBC"
PASS generatedKey.algorithm.length is 256 PASS generatedKey.algorithm.length is 256
PASS generatedKey.usages.join(',') is "encrypt" PASS generatedKey.usages.join(',') is "encrypt"
PASS keyData.byteLength is 32 PASS keyData.byteLength is 32
...@@ -55,13 +41,6 @@ PASS Generated unique key data of length: 128 bits ...@@ -55,13 +41,6 @@ PASS Generated unique key data of length: 128 bits
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is true PASS generatedKey.extractable is true
PASS generatedKey.algorithm.name is "AES-CBC" PASS generatedKey.algorithm.name is "AES-CBC"
PASS generatedKey.algorithm.length is 192
PASS generatedKey.usages.join(',') is "decrypt,wrapKey"
PASS keyData.byteLength is 24
PASS Generated unique key data of length: 192 bits
PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is true
PASS generatedKey.algorithm.name is "AES-CBC"
PASS generatedKey.algorithm.length is 256 PASS generatedKey.algorithm.length is 256
PASS generatedKey.usages.join(',') is "decrypt,wrapKey" PASS generatedKey.usages.join(',') is "decrypt,wrapKey"
PASS keyData.byteLength is 32 PASS keyData.byteLength is 32
...@@ -76,13 +55,6 @@ PASS Generated unique key data of length: 128 bits ...@@ -76,13 +55,6 @@ PASS Generated unique key data of length: 128 bits
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is true PASS generatedKey.extractable is true
PASS generatedKey.algorithm.name is "AES-CBC" PASS generatedKey.algorithm.name is "AES-CBC"
PASS generatedKey.algorithm.length is 192
PASS generatedKey.usages.join(',') is "encrypt,wrapKey,unwrapKey"
PASS keyData.byteLength is 24
PASS Generated unique key data of length: 192 bits
PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is true
PASS generatedKey.algorithm.name is "AES-CBC"
PASS generatedKey.algorithm.length is 256 PASS generatedKey.algorithm.length is 256
PASS generatedKey.usages.join(',') is "encrypt,wrapKey,unwrapKey" PASS generatedKey.usages.join(',') is "encrypt,wrapKey,unwrapKey"
PASS keyData.byteLength is 32 PASS keyData.byteLength is 32
...@@ -95,11 +67,6 @@ PASS generatedKey.usages.join(',') is "" ...@@ -95,11 +67,6 @@ PASS generatedKey.usages.join(',') is ""
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is false PASS generatedKey.extractable is false
PASS generatedKey.algorithm.name is "AES-CBC" PASS generatedKey.algorithm.name is "AES-CBC"
PASS generatedKey.algorithm.length is 192
PASS generatedKey.usages.join(',') is ""
PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is false
PASS generatedKey.algorithm.name is "AES-CBC"
PASS generatedKey.algorithm.length is 256 PASS generatedKey.algorithm.length is 256
PASS generatedKey.usages.join(',') is "" PASS generatedKey.usages.join(',') is ""
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
...@@ -110,11 +77,6 @@ PASS generatedKey.usages.join(',') is "encrypt" ...@@ -110,11 +77,6 @@ PASS generatedKey.usages.join(',') is "encrypt"
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is false PASS generatedKey.extractable is false
PASS generatedKey.algorithm.name is "AES-CBC" PASS generatedKey.algorithm.name is "AES-CBC"
PASS generatedKey.algorithm.length is 192
PASS generatedKey.usages.join(',') is "encrypt"
PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is false
PASS generatedKey.algorithm.name is "AES-CBC"
PASS generatedKey.algorithm.length is 256 PASS generatedKey.algorithm.length is 256
PASS generatedKey.usages.join(',') is "encrypt" PASS generatedKey.usages.join(',') is "encrypt"
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
...@@ -125,11 +87,6 @@ PASS generatedKey.usages.join(',') is "decrypt,wrapKey" ...@@ -125,11 +87,6 @@ PASS generatedKey.usages.join(',') is "decrypt,wrapKey"
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is false PASS generatedKey.extractable is false
PASS generatedKey.algorithm.name is "AES-CBC" PASS generatedKey.algorithm.name is "AES-CBC"
PASS generatedKey.algorithm.length is 192
PASS generatedKey.usages.join(',') is "decrypt,wrapKey"
PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is false
PASS generatedKey.algorithm.name is "AES-CBC"
PASS generatedKey.algorithm.length is 256 PASS generatedKey.algorithm.length is 256
PASS generatedKey.usages.join(',') is "decrypt,wrapKey" PASS generatedKey.usages.join(',') is "decrypt,wrapKey"
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
...@@ -140,11 +97,6 @@ PASS generatedKey.usages.join(',') is "encrypt,wrapKey,unwrapKey" ...@@ -140,11 +97,6 @@ PASS generatedKey.usages.join(',') is "encrypt,wrapKey,unwrapKey"
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is false PASS generatedKey.extractable is false
PASS generatedKey.algorithm.name is "AES-CBC" PASS generatedKey.algorithm.name is "AES-CBC"
PASS generatedKey.algorithm.length is 192
PASS generatedKey.usages.join(',') is "encrypt,wrapKey,unwrapKey"
PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is false
PASS generatedKey.algorithm.name is "AES-CBC"
PASS generatedKey.algorithm.length is 256 PASS generatedKey.algorithm.length is 256
PASS generatedKey.usages.join(',') is "encrypt,wrapKey,unwrapKey" PASS generatedKey.usages.join(',') is "encrypt,wrapKey,unwrapKey"
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
...@@ -157,13 +109,6 @@ PASS Generated unique key data of length: 128 bits ...@@ -157,13 +109,6 @@ PASS Generated unique key data of length: 128 bits
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is true PASS generatedKey.extractable is true
PASS generatedKey.algorithm.name is "AES-GCM" PASS generatedKey.algorithm.name is "AES-GCM"
PASS generatedKey.algorithm.length is 192
PASS generatedKey.usages.join(',') is ""
PASS keyData.byteLength is 24
PASS Generated unique key data of length: 192 bits
PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is true
PASS generatedKey.algorithm.name is "AES-GCM"
PASS generatedKey.algorithm.length is 256 PASS generatedKey.algorithm.length is 256
PASS generatedKey.usages.join(',') is "" PASS generatedKey.usages.join(',') is ""
PASS keyData.byteLength is 32 PASS keyData.byteLength is 32
...@@ -178,13 +123,6 @@ PASS Generated unique key data of length: 128 bits ...@@ -178,13 +123,6 @@ PASS Generated unique key data of length: 128 bits
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is true PASS generatedKey.extractable is true
PASS generatedKey.algorithm.name is "AES-GCM" PASS generatedKey.algorithm.name is "AES-GCM"
PASS generatedKey.algorithm.length is 192
PASS generatedKey.usages.join(',') is "encrypt"
PASS keyData.byteLength is 24
PASS Generated unique key data of length: 192 bits
PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is true
PASS generatedKey.algorithm.name is "AES-GCM"
PASS generatedKey.algorithm.length is 256 PASS generatedKey.algorithm.length is 256
PASS generatedKey.usages.join(',') is "encrypt" PASS generatedKey.usages.join(',') is "encrypt"
PASS keyData.byteLength is 32 PASS keyData.byteLength is 32
...@@ -199,13 +137,6 @@ PASS Generated unique key data of length: 128 bits ...@@ -199,13 +137,6 @@ PASS Generated unique key data of length: 128 bits
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is true PASS generatedKey.extractable is true
PASS generatedKey.algorithm.name is "AES-GCM" PASS generatedKey.algorithm.name is "AES-GCM"
PASS generatedKey.algorithm.length is 192
PASS generatedKey.usages.join(',') is "decrypt,wrapKey"
PASS keyData.byteLength is 24
PASS Generated unique key data of length: 192 bits
PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is true
PASS generatedKey.algorithm.name is "AES-GCM"
PASS generatedKey.algorithm.length is 256 PASS generatedKey.algorithm.length is 256
PASS generatedKey.usages.join(',') is "decrypt,wrapKey" PASS generatedKey.usages.join(',') is "decrypt,wrapKey"
PASS keyData.byteLength is 32 PASS keyData.byteLength is 32
...@@ -220,13 +151,6 @@ PASS Generated unique key data of length: 128 bits ...@@ -220,13 +151,6 @@ PASS Generated unique key data of length: 128 bits
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is true PASS generatedKey.extractable is true
PASS generatedKey.algorithm.name is "AES-GCM" PASS generatedKey.algorithm.name is "AES-GCM"
PASS generatedKey.algorithm.length is 192
PASS generatedKey.usages.join(',') is "encrypt,wrapKey,unwrapKey"
PASS keyData.byteLength is 24
PASS Generated unique key data of length: 192 bits
PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is true
PASS generatedKey.algorithm.name is "AES-GCM"
PASS generatedKey.algorithm.length is 256 PASS generatedKey.algorithm.length is 256
PASS generatedKey.usages.join(',') is "encrypt,wrapKey,unwrapKey" PASS generatedKey.usages.join(',') is "encrypt,wrapKey,unwrapKey"
PASS keyData.byteLength is 32 PASS keyData.byteLength is 32
...@@ -239,11 +163,6 @@ PASS generatedKey.usages.join(',') is "" ...@@ -239,11 +163,6 @@ PASS generatedKey.usages.join(',') is ""
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is false PASS generatedKey.extractable is false
PASS generatedKey.algorithm.name is "AES-GCM" PASS generatedKey.algorithm.name is "AES-GCM"
PASS generatedKey.algorithm.length is 192
PASS generatedKey.usages.join(',') is ""
PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is false
PASS generatedKey.algorithm.name is "AES-GCM"
PASS generatedKey.algorithm.length is 256 PASS generatedKey.algorithm.length is 256
PASS generatedKey.usages.join(',') is "" PASS generatedKey.usages.join(',') is ""
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
...@@ -254,11 +173,6 @@ PASS generatedKey.usages.join(',') is "encrypt" ...@@ -254,11 +173,6 @@ PASS generatedKey.usages.join(',') is "encrypt"
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is false PASS generatedKey.extractable is false
PASS generatedKey.algorithm.name is "AES-GCM" PASS generatedKey.algorithm.name is "AES-GCM"
PASS generatedKey.algorithm.length is 192
PASS generatedKey.usages.join(',') is "encrypt"
PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is false
PASS generatedKey.algorithm.name is "AES-GCM"
PASS generatedKey.algorithm.length is 256 PASS generatedKey.algorithm.length is 256
PASS generatedKey.usages.join(',') is "encrypt" PASS generatedKey.usages.join(',') is "encrypt"
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
...@@ -269,11 +183,6 @@ PASS generatedKey.usages.join(',') is "decrypt,wrapKey" ...@@ -269,11 +183,6 @@ PASS generatedKey.usages.join(',') is "decrypt,wrapKey"
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is false PASS generatedKey.extractable is false
PASS generatedKey.algorithm.name is "AES-GCM" PASS generatedKey.algorithm.name is "AES-GCM"
PASS generatedKey.algorithm.length is 192
PASS generatedKey.usages.join(',') is "decrypt,wrapKey"
PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is false
PASS generatedKey.algorithm.name is "AES-GCM"
PASS generatedKey.algorithm.length is 256 PASS generatedKey.algorithm.length is 256
PASS generatedKey.usages.join(',') is "decrypt,wrapKey" PASS generatedKey.usages.join(',') is "decrypt,wrapKey"
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
...@@ -284,11 +193,6 @@ PASS generatedKey.usages.join(',') is "encrypt,wrapKey,unwrapKey" ...@@ -284,11 +193,6 @@ PASS generatedKey.usages.join(',') is "encrypt,wrapKey,unwrapKey"
PASS typeof generatedKey.extractable is 'boolean' PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is false PASS generatedKey.extractable is false
PASS generatedKey.algorithm.name is "AES-GCM" PASS generatedKey.algorithm.name is "AES-GCM"
PASS generatedKey.algorithm.length is 192
PASS generatedKey.usages.join(',') is "encrypt,wrapKey,unwrapKey"
PASS typeof generatedKey.extractable is 'boolean'
PASS generatedKey.extractable is false
PASS generatedKey.algorithm.name is "AES-GCM"
PASS generatedKey.algorithm.length is 256 PASS generatedKey.algorithm.length is 256
PASS generatedKey.usages.join(',') is "encrypt,wrapKey,unwrapKey" PASS generatedKey.usages.join(',') is "encrypt,wrapKey,unwrapKey"
PASS successfullyParsed is true PASS successfullyParsed is true
......
...@@ -13,7 +13,7 @@ description("Tests generating AES keys"); ...@@ -13,7 +13,7 @@ description("Tests generating AES keys");
jsTestIsAsync = true; jsTestIsAsync = true;
// Tests the 48 permutations of keys generated by: // Tests the 32 permutations of keys generated by:
// kPossibleAlgorithms x kPossibleExtractable x kPossibleKeyUsages x kPossibleKeyLengths // kPossibleAlgorithms x kPossibleExtractable x kPossibleKeyUsages x kPossibleKeyLengths
// //
// For practical reasons these tests are not exhaustive. // For practical reasons these tests are not exhaustive.
...@@ -21,7 +21,7 @@ jsTestIsAsync = true; ...@@ -21,7 +21,7 @@ jsTestIsAsync = true;
var kPossibleAlgorithms = ['AES-CBC', 'AES-GCM']; var kPossibleAlgorithms = ['AES-CBC', 'AES-GCM'];
var kPossibleExtractable = [true, false]; var kPossibleExtractable = [true, false];
var kPossibleKeyUsages = [[], ['encrypt'], ['decrypt', 'wrapKey'], ['encrypt', 'wrapKey', 'unwrapKey']]; var kPossibleKeyUsages = [[], ['encrypt'], ['decrypt', 'wrapKey'], ['encrypt', 'wrapKey', 'unwrapKey']];
var kPossibleKeyLengths = [128, 192, 256]; var kPossibleKeyLengths = [128, 256];
// Set of all key data generated so far. // Set of all key data generated so far.
var allKeyDataGenerated = {}; var allKeyDataGenerated = {};
......
...@@ -4,46 +4,36 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE ...@@ -4,46 +4,36 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
PASS: Wrapped key data should be [1fa68b0a8112b447aef34bd8fb5a7b829d3e862371d2cfe5] and was PASS: Wrapped key data should be [1fa68b0a8112b447aef34bd8fb5a7b829d3e862371d2cfe5] and was
PASS unwrappedKey.algorithm.name is "AES-CBC" PASS unwrappedKey.algorithm.name is "HMAC"
PASS unwrappedKey.algorithm.hash.name is "SHA-1"
PASS unwrappedKey.algorithm.length is 128 PASS unwrappedKey.algorithm.length is 128
PASS typeof unwrappedKey.extractable is 'boolean' PASS typeof unwrappedKey.extractable is 'boolean'
PASS unwrappedKey.extractable is true PASS unwrappedKey.extractable is true
PASS unwrappedKey.usages.join(',') is "decrypt" PASS unwrappedKey.usages.join(',') is "sign"
PASS: Unwrapped key data should be [00112233445566778899aabbccddeeff] and was
PASS: Wrapped key data should be [96778b25ae6ca435f92b5b97c050aed2468ab8a17ad84e5d] and was
PASS unwrappedKey.algorithm.name is "AES-CBC"
PASS unwrappedKey.algorithm.length is 128
PASS typeof unwrappedKey.extractable is 'boolean'
PASS unwrappedKey.extractable is true
PASS unwrappedKey.usages.join(',') is "decrypt"
PASS: Unwrapped key data should be [00112233445566778899aabbccddeeff] and was PASS: Unwrapped key data should be [00112233445566778899aabbccddeeff] and was
PASS: Wrapped key data should be [64e8c3f9ce0f5ba263e9777905818a2a93c8191e7d6e8ae7] and was PASS: Wrapped key data should be [64e8c3f9ce0f5ba263e9777905818a2a93c8191e7d6e8ae7] and was
PASS unwrappedKey.algorithm.name is "AES-CBC" PASS unwrappedKey.algorithm.name is "HMAC"
PASS unwrappedKey.algorithm.hash.name is "SHA-1"
PASS unwrappedKey.algorithm.length is 128 PASS unwrappedKey.algorithm.length is 128
PASS typeof unwrappedKey.extractable is 'boolean' PASS typeof unwrappedKey.extractable is 'boolean'
PASS unwrappedKey.extractable is true PASS unwrappedKey.extractable is true
PASS unwrappedKey.usages.join(',') is "decrypt" PASS unwrappedKey.usages.join(',') is "sign"
PASS: Unwrapped key data should be [00112233445566778899aabbccddeeff] and was PASS: Unwrapped key data should be [00112233445566778899aabbccddeeff] and was
PASS: Wrapped key data should be [031d33264e15d33268f24ec260743edce1c6c7ddee725a936ba814915c6762d2] and was
PASS unwrappedKey.algorithm.name is "AES-CBC"
PASS unwrappedKey.algorithm.length is 192
PASS typeof unwrappedKey.extractable is 'boolean'
PASS unwrappedKey.extractable is true
PASS unwrappedKey.usages.join(',') is "decrypt"
PASS: Unwrapped key data should be [00112233445566778899aabbccddeeff0001020304050607] and was
PASS: Wrapped key data should be [a8f9bc1612c68b3ff6e6f4fbe30e71e4769c8b80a32cb8958cd5d17d6b254da1] and was PASS: Wrapped key data should be [a8f9bc1612c68b3ff6e6f4fbe30e71e4769c8b80a32cb8958cd5d17d6b254da1] and was
PASS unwrappedKey.algorithm.name is "AES-CBC" PASS unwrappedKey.algorithm.name is "HMAC"
PASS unwrappedKey.algorithm.hash.name is "SHA-1"
PASS unwrappedKey.algorithm.length is 192 PASS unwrappedKey.algorithm.length is 192
PASS typeof unwrappedKey.extractable is 'boolean' PASS typeof unwrappedKey.extractable is 'boolean'
PASS unwrappedKey.extractable is true PASS unwrappedKey.extractable is true
PASS unwrappedKey.usages.join(',') is "decrypt" PASS unwrappedKey.usages.join(',') is "sign"
PASS: Unwrapped key data should be [00112233445566778899aabbccddeeff0001020304050607] and was PASS: Unwrapped key data should be [00112233445566778899aabbccddeeff0001020304050607] and was
PASS: Wrapped key data should be [28c9f404c4b810f4cbccb35cfb87f8263f5786e2d80ed326cbc7f0e71a99f43bfb988b9b7a02dd21] and was PASS: Wrapped key data should be [28c9f404c4b810f4cbccb35cfb87f8263f5786e2d80ed326cbc7f0e71a99f43bfb988b9b7a02dd21] and was
PASS unwrappedKey.algorithm.name is "AES-CBC" PASS unwrappedKey.algorithm.name is "HMAC"
PASS unwrappedKey.algorithm.hash.name is "SHA-1"
PASS unwrappedKey.algorithm.length is 256 PASS unwrappedKey.algorithm.length is 256
PASS typeof unwrappedKey.extractable is 'boolean' PASS typeof unwrappedKey.extractable is 'boolean'
PASS unwrappedKey.extractable is true PASS unwrappedKey.extractable is true
PASS unwrappedKey.usages.join(',') is "decrypt" PASS unwrappedKey.usages.join(',') is "sign"
PASS: Unwrapped key data should be [00112233445566778899aabbccddeeff000102030405060708090a0b0c0d0e0f] and was PASS: Unwrapped key data should be [00112233445566778899aabbccddeeff000102030405060708090a0b0c0d0e0f] and was
PASS successfullyParsed is true PASS successfullyParsed is true
......
...@@ -21,24 +21,12 @@ var kWrappingTestCases = [ ...@@ -21,24 +21,12 @@ var kWrappingTestCases = [
"key": "00112233445566778899AABBCCDDEEFF", "key": "00112233445566778899AABBCCDDEEFF",
"ciphertext": "1FA68B0A8112B447AEF34BD8FB5A7B829D3E862371D2CFE5" "ciphertext": "1FA68B0A8112B447AEF34BD8FB5A7B829D3E862371D2CFE5"
}, },
// 4.2 Wrap 128 bits of Key Data with a 192-bit KEK
{
"wrappingKey": "000102030405060708090A0B0C0D0E0F1011121314151617",
"key": "00112233445566778899AABBCCDDEEFF",
"ciphertext": "96778B25AE6CA435F92B5B97C050AED2468AB8A17AD84E5D"
},
// 4.3 Wrap 128 bits of Key Data with a 256-bit KEK // 4.3 Wrap 128 bits of Key Data with a 256-bit KEK
{ {
"wrappingKey": "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F", "wrappingKey": "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F",
"key": "00112233445566778899AABBCCDDEEFF", "key": "00112233445566778899AABBCCDDEEFF",
"ciphertext": "64E8C3F9CE0F5BA263E9777905818A2A93C8191E7D6E8AE7" "ciphertext": "64E8C3F9CE0F5BA263E9777905818A2A93C8191E7D6E8AE7"
}, },
// 4.4 Wrap 192 bits of Key Data with a 192-bit KEK
{
"wrappingKey": "000102030405060708090A0B0C0D0E0F1011121314151617",
"key": "00112233445566778899AABBCCDDEEFF0001020304050607",
"ciphertext": "031D33264E15D33268F24EC260743EDCE1C6C7DDEE725A936BA814915C6762D2"
},
// 4.5 Wrap 192 bits of Key Data with a 256-bit KEK // 4.5 Wrap 192 bits of Key Data with a 256-bit KEK
{ {
"wrappingKey": "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F", "wrappingKey": "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F",
...@@ -70,9 +58,9 @@ function runTestCase(testCase) ...@@ -70,9 +58,9 @@ function runTestCase(testCase)
wrappingKey = result; wrappingKey = result;
// Import the key to be wrapped. // Import the key to be wrapped.
var importAlgorithm = {name: 'aes-cbc'}; var importAlgorithm = {name: 'HMAC', hash: {name: 'sha-1'}};
var keyData = hexStringToUint8Array(testCase.key); var keyData = hexStringToUint8Array(testCase.key);
var usages = ['encrypt', 'decrypt']; var usages = ['sign', 'verify'];
var extractable = true; var extractable = true;
return crypto.subtle.importKey('raw', keyData, importAlgorithm, extractable, usages); return crypto.subtle.importKey('raw', keyData, importAlgorithm, extractable, usages);
...@@ -88,17 +76,18 @@ function runTestCase(testCase) ...@@ -88,17 +76,18 @@ function runTestCase(testCase)
// Unwrap the key. // Unwrap the key.
var wrappedKeyData = hexStringToUint8Array(testCase.ciphertext); var wrappedKeyData = hexStringToUint8Array(testCase.ciphertext);
var unwrapAlgorithm = {name: 'aes-kw'}; var unwrapAlgorithm = {name: 'aes-kw'};
var unwrappedKeyAlgorithm = {name: 'aes-cbc'}; var unwrappedKeyAlgorithm = {name: 'HMAC', hash: {name: 'sha-1'}};
var extractable = true; var extractable = true;
var usages = ['decrypt']; var usages = ['sign'];
return crypto.subtle.unwrapKey('raw', wrappedKeyData, wrappingKey, unwrapAlgorithm, unwrappedKeyAlgorithm, extractable, usages); return crypto.subtle.unwrapKey('raw', wrappedKeyData, wrappingKey, unwrapAlgorithm, unwrappedKeyAlgorithm, extractable, usages);
}).then(function(result) { }).then(function(result) {
unwrappedKey = result; unwrappedKey = result;
shouldEvaluateAs("unwrappedKey.algorithm.name", "AES-CBC"); shouldEvaluateAs("unwrappedKey.algorithm.name", "HMAC");
shouldEvaluateAs("unwrappedKey.algorithm.hash.name", "SHA-1");
shouldEvaluateAs("unwrappedKey.algorithm.length", testCase.key.length * 4); shouldEvaluateAs("unwrappedKey.algorithm.length", testCase.key.length * 4);
shouldEvaluateAs("unwrappedKey.extractable", true); shouldEvaluateAs("unwrappedKey.extractable", true);
shouldEvaluateAs("unwrappedKey.usages.join(',')", "decrypt"); shouldEvaluateAs("unwrappedKey.usages.join(',')", "sign");
return crypto.subtle.exportKey('raw', unwrappedKey); return crypto.subtle.exportKey('raw', unwrappedKey);
}).then(function(result) { }).then(function(result) {
......
...@@ -13,19 +13,18 @@ description("Tests structured cloning of AES keys"); ...@@ -13,19 +13,18 @@ description("Tests structured cloning of AES keys");
jsTestIsAsync = true; jsTestIsAsync = true;
// Tests the 48 permutations of keys generated by: // Tests the 32 permutations of keys generated by:
// kPossibleAlgorithms x kPossibleExtractable x kPossibleKeyUsages x kPossibleKeyData // kPossibleAlgorithms x kPossibleExtractable x kPossibleKeyUsages x kPossibleKeyData
// //
// For practical reasons these tests are not exhaustive. // For practical reasons these tests are not exhaustive.
var k128BitData = "30112233445566778899aabbccddeeff" var k128BitData = "30112233445566778899aabbccddeeff"
var k192BitData = "800102030405060708090a0b0c0d0e0f1011121314151617";
var k256BitData = "00112233445546778899aabbccddeeff000102030405060708090a0b0c0d0e0f"; var k256BitData = "00112233445546778899aabbccddeeff000102030405060708090a0b0c0d0e0f";
var kPossibleAlgorithms = ['AES-CBC', 'AES-GCM']; var kPossibleAlgorithms = ['AES-CBC', 'AES-GCM'];
var kPossibleExtractable = [true, false]; var kPossibleExtractable = [true, false];
var kPossibleKeyUsages = [[], ['encrypt'], ['decrypt', 'wrapKey'], ['encrypt', 'wrapKey', 'unwrapKey']]; var kPossibleKeyUsages = [[], ['encrypt'], ['decrypt', 'wrapKey'], ['encrypt', 'wrapKey', 'unwrapKey']];
var kPossibleKeyData = [k128BitData, k192BitData, k256BitData]; var kPossibleKeyData = [k128BitData, k256BitData];
function runTest(algorithmName, extractable, keyUsages, keyData) function runTest(algorithmName, extractable, keyUsages, keyData)
{ {
......
...@@ -15,7 +15,7 @@ jsTestIsAsync = true; ...@@ -15,7 +15,7 @@ jsTestIsAsync = true;
var extractable = true; var extractable = true;
var aesKeyAsArrayBuffer = Base64URL.parse("jnOw99oOZFLIEPMrgJB55WL46tJSLGt7"); var aesKeyAsArrayBuffer = Base64URL.parse("jnOw99oOZFLIEPMrgJB55Q");
var hmacKeyAsArrayBuffer = Base64URL.parse("ahjkn-_387fgnsibf23qsvahjkn-_387fgnsibf23qs"); var hmacKeyAsArrayBuffer = Base64URL.parse("ahjkn-_387fgnsibf23qsvahjkn-_387fgnsibf23qs");
function testWithAESCBC(usages, expectedKeyOps) function testWithAESCBC(usages, expectedKeyOps)
......
...@@ -16,10 +16,10 @@ jsTestIsAsync = true; ...@@ -16,10 +16,10 @@ jsTestIsAsync = true;
var extractable = true; var extractable = true;
var aesKeyAsJSON = { var aesKeyAsJSON = {
"alg": "A192CBC", "alg": "A128CBC",
"ext": true, "ext": true,
"kty": "oct", "kty": "oct",
"k": "jnOw99oOZFLIEPMrgJB55WL46tJSLGt7" "k": "jnOw99oOZFLIEPMrgJB55Q"
}; };
var hmacKeyAsJSON = { var hmacKeyAsJSON = {
......
...@@ -123,13 +123,13 @@ function testHmac() ...@@ -123,13 +123,13 @@ function testHmac()
function testAesGcm() function testAesGcm()
{ {
var testCase = { var testCase = {
"key": "ae7972c025d7f2ca3dd37dcc3d41c506671765087c6b61b8", "key": "e03548984a7ec8eaf0870637df0ac6bc17f7159315d0ae26a764fd224e483810",
"iv": "984c1379e6ba961c828d792d", "iv": "f4feb26b846be4cd224dbc5133a5ae13814ebe19d3032acdd3a006463fdb71e83a9d5d96679f26cc1719dd6b4feb3bab5b4b7993d0c0681f36d105ad3002fb66b201538e2b7479838ab83402b0d816cd6e0fe5857e6f4adf92de8ee72b122ba1ac81795024943b7d0151bbf84ce87c8911f512c397d14112296da7ecdd0da52a",
"plainText": "d30b02c343487105219d6fa080acc743", "cipherText": "fda718aa1ec163487e21afc34f5a3a34795a9ee71dd3e7ee9a18fdb24181dc982b29c6ec723294a130ca2234952bb0ef68c0f3",
"cipherText": "c4489fa64a6edf80e7e6a3b8855bc37c", "additionalData": "aab26eb3e7acd09a034a9e2651636ab3868e51281590ecc948355e457da42b7ad1391c7be0d9e82895e506173a81857c3226829fbd6dfb3f9657a71a2934445d7c05fa9401cddd5109016ba32c3856afaadc48de80b8a01b57cb",
"additionalData": "edd8f630f9bbc31b0acf122998f15589d6e6e3e1a3ec89e0c6a6ece751610ebbf57fdfb9d82028ff1d9faebe37a268c1", "authenticationTag": "4795fbe0",
"authenticationTag": "772ee7de0f91a981c36c93a35c88" "plainText": "69fd0c9da10b56ec6786333f8d76d4b74f8a434195f2f241f088b2520fb5fa29455df9893164fb1638abe6617915d9497a8fe2"
}; }
var key = null; var key = null;
var keyData = hexStringToUint8Array(testCase.key); var keyData = hexStringToUint8Array(testCase.key);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment