anchor.diff:  client_session(Username, Password, Salt, ClientPublic, ServerPublic, ClientPrivate) ->
       User = list_to_binary(Username),
       Pass = list_to_binary(Password),
  -    U = bin_to_int(crypto:hash(sha, [int_to_bin(ClientPublic), int_to_bin(ServerPublic)])),
  +    U = bin_to_int(crypto:hash(sha, [int_to_bin(ClientPublic, get_key_size()), int_to_bin(ServerPublic, get_key_size())])),
       X = get_user_hash(User, Pass, Salt),
       GX = bin_to_int(crypto:mod_pow(get_generator(), X, get_prime())),
       KGX = remainder(get_k() * GX, get_prime()),
  
positive.code:         crypto:mod_pow(N1, N2, get_prime()),
          crypto:hash(sha, User),
          Salt,
          int_to_bin(ClientPublic),
          int_to_bin(ServerPublic),
          K
      ]),
      {M, K}.
  
negative.code: -spec get_salt() -> binary().
  get_salt() ->
      Bytes = 32,
      Bits = Bytes * 8,
      <<Result:Bits/bits, _/bits>> = crypto:strong_rand_bytes(Bytes),
      Result.
  
  