gleam/crypto

Set of cryptographic functions.

Types

pub type HashAlgorithm {
  Sha224
  Sha256
  Sha384
  Sha512
}

Constructors

  • Sha224
  • Sha256
  • Sha384
  • Sha512

Functions

pub external fn hash(HashAlgorithm, BitString) -> BitString

Computes a digest of the input binary.

pub fn hmac(
  data: BitString,
  algorithm: HashAlgorithm,
  key: BitString,
) -> BitString
pub fn secure_compare(left: BitString, right: BitString) -> Bool

Compares the two binaries in constant-time to avoid timing attacks.

For more details see: http://codahale.com/a-lesson-in-timing-attacks/

pub external fn strong_random_bytes(Int) -> BitString

Generates N bytes randomly uniform 0..255, and returns the result in a binary.

Uses a cryptographically secure prng seeded and periodically mixed with operating system provided entropy. By default this is the RAND_bytes method from OpenSSL.

https://erlang.org/doc/man/crypto.html#strong_rand_bytes-1