TlsClient (Bouncy Castle Library 1.52 API Specification)

org.bouncycastle.crypto.tls

## Interface TlsClient

- All Superinterfaces:
    TlsPeer
  All Known Implementing Classes:
    AbstractTlsClient, DefaultTlsClient, MockDTLSClient, PSKTlsClient, SRPTlsClient

      public interface TlsClient
      extends TlsPeer

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `TlsAuthentication` | `getAuthentication()`
    `int[]` | `getCipherSuites()`
    `java.util.Hashtable` | `getClientExtensions()`
    `ProtocolVersion` | `getClientHelloRecordLayerVersion()`
    `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()

    - #### 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 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.

      Parameters:
        `newSessionTicket` - The ticket.
      Throws:
        `java.io.IOException`