Skip to content

Commit 621e3c9

Browse files
panvadanielleadams
authored andcommitted
crypto: use DataError for CFRG webcrypto raw and jwk import key checks
PR-URL: #45569 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de>
1 parent 8fcfbef commit 621e3c9

File tree

2 files changed

+3
-39
lines changed

2 files changed

+3
-39
lines changed

lib/internal/crypto/cfrg.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -90,19 +90,19 @@ function createCFRGRawKey(name, keyData, isPublic) {
9090
case 'X25519':
9191
if (keyData.byteLength !== 32) {
9292
throw lazyDOMException(
93-
`${name} raw keys must be exactly 32-bytes`);
93+
`${name} raw keys must be exactly 32-bytes`, 'DataError');
9494
}
9595
break;
9696
case 'Ed448':
9797
if (keyData.byteLength !== 57) {
9898
throw lazyDOMException(
99-
`${name} raw keys must be exactly 57-bytes`);
99+
`${name} raw keys must be exactly 57-bytes`, 'DataError');
100100
}
101101
break;
102102
case 'X448':
103103
if (keyData.byteLength !== 56) {
104104
throw lazyDOMException(
105-
`${name} raw keys must be exactly 56-bytes`);
105+
`${name} raw keys must be exactly 56-bytes`, 'DataError');
106106
}
107107
break;
108108
}

test/wpt/status/WebCryptoAPI.json

-36
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,6 @@
1111
"import_export/okp_importKey_failures_Ed25519.https.any.js": {
1212
"fail": {
1313
"expected": [
14-
"Bad key length: importKey(jwk(private), {name: Ed25519}, true, [sign])",
15-
"Bad key length: importKey(jwk(private), {name: Ed25519}, false, [sign])",
16-
"Bad key length: importKey(jwk(private), {name: Ed25519}, true, [sign, sign])",
17-
"Bad key length: importKey(jwk(private), {name: Ed25519}, false, [sign, sign])",
18-
"Bad key length: importKey(jwk (public) , {name: Ed25519}, true, [verify])",
19-
"Bad key length: importKey(jwk (public) , {name: Ed25519}, false, [verify])",
20-
"Bad key length: importKey(jwk (public) , {name: Ed25519}, true, [verify, verify])",
21-
"Bad key length: importKey(jwk (public) , {name: Ed25519}, false, [verify, verify])",
2214
"Invalid key pair: importKey(jwk(private), {name: Ed25519}, true, [sign])",
2315
"Invalid key pair: importKey(jwk(private), {name: Ed25519}, true, [sign, sign])"
2416
]
@@ -27,14 +19,6 @@
2719
"import_export/okp_importKey_failures_Ed448.https.any.js": {
2820
"fail": {
2921
"expected": [
30-
"Bad key length: importKey(jwk(private), {name: Ed448}, true, [sign])",
31-
"Bad key length: importKey(jwk(private), {name: Ed448}, false, [sign])",
32-
"Bad key length: importKey(jwk(private), {name: Ed448}, true, [sign, sign])",
33-
"Bad key length: importKey(jwk(private), {name: Ed448}, false, [sign, sign])",
34-
"Bad key length: importKey(jwk (public) , {name: Ed448}, true, [verify])",
35-
"Bad key length: importKey(jwk (public) , {name: Ed448}, false, [verify])",
36-
"Bad key length: importKey(jwk (public) , {name: Ed448}, true, [verify, verify])",
37-
"Bad key length: importKey(jwk (public) , {name: Ed448}, false, [verify, verify])",
3822
"Invalid key pair: importKey(jwk(private), {name: Ed448}, true, [sign])",
3923
"Invalid key pair: importKey(jwk(private), {name: Ed448}, true, [sign, sign])"
4024
]
@@ -43,16 +27,6 @@
4327
"import_export/okp_importKey_failures_X25519.https.any.js": {
4428
"fail": {
4529
"expected": [
46-
"Bad key length: importKey(jwk (public) , {name: X25519}, true, [])",
47-
"Bad key length: importKey(jwk (public) , {name: X25519}, false, [])",
48-
"Bad key length: importKey(jwk(private), {name: X25519}, true, [deriveKey])",
49-
"Bad key length: importKey(jwk(private), {name: X25519}, false, [deriveKey])",
50-
"Bad key length: importKey(jwk(private), {name: X25519}, true, [deriveBits, deriveKey])",
51-
"Bad key length: importKey(jwk(private), {name: X25519}, false, [deriveBits, deriveKey])",
52-
"Bad key length: importKey(jwk(private), {name: X25519}, true, [deriveBits])",
53-
"Bad key length: importKey(jwk(private), {name: X25519}, false, [deriveBits])",
54-
"Bad key length: importKey(jwk(private), {name: X25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits])",
55-
"Bad key length: importKey(jwk(private), {name: X25519}, false, [deriveKey, deriveBits, deriveKey, deriveBits])",
5630
"Invalid key pair: importKey(jwk(private), {name: X25519}, true, [deriveKey])",
5731
"Invalid key pair: importKey(jwk(private), {name: X25519}, true, [deriveBits, deriveKey])",
5832
"Invalid key pair: importKey(jwk(private), {name: X25519}, true, [deriveBits])",
@@ -63,16 +37,6 @@
6337
"import_export/okp_importKey_failures_X448.https.any.js": {
6438
"fail": {
6539
"expected": [
66-
"Bad key length: importKey(jwk(private), {name: X448}, true, [deriveKey])",
67-
"Bad key length: importKey(jwk(private), {name: X448}, false, [deriveKey])",
68-
"Bad key length: importKey(jwk(private), {name: X448}, true, [deriveBits, deriveKey])",
69-
"Bad key length: importKey(jwk(private), {name: X448}, false, [deriveBits, deriveKey])",
70-
"Bad key length: importKey(jwk(private), {name: X448}, true, [deriveBits])",
71-
"Bad key length: importKey(jwk(private), {name: X448}, false, [deriveBits])",
72-
"Bad key length: importKey(jwk(private), {name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits])",
73-
"Bad key length: importKey(jwk(private), {name: X448}, false, [deriveKey, deriveBits, deriveKey, deriveBits])",
74-
"Bad key length: importKey(jwk (public) , {name: X448}, true, [])",
75-
"Bad key length: importKey(jwk (public) , {name: X448}, false, [])",
7640
"Invalid key pair: importKey(jwk(private), {name: X448}, true, [deriveKey])",
7741
"Invalid key pair: importKey(jwk(private), {name: X448}, true, [deriveBits, deriveKey])",
7842
"Invalid key pair: importKey(jwk(private), {name: X448}, true, [deriveBits])",

0 commit comments

Comments
 (0)