Fdecapsulate
Bun

function

crypto.decapsulate

function decapsulate(
ciphertext: ArrayBuffer | ArrayBufferView<ArrayBufferLike>
): Buffer;

Key decapsulation using a KEM algorithm with a private key.

Supported key types and their KEM algorithms are:

  • 'rsa' RSA Secret Value Encapsulation
  • 'ec' DHKEM(P-256, HKDF-SHA256), DHKEM(P-384, HKDF-SHA256), DHKEM(P-521, HKDF-SHA256)
  • 'x25519' DHKEM(X25519, HKDF-SHA256)
  • 'x448' DHKEM(X448, HKDF-SHA512)
  • 'ml-kem-512' ML-KEM
  • 'ml-kem-768' ML-KEM
  • 'ml-kem-1024' ML-KEM

If key is not a KeyObject, this function behaves as if key had been passed to crypto.createPrivateKey().

If the callback function is provided this function uses libuv's threadpool.

function decapsulate(
ciphertext: ArrayBuffer | ArrayBufferView<ArrayBufferLike>,
callback: (err: Error, sharedKey: Buffer) => void
): void;

Key decapsulation using a KEM algorithm with a private key.

Supported key types and their KEM algorithms are:

  • 'rsa' RSA Secret Value Encapsulation
  • 'ec' DHKEM(P-256, HKDF-SHA256), DHKEM(P-384, HKDF-SHA256), DHKEM(P-521, HKDF-SHA256)
  • 'x25519' DHKEM(X25519, HKDF-SHA256)
  • 'x448' DHKEM(X448, HKDF-SHA512)
  • 'ml-kem-512' ML-KEM
  • 'ml-kem-768' ML-KEM
  • 'ml-kem-1024' ML-KEM

If key is not a KeyObject, this function behaves as if key had been passed to crypto.createPrivateKey().

If the callback function is provided this function uses libuv's threadpool.

Referenced types

class ArrayBuffer

Represents 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]: string
  • readonly byteLength: number

    Read-only. The length of the ArrayBuffer (in bytes).

  • newByteLength?: number
    ): void;

    Resizes the ArrayBuffer to the specified size (in bytes).

    MDN

    byteLength: number

    Resize an ArrayBuffer in-place.

  • begin: number,
    end?: number

    Returns a section of an ArrayBuffer.

  • newByteLength?: number

    Creates a new ArrayBuffer with the same byte content as this buffer, then detaches this buffer.

    MDN

  • newByteLength?: number

    Creates a new non-resizable ArrayBuffer with the same byte content as this buffer, then detaches this buffer.

    MDN