Handle crypto for different OTP versions better in media proxy
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
parent
c3e586af6e
commit
95913ba28b
|
@ -58,7 +58,19 @@ defmodule Mobilizon.Web.MediaProxy do
|
|||
end
|
||||
|
||||
defp signed_url(url) do
|
||||
:crypto.mac(:hmac, :sha, Config.get([Web.Endpoint, :secret_key_base]), url)
|
||||
sha_hmac(Config.get([Web.Endpoint, :secret_key_base]), url)
|
||||
end
|
||||
|
||||
@compile {:no_warn_undefined, {:crypto, :mac, 4}}
|
||||
@compile {:no_warn_undefined, {:crypto, :hmac, 3}}
|
||||
defp sha_hmac(key, url) do
|
||||
# :crypto.hmac was removed in OTP24, but :crypto.mac was added in OTP 22.1
|
||||
# TODO: Remove me when we don't support OTP 21/22 anymore
|
||||
if function_exported?(:crypto, :mac, 4) do
|
||||
:crypto.mac(:hmac, :sha, key, url)
|
||||
else
|
||||
:crypto.hmac(:sha, key, url)
|
||||
end
|
||||
end
|
||||
|
||||
def filename(url_or_path) do
|
||||
|
|
Loading…
Reference in a new issue