Node crypto.generatePrime function | API Reference | Bun
BuildDocsReferenceGuidesBlogDiscord/
node:crypto/
generatePrimeFgeneratePrime
Search the reference...
/
BuildDocsReferenceGuidesBlogDiscord/
node:crypto/
generatePrimeFgeneratePrime
function
crypto.generatePrime 2` would contradict the condition
enforced by `options.safe`.
* `options.rem` is ignored if `options.add` is not given.
Both `options.add` and `options.rem` must be encoded as big-endian sequences
if given as an `ArrayBuffer`, `SharedArrayBuffer`, `TypedArray`, `Buffer`, or `DataView`.
By default, the prime is encoded as a big-endian sequence of octets
in an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer). If the `bigint` option is `true`, then a
[bigint](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) is provided." data-algolia-static="false" data-algolia-merged="false" data-type="Function">function
generatePrime(size: number,callback: (err: null |
Error, prime:
ArrayBuffer) => void): void;
Generates a pseudorandom prime of size bits.
If options.safe is true, the prime will be a safe prime -- that is, (prime - 1) / 2 will also be a prime.
The options.add and options.rem parameters can be used to enforce additional requirements, e.g., for Diffie-Hellman:
If options.add and options.rem are both set, the prime will satisfy the condition that prime % add = rem.If only options.add is set and options.safe is not true, the prime will satisfy the condition that prime % add = 1.If only options.add is set and options.safe is set to true, the prime will instead satisfy the condition that prime % add = 3. This is necessary because prime % add = 1 for options.add > 2 would contradict the condition enforced by options.safe.options.rem is ignored if options.add is not given.Both options.add and options.rem must be encoded as big-endian sequences if given as an ArrayBuffer, SharedArrayBuffer, TypedArray, Buffer, or DataView.
By default, the prime is encoded as a big-endian sequence of octets in an ArrayBuffer. If the bigint option is true, then a bigint is provided.
@param size
The size (in bits) of the prime to generate.
function
generatePrime(size: number,options:
GeneratePrimeOptionsBigInt,callback: (err: null |
Error, prime: bigint) => void): void;
Generates a pseudorandom prime of size bits.
If options.safe is true, the prime will be a safe prime -- that is, (prime - 1) / 2 will also be a prime.
The options.add and options.rem parameters can be used to enforce additional requirements, e.g., for Diffie-Hellman:
If options.add and options.rem are both set, the prime will satisfy the condition that prime % add = rem.If only options.add is set and options.safe is not true, the prime will satisfy the condition that prime % add = 1.If only options.add is set and options.safe is set to true, the prime will instead satisfy the condition that prime % add = 3. This is necessary because prime % add = 1 for options.add > 2 would contradict the condition enforced by options.safe.options.rem is ignored if options.add is not given.Both options.add and options.rem must be encoded as big-endian sequences if given as an ArrayBuffer, SharedArrayBuffer, TypedArray, Buffer, or DataView.
By default, the prime is encoded as a big-endian sequence of octets in an ArrayBuffer. If the bigint option is true, then a bigint is provided.
@param size
The size (in bits) of the prime to generate.
function
generatePrime(size: number,options:
GeneratePrimeOptionsArrayBuffer,callback: (err: null |
Error, prime:
ArrayBuffer) => void): void;
Generates a pseudorandom prime of size bits.
If options.safe is true, the prime will be a safe prime -- that is, (prime - 1) / 2 will also be a prime.
The options.add and options.rem parameters can be used to enforce additional requirements, e.g., for Diffie-Hellman:
If options.add and options.rem are both set, the prime will satisfy the condition that prime % add = rem.If only options.add is set and options.safe is not true, the prime will satisfy the condition that prime % add = 1.If only options.add is set and options.safe is set to true, the prime will instead satisfy the condition that prime % add = 3. This is necessary because prime % add = 1 for options.add > 2 would contradict the condition enforced by options.safe.options.rem is ignored if options.add is not given.Both options.add and options.rem must be encoded as big-endian sequences if given as an ArrayBuffer, SharedArrayBuffer, TypedArray, Buffer, or DataView.
By default, the prime is encoded as a big-endian sequence of octets in an ArrayBuffer. If the bigint option is true, then a bigint is provided.
@param size
The size (in bits) of the prime to generate.
function
generatePrime(size: number,options:
GeneratePrimeOptions,callback: (err: null |
Error, prime: bigint |
ArrayBuffer) => void): void;
Generates a pseudorandom prime of size bits.
If options.safe is true, the prime will be a safe prime -- that is, (prime - 1) / 2 will also be a prime.
The options.add and options.rem parameters can be used to enforce additional requirements, e.g., for Diffie-Hellman:
If options.add and options.rem are both set, the prime will satisfy the condition that prime % add = rem.If only options.add is set and options.safe is not true, the prime will satisfy the condition that prime % add = 1.If only options.add is set and options.safe is set to true, the prime will instead satisfy the condition that prime % add = 3. This is necessary because prime % add = 1 for options.add > 2 would contradict the condition enforced by options.safe.options.rem is ignored if options.add is not given.Both options.add and options.rem must be encoded as big-endian sequences if given as an ArrayBuffer, SharedArrayBuffer, TypedArray, Buffer, or DataView.
By default, the prime is encoded as a big-endian sequence of octets in an ArrayBuffer. If the bigint option is true, then a bigint is provided.
@param size
The size (in bits) of the prime to generate.
Referenced typesinterface
GeneratePrimeOptionsBigIntadd?:
LargeNumberLikebigint: true
rem?:
LargeNumberLikesafe?: boolean
interface
GeneratePrimeOptionsArrayBufferadd?:
LargeNumberLikebigint?: false
rem?:
LargeNumberLikesafe?: boolean
interface
GeneratePrimeOptionsadd?:
LargeNumberLikebigint?: boolean
rem?:
LargeNumberLikesafe?: boolean
Resources
ReferenceDocsGuidesDiscordMerch StoreGitHubBlog Toolkit
RuntimePackage managerTest runnerBundlerPackage runnerProject
Bun 1.0Bun 1.1Bun 1.2Bun 1.3RoadmapContributingLicenseBaked with ❤️ in San Francisco
We're hiring →