TlsServer (Bouncy Castle Library 1.52 API Specification)
Date: 2015-03-01

org.bouncycastle.crypto.tls

## Interface TlsServer

- All Superinterfaces:
    TlsPeer
  All Known Implementing Classes:
    AbstractTlsServer, DefaultTlsServer, MockDTLSServer, PSKTlsServer, SRPTlsServer

      public interface TlsServer
      extends TlsPeer

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `CertificateRequest` | `getCertificateRequest()`
    `CertificateStatus` | `getCertificateStatus()` This method will be called (only) if the server included an extension of type "status_request" with empty "extension_data" in the extended server hello.
    `TlsCredentials` | `getCredentials()`
    `TlsKeyExchange` | `getKeyExchange()`
    `NewSessionTicket` | `getNewSessionTicket()` RFC 5077 3.3.
    `int` | `getSelectedCipherSuite()`
    `short` | `getSelectedCompressionMethod()`
    `java.util.Hashtable` | `getServerExtensions()`
    `java.util.Vector` | `getServerSupplementalData()`
    `ProtocolVersion` | `getServerVersion()`
    `void` | `init(TlsServerContext context)`
    `void` | `notifyClientCertificate(Certificate clientCertificate)` Called by the protocol handler to report the client certificate, only if `getCertificateRequest()` returned non-null.
    `void` | `notifyClientVersion(ProtocolVersion clientVersion)`
    `void` | `notifyFallback(boolean isFallback)`
    `void` | `notifyOfferedCipherSuites(int[] offeredCipherSuites)`
    `void` | `notifyOfferedCompressionMethods(short[] offeredCompressionMethods)`
    `void` | `processClientExtensions(java.util.Hashtable clientExtensions)`
    `void` | `processClientSupplementalData(java.util.Vector clientSupplementalData)`

    - ### Methods inherited from interface org.bouncycastle.crypto.tls.TlsPeer

      `getCipher, getCompression, notifyAlertRaised, notifyAlertReceived, notifyHandshakeComplete, notifySecureRenegotiation, shouldUseGMTUnixTime`

- - ### Method Detail

    - #### init

          void init(TlsServerContext context)

    - #### notifyClientVersion

          void notifyClientVersion(ProtocolVersion clientVersion)
                                   throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### notifyFallback

          void notifyFallback(boolean isFallback)
                              throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### notifyOfferedCipherSuites

          void notifyOfferedCipherSuites(int[] offeredCipherSuites)
                                         throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### notifyOfferedCompressionMethods

          void notifyOfferedCompressionMethods(short[] offeredCompressionMethods)
                                               throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### processClientExtensions

          void processClientExtensions(java.util.Hashtable clientExtensions)
                                       throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getServerVersion

          ProtocolVersion getServerVersion()
                                           throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getSelectedCipherSuite

          int getSelectedCipherSuite()
                                     throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getSelectedCompressionMethod

          short getSelectedCompressionMethod()
                                             throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getServerExtensions

          java.util.Hashtable getServerExtensions()
                                                  throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getServerSupplementalData

          java.util.Vector getServerSupplementalData()
                                                     throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getCredentials

          TlsCredentials getCredentials()
                                        throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getCertificateStatus

          CertificateStatus getCertificateStatus()
                                                 throws java.io.IOException

      This method will be called (only) if the server included an extension of type "status_request" with empty "extension_data" in the extended server hello. See RFC 3546 3.6. Certificate Status Request. If a non-null `CertificateStatus` is returned, it is sent to the client as a handshake message of type "certificate_status".
      Returns:
        A `CertificateStatus` to be sent to the client (or null for none).
      Throws:
        `java.io.IOException`

    - #### getKeyExchange

          TlsKeyExchange getKeyExchange()
                                        throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getCertificateRequest

          CertificateRequest getCertificateRequest()
                                                   throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### processClientSupplementalData

          void processClientSupplementalData(java.util.Vector clientSupplementalData)
                                             throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### notifyClientCertificate

          void notifyClientCertificate(Certificate clientCertificate)
                                       throws java.io.IOException

      Called by the protocol handler to report the client certificate, only if `getCertificateRequest()` returned non-null. Note: this method is responsible for certificate verification and validation.
      Parameters:
        `clientCertificate` - the effective client certificate (may be an empty chain).
      Throws:
        `java.io.IOException`

    - #### getNewSessionTicket

          NewSessionTicket getNewSessionTicket()
                                               throws java.io.IOException

      RFC 5077 3.3. NewSessionTicket Handshake Message.

      This method will be called (only) if a NewSessionTicket extension was sent by the server. See RFC 5077 4. Recommended Ticket Construction for recommended format and protection.

      Returns:
        The ticket.
      Throws:
        `java.io.IOException`