Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
168 changes: 166 additions & 2 deletions api/SubtleCrypto.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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: AES-CTR, AES-CBC, AES-GCM, AES-KW."
}
],
"edge": [
Expand Down Expand Up @@ -1158,6 +1158,170 @@
"deprecated": false
}
},
"ECDH": {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Following discussion in https://github.com/mdn/browser-compat-data/pull/28497/files#r2591982487 I've

  • added subfeatures for ECDH and ECDSA algorithms under importKey
  • Populated them with data from the importKey, in particular the partial implementation notes.
  • Just for the keys now covered, I have removed those notes from the partial implementation.
  • Make compressed_elliptic_curve_points a subkey of those.
  • As per https://github.com/mdn/browser-compat-data/pull/28497/files#r2596822093 there is also a lower leve which is the specific curve for the algorithm. Do we need these as subfeatures too? If so, as subfeatures of the method or of the algorithm>
  • I have not done all the other keys.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is stellar, Hamish! I was mostly trying to leave a paper trail for when someone (me?) eventually got around to fixing this, but you've gone above and beyond. Thank you!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're welcome. Keeping BCD correct is worth it.

"__compat": {
"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": "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",
"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",
"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
}
}
}
},
"ed25519": {
"__compat": {
"description": "`Ed25519` algorithm",
Expand Down