@@ -114,6 +114,7 @@ Key Formats:
114114
115115Methods:
116116
117+ *  [ ` subtle.getPublicKey() ` ] [ ] 
117118*  [ ` SubtleCrypto.supports() ` ] [ ] 
118119
119120## Secure Curves in the Web Cryptography API  
@@ -477,36 +478,36 @@ const decrypted = new TextDecoder().decode(await crypto.subtle.decrypt(
477478The table details the algorithms supported by the Node.js Web Crypto API 
478479implementation and the APIs supported for each: 
479480
480- | Algorithm                    | `  generateKey`  | `  exportKey`  | `  importKey`  | `  encrypt`  | `  decrypt`  | `  wrapKey`  | `  unwrapKey`  | `  deriveBits`  | `  deriveKey`  | `  sign`  | `  verify`  | `  digest`  |
481- | ---------------------------- | ------------- | ----------- | ----------- | --------- | --------- | --------- | ----------- | ------------ | ----------- | ------ | -------- | -------- | 
482- | `  ' AES-CBC' `                   | ✔             | ✔           | ✔           | ✔         | ✔         | ✔         | ✔           |              |             |        |          |          |
483- | `  ' AES-CTR' `                   | ✔             | ✔           | ✔           | ✔         | ✔         | ✔         | ✔           |              |             |        |          |          |
484- | `  ' AES-GCM' `                   | ✔             | ✔           | ✔           | ✔         | ✔         | ✔         | ✔           |              |             |        |          |          |
485- | `  ' AES-KW' `                    | ✔             | ✔           | ✔           |           |           | ✔         | ✔           |              |             |        |          |          |
486- | `  ' cSHAKE128' ` [^modern-algos] |               |             |             |           |           |           |             |              |             |        |          | ✔        |
487- | `  ' cSHAKE256' ` [^modern-algos] |               |             |             |           |           |           |             |              |             |        |          | ✔        |
488- | `  ' ECDH' `                      | ✔             | ✔           | ✔           |           |           |           |             | ✔            | ✔           |        |          |          |
489- | `  ' ECDSA' `                     | ✔             | ✔           | ✔           |           |           |           |             |              |             | ✔      | ✔        |          |
490- | `  ' Ed25519' `                   | ✔             | ✔           | ✔           |           |           |           |             |              |             | ✔      | ✔        |          |
491- | `  ' Ed448' ` [^secure-curves]    | ✔             | ✔           | ✔           |           |           |           |             |              |             | ✔      | ✔        |          |
492- | `  ' HKDF' `                      |               | ✔           | ✔           |           |           |           |             | ✔            | ✔           |        |          |          |
493- | `  ' HMAC' `                      | ✔             | ✔           | ✔           |           |           |           |             |              |             | ✔      | ✔        |          |
494- | `  ' ML-DSA-44' ` [^modern-algos] | ✔             | ✔           | ✔           |           |           |           |             |              |             | ✔      | ✔        |          |
495- | `  ' ML-DSA-65' ` [^modern-algos] | ✔             | ✔           | ✔           |           |           |           |             |              |             | ✔      | ✔        |          |
496- | `  ' ML-DSA-87' ` [^modern-algos] | ✔             | ✔           | ✔           |           |           |           |             |              |             | ✔      | ✔        |          |
497- | `  ' PBKDF2' `                    |               | ✔           | ✔           |           |           |           |             | ✔            | ✔           |        |          |          |
498- | `  ' RSA-OAEP' `                  | ✔             | ✔           | ✔           | ✔         | ✔         | ✔         | ✔           |              |             |        |          |          |
499- | `  ' RSA-PSS' `                   | ✔             | ✔           | ✔           |           |           |           |             |              |             | ✔      | ✔        |          |
500- | `  ' RSASSA-PKCS1-v1_5' `         | ✔             | ✔           | ✔           |           |           |           |             |              |             | ✔      | ✔        |          |
501- | `  ' SHA-1' `                     |               |             |             |           |           |           |             |              |             |        |          | ✔        |
502- | `  ' SHA-256' `                   |               |             |             |           |           |           |             |              |             |        |          | ✔        |
503- | `  ' SHA-384' `                   |               |             |             |           |           |           |             |              |             |        |          | ✔        |
504- | `  ' SHA-512' `                   |               |             |             |           |           |           |             |              |             |        |          | ✔        |
505- | `  ' SHA3-256' ` [^modern-algos]  |               |             |             |           |           |           |             |              |             |        |          | ✔        |
506- | `  ' SHA3-384' ` [^modern-algos]  |               |             |             |           |           |           |             |              |             |        |          | ✔        |
507- | `  ' SHA3-512' ` [^modern-algos]  |               |             |             |           |           |           |             |              |             |        |          | ✔        |
508- | `  ' X25519' `                    | ✔             | ✔           | ✔           |           |           |           |             | ✔            | ✔           |        |          |          |
509- | `  ' X448' ` [^secure-curves]     | ✔             | ✔           | ✔           |           |           |           |             | ✔            | ✔           |        |          |          |
481+ | Algorithm                    | `  generateKey`  | `  exportKey`  | `  importKey`  | `  encrypt`  | `  decrypt`  | `  wrapKey`  | `  unwrapKey`  | `  deriveBits`  | `  deriveKey`  | `  sign`  | `  verify`  | `  digest`  |  ` getPublicKey `  | 
482+ | ---------------------------- | ------------- | ----------- | ----------- | --------- | --------- | --------- | ----------- | ------------ | ----------- | ------ | -------- | -------- | -------------- |  
483+ | `  ' AES-CBC' `                   | ✔             | ✔           | ✔           | ✔         | ✔         | ✔         | ✔           |              |             |        |          |          |                | 
484+ | `  ' AES-CTR' `                   | ✔             | ✔           | ✔           | ✔         | ✔         | ✔         | ✔           |              |             |        |          |          |                | 
485+ | `  ' AES-GCM' `                   | ✔             | ✔           | ✔           | ✔         | ✔         | ✔         | ✔           |              |             |        |          |          |                | 
486+ | `  ' AES-KW' `                    | ✔             | ✔           | ✔           |           |           | ✔         | ✔           |              |             |        |          |          |                | 
487+ | `  ' cSHAKE128' ` [^modern-algos] |               |             |             |           |           |           |             |              |             |        |          | ✔        |                | 
488+ | `  ' cSHAKE256' ` [^modern-algos] |               |             |             |           |           |           |             |              |             |        |          | ✔        |                | 
489+ | `  ' ECDH' `                      | ✔             | ✔           | ✔           |           |           |           |             | ✔            | ✔           |        |          |          | ✔              | 
490+ | `  ' ECDSA' `                     | ✔             | ✔           | ✔           |           |           |           |             |              |             | ✔      | ✔        |          | ✔              | 
491+ | `  ' Ed25519' `                   | ✔             | ✔           | ✔           |           |           |           |             |              |             | ✔      | ✔        |          | ✔              | 
492+ | `  ' Ed448' ` [^secure-curves]    | ✔             | ✔           | ✔           |           |           |           |             |              |             | ✔      | ✔        |          | ✔              | 
493+ | `  ' HKDF' `                      |               | ✔           | ✔           |           |           |           |             | ✔            | ✔           |        |          |          |                | 
494+ | `  ' HMAC' `                      | ✔             | ✔           | ✔           |           |           |           |             |              |             | ✔      | ✔        |          |                | 
495+ | `  ' ML-DSA-44' ` [^modern-algos] | ✔             | ✔           | ✔           |           |           |           |             |              |             | ✔      | ✔        |          | ✔              | 
496+ | `  ' ML-DSA-65' ` [^modern-algos] | ✔             | ✔           | ✔           |           |           |           |             |              |             | ✔      | ✔        |          | ✔              | 
497+ | `  ' ML-DSA-87' ` [^modern-algos] | ✔             | ✔           | ✔           |           |           |           |             |              |             | ✔      | ✔        |          | ✔              | 
498+ | `  ' PBKDF2' `                    |               | ✔           | ✔           |           |           |           |             | ✔            | ✔           |        |          |          |                | 
499+ | `  ' RSA-OAEP' `                  | ✔             | ✔           | ✔           | ✔         | ✔         | ✔         | ✔           |              |             |        |          |          | ✔              | 
500+ | `  ' RSA-PSS' `                   | ✔             | ✔           | ✔           |           |           |           |             |              |             | ✔      | ✔        |          | ✔              | 
501+ | `  ' RSASSA-PKCS1-v1_5' `         | ✔             | ✔           | ✔           |           |           |           |             |              |             | ✔      | ✔        |          | ✔              | 
502+ | `  ' SHA-1' `                     |               |             |             |           |           |           |             |              |             |        |          | ✔        |                | 
503+ | `  ' SHA-256' `                   |               |             |             |           |           |           |             |              |             |        |          | ✔        |                | 
504+ | `  ' SHA-384' `                   |               |             |             |           |           |           |             |              |             |        |          | ✔        |                | 
505+ | `  ' SHA-512' `                   |               |             |             |           |           |           |             |              |             |        |          | ✔        |                | 
506+ | `  ' SHA3-256' ` [^modern-algos]  |               |             |             |           |           |           |             |              |             |        |          | ✔        |                | 
507+ | `  ' SHA3-384' ` [^modern-algos]  |               |             |             |           |           |           |             |              |             |        |          | ✔        |                | 
508+ | `  ' SHA3-512' ` [^modern-algos]  |               |             |             |           |           |           |             |              |             |        |          | ✔        |                | 
509+ | `  ' X25519' `                    | ✔             | ✔           | ✔           |           |           |           |             | ✔            | ✔           |        |          |          | ✔              | 
510+ | `  ' X448' ` [^secure-curves]     | ✔             | ✔           | ✔           |           |           |           |             | ✔            | ✔           |        |          |          | ✔              | 
510511
511512## Class: `  Crypto ` 
512513
@@ -691,7 +692,7 @@ added: REPLACEME
691692
692693<!--lint disable maximum-line-length remark-lint--> 
693694
694- * `  operation`  {string} "encrypt", "decrypt", "sign", "verify", "digest", "generateKey", "deriveKey", "deriveBits", "importKey", "exportKey", "wrapKey", or "unwrapKey"
695+ * `  operation`  {string} "encrypt", "decrypt", "sign", "verify", "digest", "generateKey", "deriveKey", "deriveBits", "importKey", "exportKey", "getPublicKey", " wrapKey", or "unwrapKey"
695696* `  algorithm`  {string|Algorithm}
696697* `  lengthOrAdditionalAlgorithm`  {null|number|string|Algorithm|undefined} Depending on the operation this is either ignored, the value of the length argument when operation is "deriveBits", the algorithm of key to be derived when operation is "deriveKey", the algorithm of key to be exported before wrapping when operation is "wrapKey", or the algorithm of key to be imported after unwrapping when operation is "unwrapKey". **Default:** ` null `  when operation is "deriveBits", ` undefined `  otherwise.
697698* Returns: {boolean} Indicating whether the implementation supports the given operation 
@@ -925,6 +926,20 @@ specification.
925926| `  ' RSA-PSS' `                   | ✔        | ✔         | ✔       |         |                |                |              |
926927| `  ' RSASSA-PKCS1-v1_5' `         | ✔        | ✔         | ✔       |         |                |                |              |
927928
929+ ### `  subtle .getPublicKey (key, keyUsages)` 
930+ 
931+ <!-- YAML 
932+ added: REPLACEME 
933+ --> 
934+ 
935+ > Stability: 1.1 - Active development 
936+ 
937+ * `  key`  {CryptoKey} A private key from which to derive the corresponding public key.
938+ * `  keyUsages`  {string\[ ]} See [Key usages][].
939+ * Returns: {Promise} Fulfills with a {CryptoKey} upon success. 
940+ 
941+ Derives the public key from a given private key. 
942+ 
928943### `  subtle .generateKey (algorithm, extractable, keyUsages)` 
929944
930945<!-- YAML 
@@ -2142,3 +2157,4 @@ The length (in bytes) of the random salt to use.
21422157[Secure Curves in the Web Cryptography API]: #secure-curves-in-the-web-cryptography-api 
21432158[Web Crypto API]: https://www.w3.org/TR/WebCryptoAPI/ 
21442159[`  SubtleCrypto .supports ()` ]: #static-method-subtlecryptosupportsoperation-algorithm-lengthoradditionalalgorithm
2160+ [`  subtle .getPublicKey ()` ]: #subtlegetpublickeykey-keyusages
0 commit comments