<PackageReference Include="BouncyCastle.Cryptography" Version="2.8.0-beta.349" />

Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Client

public class Srp6Client
Implements the client side SRP-6a protocol.
protected BigInteger B

protected IDigest digest

protected BigInteger g

protected BigInteger Key

protected BigInteger M1

protected BigInteger M2

protected BigInteger N

protected BigInteger privA

protected BigInteger pubA

protected SecureRandom random

protected BigInteger S

protected BigInteger u

protected BigInteger x

public Srp6Client()

Computes the client evidence message M1 using the previously received values.

public virtual BigInteger CalculateSecret(BigInteger serverB)

Generates client's verification message given the server's credentials.

Computes the final session key as a result of the SRP successful mutual authentication.

public virtual BigInteger GenerateClientCredentials(byte[] salt, byte[] identity, byte[] password)

Generates client's credentials given the client's salt, identity and password.

public virtual void Init(BigInteger N, BigInteger g, IDigest digest, SecureRandom random)

Initialises the client to begin new authentication attempt.

public virtual void Init(Srp6GroupParameters group, IDigest digest, SecureRandom random)

protected virtual BigInteger SelectPrivateValue()

public virtual bool VerifyServerEvidenceMessage(BigInteger serverM2)

Authenticates the server evidence message M2 received and saves it only if correct.