public abstract class AbstractTlsClient extends AbstractTlsPeer implements TlsClient
| Modifier and Type | Field and Description |
|---|---|
protected short[] |
clientECPointFormats |
protected TlsClientContext |
context |
protected TlsKeyExchangeFactory |
keyExchangeFactory |
protected int |
selectedCipherSuite |
protected short |
selectedCompressionMethod |
protected short[] |
serverECPointFormats |
protected java.util.Vector |
supportedGroups |
protected java.util.Vector |
supportedSignatureAlgorithms |
| Constructor and Description |
|---|
AbstractTlsClient(TlsCrypto crypto) |
AbstractTlsClient(TlsCrypto crypto,
TlsKeyExchangeFactory keyExchangeFactory) |
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
allowUnexpectedServerExtension(java.lang.Integer extensionType,
byte[] extensionData) |
protected void |
checkForUnexpectedServerExtension(java.util.Hashtable serverExtensions,
java.lang.Integer extensionType) |
protected TlsECConfigVerifier |
createECConfigVerifier() |
protected CertificateStatusRequest |
getCertificateStatusRequest() |
TlsCipher |
getCipher() |
java.util.Hashtable |
getClientExtensions() |
ProtocolVersion |
getClientHelloRecordLayerVersion()
Return the
ProtocolVersion to use for the |
java.util.Vector |
getClientSupplementalData() |
ProtocolVersion |
getClientVersion() |
TlsCompression |
getCompression() |
short[] |
getCompressionMethods() |
ProtocolVersion |
getMinimumVersion() |
TlsSession |
getSessionToResume()
Return the session this client wants to resume, if any.
|
protected java.util.Vector |
getSNIServerNames() |
protected java.util.Vector |
getSupportedSignatureAlgorithms() |
void |
init(TlsClientContext context) |
boolean |
isFallback() |
void |
notifyNewSessionTicket(NewSessionTicket newSessionTicket)
RFC 5077 3.3.
|
void |
notifySelectedCipherSuite(int selectedCipherSuite) |
void |
notifySelectedCompressionMethod(short selectedCompressionMethod) |
void |
notifyServerVersion(ProtocolVersion serverVersion) |
void |
notifySessionID(byte[] sessionID)
Notifies the client of the session_id sent in the ServerHello.
|
void |
processServerExtensions(java.util.Hashtable serverExtensions) |
void |
processServerSupplementalData(java.util.Vector serverSupplementalData) |
getCrypto, notifyAlertRaised, notifyAlertReceived, notifyHandshakeComplete, notifySecureRenegotiation, shouldUseGMTUnixTimeclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetAuthentication, getCipherSuites, getKeyExchangegetCrypto, notifyAlertRaised, notifyAlertReceived, notifyHandshakeComplete, notifySecureRenegotiation, shouldUseGMTUnixTimeprotected TlsKeyExchangeFactory keyExchangeFactory
protected TlsClientContext context
protected java.util.Vector supportedGroups
protected java.util.Vector supportedSignatureAlgorithms
protected short[] clientECPointFormats
protected short[] serverECPointFormats
protected int selectedCipherSuite
protected short selectedCompressionMethod
public AbstractTlsClient(TlsCrypto crypto)
public AbstractTlsClient(TlsCrypto crypto, TlsKeyExchangeFactory keyExchangeFactory)
protected boolean allowUnexpectedServerExtension(java.lang.Integer extensionType,
byte[] extensionData)
throws java.io.IOException
java.io.IOExceptionprotected void checkForUnexpectedServerExtension(java.util.Hashtable serverExtensions,
java.lang.Integer extensionType)
throws java.io.IOException
java.io.IOExceptionprotected TlsECConfigVerifier createECConfigVerifier()
protected CertificateStatusRequest getCertificateStatusRequest()
protected java.util.Vector getSNIServerNames()
protected java.util.Vector getSupportedSignatureAlgorithms()
public void init(TlsClientContext context)
public TlsSession getSessionToResume()
TlsClientgetSessionToResume in interface TlsClientTlsSession representing the resumable session to be used for this
connection, or null to use a new session.SessionParameters.getPeerCertificate()public ProtocolVersion getClientHelloRecordLayerVersion()
TlsClientProtocolVersion to use for the See RFC 5246 E.1.: "TLS clients that wish to negotiate with older servers MAY send any value {03,XX} as the record layer version number. Typical values would be {03,00}, the lowest version number supported by the client, and the value of ClientHello.client_version. No single value will guarantee interoperability with all old servers, but this is a complex topic beyond the scope of this document."
getClientHelloRecordLayerVersion in interface TlsClientProtocolVersion to use.public ProtocolVersion getClientVersion()
getClientVersion in interface TlsClientpublic boolean isFallback()
isFallback in interface TlsClientpublic java.util.Hashtable getClientExtensions()
throws java.io.IOException
getClientExtensions in interface TlsClientjava.io.IOExceptionpublic ProtocolVersion getMinimumVersion()
public void notifyServerVersion(ProtocolVersion serverVersion) throws java.io.IOException
notifyServerVersion in interface TlsClientjava.io.IOExceptionpublic short[] getCompressionMethods()
getCompressionMethods in interface TlsClientpublic void notifySessionID(byte[] sessionID)
TlsClientnotifySessionID in interface TlsClientTlsContext.getSession()public void notifySelectedCipherSuite(int selectedCipherSuite)
notifySelectedCipherSuite in interface TlsClientpublic void notifySelectedCompressionMethod(short selectedCompressionMethod)
notifySelectedCompressionMethod in interface TlsClientpublic void processServerExtensions(java.util.Hashtable serverExtensions)
throws java.io.IOException
processServerExtensions in interface TlsClientjava.io.IOExceptionpublic void processServerSupplementalData(java.util.Vector serverSupplementalData)
throws java.io.IOException
processServerSupplementalData in interface TlsClientjava.io.IOExceptionpublic java.util.Vector getClientSupplementalData()
throws java.io.IOException
getClientSupplementalData in interface TlsClientjava.io.IOExceptionpublic TlsCompression getCompression() throws java.io.IOException
getCompression in interface TlsPeerjava.io.IOExceptionpublic TlsCipher getCipher() throws java.io.IOException
public void notifyNewSessionTicket(NewSessionTicket newSessionTicket) throws java.io.IOException
TlsClientThis method will be called (only) when a NewSessionTicket handshake message is received. The ticket is opaque to the client and clients MUST NOT examine the ticket under the assumption that it complies with e.g. RFC 5077 4. Recommended Ticket Construction.
notifyNewSessionTicket in interface TlsClientnewSessionTicket - The ticket.java.io.IOException