public abstract class AbstractTlsClient extends AbstractTlsPeer implements TlsClient
Modifier and Type | Field and Description |
---|---|
protected TlsCipherFactory |
cipherFactory |
protected short[] |
clientECPointFormats |
protected TlsClientContext |
context |
protected int[] |
namedCurves |
protected int |
selectedCipherSuite |
protected short |
selectedCompressionMethod |
protected short[] |
serverECPointFormats |
protected java.util.Vector |
supportedSignatureAlgorithms |
Constructor and Description |
---|
AbstractTlsClient() |
AbstractTlsClient(TlsCipherFactory cipherFactory) |
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) |
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.
|
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) |
notifyAlertRaised, notifyAlertReceived, notifyHandshakeComplete, notifySecureRenegotiation, shouldUseGMTUnixTime
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getAuthentication, getCipherSuites, getKeyExchange
notifyAlertRaised, notifyAlertReceived, notifyHandshakeComplete, notifySecureRenegotiation, shouldUseGMTUnixTime
protected TlsCipherFactory cipherFactory
protected TlsClientContext context
protected java.util.Vector supportedSignatureAlgorithms
protected int[] namedCurves
protected short[] clientECPointFormats
protected short[] serverECPointFormats
protected int selectedCipherSuite
protected short selectedCompressionMethod
public AbstractTlsClient()
public AbstractTlsClient(TlsCipherFactory cipherFactory)
protected boolean allowUnexpectedServerExtension(java.lang.Integer extensionType, byte[] extensionData) throws java.io.IOException
java.io.IOException
protected void checkForUnexpectedServerExtension(java.util.Hashtable serverExtensions, java.lang.Integer extensionType) throws java.io.IOException
java.io.IOException
public void init(TlsClientContext context)
public TlsSession getSessionToResume()
TlsClient
getSessionToResume
in interface TlsClient
TlsSession
representing the resumable session to be used for this
connection, or null to use a new session.SessionParameters.getPeerCertificate()
public ProtocolVersion getClientHelloRecordLayerVersion()
TlsClient
ProtocolVersion
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 TlsClient
ProtocolVersion
to use.public ProtocolVersion getClientVersion()
getClientVersion
in interface TlsClient
public boolean isFallback()
isFallback
in interface TlsClient
public java.util.Hashtable getClientExtensions() throws java.io.IOException
getClientExtensions
in interface TlsClient
java.io.IOException
public ProtocolVersion getMinimumVersion()
public void notifyServerVersion(ProtocolVersion serverVersion) throws java.io.IOException
notifyServerVersion
in interface TlsClient
java.io.IOException
public short[] getCompressionMethods()
getCompressionMethods
in interface TlsClient
public void notifySessionID(byte[] sessionID)
TlsClient
notifySessionID
in interface TlsClient
TlsContext.getResumableSession()
public void notifySelectedCipherSuite(int selectedCipherSuite)
notifySelectedCipherSuite
in interface TlsClient
public void notifySelectedCompressionMethod(short selectedCompressionMethod)
notifySelectedCompressionMethod
in interface TlsClient
public void processServerExtensions(java.util.Hashtable serverExtensions) throws java.io.IOException
processServerExtensions
in interface TlsClient
java.io.IOException
public void processServerSupplementalData(java.util.Vector serverSupplementalData) throws java.io.IOException
processServerSupplementalData
in interface TlsClient
java.io.IOException
public java.util.Vector getClientSupplementalData() throws java.io.IOException
getClientSupplementalData
in interface TlsClient
java.io.IOException
public TlsCompression getCompression() throws java.io.IOException
getCompression
in interface TlsPeer
java.io.IOException
public TlsCipher getCipher() throws java.io.IOException
public void notifyNewSessionTicket(NewSessionTicket newSessionTicket) throws java.io.IOException
TlsClient
This 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 TlsClient
newSessionTicket
- The ticket.java.io.IOException