org.bouncycastle.crypto.tls
Class AbstractTlsClient
java.lang.Object
org.bouncycastle.crypto.tls.AbstractTlsPeer
org.bouncycastle.crypto.tls.AbstractTlsClient
- All Implemented Interfaces:
- TlsClient, TlsPeer
- Direct Known Subclasses:
- DefaultTlsClient, PSKTlsClient, SRPTlsClient
public abstract class AbstractTlsClient
- extends AbstractTlsPeer
- implements TlsClient
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
cipherFactory
protected TlsCipherFactory cipherFactory
context
protected TlsClientContext context
supportedSignatureAlgorithms
protected java.util.Vector supportedSignatureAlgorithms
namedCurves
protected int[] namedCurves
clientECPointFormats
protected short[] clientECPointFormats
serverECPointFormats
protected short[] serverECPointFormats
selectedCipherSuite
protected int selectedCipherSuite
selectedCompressionMethod
protected short selectedCompressionMethod
AbstractTlsClient
public AbstractTlsClient()
AbstractTlsClient
public AbstractTlsClient(TlsCipherFactory cipherFactory)
init
public void init(TlsClientContext context)
- Specified by:
init
in interface TlsClient
getSessionToResume
public TlsSession getSessionToResume()
- Description copied from interface:
TlsClient
- 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.
- Specified by:
getSessionToResume
in interface TlsClient
- 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
public ProtocolVersion getClientHelloRecordLayerVersion()
- 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."
- Specified by:
getClientHelloRecordLayerVersion
in interface TlsClient
getClientVersion
public ProtocolVersion getClientVersion()
- Specified by:
getClientVersion
in interface TlsClient
getClientExtensions
public java.util.Hashtable getClientExtensions()
throws java.io.IOException
- Specified by:
getClientExtensions
in interface TlsClient
- Throws:
java.io.IOException
getMinimumVersion
public ProtocolVersion getMinimumVersion()
notifyServerVersion
public void notifyServerVersion(ProtocolVersion serverVersion)
throws java.io.IOException
- Specified by:
notifyServerVersion
in interface TlsClient
- Throws:
java.io.IOException
getCompressionMethods
public short[] getCompressionMethods()
- Specified by:
getCompressionMethods
in interface TlsClient
notifySessionID
public void notifySessionID(byte[] sessionID)
- Description copied from interface:
TlsClient
- Notifies the client of the session_id sent in the ServerHello.
- Specified by:
notifySessionID
in interface TlsClient
- See Also:
TlsContext#getResumableSession()}
notifySelectedCipherSuite
public void notifySelectedCipherSuite(int selectedCipherSuite)
- Specified by:
notifySelectedCipherSuite
in interface TlsClient
notifySelectedCompressionMethod
public void notifySelectedCompressionMethod(short selectedCompressionMethod)
- Specified by:
notifySelectedCompressionMethod
in interface TlsClient
processServerExtensions
public void processServerExtensions(java.util.Hashtable serverExtensions)
throws java.io.IOException
- Specified by:
processServerExtensions
in interface TlsClient
- Throws:
java.io.IOException
processServerSupplementalData
public void processServerSupplementalData(java.util.Vector serverSupplementalData)
throws java.io.IOException
- Specified by:
processServerSupplementalData
in interface TlsClient
- Throws:
java.io.IOException
getClientSupplementalData
public java.util.Vector getClientSupplementalData()
throws java.io.IOException
- Specified by:
getClientSupplementalData
in interface TlsClient
- Throws:
java.io.IOException
getCompression
public TlsCompression getCompression()
throws java.io.IOException
- Specified by:
getCompression
in interface TlsPeer
- Throws:
java.io.IOException
notifyNewSessionTicket
public void notifyNewSessionTicket(NewSessionTicket newSessionTicket)
throws java.io.IOException
- Description copied from interface:
TlsClient
- RFC 5077 3.3. NewSessionTicket Handshake Message
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.
- Specified by:
notifyNewSessionTicket
in interface TlsClient
- Parameters:
newSessionTicket
- The ticket.
- Throws:
java.io.IOException