anchor.diff:          crypto:mod_pow(N1, N2, get_prime()),
           crypto:hash(sha, User),
           Salt,
  -        int_to_bin(ClientPublic, get_key_size()),
  -        int_to_bin(ServerPublic, get_key_size()),
  +        int_to_bin(ClientPublic, get_key_size() div 8),
  +        int_to_bin(ServerPublic, get_key_size() div 8),
           K
       ]),
       {M, K}.
  
positive.code: %% g: A generator modulo N
  get_generator() -> 2.
  
  %% get key size (bytes)
  get_key_size() -> 128.
  
  %% k = H(N, g): Multiplier parameter
  
negative.code: 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, get_key_size() div 8), int_to_bin(ServerPublic, get_key_size() div 8)])),
      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()),
  