A behaviour for application-owned signing and verification keys.
@callback signing_key() :: {:ok, %{kid: String.t(), algorithm: String.t(), key: term()}} | {:error, term()}
@callback verification_keys() :: {:ok, [term()]} | {:error, term()}