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

Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Client

public class Srp6Client
namespace Org.BouncyCastle.Crypto.Agreement.Srp { public class Srp6Client { protected BigInteger N; protected BigInteger g; protected BigInteger privA; protected BigInteger pubA; protected BigInteger B; protected BigInteger x; protected BigInteger u; protected BigInteger S; protected BigInteger M1; protected BigInteger M2; protected BigInteger Key; protected IDigest digest; protected SecureRandom random; public Srp6Client(); public virtual void Init(BigInteger N, BigInteger g, IDigest digest, SecureRandom random); public virtual void Init(Srp6GroupParameters group, IDigest digest, SecureRandom random); public virtual BigInteger GenerateClientCredentials(byte[] salt, byte[] identity, byte[] password); public virtual BigInteger CalculateSecret(BigInteger serverB); protected virtual BigInteger SelectPrivateValue(); public virtual BigInteger CalculateClientEvidenceMessage(); public virtual bool VerifyServerEvidenceMessage(BigInteger serverM2); public virtual BigInteger CalculateSessionKey(); } }