public static BigInteger CalculateKey(IDigest digest, BigInteger N, BigInteger S)
{
int length = (N.BitLength + 7) / 8;
byte[] padded = Srp6Utilities.GetPadded(S, length);
digest.BlockUpdate(padded, 0, padded.Length);
byte[] array = new byte[digest.GetDigestSize()];
digest.DoFinal(array, 0);
return(new BigInteger(1, array));
}