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

Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Server

public class Srp6Server
Implements the server side SRP-6a protocol.
protected BigInteger A

protected IDigest digest

protected BigInteger g

protected BigInteger Key

protected BigInteger M1

protected BigInteger M2

protected BigInteger N

protected BigInteger privB

protected BigInteger pubB

protected SecureRandom random

protected BigInteger S

protected BigInteger u

protected BigInteger v

public Srp6Server()

public virtual BigInteger CalculateSecret(BigInteger clientA)

Processes the client's credentials. If valid the shared secret is generated and returned.

Computes the server evidence message M2 using the previously verified values.

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

Generates the server's credentials that are to be sent to the client.

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

Initialises the server to accept a new client authentication attempt.

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

protected virtual BigInteger SelectPrivateValue()

public virtual bool VerifyClientEvidenceMessage(BigInteger clientM1)

Authenticates the received client evidence message M1 and saves it only if correct.