Node crypto.generatePrimeSync function | API Reference | Bun
BuildDocsReferenceGuidesBlogDiscord/
node:crypto/
generatePrimeSyncFgeneratePrimeSync
Search the reference...
/
BuildDocsReferenceGuidesBlogDiscord/
node:crypto/
generatePrimeSyncFgeneratePrimeSync
function
crypto.generatePrimeSync 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
generatePrimeSync(size: number):
ArrayBuffer;
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
generatePrimeSync(size: number,options:
GeneratePrimeOptionsBigInt): bigint;
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
generatePrimeSync(size: number,options:
GeneratePrimeOptionsArrayBuffer):
ArrayBuffer;
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
generatePrimeSync(size: number,options:
GeneratePrimeOptions): bigint |
ArrayBuffer;
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 typesclass
ArrayBufferRepresents a raw buffer of binary data, which is used to store data for the different typed arrays. ArrayBuffers cannot be read from or written to directly, but can be passed to a typed array or DataView Object to interpret the raw buffer as needed.
readonly
[Symbol.toStringTag]: stringreadonly
byteLength: number
Read-only. The length of the ArrayBuffer (in bytes).
resize(newByteLength?: number): void;
Resizes the ArrayBuffer to the specified size (in bytes).
MDN
resize(byteLength: number):
ArrayBuffer;
Resize an ArrayBuffer in-place.
slice(begin: number,end?: number):
ArrayBuffer;
Returns a section of an ArrayBuffer.
transfer(newByteLength?: number):
ArrayBuffer;
Creates a new ArrayBuffer with the same byte content as this buffer, then detaches this buffer.
MDN
transferToFixedLength(newByteLength?: number):
ArrayBuffer;
Creates a new non-resizable ArrayBuffer with the same byte content as this buffer, then detaches this buffer.
MDN
interface
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 →