DTLSServerProtocol (Bouncy Castle Library 1.54 API Specification)
Date: 2015-12-29

org.bouncycastle.crypto.tls

## Class DTLSServerProtocol

- java.lang.Object
- - org.bouncycastle.crypto.tls.DTLSProtocol
  - - org.bouncycastle.crypto.tls.DTLSServerProtocol

-     public class DTLSServerProtocol
      extends DTLSProtocol

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `DTLSServerProtocol.ServerHandshakeState`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `verifyRequests`

    - ### Fields inherited from class org.bouncycastle.crypto.tls.DTLSProtocol

      `secureRandom`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DTLSServerProtocol(java.security.SecureRandom secureRandom)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `DTLSTransport` | `accept(TlsServer server, DatagramTransport transport)`
    `protected boolean` | `expectCertificateVerifyMessage(DTLSServerProtocol.ServerHandshakeState state)`
    `protected byte[]` | `generateCertificateRequest(DTLSServerProtocol.ServerHandshakeState state, CertificateRequest certificateRequest)`
    `protected byte[]` | `generateCertificateStatus(DTLSServerProtocol.ServerHandshakeState state, CertificateStatus certificateStatus)`
    `protected byte[]` | `generateNewSessionTicket(DTLSServerProtocol.ServerHandshakeState state, NewSessionTicket newSessionTicket)`
    `protected byte[]` | `generateServerHello(DTLSServerProtocol.ServerHandshakeState state)`
    `boolean` | `getVerifyRequests()`
    `protected void` | `notifyClientCertificate(DTLSServerProtocol.ServerHandshakeState state, Certificate clientCertificate)`
    `protected void` | `processCertificateVerify(DTLSServerProtocol.ServerHandshakeState state, byte[] body, TlsHandshakeHash prepareFinishHash)`
    `protected void` | `processClientCertificate(DTLSServerProtocol.ServerHandshakeState state, byte[] body)`
    `protected void` | `processClientHello(DTLSServerProtocol.ServerHandshakeState state, byte[] body)`
    `protected void` | `processClientKeyExchange(DTLSServerProtocol.ServerHandshakeState state, byte[] body)`
    `protected void` | `processClientSupplementalData(DTLSServerProtocol.ServerHandshakeState state, byte[] body)`
    `protected DTLSTransport` | `serverHandshake(DTLSServerProtocol.ServerHandshakeState state, org.bouncycastle.crypto.tls.DTLSRecordLayer recordLayer)`
    `void` | `setVerifyRequests(boolean verifyRequests)`

    - ### Methods inherited from class org.bouncycastle.crypto.tls.DTLSProtocol

      `applyMaxFragmentLengthExtension, evaluateMaxFragmentLengthExtension, generateCertificate, generateSupplementalData, processFinished, validateSelectedCipherSuite`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### verifyRequests

          protected boolean verifyRequests

  - ### Constructor Detail

    - #### DTLSServerProtocol

          public DTLSServerProtocol(java.security.SecureRandom secureRandom)

  - ### Method Detail

    - #### getVerifyRequests

          public boolean getVerifyRequests()

    - #### setVerifyRequests

          public void setVerifyRequests(boolean verifyRequests)

    - #### accept

          public DTLSTransport accept(TlsServer server,
                             DatagramTransport transport)
                               throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### serverHandshake

          protected DTLSTransport serverHandshake(DTLSServerProtocol.ServerHandshakeState state,
                                      org.bouncycastle.crypto.tls.DTLSRecordLayer recordLayer)
                                           throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### generateCertificateRequest

          protected byte[] generateCertificateRequest(DTLSServerProtocol.ServerHandshakeState state,
                                          CertificateRequest certificateRequest)
                                               throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### generateCertificateStatus

          protected byte[] generateCertificateStatus(DTLSServerProtocol.ServerHandshakeState state,
                                         CertificateStatus certificateStatus)
                                              throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### generateNewSessionTicket

          protected byte[] generateNewSessionTicket(DTLSServerProtocol.ServerHandshakeState state,
                                        NewSessionTicket newSessionTicket)
                                             throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### generateServerHello

          protected byte[] generateServerHello(DTLSServerProtocol.ServerHandshakeState state)
                                        throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### notifyClientCertificate

          protected void notifyClientCertificate(DTLSServerProtocol.ServerHandshakeState state,
                                     Certificate clientCertificate)
                                          throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### processClientCertificate

          protected void processClientCertificate(DTLSServerProtocol.ServerHandshakeState state,
                                      byte[] body)
                                           throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### processCertificateVerify

          protected void processCertificateVerify(DTLSServerProtocol.ServerHandshakeState state,
                                      byte[] body,
                                      TlsHandshakeHash prepareFinishHash)
                                           throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### processClientHello

          protected void processClientHello(DTLSServerProtocol.ServerHandshakeState state,
                                byte[] body)
                                     throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### processClientKeyExchange

          protected void processClientKeyExchange(DTLSServerProtocol.ServerHandshakeState state,
                                      byte[] body)
                                           throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### processClientSupplementalData

          protected void processClientSupplementalData(DTLSServerProtocol.ServerHandshakeState state,
                                           byte[] body)
                                                throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### expectCertificateVerifyMessage

          protected boolean expectCertificateVerifyMessage(DTLSServerProtocol.ServerHandshakeState state)