org.bouncycastle.tls.TlsAuthentication Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of impersonator Show documentation
Show all versions of impersonator Show documentation
Spoof TLS/JA3/JA4 and HTTP/2 fingerprints in Java
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(TlsServerCertificate 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;
}