lib/cryptography/sign.ex
defmodule Kadena.Cryptography.Sign do
@moduledoc """
Implementation for `Cryptography.Sign` functions.
"""
alias Kadena.Cryptography.Sign
@behaviour Sign.Spec
@impl true
def sign(msg, keypair), do: impl().sign(msg, keypair)
@impl true
def sign_hash(hash, keypair), do: impl().sign_hash(hash, keypair)
@impl true
def verify_sign(msg, sig, pub_key), do: impl().verify_sign(msg, sig, pub_key)
@spec impl :: module()
defp impl, do: Application.get_env(:kadena, :crypto_sign_impl, Sign.Default)
end