org.bouncycastle.tls.TlsAuthentication Maven / Gradle / Ivy
package org.bouncycastle.tls;
import java.io.IOException;
/**
* Base interface to provide TLS authentication credentials.
*/
public interface TlsAuthentication
{
/**
* Called by the protocol handler to report the server certificate
* Note: this method is responsible for certificate verification and validation
*
* @param serverCertificate the server certificate received
* @throws IOException
*/
void notifyServerCertificate(Certificate serverCertificate)
throws IOException;
/**
* Return client credentials in response to server's certificate request. The returned value may
* be null, or else it MUST implement exactly one of {@link TlsCredentialedAgreement},
* {@link TlsCredentialedDecryptor}, or {@link TlsCredentialedSigner}, depending on the key
* exchange that was negotiated and the details of the {@link CertificateRequest}.
*
* @param certificateRequest
* details of the certificate request
* @return a TlsCredentials object or null for no client authentication
* @throws IOException
*/
TlsCredentials getClientCredentials(CertificateRequest certificateRequest)
throws IOException;
}