In case you are using a pure Elixir implementation without Plug.
:crypto.hmac/{3,4} is deprecated and is removed in Erlang/OTP 24.
:crypto.mac/4 should be instead, but it is available only since Erlang/OTP 22.1.
Both functions yield the same result:
iex(6)> :crypto.mac(:hmac, :sha256, "key", "data") == :crypto.hmac(:sha256, "key", "data")
true
iex(7)> :crypto.mac(:hmac, :sha384, "key", "data") == :crypto.hmac(:sha384, "key", "data")
true