Current section

Files

Jump to
fast_scram src fast_scram.erl
Raw

src/fast_scram.erl

-module(fast_scram).
-on_load(load/0).
-export([hi/4]).
-type sha_type() :: crypto:sha1() | crypto:sha2().
-spec hi(sha_type(), binary(), binary(), non_neg_integer()) -> binary().
hi(_Hash, _Password, _Salt, _IterationCount) ->
erlang:nif_error(not_loaded).
%%%===================================================================
%%% Load NIF
%%%===================================================================
-spec load() -> any().
load() ->
code:ensure_loaded(crypto),
PrivDir = case code:priv_dir(?MODULE) of
{error, _} ->
EbinDir = filename:dirname(code:which(?MODULE)),
AppPath = filename:dirname(EbinDir),
filename:join(AppPath, "priv");
Path ->
Path
end,
erlang:load_nif(filename:join(PrivDir, ?MODULE_STRING), none).