Bouncy Castle Cryptography Library 1.49

org.bouncycastle.crypto.tls
Class AbstractTlsClient

java.lang.Object
  extended by org.bouncycastle.crypto.tls.AbstractTlsPeer
      extended by org.bouncycastle.crypto.tls.AbstractTlsClient
All Implemented Interfaces:
TlsClient, TlsPeer
Direct Known Subclasses:
DefaultTlsClient, PSKTlsClient, SRPTlsClient

public abstract class AbstractTlsClient
extends AbstractTlsPeer
implements TlsClient


Field Summary
protected  TlsCipherFactory cipherFactory
           
protected  TlsClientContext context
           
protected  int selectedCipherSuite
           
protected  short selectedCompressionMethod
           
protected  java.util.Vector supportedSignatureAlgorithms
           
 
Constructor Summary
AbstractTlsClient()
           
AbstractTlsClient(TlsCipherFactory cipherFactory)
           
 
Method Summary
 java.util.Hashtable getClientExtensions()
           
 ProtocolVersion getClientHelloRecordLayerVersion()
          RFC 5246 E.1.
 java.util.Vector getClientSupplementalData()
           
 ProtocolVersion getClientVersion()
           
 TlsCompression getCompression()
           
 short[] getCompressionMethods()
           
 ProtocolVersion getMinimumVersion()
           
 void init(TlsClientContext context)
           
 void notifyHandshakeComplete()
           
 void notifyNewSessionTicket(NewSessionTicket newSessionTicket)
          RFC 5077 3.3.
 void notifySecureRenegotiation(boolean secureRenegotiation)
           
 void notifySelectedCipherSuite(int selectedCipherSuite)
           
 void notifySelectedCompressionMethod(short selectedCompressionMethod)
           
 void notifyServerVersion(ProtocolVersion serverVersion)
           
 void notifySessionID(byte[] sessionID)
           
 void processServerExtensions(java.util.Hashtable serverExtensions)
           
 void processServerSupplementalData(java.util.Vector serverSupplementalData)
           
 
Methods inherited from class org.bouncycastle.crypto.tls.AbstractTlsPeer
notifyAlertRaised, notifyAlertReceived
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.bouncycastle.crypto.tls.TlsClient
getAuthentication, getCipher, getCipherSuites, getKeyExchange
 
Methods inherited from interface org.bouncycastle.crypto.tls.TlsPeer
notifyAlertRaised, notifyAlertReceived
 

Field Detail

cipherFactory

protected TlsCipherFactory cipherFactory

context

protected TlsClientContext context

supportedSignatureAlgorithms

protected java.util.Vector supportedSignatureAlgorithms

selectedCipherSuite

protected int selectedCipherSuite

selectedCompressionMethod

protected short selectedCompressionMethod
Constructor Detail

AbstractTlsClient

public AbstractTlsClient()

AbstractTlsClient

public AbstractTlsClient(TlsCipherFactory cipherFactory)
Method Detail

init

public void init(TlsClientContext context)
Specified by:
init in interface TlsClient

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)
Specified by:
notifySessionID in interface TlsClient

notifySelectedCipherSuite

public void notifySelectedCipherSuite(int selectedCipherSuite)
Specified by:
notifySelectedCipherSuite in interface TlsClient

notifySelectedCompressionMethod

public void notifySelectedCompressionMethod(short selectedCompressionMethod)
Specified by:
notifySelectedCompressionMethod in interface TlsClient

notifySecureRenegotiation

public void notifySecureRenegotiation(boolean secureRenegotiation)
                               throws java.io.IOException
Specified by:
notifySecureRenegotiation in interface TlsClient
Throws:
java.io.IOException

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 TlsClient
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

notifyHandshakeComplete

public void notifyHandshakeComplete()
                             throws java.io.IOException
Specified by:
notifyHandshakeComplete in interface TlsClient
Throws:
java.io.IOException

Bouncy Castle Cryptography Library 1.49