public static BigInteger CalculateK(IDigest digest, BigInteger N, BigInteger g) { return HashPaddedPair(digest, N, N, g); }
private BigInteger CalculateS() { BigInteger k = Srp6Utilities.CalculateK(digest, N, g); BigInteger exp = u.Multiply(x).Add(privA); BigInteger tmp = g.ModPow(x, N).Multiply(k).Mod(N); return(B.Subtract(tmp).Mod(N).ModPow(exp, N)); }