Skip to content

Commit d4a7641

Browse files
committed
Remember and use an identifier for the duration of the conversation.
1 parent a74b31a commit d4a7641

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

lib/mongo/auth/scram.ex

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ defmodule Mongo.Auth.SCRAM do
3131
end
3232
end
3333

34-
defp first(%{"conversationId" => 1, "payload" => server_payload, "done" => false}, first_bare, username, password, client_nonce, digest) do
34+
defp first(%{"conversationId" => conversation_id, "payload" => server_payload, "done" => false}, first_bare, username, password, client_nonce, digest) do
3535

3636
params = parse_payload(server_payload)
3737
server_nonce = params["r"]
@@ -47,18 +47,18 @@ defmodule Mongo.Auth.SCRAM do
4747
server_signature = generate_signature(salted_password, auth_message, digest)
4848
proof = generate_proof(salted_password, auth_message, digest)
4949
client_final_message = %BSON.Binary{binary: "#{client_message},#{proof}"}
50-
message = [saslContinue: 1, conversationId: 1, payload: client_final_message]
50+
message = [saslContinue: 1, conversationId: conversation_id, payload: client_final_message]
5151

5252
{message, server_signature}
5353
end
5454

55-
defp second(%{"conversationId" => 1, "payload" => payload, "done" => false}, signature) do
55+
defp second(%{"conversationId" => conversation_id, "payload" => payload, "done" => false}, signature) do
5656
params = parse_payload(payload)
5757
^signature = params["v"] |> Base.decode64!
58-
[saslContinue: 1, conversationId: 1, payload: %BSON.Binary{binary: ""}]
58+
[saslContinue: 1, conversationId: conversation_id, payload: %BSON.Binary{binary: ""}]
5959
end
6060

61-
defp final(%{"conversationId" => 1, "payload" => %BSON.Binary{binary: ""}, "done" => true}) do
61+
defp final(%{"conversationId" => _, "payload" => %BSON.Binary{binary: ""}, "done" => true}) do
6262
:ok
6363
end
6464

0 commit comments

Comments
 (0)