View Source ExUid2.Encryption (ex_uid2 v0.2.0)

Module responsible for performing encryption and decryption of Uid2 tokens.

Summary

Types

Encryption error atom.

Types

@type encryption_error() ::
  :base_64_decoding_error
  | :cannot_decrypt_payload
  | :invalid_master_payload
  | :invalid_v2_identity_payload
  | :invalid_v3_identity_payload
  | :no_keyring_stored
  | :not_authorized_for_master_key
  | :not_authorized_for_site_key
  | :token_expired

Encryption error atom.

@type secret_key() :: <<_::256>>

Functions

Link to this function

decrypt_token(token_bin, keyring, now_ms \\ :os.system_time(:millisecond))

View Source
@spec decrypt_token(binary(), ExUid2.Keyring.t(), non_neg_integer()) ::
  {:ok, ExUid2.Uid2.t()} | {:error, encryption_error()}
Link to this function

encrypt_token(uid2, keyring, master_key_id, site_key_id)

View Source
Link to this function

encrypt_v2_token(uid2, keyring, master_key_id, site_key_id)

View Source
@spec encrypt_v2_token(
  ExUid2.Uid2.t(),
  ExUid2.Keyring.t(),
  non_neg_integer(),
  non_neg_integer()
) ::
  {:ok, binary()}
Link to this function

encrypt_v3_token(uid2, keyring, master_key_id, site_key_id)

View Source
@spec encrypt_v3_token(
  ExUid2.Uid2.t(),
  ExUid2.Keyring.t(),
  non_neg_integer(),
  non_neg_integer()
) ::
  {:ok, binary()} | {:error, any()}
Link to this function

encrypt_v4_token(uid2, keyring, master_key_id, site_key_id)

View Source
@spec encrypt_v4_token(
  ExUid2.Uid2.t(),
  ExUid2.Keyring.t(),
  non_neg_integer(),
  non_neg_integer()
) ::
  {:ok, binary()} | {:error, any()}