Bouncy Castle Cryptography Library 1.49

org.bouncycastle.crypto.tls
Class TlsClientProtocol

java.lang.Object
  extended by org.bouncycastle.crypto.tls.TlsProtocol
      extended by org.bouncycastle.crypto.tls.TlsClientProtocol
Direct Known Subclasses:
TlsProtocolHandler

public class TlsClientProtocol
extends TlsProtocol


Field Summary
protected  TlsAuthentication authentication
           
protected  CertificateRequest certificateRequest
           
protected  java.util.Hashtable clientExtensions
           
protected  TlsKeyExchange keyExchange
           
protected  int[] offeredCipherSuites
           
protected  short[] offeredCompressionMethods
           
protected  int selectedCipherSuite
           
protected  short selectedCompressionMethod
           
protected  TlsClient tlsClient
           
protected  org.bouncycastle.crypto.tls.TlsClientContextImpl tlsClientContext
           
 
Fields inherited from class org.bouncycastle.crypto.tls.TlsProtocol
connection_state, CS_CERTIFICATE_REQUEST, CS_CERTIFICATE_VERIFY, CS_CLIENT_CERTIFICATE, CS_CLIENT_CHANGE_CIPHER_SPEC, CS_CLIENT_FINISHED, CS_CLIENT_HELLO, CS_CLIENT_KEY_EXCHANGE, CS_CLIENT_SUPPLEMENTAL_DATA, CS_SERVER_CERTIFICATE, CS_SERVER_CHANGE_CIPHER_SPEC, CS_SERVER_FINISHED, CS_SERVER_HELLO, CS_SERVER_HELLO_DONE, CS_SERVER_KEY_EXCHANGE, CS_SERVER_SESSION_TICKET, CS_SERVER_SUPPLEMENTAL_DATA, CS_START, expectSessionTicket, EXT_RenegotiationInfo, EXT_SessionTicket, recordStream, secure_renegotiation, secureRandom, securityParameters
 
Constructor Summary
TlsClientProtocol(java.io.InputStream input, java.io.OutputStream output)
           
TlsClientProtocol(java.io.InputStream input, java.io.OutputStream output, java.security.SecureRandom secureRandom)
           
 
Method Summary
 void connect(TlsClient tlsClient)
          Initiates a TLS handshake in the role of client
protected  org.bouncycastle.crypto.tls.AbstractTlsContext getContext()
           
protected  TlsPeer getPeer()
           
protected  void handleChangeCipherSpecMessage()
           
protected  void handleHandshakeMessage(short type, byte[] data)
           
protected  void handleSupplementalData(java.util.Vector serverSupplementalData)
           
protected  void receiveNewSessionTicketMessage(java.io.ByteArrayInputStream buf)
           
protected  void receiveServerHelloMessage(java.io.ByteArrayInputStream buf)
           
protected  void sendCertificateVerifyMessage(byte[] data)
           
protected  void sendClientHelloMessage()
           
protected  void sendClientKeyExchangeMessage()
           
 
Methods inherited from class org.bouncycastle.crypto.tls.TlsProtocol
arrayContains, arrayContains, assertEmpty, close, completeHandshake, createRandomBlock, createRenegotiationInfo, createVerifyData, establishMasterSecret, failWithError, flush, getInputStream, getOutputStream, getPRFAlgorithm, handleClose, handleWarningMessage, processFinishedMessage, processRecord, raiseAlert, raiseWarning, readApplicationData, readExtensions, readSupplementalDataMessage, safeReadRecord, safeWriteRecord, sendCertificateMessage, sendChangeCipherSpecMessage, sendFinishedMessage, sendSupplementalDataMessage, writeData, writeExtensions, writeSupplementalData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

tlsClient

protected TlsClient tlsClient

tlsClientContext

protected org.bouncycastle.crypto.tls.TlsClientContextImpl tlsClientContext

offeredCipherSuites

protected int[] offeredCipherSuites

offeredCompressionMethods

protected short[] offeredCompressionMethods

clientExtensions

protected java.util.Hashtable clientExtensions

selectedCipherSuite

protected int selectedCipherSuite

selectedCompressionMethod

protected short selectedCompressionMethod

keyExchange

protected TlsKeyExchange keyExchange

authentication

protected TlsAuthentication authentication

certificateRequest

protected CertificateRequest certificateRequest
Constructor Detail

TlsClientProtocol

public TlsClientProtocol(java.io.InputStream input,
                         java.io.OutputStream output)

TlsClientProtocol

public TlsClientProtocol(java.io.InputStream input,
                         java.io.OutputStream output,
                         java.security.SecureRandom secureRandom)
Method Detail

connect

public void connect(TlsClient tlsClient)
             throws java.io.IOException
Initiates a TLS handshake in the role of client

Parameters:
tlsClient -
Throws:
java.io.IOException - If handshake was not successful.

getContext

protected org.bouncycastle.crypto.tls.AbstractTlsContext getContext()
Specified by:
getContext in class TlsProtocol

getPeer

protected TlsPeer getPeer()
Specified by:
getPeer in class TlsProtocol

handleChangeCipherSpecMessage

protected void handleChangeCipherSpecMessage()
                                      throws java.io.IOException
Specified by:
handleChangeCipherSpecMessage in class TlsProtocol
Throws:
java.io.IOException

handleHandshakeMessage

protected void handleHandshakeMessage(short type,
                                      byte[] data)
                               throws java.io.IOException
Specified by:
handleHandshakeMessage in class TlsProtocol
Throws:
java.io.IOException

handleSupplementalData

protected void handleSupplementalData(java.util.Vector serverSupplementalData)
                               throws java.io.IOException
Throws:
java.io.IOException

receiveNewSessionTicketMessage

protected void receiveNewSessionTicketMessage(java.io.ByteArrayInputStream buf)
                                       throws java.io.IOException
Throws:
java.io.IOException

receiveServerHelloMessage

protected void receiveServerHelloMessage(java.io.ByteArrayInputStream buf)
                                  throws java.io.IOException
Throws:
java.io.IOException

sendCertificateVerifyMessage

protected void sendCertificateVerifyMessage(byte[] data)
                                     throws java.io.IOException
Throws:
java.io.IOException

sendClientHelloMessage

protected void sendClientHelloMessage()
                               throws java.io.IOException
Throws:
java.io.IOException

sendClientKeyExchangeMessage

protected void sendClientKeyExchangeMessage()
                                     throws java.io.IOException
Throws:
java.io.IOException

Bouncy Castle Cryptography Library 1.49