summaryrefslogtreecommitdiff
path: root/ext/node/polyfills/internal/crypto/keygen.ts
diff options
context:
space:
mode:
authorMatt Mastracci <matthew@mastracci.com>2023-12-26 18:30:26 -0700
committerGitHub <noreply@github.com>2023-12-27 02:30:26 +0100
commit0efe438f7c191d8504355e03b27fe7e3055c9387 (patch)
treeb96fe9a897eb6941c87a95a04520662d26c02fbe /ext/node/polyfills/internal/crypto/keygen.ts
parente33c5eb704c22fad69876e87d9b852a4e5072a7a (diff)
perf: remove opAsync (#21690)
`opAsync` requires a lookup by name on each async call. This is a mechanical translation of all opAsync calls to ensureFastOps. The `opAsync` API on Deno.core will be removed at a later time.
Diffstat (limited to 'ext/node/polyfills/internal/crypto/keygen.ts')
-rw-r--r--ext/node/polyfills/internal/crypto/keygen.ts32
1 files changed, 19 insertions, 13 deletions
diff --git a/ext/node/polyfills/internal/crypto/keygen.ts b/ext/node/polyfills/internal/crypto/keygen.ts
index 29a062e00..f757f5eaf 100644
--- a/ext/node/polyfills/internal/crypto/keygen.ts
+++ b/ext/node/polyfills/internal/crypto/keygen.ts
@@ -31,6 +31,16 @@ import { KeyFormat, KeyType } from "ext:deno_node/internal/crypto/types.ts";
const { core } = globalThis.__bootstrap;
const { ops } = core;
+const {
+ op_node_dh_generate_async,
+ op_node_dh_generate_group_async,
+ op_node_dsa_generate_async,
+ op_node_ec_generate_async,
+ op_node_generate_rsa_async,
+ op_node_generate_secret_async,
+ op_node_ed25519_generate_async,
+ op_node_x25519_generate_async,
+} = core.ensureFastOps();
function validateGenerateKey(
type: "hmac" | "aes",
@@ -81,7 +91,7 @@ export function generateKey(
validateFunction(callback, "callback");
const { length } = options;
- core.opAsync("op_node_generate_secret_async", Math.floor(length / 8)).then(
+ op_node_generate_secret_async(Math.floor(length / 8)).then(
(key) => {
callback(null, new SecretKeyObject(setOwnedKey(key)));
},
@@ -799,8 +809,7 @@ function createJob(mode, type, options) {
publicExponent,
);
} else {
- return core.opAsync(
- "op_node_generate_rsa_async",
+ return op_node_generate_rsa_async(
modulusLength,
publicExponent,
);
@@ -855,8 +864,7 @@ function createJob(mode, type, options) {
publicExponent,
);
} else {
- return core.opAsync(
- "op_node_generate_rsa_async",
+ return op_node_generate_rsa_async(
modulusLength,
publicExponent,
);
@@ -877,8 +885,7 @@ function createJob(mode, type, options) {
if (mode === kSync) {
return ops.op_node_dsa_generate(modulusLength, divisorLength);
}
- return core.opAsync(
- "op_node_dsa_generate_async",
+ return op_node_dsa_generate_async(
modulusLength,
divisorLength,
);
@@ -900,20 +907,20 @@ function createJob(mode, type, options) {
if (mode === kSync) {
return ops.op_node_ec_generate(namedCurve);
} else {
- return core.opAsync("op_node_ec_generate_async", namedCurve);
+ return op_node_ec_generate_async(namedCurve);
}
}
case "ed25519": {
if (mode === kSync) {
return ops.op_node_ed25519_generate();
}
- return core.opAsync("op_node_ed25519_generate_async");
+ return op_node_ed25519_generate_async();
}
case "x25519": {
if (mode === kSync) {
return ops.op_node_x25519_generate();
}
- return core.opAsync("op_node_x25519_generate_async");
+ return op_node_x25519_generate_async();
}
case "ed448":
case "x448": {
@@ -939,7 +946,7 @@ function createJob(mode, type, options) {
if (mode === kSync) {
return ops.op_node_dh_generate_group(group);
} else {
- return core.opAsync("op_node_dh_generate_group_async", group);
+ return op_node_dh_generate_group_async(group);
}
}
@@ -966,8 +973,7 @@ function createJob(mode, type, options) {
if (mode === kSync) {
return ops.op_node_dh_generate(prime, primeLength ?? 0, g);
} else {
- return core.opAsync(
- "op_node_dh_generate_async",
+ return op_node_dh_generate_async(
prime,
primeLength ?? 0,
g,