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

org.bouncycastle.crypto.tls

## Class SRPTlsClient

- java.lang.Object
- - org.bouncycastle.crypto.tls.AbstractTlsPeer
  - - org.bouncycastle.crypto.tls.AbstractTlsClient
    - - org.bouncycastle.crypto.tls.SRPTlsClient

- All Implemented Interfaces:
    TlsClient, TlsPeer

      public class SRPTlsClient
      extends AbstractTlsClient

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected TlsSRPGroupVerifier` | `groupVerifier`
    `protected byte[]` | `identity`
    `protected byte[]` | `password`

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

      `cipherFactory, clientECPointFormats, context, namedCurves, selectedCipherSuite, selectedCompressionMethod, serverECPointFormats, supportedSignatureAlgorithms`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SRPTlsClient(byte[] identity, byte[] password)`
    `SRPTlsClient(TlsCipherFactory cipherFactory, byte[] identity, byte[] password)`
    `SRPTlsClient(TlsCipherFactory cipherFactory, TlsSRPGroupVerifier groupVerifier, byte[] identity, byte[] password)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected TlsKeyExchange` | `createSRPKeyExchange(int keyExchange)`
    `TlsAuthentication` | `getAuthentication()`
    `TlsCipher` | `getCipher()`
    `int[]` | `getCipherSuites()`
    `java.util.Hashtable` | `getClientExtensions()`
    `TlsKeyExchange` | `getKeyExchange()`
    `void` | `processServerExtensions(java.util.Hashtable serverExtensions)`
    `protected boolean` | `requireSRPServerExtension()`

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

      `allowUnexpectedServerExtension, checkForUnexpectedServerExtension, getClientHelloRecordLayerVersion, getClientSupplementalData, getClientVersion, getCompression, getCompressionMethods, getMinimumVersion, getSessionToResume, init, isFallback, notifyNewSessionTicket, notifySelectedCipherSuite, notifySelectedCompressionMethod, notifyServerVersion, notifySessionID, processServerSupplementalData`

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

      `notifyAlertRaised, notifyAlertReceived, notifyHandshakeComplete, notifySecureRenegotiation, shouldUseGMTUnixTime`

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

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

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

      `notifyAlertRaised, notifyAlertReceived, notifyHandshakeComplete, notifySecureRenegotiation, shouldUseGMTUnixTime`

- - ### Field Detail

    - #### groupVerifier

          protected TlsSRPGroupVerifier groupVerifier

    - #### identity

          protected byte[] identity

    - #### password

          protected byte[] password

  - ### Constructor Detail

    - #### SRPTlsClient

          public SRPTlsClient(byte[] identity,
                      byte[] password)

    - #### SRPTlsClient

          public SRPTlsClient(TlsCipherFactory cipherFactory,
                      byte[] identity,
                      byte[] password)

    - #### SRPTlsClient

          public SRPTlsClient(TlsCipherFactory cipherFactory,
                      TlsSRPGroupVerifier groupVerifier,
                      byte[] identity,
                      byte[] password)

  - ### Method Detail

    - #### requireSRPServerExtension

          protected boolean requireSRPServerExtension()

    - #### getCipherSuites

          public int[] getCipherSuites()

    - #### getClientExtensions

          public java.util.Hashtable getClientExtensions()
                                                  throws java.io.IOException

      Specified by:
        `getClientExtensions` in interface `TlsClient`
      Overrides:
        `getClientExtensions` in class `AbstractTlsClient`
      Throws:
        `java.io.IOException`

    - #### processServerExtensions

          public void processServerExtensions(java.util.Hashtable serverExtensions)
                                       throws java.io.IOException

      Specified by:
        `processServerExtensions` in interface `TlsClient`
      Overrides:
        `processServerExtensions` in class `AbstractTlsClient`
      Throws:
        `java.io.IOException`

    - #### getKeyExchange

          public TlsKeyExchange getKeyExchange()
                                        throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getAuthentication

          public TlsAuthentication getAuthentication()
                                              throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getCipher

          public TlsCipher getCipher()
                              throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### createSRPKeyExchange

          protected TlsKeyExchange createSRPKeyExchange(int keyExchange)