From 621e3c9cd4b2345b1dc5c0700729f88870af6840 Mon Sep 17 00:00:00 2001 From: Filip Skokan Date: Mon, 21 Nov 2022 23:33:14 +0100 Subject: [PATCH] crypto: use DataError for CFRG webcrypto raw and jwk import key checks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/45569 Reviewed-By: Antoine du Hamel Reviewed-By: Tobias Nießen --- lib/internal/crypto/cfrg.js | 6 +++--- test/wpt/status/WebCryptoAPI.json | 36 ------------------------------- 2 files changed, 3 insertions(+), 39 deletions(-) diff --git a/lib/internal/crypto/cfrg.js b/lib/internal/crypto/cfrg.js index b12579326b1e3a..62a2ccf6313030 100644 --- a/lib/internal/crypto/cfrg.js +++ b/lib/internal/crypto/cfrg.js @@ -90,19 +90,19 @@ function createCFRGRawKey(name, keyData, isPublic) { case 'X25519': if (keyData.byteLength !== 32) { throw lazyDOMException( - `${name} raw keys must be exactly 32-bytes`); + `${name} raw keys must be exactly 32-bytes`, 'DataError'); } break; case 'Ed448': if (keyData.byteLength !== 57) { throw lazyDOMException( - `${name} raw keys must be exactly 57-bytes`); + `${name} raw keys must be exactly 57-bytes`, 'DataError'); } break; case 'X448': if (keyData.byteLength !== 56) { throw lazyDOMException( - `${name} raw keys must be exactly 56-bytes`); + `${name} raw keys must be exactly 56-bytes`, 'DataError'); } break; } diff --git a/test/wpt/status/WebCryptoAPI.json b/test/wpt/status/WebCryptoAPI.json index 7f61a1f0364cb5..adaa217cf202b1 100644 --- a/test/wpt/status/WebCryptoAPI.json +++ b/test/wpt/status/WebCryptoAPI.json @@ -11,14 +11,6 @@ "import_export/okp_importKey_failures_Ed25519.https.any.js": { "fail": { "expected": [ - "Bad key length: importKey(jwk(private), {name: Ed25519}, true, [sign])", - "Bad key length: importKey(jwk(private), {name: Ed25519}, false, [sign])", - "Bad key length: importKey(jwk(private), {name: Ed25519}, true, [sign, sign])", - "Bad key length: importKey(jwk(private), {name: Ed25519}, false, [sign, sign])", - "Bad key length: importKey(jwk (public) , {name: Ed25519}, true, [verify])", - "Bad key length: importKey(jwk (public) , {name: Ed25519}, false, [verify])", - "Bad key length: importKey(jwk (public) , {name: Ed25519}, true, [verify, verify])", - "Bad key length: importKey(jwk (public) , {name: Ed25519}, false, [verify, verify])", "Invalid key pair: importKey(jwk(private), {name: Ed25519}, true, [sign])", "Invalid key pair: importKey(jwk(private), {name: Ed25519}, true, [sign, sign])" ] @@ -27,14 +19,6 @@ "import_export/okp_importKey_failures_Ed448.https.any.js": { "fail": { "expected": [ - "Bad key length: importKey(jwk(private), {name: Ed448}, true, [sign])", - "Bad key length: importKey(jwk(private), {name: Ed448}, false, [sign])", - "Bad key length: importKey(jwk(private), {name: Ed448}, true, [sign, sign])", - "Bad key length: importKey(jwk(private), {name: Ed448}, false, [sign, sign])", - "Bad key length: importKey(jwk (public) , {name: Ed448}, true, [verify])", - "Bad key length: importKey(jwk (public) , {name: Ed448}, false, [verify])", - "Bad key length: importKey(jwk (public) , {name: Ed448}, true, [verify, verify])", - "Bad key length: importKey(jwk (public) , {name: Ed448}, false, [verify, verify])", "Invalid key pair: importKey(jwk(private), {name: Ed448}, true, [sign])", "Invalid key pair: importKey(jwk(private), {name: Ed448}, true, [sign, sign])" ] @@ -43,16 +27,6 @@ "import_export/okp_importKey_failures_X25519.https.any.js": { "fail": { "expected": [ - "Bad key length: importKey(jwk (public) , {name: X25519}, true, [])", - "Bad key length: importKey(jwk (public) , {name: X25519}, false, [])", - "Bad key length: importKey(jwk(private), {name: X25519}, true, [deriveKey])", - "Bad key length: importKey(jwk(private), {name: X25519}, false, [deriveKey])", - "Bad key length: importKey(jwk(private), {name: X25519}, true, [deriveBits, deriveKey])", - "Bad key length: importKey(jwk(private), {name: X25519}, false, [deriveBits, deriveKey])", - "Bad key length: importKey(jwk(private), {name: X25519}, true, [deriveBits])", - "Bad key length: importKey(jwk(private), {name: X25519}, false, [deriveBits])", - "Bad key length: importKey(jwk(private), {name: X25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits])", - "Bad key length: importKey(jwk(private), {name: X25519}, false, [deriveKey, deriveBits, deriveKey, deriveBits])", "Invalid key pair: importKey(jwk(private), {name: X25519}, true, [deriveKey])", "Invalid key pair: importKey(jwk(private), {name: X25519}, true, [deriveBits, deriveKey])", "Invalid key pair: importKey(jwk(private), {name: X25519}, true, [deriveBits])", @@ -63,16 +37,6 @@ "import_export/okp_importKey_failures_X448.https.any.js": { "fail": { "expected": [ - "Bad key length: importKey(jwk(private), {name: X448}, true, [deriveKey])", - "Bad key length: importKey(jwk(private), {name: X448}, false, [deriveKey])", - "Bad key length: importKey(jwk(private), {name: X448}, true, [deriveBits, deriveKey])", - "Bad key length: importKey(jwk(private), {name: X448}, false, [deriveBits, deriveKey])", - "Bad key length: importKey(jwk(private), {name: X448}, true, [deriveBits])", - "Bad key length: importKey(jwk(private), {name: X448}, false, [deriveBits])", - "Bad key length: importKey(jwk(private), {name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits])", - "Bad key length: importKey(jwk(private), {name: X448}, false, [deriveKey, deriveBits, deriveKey, deriveBits])", - "Bad key length: importKey(jwk (public) , {name: X448}, true, [])", - "Bad key length: importKey(jwk (public) , {name: X448}, false, [])", "Invalid key pair: importKey(jwk(private), {name: X448}, true, [deriveKey])", "Invalid key pair: importKey(jwk(private), {name: X448}, true, [deriveBits, deriveKey])", "Invalid key pair: importKey(jwk(private), {name: X448}, true, [deriveBits])",