Current section
Files
Jump to
Current section
Files
lib/cryppo/aes.ex
defmodule Cryppo.Aes do
@moduledoc false
alias Cryppo.EncryptionKey
@spec build_encryption_key(binary, atom) ::
{:ok, EncryptionKey.t()} | {:error, :invalid_encryption_key}
def build_encryption_key(raw_key, mod) when is_binary(raw_key) and is_atom(mod) do
key = EncryptionKey.new(raw_key, mod)
{:ok, key}
end
def build_encryption_key(_, _), do: {:error, :invalid_encryption_key}
@spec generate_key(non_neg_integer, atom) :: EncryptionKey.t()
def generate_key(key_length, mod) do
key_length |> :crypto.strong_rand_bytes() |> EncryptionKey.new(mod)
end
end