deno.land / std@0.166.0 / node / internal / crypto / random.ts
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.// Copyright Joyent, Inc. and Node.js contributors. All rights reserved. MIT license.
import { notImplemented } from "../../_utils.ts";import randomBytes from "./_randomBytes.ts";import randomFill, { randomFillSync } from "./_randomFill.ts";import randomInt from "./_randomInt.ts";
export { default as randomBytes } from "./_randomBytes.ts";export { default as randomFill, randomFillSync } from "./_randomFill.ts";export { default as randomInt } from "./_randomInt.ts";
export type LargeNumberLike = | ArrayBufferView | SharedArrayBuffer | ArrayBuffer | bigint;
export interface CheckPrimeOptions { /** * The number of Miller-Rabin probabilistic primality iterations to perform. * When the value is 0 (zero), a number of checks is used that yields a false positive rate of at most 2-64 for random input. * Care must be used when selecting a number of checks. * Refer to the OpenSSL documentation for the BN_is_prime_ex function nchecks options for more details. * * @default 0 */ checks?: number | undefined;}
export function checkPrime( candidate: LargeNumberLike, callback: (err: Error | null, result: boolean) => void,): void;export function checkPrime( candidate: LargeNumberLike, options: CheckPrimeOptions, callback: (err: Error | null, result: boolean) => void,): void;export function checkPrime( _candidate: LargeNumberLike, _options?: CheckPrimeOptions | ((err: Error | null, result: boolean) => void), _callback?: (err: Error | null, result: boolean) => void,) { notImplemented("crypto.checkPrime");}
export function checkPrimeSync( _candidate: LargeNumberLike, _options?: CheckPrimeOptions,): boolean { notImplemented("crypto.checkPrimeSync");}
export interface GeneratePrimeOptions { add?: LargeNumberLike | undefined; rem?: LargeNumberLike | undefined; /** * @default false */ safe?: boolean | undefined; bigint?: boolean | undefined;}
export interface GeneratePrimeOptionsBigInt extends GeneratePrimeOptions { bigint: true;}
export interface GeneratePrimeOptionsArrayBuffer extends GeneratePrimeOptions { bigint?: false | undefined;}
export function generatePrime( size: number, callback: (err: Error | null, prime: ArrayBuffer) => void,): void;export function generatePrime( size: number, options: GeneratePrimeOptionsBigInt, callback: (err: Error | null, prime: bigint) => void,): void;export function generatePrime( size: number, options: GeneratePrimeOptionsArrayBuffer, callback: (err: Error | null, prime: ArrayBuffer) => void,): void;export function generatePrime( size: number, options: GeneratePrimeOptions, callback: (err: Error | null, prime: ArrayBuffer | bigint) => void,): void;export function generatePrime( _size: number, _options?: unknown, _callback?: unknown,) { notImplemented("crypto.generatePrime");}
export function generatePrimeSync(size: number): ArrayBuffer;export function generatePrimeSync( size: number, options: GeneratePrimeOptionsBigInt,): bigint;export function generatePrimeSync( size: number, options: GeneratePrimeOptionsArrayBuffer,): ArrayBuffer;export function generatePrimeSync( size: number, options: GeneratePrimeOptions,): ArrayBuffer | bigint;export function generatePrimeSync( _size: number, _options?: | GeneratePrimeOptionsBigInt | GeneratePrimeOptionsArrayBuffer | GeneratePrimeOptions,): ArrayBuffer | bigint { notImplemented("crypto.generatePrimeSync");}
export const randomUUID = () => globalThis.crypto.randomUUID();
export default { checkPrime, checkPrimeSync, generatePrime, generatePrimeSync, randomUUID, randomInt, randomBytes, randomFill, randomFillSync,};
Version Info