anchor.diff:      Username = get_property(username, Props),
       Nonce = base64:encode(crypto:strong_rand_bytes(16)),
       ClientFirstMessageBare = csvkv:format([{<<"n">>, Username}, {<<"r">>, Nonce}], false),
  -    GS2Header = <<"n,,">>,
  -    Payload = <<GS2Header/binary,ClientFirstMessageBare/binary>>,
  +    GS2Header = scram_sha_auth_payload(PlusVariant),
  +    Payload = <<GS2Header/binary, ClientFirstMessageBare/binary>>,
       Stanza = escalus_stanza:auth(XMPPMethod, [base64_cdata(Payload)]),
       ok = escalus_connection:send(Conn, Stanza),
  +
       {Response, SaltedPassword, AuthMessage} =
  -        scram_sha_response(HashMethod, Conn, GS2Header, ClientFirstMessageBare, Props),
  +        scram_sha_response(PlusVariant, HashMethod, Conn, GS2Header, ClientFirstMessageBare, Props),
  +
       ResponseStanza = escalus_stanza:auth_response([Response]),
       ok = escalus_connection:send(Conn, ResponseStanza),
  +
       AuthReply = escalus_connection:get_stanza(Conn, auth_reply),
       case AuthReply of
           #xmlel{name = <<"success">>, children = [#xmlcdata{content = CData}]} ->
  
positive.code:         {<<"authzid">>, FullJid}
      ])).
  
  scram_sha_response(HashMethod, Conn, GS2Headers, ClientFirstMessageBare, Props) ->
      Challenge = get_challenge(Conn, challenge1, false),
      ChallengeData = csvkv:parse(Challenge),
      Password = get_property(password, Props),
  
negative.code:                            ",p=", ClientProof/binary>>,
      {base64_cdata(ClientFinalMessage),SaltedPassword, AuthMessage}.
  
  build_c_attribute(none, GS2Headers, _Conn) ->
      <<"c=", (base64:encode(GS2Headers))/binary>>;
  build_c_attribute(tls_unique, GS2Headers, Conn) ->
      {ok, FinishedTLS} = escalus_connection:get_tls_last_message(Conn),
      <<"c=", (base64:encode(GS2Headers))/binary, (base64:encode(FinishedTLS))/binary>>.
  
  
  scram_sha_validate_server(HashMethod, SaltedPassword, AuthMessage, ServerSignature) ->
      ServerKey = scram:server_key(HashMethod, SaltedPassword),
      ServerSignatureComputed = scram:server_signature(HashMethod, ServerKey, AuthMessage),
  