@@ -75,20 +75,20 @@ defmodule Mongo.Auth.SCRAM do
75
75
end
76
76
77
77
defp generate_proof ( salted_password , auth_message , digest ) do
78
- client_key = :crypto . hmac ( digest , salted_password , "Client Key" )
78
+ client_key = :crypto . mac ( :hmac , digest , salted_password , "Client Key" )
79
79
stored_key = :crypto . hash ( digest , client_key )
80
- signature = :crypto . hmac ( digest , stored_key , auth_message )
80
+ signature = :crypto . mac ( :hmac , digest , stored_key , auth_message )
81
81
client_proof = xor_keys ( client_key , signature , "" )
82
82
"p=#{ Base . encode64 ( client_proof ) } "
83
83
end
84
84
85
85
defp generate_signature ( salted_password , auth_message , digest ) do
86
- server_key = :crypto . hmac ( digest , salted_password , "Server Key" )
87
- :crypto . hmac ( digest , server_key , auth_message )
86
+ server_key = :crypto . mac ( :hmac , digest , salted_password , "Server Key" )
87
+ :crypto . mac ( :hmac , digest , server_key , auth_message )
88
88
end
89
89
90
90
defp xor_keys ( "" , "" , result ) , do: result
91
- defp xor_keys ( << fa , ra :: binary >> , << fb , rb :: binary >> , result ) , do: xor_keys ( ra , rb , << result :: binary , fa ^^^ fb >> )
91
+ defp xor_keys ( << fa , ra :: binary >> , << fb , rb :: binary >> , result ) , do: xor_keys ( ra , rb , << result :: binary , bxor ( fa , fb ) >> )
92
92
93
93
defp nonce do
94
94
:crypto . strong_rand_bytes ( 18 ) |> Base . encode64
0 commit comments