summaryrefslogtreecommitdiff
path: root/ext/node/polyfills/internal/crypto/x509.ts
diff options
context:
space:
mode:
Diffstat (limited to 'ext/node/polyfills/internal/crypto/x509.ts')
-rw-r--r--ext/node/polyfills/internal/crypto/x509.ts42
1 files changed, 28 insertions, 14 deletions
diff --git a/ext/node/polyfills/internal/crypto/x509.ts b/ext/node/polyfills/internal/crypto/x509.ts
index 07037bd4a..380deefc3 100644
--- a/ext/node/polyfills/internal/crypto/x509.ts
+++ b/ext/node/polyfills/internal/crypto/x509.ts
@@ -4,6 +4,22 @@
// TODO(petamoriken): enable prefer-primordials for node polyfills
// deno-lint-ignore-file prefer-primordials
+import { core } from "ext:core/mod.js";
+const {
+ op_node_x509_ca,
+ op_node_x509_check_email,
+ op_node_x509_fingerprint,
+ op_node_x509_fingerprint256,
+ op_node_x509_fingerprint512,
+ op_node_x509_get_issuer,
+ op_node_x509_get_serial_number,
+ op_node_x509_get_subject,
+ op_node_x509_get_valid_from,
+ op_node_x509_get_valid_to,
+ op_node_x509_key_usage,
+ op_node_x509_parse,
+} = core.ensureFastOps();
+
import { KeyObject } from "ext:deno_node/internal/crypto/keys.ts";
import { Buffer } from "node:buffer";
import { ERR_INVALID_ARG_TYPE } from "ext:deno_node/internal/errors.ts";
@@ -12,8 +28,6 @@ import { validateString } from "ext:deno_node/internal/validators.mjs";
import { notImplemented } from "ext:deno_node/_utils.ts";
import { BinaryLike } from "ext:deno_node/internal/crypto/types.ts";
-const { ops } = globalThis.__bootstrap.core;
-
// deno-lint-ignore no-explicit-any
export type PeerCertificate = any;
@@ -56,11 +70,11 @@ export class X509Certificate {
);
}
- this.#handle = ops.op_node_x509_parse(buffer);
+ this.#handle = op_node_x509_parse(buffer);
}
get ca(): boolean {
- return ops.op_node_x509_ca(this.#handle);
+ return op_node_x509_ca(this.#handle);
}
checkEmail(
@@ -68,7 +82,7 @@ export class X509Certificate {
_options?: Pick<X509CheckOptions, "subject">,
): string | undefined {
validateString(email, "email");
- if (ops.op_node_x509_check_email(this.#handle, email)) {
+ if (op_node_x509_check_email(this.#handle, email)) {
return email;
}
}
@@ -90,15 +104,15 @@ export class X509Certificate {
}
get fingerprint(): string {
- return ops.op_node_x509_fingerprint(this.#handle);
+ return op_node_x509_fingerprint(this.#handle);
}
get fingerprint256(): string {
- return ops.op_node_x509_fingerprint256(this.#handle);
+ return op_node_x509_fingerprint256(this.#handle);
}
get fingerprint512(): string {
- return ops.op_node_x509_fingerprint512(this.#handle);
+ return op_node_x509_fingerprint512(this.#handle);
}
get infoAccess(): string | undefined {
@@ -108,7 +122,7 @@ export class X509Certificate {
}
get issuer(): string {
- return ops.op_node_x509_get_issuer(this.#handle);
+ return op_node_x509_get_issuer(this.#handle);
}
get issuerCertificate(): X509Certificate | undefined {
@@ -116,7 +130,7 @@ export class X509Certificate {
}
get keyUsage(): string[] | undefined {
- const flags = ops.op_node_x509_key_usage(this.#handle);
+ const flags = op_node_x509_key_usage(this.#handle);
if (flags === 0) return undefined;
const result: string[] = [];
if (flags & 0x01) result.push("DigitalSignature");
@@ -144,11 +158,11 @@ export class X509Certificate {
}
get serialNumber(): string {
- return ops.op_node_x509_get_serial_number(this.#handle);
+ return op_node_x509_get_serial_number(this.#handle);
}
get subject(): string {
- return ops.op_node_x509_get_subject(this.#handle);
+ return op_node_x509_get_subject(this.#handle);
}
get subjectAltName(): string | undefined {
@@ -168,11 +182,11 @@ export class X509Certificate {
}
get validFrom(): string {
- return ops.op_node_x509_get_valid_from(this.#handle);
+ return op_node_x509_get_valid_from(this.#handle);
}
get validTo(): string {
- return ops.op_node_x509_get_valid_to(this.#handle);
+ return op_node_x509_get_valid_to(this.#handle);
}
verify(_publicKey: KeyObject): boolean {