@not3/sdk
    Preparing search index...

    Class Crypto

    The default encryption/decryption class for !3.

    The encrypted data will be structured as follows:

    • CBC: { [IV (16 bytes)] ( Encrypted Data: [Checksum (32 bytes)] [Data] [Padding (up to 16 bytes)] ) }
    • GCM: { [IV (12 bytes)] ( Encrypted Data: [Checksum (32 bytes)] [Data] ) [Tag (16 bytes)] }
    Index

    Properties

    AES_CBC_HEADER_BYTES: number = ...

    The total length in bytes each encrypted chunk will grow by (at most) for AES-CBC

    AES_CBC_IV_LENGTH + SHA256_CHECKSUM_LENGTH + AES_CBC_PADDING_LENGTH
    
    AES_CBC_IV_LENGTH: 16

    The length of the AES-CBC IV in bytes

    AES_CBC_PADDING_LENGTH: 16

    The length of the AES-CBC padding in bytes

    AES_GCM_HEADER_BYTES: number = ...

    The total length in bytes each encrypted chunk will grow by (at most) for AES-GCM

    AES_GCM_IV_LENGTH + SHA256_CHECKSUM_LENGTH + AES_GCM_TAG_LENGTH
    
    AES_GCM_IV_LENGTH: 12

    The length of the AES-GCM IV in bytes

    AES_GCM_TAG_LENGTH: 16

    The length of the AES-GCM tag in bytes

    AES_SEED_LENGTH: 32

    The seed length in bytes, used for generating keys

    SHA256_CHECKSUM_LENGTH: 32

    The length of the SHA-256 checksum in bytes

    Methods

    • Convert a base64 string to a buffer

      Parameters

      • base: string

        The base64 string to convert

      Returns ArrayBuffer

      The buffer

    • Convert a buffer to base64

      Parameters

      • buffer: Uint8Array<ArrayBuffer>

        The buffer to convert

      Returns string

      The base64 string

    • Decrypt data with a key

      Type Parameters

      • T = string | ArrayBuffer

      Parameters

      • data: T

        The data to decrypt

      • key: CryptoKey

        The key to decrypt the data with

      • mode: CryptoMode = 'cbc'

        The mode to decrypt the data in

      Returns Promise<T>

      The decrypted data

    • Encrypt data with a key

      Type Parameters

      • T = string | ArrayBuffer

      Parameters

      • data: T

        The data to encrypt

      • key: CryptoKey

        The key to encrypt the data with

      • mode: CryptoMode = 'cbc'

        The mode to encrypt the data in

      Returns Promise<T>

      The encrypted data

    • Generate a key from a seed

      Parameters

      • seed: string

        The seed to generate the key from

      • mode: CryptoMode = 'cbc'

        The mode to generate the key in

      Returns Promise<CryptoKey>

      The generated key