Kryptex.Keyring (kryptex v0.1.0)

Copy Markdown View Source

Loads and validates encryption keys from application config.

Expected config

config :kryptex,
  keys: [
    %{id: 1, key: System.fetch_env!("KRYPTEX_DEK_1")},
    %{id: 2, key: System.fetch_env!("KRYPTEX_DEK_2")}
  ],
  default_key_id: 2

Keys may be provided as raw 32-byte binaries or base64 strings.

Summary

Types

key_entry()

@type key_entry() :: %{id: key_id(), key: binary()}

key_id()

@type key_id() :: non_neg_integer()

Functions

current_key()

@spec current_key() :: key_entry()

current_key_id()

@spec current_key_id() :: key_id()

get_key!(id)

@spec get_key!(key_id()) :: key_entry()

keys()

@spec keys() :: [key_entry()]