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

org.bouncycastle.crypto.tls

## Class DTLSClientProtocol

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

-     public class DTLSClientProtocol
      extends DTLSProtocol

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `DTLSClientProtocol.ClientHandshakeState`

  - ### Field Summary

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

      `secureRandom`

  - ### Constructor Summary

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected DTLSTransport` | `clientHandshake(DTLSClientProtocol.ClientHandshakeState state, org.bouncycastle.crypto.tls.DTLSRecordLayer recordLayer)`
    `DTLSTransport` | `connect(TlsClient client, DatagramTransport transport)`
    `protected byte[]` | `generateCertificateVerify(DTLSClientProtocol.ClientHandshakeState state, DigitallySigned certificateVerify)`
    `protected byte[]` | `generateClientHello(DTLSClientProtocol.ClientHandshakeState state, TlsClient client)`
    `protected byte[]` | `generateClientKeyExchange(DTLSClientProtocol.ClientHandshakeState state)`
    `protected void` | `invalidateSession(DTLSClientProtocol.ClientHandshakeState state)`
    `protected static byte[]` | `patchClientHelloWithCookie(byte[] clientHelloBody, byte[] cookie)`
    `protected void` | `processCertificateRequest(DTLSClientProtocol.ClientHandshakeState state, byte[] body)`
    `protected void` | `processCertificateStatus(DTLSClientProtocol.ClientHandshakeState state, byte[] body)`
    `protected byte[]` | `processHelloVerifyRequest(DTLSClientProtocol.ClientHandshakeState state, byte[] body)`
    `protected void` | `processNewSessionTicket(DTLSClientProtocol.ClientHandshakeState state, byte[] body)`
    `protected Certificate` | `processServerCertificate(DTLSClientProtocol.ClientHandshakeState state, byte[] body)`
    `protected void` | `processServerHello(DTLSClientProtocol.ClientHandshakeState state, byte[] body)`
    `protected void` | `processServerKeyExchange(DTLSClientProtocol.ClientHandshakeState state, byte[] body)`
    `protected void` | `processServerSupplementalData(DTLSClientProtocol.ClientHandshakeState state, byte[] body)`
    `protected void` | `reportServerVersion(DTLSClientProtocol.ClientHandshakeState state, ProtocolVersion server_version)`

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

      `evaluateMaxFragmentLengthExtension, generateCertificate, generateSupplementalData, processFinished, validateSelectedCipherSuite`

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

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

- - ### Constructor Detail

    - #### DTLSClientProtocol

          public DTLSClientProtocol(java.security.SecureRandom secureRandom)

  - ### Method Detail

    - #### connect

          public DTLSTransport connect(TlsClient client,
                              DatagramTransport transport)
                                throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### clientHandshake

          protected DTLSTransport clientHandshake(DTLSClientProtocol.ClientHandshakeState state,
                                      org.bouncycastle.crypto.tls.DTLSRecordLayer recordLayer)
                                           throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### generateCertificateVerify

          protected byte[] generateCertificateVerify(DTLSClientProtocol.ClientHandshakeState state,
                                         DigitallySigned certificateVerify)
                                              throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### generateClientHello

          protected byte[] generateClientHello(DTLSClientProtocol.ClientHandshakeState state,
                                   TlsClient client)
                                        throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### generateClientKeyExchange

          protected byte[] generateClientKeyExchange(DTLSClientProtocol.ClientHandshakeState state)
                                              throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### invalidateSession

          protected void invalidateSession(DTLSClientProtocol.ClientHandshakeState state)

    - #### processCertificateRequest

          protected void processCertificateRequest(DTLSClientProtocol.ClientHandshakeState state,
                                       byte[] body)
                                            throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### processCertificateStatus

          protected void processCertificateStatus(DTLSClientProtocol.ClientHandshakeState state,
                                      byte[] body)
                                           throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### processHelloVerifyRequest

          protected byte[] processHelloVerifyRequest(DTLSClientProtocol.ClientHandshakeState state,
                                         byte[] body)
                                              throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### processNewSessionTicket

          protected void processNewSessionTicket(DTLSClientProtocol.ClientHandshakeState state,
                                     byte[] body)
                                          throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### processServerCertificate

          protected Certificate processServerCertificate(DTLSClientProtocol.ClientHandshakeState state,
                                             byte[] body)
                                                  throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### processServerHello

          protected void processServerHello(DTLSClientProtocol.ClientHandshakeState state,
                                byte[] body)
                                     throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### processServerKeyExchange

          protected void processServerKeyExchange(DTLSClientProtocol.ClientHandshakeState state,
                                      byte[] body)
                                           throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### processServerSupplementalData

          protected void processServerSupplementalData(DTLSClientProtocol.ClientHandshakeState state,
                                           byte[] body)
                                                throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### reportServerVersion

          protected void reportServerVersion(DTLSClientProtocol.ClientHandshakeState state,
                                 ProtocolVersion server_version)
                                      throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### patchClientHelloWithCookie

          protected static byte[] patchClientHelloWithCookie(byte[] clientHelloBody,
                                          byte[] cookie)
                                                      throws java.io.IOException

      Throws:
        `java.io.IOException`