| Method from org.bouncycastle.crypto.agreement.srp.SRP6Server Detail: |
public BigInteger calculateSecret(BigInteger clientA) throws CryptoException {
this.A = SRP6Util.validatePublicValue(N, clientA);
this.u = SRP6Util.calculateU(digest, N, A, B);
this.S = calculateS();
return S;
}
Processes the client's credentials. If valid the shared secret is generated and returned. |
public BigInteger generateServerCredentials() {
BigInteger k = SRP6Util.calculateK(digest, N, g);
this.b = selectPrivateValue();
this.B = k.multiply(v).mod(N).add(g.modPow(b, N)).mod(N);
return B;
}
Generates the server's credentials that are to be sent to the client. |
public void init(BigInteger N,
BigInteger g,
BigInteger v,
Digest digest,
SecureRandom random) {
this.N = N;
this.g = g;
this.v = v;
this.random = random;
this.digest = digest;
}
Initialises the server to accept a new client authentication attempt |
protected BigInteger selectPrivateValue() {
return SRP6Util.generatePrivateValue(digest, N, g, random);
}
|