<PackageReference Include="BouncyCastle.Cryptography" Version="2.5.1" />

Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Utilities

public class Srp6Utilities
namespace Org.BouncyCastle.Crypto.Agreement.Srp { public class Srp6Utilities { public static BigInteger CalculateK(IDigest digest, BigInteger N, BigInteger g); public static BigInteger CalculateU(IDigest digest, BigInteger N, BigInteger A, BigInteger B); public static BigInteger CalculateX(IDigest digest, BigInteger N, byte[] salt, byte[] identity, byte[] password); public static BigInteger GeneratePrivateValue(IDigest digest, BigInteger N, BigInteger g, SecureRandom random); public static BigInteger ValidatePublicValue(BigInteger N, BigInteger val); public static BigInteger CalculateM1(IDigest digest, BigInteger N, BigInteger A, BigInteger B, BigInteger S); public static BigInteger CalculateM2(IDigest digest, BigInteger N, BigInteger A, BigInteger M1, BigInteger S); public static BigInteger CalculateKey(IDigest digest, BigInteger N, BigInteger S); public Srp6Utilities(); } }