org.bouncycastle.tls.crypto.TlsSRP6Client Maven / Gradle / Ivy
package org.bouncycastle.tls.crypto;
import java.io.IOException;
import java.math.BigInteger;
/**
* Basic interface for an SRP-6 client implementation.
*/
public interface TlsSRP6Client
{
/**
* Generates the secret S given the server's credentials
* @param serverB The server's credentials
* @return Client's verification message for the server
* @throws IOException If server's credentials are invalid
*/
BigInteger calculateSecret(BigInteger serverB)
throws IOException;
/**
* Generates client's credentials given the client's salt, identity and password
* @param salt The salt used in the client's verifier.
* @param identity The user's identity (eg. username)
* @param password The user's password
* @return Client's public value to send to server
*/
BigInteger generateClientCredentials(byte[] salt, byte[] identity, byte[] password);
}