diff options
-rw-r--r-- | cli/tests/unit_node/internal/_randomBytes_test.ts | 22 | ||||
-rw-r--r-- | ext/node/polyfills/crypto.ts | 6 |
2 files changed, 27 insertions, 1 deletions
diff --git a/cli/tests/unit_node/internal/_randomBytes_test.ts b/cli/tests/unit_node/internal/_randomBytes_test.ts index 69845705e..b12674170 100644 --- a/cli/tests/unit_node/internal/_randomBytes_test.ts +++ b/cli/tests/unit_node/internal/_randomBytes_test.ts @@ -6,7 +6,7 @@ import { assertThrows, } from "../../../../test_util/std/assert/mod.ts"; import { assertCallbackErrorUncaught } from "../_test_utils.ts"; -import { randomBytes } from "node:crypto"; +import { pseudoRandomBytes, randomBytes } from "node:crypto"; const MAX_RANDOM_VALUES = 65536; const MAX_SIZE = 4294967295; @@ -90,3 +90,23 @@ Deno.test("[std/node/crypto] randomBytes callback isn't called twice if error is invocation: "randomBytes(0, ", }); }); + +// https://github.com/denoland/deno/issues/21632 +Deno.test("pseudoRandomBytes works", function () { + assertEquals(pseudoRandomBytes(0).length, 0, "len: " + 0); + assertEquals(pseudoRandomBytes(3).length, 3, "len: " + 3); + assertEquals(pseudoRandomBytes(30).length, 30, "len: " + 30); + assertEquals(pseudoRandomBytes(300).length, 300, "len: " + 300); + assertEquals( + pseudoRandomBytes(17 + MAX_RANDOM_VALUES).length, + 17 + MAX_RANDOM_VALUES, + "len: " + 17 + MAX_RANDOM_VALUES, + ); + assertEquals( + pseudoRandomBytes(MAX_RANDOM_VALUES * 100).length, + MAX_RANDOM_VALUES * 100, + "len: " + MAX_RANDOM_VALUES * 100, + ); + assertThrows(() => pseudoRandomBytes(MAX_SIZE + 1)); + assertThrows(() => pseudoRandomBytes(-1)); +}); diff --git a/ext/node/polyfills/crypto.ts b/ext/node/polyfills/crypto.ts index 53c9fc2ea..089393222 100644 --- a/ext/node/polyfills/crypto.ts +++ b/ext/node/polyfills/crypto.ts @@ -306,6 +306,9 @@ const setFips = fipsForced ? setFipsForced : setFipsCrypto; const sign = signOneShot; const verify = verifyOneShot; +/* Deprecated in Node.js, alias of randomBytes */ +const pseudoRandomBytes = randomBytes; + export default { Certificate, checkPrime, @@ -353,6 +356,7 @@ export default { publicDecrypt, publicEncrypt, randomBytes, + pseudoRandomBytes, randomFill, randomFillSync, randomInt, @@ -485,6 +489,8 @@ export { pbkdf2Sync, privateDecrypt, privateEncrypt, + /* Deprecated in Node.js, alias of randomBytes */ + pseudoRandomBytes, publicDecrypt, publicEncrypt, randomBytes, |