Class SSLFTPCipherSuite

java.lang.Object
com.enterprisedt.net.ftp.ssl.SSLFTPCipherSuite

public class SSLFTPCipherSuite extends Object
This class servers two purposes: It provides an interface to obtaining information about particular cipher-suites and it provides a set of available cipher-suites.

A cipher-suite is a set of algorithms that is used for various aspects of SSL security. For a client and a server to be able to communicate, they must be able to agree on a particular cipher-suite. Different types of servers recognize different cipher-suites, so it is usually up to the client make sure that it shares at least one cipher-suite with the server that it is trying to communicate securely with. By itself, this fact would imply that the client should simply enable all possible suites in order to increase the chances of overlap. However, this is not necessarily wise since some cipher-suites (esp. those which adhered to the (now defunct) US export restrictions are relatively easy to break, whereas some others are trusted as currently being virtually unbreakable.

A cipher-suite consists of a digital signature algorithm, a key-exchange algorithm, an encryption algorithm, and a digest algorithm.

Version:
$Revision$
Author:
Hans Andersen
  • Field Details

    • TLS_RSA_WITH_3DES_EDE_CBC_SHA

      public static final SSLFTPCipherSuite TLS_RSA_WITH_3DES_EDE_CBC_SHA
      Cipher suite.
      Name:TLS_RSA_WITH_3DES_EDE_CBC_SHA
      Authorization:RSA
      Key Exchange:RSA
      Encryption:3DES_EDE_CBC
      Digest:SHA
    • TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA

      public static final SSLFTPCipherSuite TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA
      Cipher suite.
      Name:TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA
      Authorization:RSA
      Key Exchange:DH
      Encryption:3DES_EDE_CBC
      Digest:SHA
    • TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA

      public static final SSLFTPCipherSuite TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
      Cipher suite.
      Name:TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
      Authorization:RSA
      Key Exchange:DHE
      Encryption:3DES_EDE_CBC
      Digest:SHA
    • TLS_RSA_WITH_AES_128_CBC_SHA

      public static final SSLFTPCipherSuite TLS_RSA_WITH_AES_128_CBC_SHA
      Cipher suite.
      Name:TLS_RSA_WITH_AES_128_CBC_SHA
      Authorization:RSA
      Key Exchange:RSA
      Encryption:AES_128_CBC
      Digest:SHA
    • TLS_DH_RSA_WITH_AES_128_CBC_SHA

      public static final SSLFTPCipherSuite TLS_DH_RSA_WITH_AES_128_CBC_SHA
      Cipher suite.
      Name:TLS_DH_RSA_WITH_AES_128_CBC_SHA
      Authorization:
      Key Exchange:DH
      Encryption:AES_128_CBC
      Digest:SHA
    • TLS_DHE_RSA_WITH_AES_128_CBC_SHA

      public static final SSLFTPCipherSuite TLS_DHE_RSA_WITH_AES_128_CBC_SHA
      Cipher suite.
      Name:TLS_DHE_RSA_WITH_AES_128_CBC_SHA
      Authorization:RSA
      Key Exchange:DHE
      Encryption:AES_128_CBC
      Digest:SHA
    • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

      public static final SSLFTPCipherSuite TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
      Cipher suite.
      Name:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
      Authorization:RSA
      Key Exchange:ECDHE
      Encryption:AES_128_CBC
      Digest:SHA
    • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

      public static final SSLFTPCipherSuite TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
      Cipher suite.
      Name:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
      Authorization:RSA
      Key Exchange:ECDHE
      Encryption:AES_256_CBC
      Digest:SHA
    • TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA

      public static final SSLFTPCipherSuite TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
      Cipher suite.
      Name:TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
      Authorization:RSA
      Key Exchange:ECDHE
      Encryption:3DES_EDE_CBC_SHA
      Digest:SHA
    • TLS_RSA_WITH_AES_256_CBC_SHA

      public static final SSLFTPCipherSuite TLS_RSA_WITH_AES_256_CBC_SHA
      Cipher suite.
      Name:TLS_RSA_WITH_AES_256_CBC_SHA
      Authorization:RSA
      Key Exchange:RSA
      Encryption:AES_256_CBC
      Digest:SHA
    • TLS_DH_RSA_WITH_AES_256_CBC_SHA

      public static final SSLFTPCipherSuite TLS_DH_RSA_WITH_AES_256_CBC_SHA
      Cipher suite.
      Name:TLS_DH_RSA_WITH_AES_256_CBC_SHA
      Authorization:RSA
      Key Exchange:DH
      Encryption:AES_256_CBC
      Digest:SHA
    • TLS_DHE_RSA_WITH_AES_256_CBC_SHA

      public static final SSLFTPCipherSuite TLS_DHE_RSA_WITH_AES_256_CBC_SHA
      Cipher suite.
      Name:TLS_DHE_RSA_WITH_AES_256_CBC_SHA
      Authorization:RSA
      Key Exchange:DHE
      Encryption:AES_256_CBC
      Digest:SHA
    • TLS_DHE_RSA_WITH_AES_256_CBC_SHA256

      public static final SSLFTPCipherSuite TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
      Cipher suite.
      Name:TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
      Authorization:RSA
      Key Exchange:DHE
      Encryption:AES_256_CBC
      Digest:SHA256
    • TLS_DHE_RSA_WITH_AES_128_CBC_SHA256

      public static final SSLFTPCipherSuite TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
      Cipher suite.
      Name:TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
      Authorization:RSA
      Key Exchange:DHE
      Encryption:AES_128_CBC
      Digest:SHA256
    • TLS_RSA_WITH_AES_256_CBC_SHA256

      public static final SSLFTPCipherSuite TLS_RSA_WITH_AES_256_CBC_SHA256
      Cipher suite.
      Name:TLS_RSA_WITH_AES_256_CBC_SHA256
      Authorization:RSA
      Key Exchange:RSA
      Encryption:AES_256_CBC
      Digest:SHA256
    • TLS_RSA_WITH_AES_128_CBC_SHA256

      public static final SSLFTPCipherSuite TLS_RSA_WITH_AES_128_CBC_SHA256
      Cipher suite.
      Name:TLS_RSA_WITH_AES_128_CBC_SHA256
      Authorization:RSA
      Key Exchange:RSA
      Encryption:AES_128_CBC
      Digest:SHA256
    • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

      public static final SSLFTPCipherSuite TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
      Cipher suite.
      Name:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
      Authorization:RSA
      Key Exchange:ECDHE
      Encryption:AES_128_GCM
      Digest:SHA256
    • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256

      public static final SSLFTPCipherSuite TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
      Cipher suite.
      Name:TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
      Authorization:RSA
      Key Exchange:DHE
      Encryption:AES_128_GCM
      Digest:SHA256
    • TLS_RSA_WITH_AES_128_GCM_SHA256

      public static final SSLFTPCipherSuite TLS_RSA_WITH_AES_128_GCM_SHA256
      Cipher suite.
      Name:TLS_RSA_WITH_AES_128_GCM_SHA256
      Authorization:RSA
      Key Exchange:RSA
      Encryption:AES_128_GCM
      Digest:SHA256
    • TLS_RSA_WITH_AES_256_GCM_SHA384

      public static final SSLFTPCipherSuite TLS_RSA_WITH_AES_256_GCM_SHA384
      Cipher suite.
      Name:TLS_RSA_WITH_AES_256_GCM_SHA384
      Authorization:RSA
      Key Exchange:RSA
      Encryption:AES_256_GCM
      Digest:SHA384
    • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

      public static final SSLFTPCipherSuite TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
      Cipher suite.
      Name:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
      Authorization:RSA
      Key Exchange:RSA
      Encryption:AES_256_CBC
      Digest:SHA384
    • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384

      public static final SSLFTPCipherSuite TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
      Cipher suite.
      Name:TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
      Authorization:RSA
      Key Exchange:DHE
      Encryption:AES_256_GCM
      Digest:SHA384
    • TLS_AES_128_GCM_SHA256

      public static final SSLFTPCipherSuite TLS_AES_128_GCM_SHA256
      TLS 1.3 Cipher suite.
    • TLS_AES_256_GCM_SHA384

      public static final SSLFTPCipherSuite TLS_AES_256_GCM_SHA384
      TLS 1.3 Cipher suite.
    • TLS_CHACHA20_POLY1305_SHA256

      public static final SSLFTPCipherSuite TLS_CHACHA20_POLY1305_SHA256
      TLS 1.3 Cipher suite.
  • Method Details

    • getCode

      public int getCode()
      Returns the code of the cipher-suite
      Returns:
      The code of the cipher-suite.
    • getName

      public String getName() throws com.enterprisedt.net.puretls.SSLException
      Returns the name of the cipher-suite.
      Returns:
      The name of the cipher-suite.
      Throws:
      com.enterprisedt.net.puretls.SSLException - Thrown if the suite-code is invalid.
    • getCipherSuiteNames

      public static String[] getCipherSuiteNames() throws com.enterprisedt.net.puretls.SSLException
      Returns the names of all available cipher-suites.
      Returns:
      A String-array containing the names of all available cipher-suites.
      Throws:
      com.enterprisedt.net.puretls.SSLException - Thrown if the code of a suite is invalid.
    • getCipherSuites

      public static SSLFTPCipherSuite[] getCipherSuites()
      Returns an array of object references to all available cipher-suites.
      Returns:
      An array of object references to all available cipher-suites.
    • getCipherSuite

      public static SSLFTPCipherSuite getCipherSuite(String name) throws com.enterprisedt.net.puretls.SSLException
      Returns a reference to the named cipher-suite or null if no suite with this name exists.
      Parameters:
      name - Name of the required cipher-suite.
      Returns:
      the cipher-suite or null
      Throws:
      com.enterprisedt.net.puretls.SSLException - Thrown if no suite with the given name exists.
    • getCipherSuite

      public static SSLFTPCipherSuite getCipherSuite(int code)
      Returns a reference to the cipher-suite with the given code or null if no suite with this code exists.
      Parameters:
      code - Code of the required cipher-suite.
      Returns:
      the cipher-suite or null
    • toString

      public String toString()
      Overrides:
      toString in class Object