summaryrefslogtreecommitdiff
path: root/cli/tests/unit/webcrypto_test.ts
diff options
context:
space:
mode:
authorupendra1997 <Upendra.upadhyay.97@gmail.com>2021-11-11 14:34:17 +0530
committerGitHub <noreply@github.com>2021-11-11 10:04:17 +0100
commite00bfecf960a7d1c60542e04d17c4e558083f8e9 (patch)
tree9e93293b92c71158915c36651ee421f328cf8c28 /cli/tests/unit/webcrypto_test.ts
parenta2c8f554c415385f18d62867eb207ae2561802a7 (diff)
fix(crypto): handling large key length in HKDF (#12692)
Diffstat (limited to 'cli/tests/unit/webcrypto_test.ts')
-rw-r--r--cli/tests/unit/webcrypto_test.ts25
1 files changed, 25 insertions, 0 deletions
diff --git a/cli/tests/unit/webcrypto_test.ts b/cli/tests/unit/webcrypto_test.ts
index a6e0f28f8..0828f0716 100644
--- a/cli/tests/unit/webcrypto_test.ts
+++ b/cli/tests/unit/webcrypto_test.ts
@@ -513,6 +513,31 @@ unitTest(async function testHkdfDeriveBits() {
assertEquals(result.byteLength, 128 / 8);
});
+unitTest(async function testHkdfDeriveBitsWithLargeKeySize() {
+ const key = await crypto.subtle.importKey(
+ "raw",
+ new Uint8Array([0x00]),
+ "HKDF",
+ false,
+ ["deriveBits"],
+ );
+ assertRejects(
+ () =>
+ crypto.subtle.deriveBits(
+ {
+ name: "HKDF",
+ hash: "SHA-1",
+ salt: new Uint8Array(),
+ info: new Uint8Array(),
+ },
+ key,
+ ((20 * 255) << 3) + 8,
+ ),
+ DOMException,
+ "The length provided for HKDF is too large",
+ );
+});
+
unitTest(async function testDeriveKey() {
// Test deriveKey
const rawKey = await crypto.getRandomValues(new Uint8Array(16));