From a22caa7669d57d02b848a43270ea69737ec72296 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Fri, 21 Nov 2025 12:51:29 +1100 Subject: [PATCH 1/6] EC compressed data supported on import of EC key --- api/SubtleCrypto.json | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/api/SubtleCrypto.json b/api/SubtleCrypto.json index c4b3a035c454b5..a37b858f4195d4 100644 --- a/api/SubtleCrypto.json +++ b/api/SubtleCrypto.json @@ -1158,6 +1158,43 @@ "deprecated": false } }, + "compressed_ec_points": { + "__compat": { + "description": "ECDSA or ECDH key data can contain compressed elliptic curve points.", + "support": { + "chrome": { + "version_added": "≤80" + }, + "chrome_android": "mirror", + "deno": { + "version_added": false + }, + "edge": "mirror", + "firefox": { + "version_added": "146" + }, + "firefox_android": "mirror", + "nodejs": { + "version_added": false + }, + "oculus": "mirror", + "opera": "mirror", + "opera_android": "mirror", + "safari": { + "version_added": false + }, + "safari_ios": "mirror", + "samsunginternet_android": "mirror", + "webview_android": "mirror", + "webview_ios": "mirror" + }, + "status": { + "experimental": false, + "standard_track": true, + "deprecated": false + } + } + }, "ed25519": { "__compat": { "description": "`Ed25519` algorithm", From 342e6bc42f62b10c05535cb02ec8f4d816f5c93b Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Wed, 26 Nov 2025 08:29:01 +1100 Subject: [PATCH 2/6] Update api/SubtleCrypto.json Co-authored-by: Claas Augner <495429+caugner@users.noreply.github.com> --- api/SubtleCrypto.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/SubtleCrypto.json b/api/SubtleCrypto.json index a37b858f4195d4..5e7f627d05b370 100644 --- a/api/SubtleCrypto.json +++ b/api/SubtleCrypto.json @@ -1158,7 +1158,7 @@ "deprecated": false } }, - "compressed_ec_points": { + "compressed_elliptic_curve_points": { "__compat": { "description": "ECDSA or ECDH key data can contain compressed elliptic curve points.", "support": { From a380a85e6f955d0c4ca558d630b460216eaf2739 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 2 Dec 2025 12:18:15 +1100 Subject: [PATCH 3/6] Add spec link --- api/SubtleCrypto.json | 1 + 1 file changed, 1 insertion(+) diff --git a/api/SubtleCrypto.json b/api/SubtleCrypto.json index 5e7f627d05b370..3b8c1bd84bde4f 100644 --- a/api/SubtleCrypto.json +++ b/api/SubtleCrypto.json @@ -1161,6 +1161,7 @@ "compressed_elliptic_curve_points": { "__compat": { "description": "ECDSA or ECDH key data can contain compressed elliptic curve points.", + "spec_url": "https://w3c.github.io/webcrypto/#ecdsa-operations-import-key", "support": { "chrome": { "version_added": "≤80" From e771fb0514f5dfbd00bbf2a9f7ea6d2865850c0e Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 8 Dec 2025 12:53:14 +1100 Subject: [PATCH 4/6] Add subkeys for ECDH, ECDSA --- api/SubtleCrypto.json | 142 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 134 insertions(+), 8 deletions(-) diff --git a/api/SubtleCrypto.json b/api/SubtleCrypto.json index 3b8c1bd84bde4f..a719977ce5c737 100644 --- a/api/SubtleCrypto.json +++ b/api/SubtleCrypto.json @@ -1095,7 +1095,7 @@ { "version_added": "1.17", "partial_implementation": true, - "notes": "Not supported: ECDSA P-521, ECDH P-521." + "notes": "Not supported: ECDH P-521." }, { "version_added": "1.15", @@ -1107,7 +1107,7 @@ "version_added": "1.14", "version_removed": "1.15", "partial_implementation": true, - "notes": "Not supported: ECDSA, ECDH, AES-CTR, AES-CBC, AES-GCM, AES-KW." + "notes": "Not supported: ECDH, AES-CTR, AES-CBC, AES-GCM, AES-KW." } ], "edge": [ @@ -1158,21 +1158,27 @@ "deprecated": false } }, - "compressed_elliptic_curve_points": { + "ECDH": { "__compat": { - "description": "ECDSA or ECDH key data can contain compressed elliptic curve points.", - "spec_url": "https://w3c.github.io/webcrypto/#ecdsa-operations-import-key", + "description": "`ECDH` algorithm", + "mdn_url": "https://developer.mozilla.org/docs/Web/API/SubtleCrypto/importKey", + "spec_url": "https://w3c.github.io/webcrypto/#ecdh", "support": { + "bun": { + "version_added": false + }, "chrome": { - "version_added": "≤80" + "version_added": "37" }, "chrome_android": "mirror", "deno": { - "version_added": false + "version_added": "1.18", + "partial_implementation": true, + "notes": "P-384 supported. Not supported: P-256, P-521." }, "edge": "mirror", "firefox": { - "version_added": "146" + "version_added": "34" }, "firefox_android": "mirror", "nodejs": { @@ -1182,8 +1188,90 @@ "opera": "mirror", "opera_android": "mirror", "safari": { + "version_added": "7" + }, + "safari_ios": "mirror", + "samsunginternet_android": "mirror", + "webview_android": "mirror", + "webview_ios": "mirror" + }, + "status": { + "experimental": false, + "standard_track": true, + "deprecated": false + } + }, + "compressed_elliptic_curve_points": { + "__compat": { + "description": "Key data can contain compressed elliptic curve points.", + "spec_url": "https://w3c.github.io/webcrypto/#ecdsa-operations-import-key", + "support": { + "chrome": { + "version_added": "≤80" + }, + "chrome_android": "mirror", + "deno": { + "version_added": false + }, + "edge": "mirror", + "firefox": { + "version_added": "146" + }, + "firefox_android": "mirror", + "nodejs": { + "version_added": false + }, + "oculus": "mirror", + "opera": "mirror", + "opera_android": "mirror", + "safari": { + "version_added": false + }, + "safari_ios": "mirror", + "samsunginternet_android": "mirror", + "webview_android": "mirror", + "webview_ios": "mirror" + }, + "status": { + "experimental": false, + "standard_track": true, + "deprecated": false + } + } + } + }, + "ECDSA": { + "__compat": { + "description": "`ECDSA` algorithm", + "mdn_url": "https://developer.mozilla.org/docs/Web/API/SubtleCrypto/importKey", + "spec_url": "https://w3c.github.io/webcrypto/#ecdsa", + "support": { + "bun": { "version_added": false }, + "chrome": { + "version_added": "37" + }, + "chrome_android": "mirror", + "deno": { + "version_added": "1.18", + "partial_implementation": true, + "notes": "P-384 supported. Not supported: P-256, P-521." + }, + "edge": "mirror", + "firefox": { + "version_added": "34" + }, + "firefox_android": "mirror", + "nodejs": { + "version_added": false + }, + "oculus": "mirror", + "opera": "mirror", + "opera_android": "mirror", + "safari": { + "version_added": "7" + }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", @@ -1194,6 +1282,44 @@ "standard_track": true, "deprecated": false } + }, + "compressed_elliptic_curve_points": { + "__compat": { + "description": "Key data can contain compressed elliptic curve points.", + "spec_url": "https://w3c.github.io/webcrypto/#ecdsa-operations-import-key", + "support": { + "chrome": { + "version_added": "≤80" + }, + "chrome_android": "mirror", + "deno": { + "version_added": false + }, + "edge": "mirror", + "firefox": { + "version_added": "146" + }, + "firefox_android": "mirror", + "nodejs": { + "version_added": false + }, + "oculus": "mirror", + "opera": "mirror", + "opera_android": "mirror", + "safari": { + "version_added": false + }, + "safari_ios": "mirror", + "samsunginternet_android": "mirror", + "webview_android": "mirror", + "webview_ios": "mirror" + }, + "status": { + "experimental": false, + "standard_track": true, + "deprecated": false + } + } } }, "ed25519": { From 851078da84bf77423a9829d04f7bb9c59069f7ee Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 8 Dec 2025 12:54:23 +1100 Subject: [PATCH 5/6] Update api/SubtleCrypto.json --- api/SubtleCrypto.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/SubtleCrypto.json b/api/SubtleCrypto.json index a719977ce5c737..95edde89965ba0 100644 --- a/api/SubtleCrypto.json +++ b/api/SubtleCrypto.json @@ -1107,7 +1107,7 @@ "version_added": "1.14", "version_removed": "1.15", "partial_implementation": true, - "notes": "Not supported: ECDH, AES-CTR, AES-CBC, AES-GCM, AES-KW." + "notes": "Not supported: AES-CTR, AES-CBC, AES-GCM, AES-KW." } ], "edge": [ From bfec9e8334c43bfee2dac4fd092cbeaaf87a9463 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Wed, 10 Dec 2025 07:08:50 +1100 Subject: [PATCH 6/6] Apply suggestions from code review Co-authored-by: Daniel D. Beck --- api/SubtleCrypto.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/SubtleCrypto.json b/api/SubtleCrypto.json index 95edde89965ba0..1297cdc8f3e155 100644 --- a/api/SubtleCrypto.json +++ b/api/SubtleCrypto.json @@ -1203,7 +1203,7 @@ }, "compressed_elliptic_curve_points": { "__compat": { - "description": "Key data can contain compressed elliptic curve points.", + "description": "Key data can contain compressed elliptic curve points", "spec_url": "https://w3c.github.io/webcrypto/#ecdsa-operations-import-key", "support": { "chrome": { @@ -1285,7 +1285,7 @@ }, "compressed_elliptic_curve_points": { "__compat": { - "description": "Key data can contain compressed elliptic curve points.", + "description": "Key data can contain compressed elliptic curve points", "spec_url": "https://w3c.github.io/webcrypto/#ecdsa-operations-import-key", "support": { "chrome": {