1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-24 15:19:26 -05:00
denoland-deno/ext/node/ops
Luca Casonato 4fa8869f24
feat(ext/node): rewrite crypto keys (#24463)
This completely rewrites how we handle key material in ext/node. Changes
in this
PR:

- **Signing**
  - RSA
  - RSA-PSS 🆕
  - DSA 🆕
  - EC
  - ED25519 🆕
- **Verifying**
  - RSA
  - RSA-PSS 🆕
  - DSA 🆕
  - EC 🆕
  - ED25519 🆕
- **Private key import**
  - Passphrase encrypted private keys 🆕
  - RSA
    - PEM
    - DER (PKCS#1) 🆕
    - DER (PKCS#8) 🆕
  - RSA-PSS
    - PEM
    - DER (PKCS#1) 🆕
    - DER (PKCS#8) 🆕
  - DSA 🆕
  - EC
    - PEM
    - DER (SEC1) 🆕
    - DER (PKCS#8) 🆕
  - X25519 🆕
  - ED25519 🆕
  - DH
- **Public key import**
  - RSA
    - PEM
    - DER (PKCS#1) 🆕
    - DER (PKCS#8) 🆕
  - RSA-PSS 🆕
  - DSA 🆕
  - EC 🆕
  - X25519 🆕
  - ED25519 🆕
  - DH 🆕
- **Private key export**
  - RSA 🆕
  - DSA 🆕
  - EC 🆕
  - X25519 🆕
  - ED25519 🆕
  - DH 🆕
- **Public key export**
  - RSA
  - DSA 🆕
  - EC 🆕
  - X25519 🆕
  - ED25519 🆕
  - DH 🆕
- **Key pair generation**
  - Overhauled, but supported APIs unchanged

This PR adds a lot of new individual functionality. But most importantly
because
of the new key material representation, it is now trivial to add new
algorithms
(as shown by this PR).

Now, when adding a new algorithm, it is also widely supported - for
example
previously we supported ED25519 key pair generation, but we could not
import,
export, sign or verify with ED25519. We can now do all of those things.
2024-08-07 08:43:58 +02:00
..
crypto feat(ext/node): rewrite crypto keys (#24463) 2024-08-07 08:43:58 +02:00
os fix(ext/node): read correct CPU usage stats on Linux (#24732) 2024-07-26 09:09:01 +05:30
zlib feat: upgrade deno_core (#24364) 2024-07-01 15:48:52 -07:00
blocklist.rs fix(ext/node): handle prefix mapping for IPv4-mapped IPv6 addresses (#24546) 2024-07-12 14:25:17 +05:30
buffer.rs feat(node): buffer isUtf8/isAscii (#23928) 2024-05-21 15:50:59 -07:00
fs.rs perf(ext/node): optimize fs.exists[Sync] (#24613) 2024-07-17 18:05:51 +05:30
http.rs refactor(ext/node): create separate ops for node:http module (#24788) 2024-07-30 14:34:52 +02:00
http2.rs fix(ext/node): prevent panic in http2.connect with uppercase header names (#24780) 2024-07-29 13:33:55 +02:00
idna.rs fix(ext/node): Match punycode module behavior to node (#22847) 2024-03-11 15:49:43 -07:00
ipc.rs fix(node): Fix node IPC serialization for objects with undefined values (#24894) 2024-08-05 09:42:26 -07:00
mod.rs feat: vm rewrite (#24596) 2024-08-06 12:52:53 +00:00
process.rs fix(ext/node): implement process.kill in Rust (#23130) 2024-04-20 18:55:07 +05:30
require.rs refactor: decouple node resolution from deno_core (#24724) 2024-07-25 19:08:14 -04:00
util.rs chore: update copyright to 2024 (#21753) 2024-01-01 19:58:21 +00:00
v8.rs chore(ext/node): remove old vm ops (#24187) 2024-06-13 09:19:33 +05:30
vm.rs feat: vm rewrite (#24596) 2024-08-06 12:52:53 +00:00
vm_internal.rs feat(ext/node): rewrite crypto keys (#24463) 2024-08-07 08:43:58 +02:00
winerror.rs chore: update copyright to 2024 (#21753) 2024-01-01 19:58:21 +00:00
worker_threads.rs refactor: decouple node resolution from deno_core (#24724) 2024-07-25 19:08:14 -04:00