1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-28 01:59:06 -05:00
denoland-deno/ext/node/polyfills/internal
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
..
console refactor: Use virtul ops module (#22175) 2024-01-29 22:02:26 +01:00
crypto feat(ext/node): rewrite crypto keys (#24463) 2024-08-07 08:43:58 +02:00
dns chore: update copyright to 2024 (#21753) 2024-01-01 19:58:21 +00:00
fs fix(ext/node): Add fs.lutimes / fs.lutimesSync (#23172) 2024-07-02 19:33:32 -07:00
process refactor: use core.ensureFastOps() (#21888) 2024-01-10 15:37:25 -07:00
readline chore: upgrade to dprint 0.39 (#19768) 2023-07-08 18:34:08 +00:00
streams refactor: remove dead code in node stream polyfill (#23597) 2024-04-29 19:55:51 +09:00
test chore: update copyright to 2024 (#21753) 2024-01-01 19:58:21 +00:00
util fix(ext/node): support NODE_DEBUG env (#23583) 2024-04-29 09:36:53 +00:00
assert.mjs refactor: rename InternalModuleLoader to ExtModuleLoader, use ext: scheme for snapshotted modules (#18041) 2023-03-08 12:44:54 +01:00
async_hooks.ts chore: update copyright to 2024 (#21753) 2024-01-01 19:58:21 +00:00
blocklist.mjs feat(ext/node): add BlockList & SocketAddress classes (#24229) 2024-06-18 10:46:13 +00:00
buffer.d.ts chore: update copyright to 2024 (#21753) 2024-01-01 19:58:21 +00:00
buffer.mjs Revert "perf(ext/node): improve Buffer from string performance" (#24851) 2024-08-02 16:23:21 +02:00
child_process.ts fix(ext/node): handle node child_process with --v8-options flag (#24804) 2024-07-31 16:28:08 +02:00
cli_table.ts chore: sync up Node.js test files for v20.11.1 (#24066) 2024-06-11 11:41:44 +00:00
constants.ts refactor: use core.ensureFastOps() (#21888) 2024-01-10 15:37:25 -07:00
dgram.ts chore: update copyright to 2024 (#21753) 2024-01-01 19:58:21 +00:00
dtrace.ts chore: update copyright to 2024 (#21753) 2024-01-01 19:58:21 +00:00
error_codes.ts chore: update copyright to 2024 (#21753) 2024-01-01 19:58:21 +00:00
errors.ts fix(node): Run node compat tests listed in the ignore field (and fix the ones that fail) (#24631) 2024-07-24 03:12:08 +00:00
event_target.mjs chore: upgrade to dprint 0.39 (#19768) 2023-07-08 18:34:08 +00:00
fixed_queue.ts fix(ext/node): make next tick queue resilient to Array.prototype tampering (#24361) 2024-06-27 21:45:46 +00:00
hide_stack_frames.ts chore: update copyright to 2024 (#21753) 2024-01-01 19:58:21 +00:00
http.ts chore: update copyright to 2024 (#21753) 2024-01-01 19:58:21 +00:00
idna.ts fix(ext/node): Match punycode module behavior to node (#22847) 2024-03-11 15:49:43 -07:00
net.ts chore: update copyright to 2024 (#21753) 2024-01-01 19:58:21 +00:00
normalize_encoding.mjs chore(ext/node): disable prefer-primordials on a per-file basis (#19553) 2023-06-27 15:18:22 +09:00
options.ts chore: update copyright to 2024 (#21753) 2024-01-01 19:58:21 +00:00
primordials.mjs feat(node): implement fs.statfs() (#22862) 2024-03-13 10:57:59 +00:00
querystring.ts chore: update copyright to 2024 (#21753) 2024-01-01 19:58:21 +00:00
stream_base_commons.ts chore: update copyright to 2024 (#21753) 2024-01-01 19:58:21 +00:00
timers.mjs fix(ext/node): spread args in setImmediate (#22998) 2024-03-20 07:52:50 +00:00
url.ts chore: update copyright to 2024 (#21753) 2024-01-01 19:58:21 +00:00
util.mjs fix(ext/node): better support for node:diagnostics_channel module (#24088) 2024-06-15 00:07:02 +02:00
validators.mjs chore: sync up Node.js test files for v20.11.1 (#24066) 2024-06-11 11:41:44 +00:00