anchor.diff:  
   %% @private
   scram_third_step(ServerSignature, Responce) ->
  -  Payload = maps:find(<<"payload">>, Responce),
  +  Payload = maps:get(<<"payload">>, Responce),
     ParamList = parse_server_responce(base64:decode(Payload)),
     ServerSignature = mc_utils:get_value(<<"v">>, ParamList).
   
  
positive.code: -spec mongodb_cr_auth(port(), binary(), binary(), binary()) -> true.
  mongodb_cr_auth(Socket, Database, Login, Password) ->
    {true, Res} = mongo:sync_command(Socket, Database, {<<"getnonce">>, 1}),
    Nonce = maps:find(<<"nonce">>, Res),
    case mongo:sync_command(Socket, Database, ?AUTH_CMD(Login, Nonce, Password)) of
      {true, _} -> true;
      {false, Reason} -> erlang:error(Reason)
  
negative.code:   {true, Res} = mongo:sync_command(Socket, Database,
      {<<"saslStart">>, 1, <<"mechanism">>, <<"SCRAM-SHA-1">>, <<"payload">>, Message}),
    ConversationId = maps:get(<<"conversationId">>, Res, {}),
    Payload = maps:get(<<"payload">>, Res),
    scram_second_step(Socket, Database, Login, Password, Payload, ConversationId, RandomBString, FirstMessage).
  
  %% @private
  