summaryrefslogtreecommitdiff
path: root/ext/node/polyfills/internal/crypto/_randomFill.ts
diff options
context:
space:
mode:
Diffstat (limited to 'ext/node/polyfills/internal/crypto/_randomFill.ts')
-rw-r--r--ext/node/polyfills/internal/crypto/_randomFill.ts94
1 files changed, 0 insertions, 94 deletions
diff --git a/ext/node/polyfills/internal/crypto/_randomFill.ts b/ext/node/polyfills/internal/crypto/_randomFill.ts
deleted file mode 100644
index 927acaf8d..000000000
--- a/ext/node/polyfills/internal/crypto/_randomFill.ts
+++ /dev/null
@@ -1,94 +0,0 @@
-// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
-
-// TODO(petamoriken): enable prefer-primordials for node polyfills
-// deno-lint-ignore-file prefer-primordials
-
-import {
- MAX_SIZE as kMaxUint32,
-} from "ext:deno_node/internal/crypto/_randomBytes.ts";
-import { Buffer } from "node:buffer";
-const { core } = globalThis.__bootstrap;
-const { ops } = core;
-
-const kBufferMaxLength = 0x7fffffff;
-
-function assertOffset(offset: number, length: number) {
- if (offset > kMaxUint32 || offset < 0) {
- throw new TypeError("offset must be a uint32");
- }
-
- if (offset > kBufferMaxLength || offset > length) {
- throw new RangeError("offset out of range");
- }
-}
-
-function assertSize(size: number, offset: number, length: number) {
- if (size > kMaxUint32 || size < 0) {
- throw new TypeError("size must be a uint32");
- }
-
- if (size + offset > length || size > kBufferMaxLength) {
- throw new RangeError("buffer too small");
- }
-}
-
-export default function randomFill(
- buf: Buffer,
- cb: (err: Error | null, buf: Buffer) => void,
-): void;
-
-export default function randomFill(
- buf: Buffer,
- offset: number,
- cb: (err: Error | null, buf: Buffer) => void,
-): void;
-
-export default function randomFill(
- buf: Buffer,
- offset: number,
- size: number,
- cb: (err: Error | null, buf: Buffer) => void,
-): void;
-
-export default function randomFill(
- buf: Buffer,
- offset?: number | ((err: Error | null, buf: Buffer) => void),
- size?: number | ((err: Error | null, buf: Buffer) => void),
- cb?: (err: Error | null, buf: Buffer) => void,
-) {
- if (typeof offset === "function") {
- cb = offset;
- offset = 0;
- size = buf.length;
- } else if (typeof size === "function") {
- cb = size;
- size = buf.length - Number(offset as number);
- }
-
- assertOffset(offset as number, buf.length);
- assertSize(size as number, offset as number, buf.length);
-
- core.opAsync("op_node_generate_secret_async", Math.floor(size as number))
- .then(
- (randomData: Uint8Array) => {
- const randomBuf = Buffer.from(randomData.buffer);
- randomBuf.copy(buf, offset as number, 0, size as number);
- cb!(null, buf);
- },
- );
-}
-
-export function randomFillSync(buf: Buffer, offset = 0, size?: number) {
- assertOffset(offset, buf.length);
-
- if (size === undefined) size = buf.length - offset;
-
- assertSize(size, offset, buf.length);
-
- const bytes: Uint8Array = new Uint8Array(Math.floor(size));
- ops.op_node_generate_secret(bytes);
- const bytesBuf: Buffer = Buffer.from(bytes.buffer);
- bytesBuf.copy(buf, offset, 0, size);
-
- return buf;
-}