Package org.bouncycastle.crypto.tls
Interface TlsClient
-
- All Superinterfaces:
TlsPeer
- All Known Implementing Classes:
AbstractTlsClient
,DefaultTlsClient
,MockDTLSClient
,PSKTlsClient
,SRPTlsClient
public interface TlsClient extends TlsPeer
Interface describing a TLS client endpoint.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description TlsAuthentication
getAuthentication()
int[]
getCipherSuites()
java.util.Hashtable
getClientExtensions()
ProtocolVersion
getClientHelloRecordLayerVersion()
Return theProtocolVersion
to use for theTLSPlaintext.version
field prior to receiving the server version.java.util.Vector
getClientSupplementalData()
ProtocolVersion
getClientVersion()
short[]
getCompressionMethods()
TlsKeyExchange
getKeyExchange()
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 selectedVersion)
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)
-
Methods inherited from interface org.bouncycastle.crypto.tls.TlsPeer
getCipher, getCompression, notifyAlertRaised, notifyAlertReceived, notifyHandshakeComplete, notifySecureRenegotiation, shouldUseGMTUnixTime
-
-
-
-
Method Detail
-
init
void init(TlsClientContext context)
-
getSessionToResume
TlsSession getSessionToResume()
Return the session this client wants to resume, if any. Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.- Returns:
- A
TlsSession
representing the resumable session to be used for this connection, or null to use a new session. - See Also:
SessionParameters.getPeerCertificate()
-
getClientHelloRecordLayerVersion
ProtocolVersion getClientHelloRecordLayerVersion()
Return theProtocolVersion
to use for theTLSPlaintext.version
field prior to receiving the server version. NOTE: This method is not called for DTLS.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."
- Returns:
- The
ProtocolVersion
to use.
-
getClientVersion
ProtocolVersion getClientVersion()
-
isFallback
boolean isFallback()
-
getCipherSuites
int[] getCipherSuites()
-
getCompressionMethods
short[] getCompressionMethods()
-
getClientExtensions
java.util.Hashtable getClientExtensions() throws java.io.IOException
- Throws:
java.io.IOException
-
notifyServerVersion
void notifyServerVersion(ProtocolVersion selectedVersion) throws java.io.IOException
- Throws:
java.io.IOException
-
notifySessionID
void notifySessionID(byte[] sessionID)
Notifies the client of the session_id sent in the ServerHello.- Parameters:
sessionID
-- See Also:
TlsContext.getResumableSession()
-
notifySelectedCipherSuite
void notifySelectedCipherSuite(int selectedCipherSuite)
-
notifySelectedCompressionMethod
void notifySelectedCompressionMethod(short selectedCompressionMethod)
-
processServerExtensions
void processServerExtensions(java.util.Hashtable serverExtensions) throws java.io.IOException
- Throws:
java.io.IOException
-
processServerSupplementalData
void processServerSupplementalData(java.util.Vector serverSupplementalData) throws java.io.IOException
- Throws:
java.io.IOException
-
getKeyExchange
TlsKeyExchange getKeyExchange() throws java.io.IOException
- Throws:
java.io.IOException
-
getAuthentication
TlsAuthentication getAuthentication() throws java.io.IOException
- Throws:
java.io.IOException
-
getClientSupplementalData
java.util.Vector getClientSupplementalData() throws java.io.IOException
- Throws:
java.io.IOException
-
notifyNewSessionTicket
void notifyNewSessionTicket(NewSessionTicket newSessionTicket) throws java.io.IOException
RFC 5077 3.3. NewSessionTicket Handshake MessageThis 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.
- Parameters:
newSessionTicket
- The ticket.- Throws:
java.io.IOException
-
-