# Class ConnectionRequest.SSLCertificate

java.lang.Object
com.codename1.io.ConnectionRequest.SSLCertificate

Enclosing class:
  `ConnectionRequest`

public static final class ConnectionRequest.SSLCertificate extends Object

Encapsulates an SSL certificate fingerprint.

SSL Pinning

The recommended approach to SSL Pinning is to override the `#checkSSLCertificates(com.codename1.io.ConnectionRequest.SSLCertificate[])` method in your `ConnectionRequest` object, and check the certificates that are provided as a parameter. This callback if fired before sending data to the server, but after the SSL handshake is complete so that you have an opportunity to kill the request before sending your POST data.

Example:

    `ConnectionRequest req = new ConnectionRequest() {
    @Override
        protected void checkSSLCertificates(ConnectionRequest.SSLCertificate[] certificates) {
            if (!trust(certificates)) {
                // Assume that you've implemented method trust(SSLCertificate[] certs)
                // to tell you whether you trust some certificates.
                this.kill();`
        }
    };
    req.setCheckSSLCertificates(true);
    ....
    }

##### See also

- #getSSLCertificates()

- #canGetSSLCertificates()

- #isCheckSSLCertificates()

- #setCheckSSLCertificates(boolean)

- #checkSSLCertificates(com.codename1.io.ConnectionRequest.SSLCertificate[])

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SSLCertificate()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getCertificteAlgorithm()`
  Gets the algorithm used to encode the fingerprint.
  `String`
  `getCertificteUniqueKey()`
  Gets a fingerprint for the SSL certificate encoded using the algorithm specified by `#getCertificteAlgorithm()`

  ### Methods inherited from class Object

  `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `final Class`
  `getClass()`
  Returns the runtime class of an object.
  `int`
  `hashCode()`
  Returns a hash code value for the object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes current thread to wait until another thread invokes the method or the method for this object.
  `final void`
  `wait(long timeout)`
  Causes current thread to wait until either another thread invokes the method or the method for this object, or a specified amount of time has elapsed.
  `final void`
  `wait(long timeout, int nanos)`
  Causes current thread to wait until another thread invokes the method or the method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.

- ## Constructor Details

  - ### SSLCertificate

    public SSLCertificate()

- ## Method Details

  - ### getCertificteUniqueKey

    public String getCertificteUniqueKey()
    Gets a fingerprint for the SSL certificate encoded using the algorithm specified by `#getCertificteAlgorithm()`

  - ### getCertificteAlgorithm

    public String getCertificteAlgorithm()

    Gets the algorithm used to encode the fingerprint. Default is SHA1

    ###### Returns

    The algorithm used to encode the certificate fingerprint.