njs/crypto

Types

pub type CryptoKey
pub type CryptoKeyPair
pub type DecryptAlgorithm =
  EncryptAlgorithm
pub type EncryptAlgorithm {
  RsaOaep(name: String)
  AesCtr(name: String, counter: buffer.ArrayBuffer, length: Int)
  AesCbc(name: String, iv: buffer.ArrayBuffer)
  AesGcm(
    name: String,
    iv: buffer.ArrayBuffer,
    additional_data: buffer.ArrayBuffer,
    tag_length: Int,
  )
}

Constructors

pub type KeyAlgorithm {
  RsaOaepKey(name: String, hash: String)
  HMACKey(name: String, hash: String, length: Int)
  AesKey(name: String)
  OKPKey(name: String)
}

Constructors

  • RsaOaepKey(name: String, hash: String)

    RSA-OAEP

  • HMACKey(name: String, hash: String, length: Int)

    HMAC

  • AesKey(name: String)

    AES-CTR AES-CBC AES-GCM AES-KW

  • OKPKey(name: String)

    Ed25519, X25519

pub type KeyData {
  KeyData(d: json.Json)
  KeyArrayData(d: buffer.ArrayBuffer)
}

Constructors

Values

pub fn compute_hash(
  algorithm a: String,
  data d: buffer.Buffer,
  encoding e: buffer.Encoding,
) -> promise.Promise(String)

Hash data and return the result as an encoded string. algorithm: Node.js-style name (“sha256”, “sha1”, “md5”, etc.) Replaces the removed createHash/update/digest chain from njs 0.9.7.

pub fn compute_hmac(
  algorithm a: String,
  key k: buffer.Buffer,
  data d: buffer.Buffer,
  encoding e: buffer.Encoding,
) -> promise.Promise(String)

Compute an HMAC and return it as an encoded string. algorithm: hash algorithm (“sha256”, “sha1”, etc.) key: raw key bytes as a Buffer Replaces the removed createHmac/update/digest chain from njs 0.9.7.

pub fn decrypt(
  algorithm a: EncryptAlgorithm,
  key k: CryptoKey,
  ciphertext d: buffer.ArrayBuffer,
) -> promise.Promise(buffer.ArrayBuffer)
pub fn derive_bits(
  algorithm a: a,
  base_key k: CryptoKey,
  length l: Int,
) -> promise.Promise(buffer.ArrayBuffer)
pub fn derive_key(
  algorithm a: a,
  base_key k: CryptoKey,
  derived_key_algorithm dka: KeyAlgorithm,
  extractable e: Bool,
  key_usages ku: array.Array(String),
) -> promise.Promise(CryptoKey)
pub fn digest(
  algorithm a: String,
  data d: buffer.ArrayBuffer,
) -> promise.Promise(buffer.ArrayBuffer)
pub fn encrypt(
  algorithm a: EncryptAlgorithm,
  key k: CryptoKey,
  plaintext d: buffer.ArrayBuffer,
) -> promise.Promise(buffer.ArrayBuffer)
pub fn export_key(
  format f: String,
  key k: CryptoKey,
) -> promise.Promise(KeyData)
pub fn generate_key(
  algorithm a: KeyAlgorithm,
  extractable e: Bool,
  usages ku: array.Array(String),
) -> promise.Promise(CryptoKeyPair)
pub fn get_random_values(
  typedarray a: buffer.TypedArray,
) -> buffer.TypedArray
pub fn import_key(
  format f: String,
  key k: buffer.ArrayBuffer,
  algorithm a: KeyAlgorithm,
  extractable e: Bool,
  usages ku: array.Array(String),
) -> promise.Promise(CryptoKey)
pub fn random_uuid() -> String

Generate a random UUID v4 string. Added in njs 0.9.7.

pub fn sign(
  algorithm a: a,
  key k: CryptoKey,
  data d: buffer.ArrayBuffer,
) -> promise.Promise(buffer.ArrayBuffer)
pub fn unwrap_key(
  format f: String,
  wrapped_key wk: buffer.ArrayBuffer,
  unwrapping_key uk: CryptoKey,
  unwrap_algorithm ua: a,
  unwrapped_key_algorithm uka: KeyAlgorithm,
  extractable e: Bool,
  key_usages ku: array.Array(String),
) -> promise.Promise(CryptoKey)

Unwrap an encrypted key. Added in njs 0.9.7.

pub fn verify(
  algorithm a: a,
  key k: CryptoKey,
  signature s: buffer.ArrayBuffer,
  data d: buffer.ArrayBuffer,
) -> promise.Promise(Bool)
pub fn wrap_key(
  format f: String,
  key k: CryptoKey,
  wrapping_key wk: CryptoKey,
  algorithm a: a,
) -> promise.Promise(buffer.ArrayBuffer)

Wrap a CryptoKey using a wrapping key. Added in njs 0.9.7.

Search Document