circu.js
    Preparing search index...

    Streaming GCM cipher class

    const crypto = import.meta.use('crypto');

    const key = crypto.randomBytes(32);
    const iv = crypto.randomBytes(12);
    const aad = new TextEncoder().encode('Additional authenticated data');

    // Encryption
    const encryptor = new crypto.GCM('encrypt', key, iv);
    encryptor.setAAD(aad);
    const ciphertext1 = encryptor.update(new TextEncoder().encode('Hello '));
    const ciphertext2 = encryptor.update(new TextEncoder().encode('World'));
    const result = encryptor.final();
    // result = { data: ArrayBuffer, tag: ArrayBuffer }

    // Decryption
    const decryptor = new crypto.GCM('decrypt', key, iv);
    decryptor.setAAD(aad);
    const plaintext1 = decryptor.update(ciphertext1);
    const plaintext2 = decryptor.update(ciphertext2);
    const decryptResult = decryptor.final(result.tag);
    // decryptResult = { data: ArrayBuffer, verified: boolean }
    Index

    Constructors

    Methods

    Constructors

    • Create GCM cipher instance

      Parameters

      • mode: "encrypt" | "decrypt"

        'encrypt' or 'decrypt'

      • key: ArrayBuffer | Uint8Array<ArrayBufferLike>

        Encryption/decryption key (16/24/32 bytes for AES-128/192/256)

      • iv: ArrayBuffer | Uint8Array<ArrayBufferLike>

        Initialization vector (recommended 12 bytes)

      Returns GCM

    Methods

    • Finalize encryption or decryption

      For encryption: returns { data: ArrayBuffer, tag: ArrayBuffer } For decryption: requires tag parameter, returns { data: ArrayBuffer, verified: boolean }

      Parameters

      • Optionaltag: ArrayBuffer | Uint8Array<ArrayBufferLike>

        Authentication tag (required for decryption)

      Returns { data: ArrayBuffer; tag?: ArrayBuffer; verified?: boolean }

      Result object with data and tag/verified status

    • Set Additional Authenticated Data (AAD) Must be called before update() for the data to be authenticated

      Parameters

      • aad: ArrayBuffer | Uint8Array<ArrayBufferLike>

        Additional authenticated data

      Returns void

    • Process data (encrypt or decrypt)

      Parameters

      • data: ArrayBuffer | Uint8Array<ArrayBufferLike>

        Data to process

      Returns ArrayBuffer

      Processed data