anchor.diff:  %% server session key
   -spec server_session(list(), list(), binary(), integer(), integer(), integer()) -> binary().
   server_session(Username, Password, Salt, ClientPublic, ServerPublic, ServerPrivate) ->
  -    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())])),
       V = get_verifier(Username, Password, Salt),
       VU = bin_to_int(crypto:mod_pow(V, U, get_prime())),
       AVU = remainder(ClientPublic * VU, get_prime()),
  
positive.code:     Len0 = length(erlang:integer_to_list(Int, 16)),
      Len1 = Len0 + (Len0 rem 2),
      Bits = Len1 * 4,
      <<Int:Bits>>.
  
  -spec bin_to_int(binary()) -> integer().
  
negative.code: -spec get_salt() -> binary().
  get_salt() ->
      Bytes = 32,
      Bits = Bytes * 8,
      <<Result:Bits/bits, _/bits>> = crypto:strong_rand_bytes(Bytes),
      Result.
  
  