Current section
Files
Jump to
Current section
Files
lib/hora.ex
defmodule Hora do
@doc """
Processes the provided password using the configured adapter.
## Example
```elixir
Hora.secure_password("this is my password")
```
"""
@spec secure_password(binary(), list()) :: String.t
def secure_password(password, opts \\ []) do
adapter = adapter(opts)
adapter_options = adapter_options(opts)
adapter
.secure_password(password, adapter.init(adapter_options))
end
@doc """
Checks to see if the provided password matches the provided secure password.
## Example
```elixir
Hora.verify_password("this is my password", "this is a secure password")
```
"""
@spec verify_password(binary(), binary(), list()) :: boolean()
def verify_password(password, crypted_password, opts \\ []) do
adapter = adapter(opts)
adapter_options = adapter_options(opts)
adapter
.verify_password(password, crypted_password, adapter.init(adapter_options))
end
# private
defp adapter(opts) do
opts[:adapter] || Application.get_env(:hora, :adapter)
end
defp adapter_options(opts) do
opts[:adapter] || Application.get_env(:hora, :adapter_options)
end
end