Package tigase.io

## Interface CertificateContainerIfc

- All Known Implementing Classes:
    `CertificateContainer`

      public interface CertificateContainerIfc

  Interface implemented by classes responsible for keeping SSL certificates in memory
  Created by andrzej on 29.02.2016.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `CERTIFICATE_CONTAINER_CLASS_KEY` |
    `static java.lang.String` | `CERTIFICATE_CONTAINER_CLASS_VAL` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addCertificates​(java.util.Map<java.lang.String,​java.lang.String> params)` | Method `addCertificates` allows to add more certificates at run time after the container has bee already initialized.
    `javax.net.ssl.KeyManager[]` | `createCertificate​(java.lang.String domain)` | Method `createCertificate` allows to generate self-signed certificate for passed domain name.s
    `CertificateEntry` | `getCertificateEntry​(java.lang.String hostname)` |
    `java.lang.String` | `getDefCertAlias()` | Method to retrieve default alias of certificate to use when domain is `null`
    `javax.net.ssl.KeyManager[]` | `getKeyManagers​(java.lang.String domain)` | Method returns array of `KeyManager` with certificate for domain or `null` if there is no certificate for domain
    `javax.net.ssl.TrustManager[]` | `getTrustManagers()` |
    `java.security.KeyStore` | `getTrustStore()` |
    `void` | `init​(java.util.Map<java.lang.String,​java.lang.Object> params)` | Method used to pass parameters to initialize instance of class

- - ### Field Detail

    - #### CERTIFICATE_CONTAINER_CLASS_KEY

          static final java.lang.String CERTIFICATE_CONTAINER_CLASS_KEY

      See Also:
        Constant Field Values

    - #### CERTIFICATE_CONTAINER_CLASS_VAL

          static final java.lang.String CERTIFICATE_CONTAINER_CLASS_VAL

  - ### Method Detail

    - #### addCertificates

          void addCertificates​(java.util.Map<java.lang.String,​java.lang.String> params)
                        throws java.security.cert.CertificateParsingException

      Method `addCertificates` allows to add more certificates at run time after the container has bee already initialized. This is to avoid server restart if there are certificates updates or new certificates for new virtual domain. The method should add new certificates or replace existing one if there is already a certificate for a domain.
      Parameters:
        `params` - a `Map` value with configuration parameters.
      Throws:
        `java.security.cert.CertificateParsingException`

    - #### createCertificate

          javax.net.ssl.KeyManager[] createCertificate​(java.lang.String domain)
                                                throws java.security.NoSuchAlgorithmException,
                                                       java.security.cert.CertificateException,
                                                       java.security.SignatureException,
                                                       java.security.NoSuchProviderException,
                                                       java.security.InvalidKeyException,
                                                       java.io.IOException,
                                                       java.security.UnrecoverableKeyException,
                                                       java.security.KeyStoreException

      Method `createCertificate` allows to generate self-signed certificate for passed domain name.s
      Parameters:
        `domain` - domain for which certificate should be generated
      Returns:
        an array of `KeyManager` containing generated certificate
      Throws:
        `java.security.NoSuchAlgorithmException`
        `java.security.cert.CertificateException`
        `java.security.SignatureException`
        `java.security.NoSuchProviderException`
        `java.security.InvalidKeyException`
        `java.io.IOException`
        `java.security.UnrecoverableKeyException`
        `java.security.KeyStoreException`

    - #### getDefCertAlias

          java.lang.String getDefCertAlias()

      Method to retrieve default alias of certificate to use when domain is `null`
      Returns:
        default alias

    - #### getCertificateEntry

          CertificateEntry getCertificateEntry​(java.lang.String hostname)

    - #### getKeyManagers

          javax.net.ssl.KeyManager[] getKeyManagers​(java.lang.String domain)

      Method returns array of `KeyManager` with certificate for domain or `null` if there is no certificate for domain

    - #### getTrustManagers

          javax.net.ssl.TrustManager[] getTrustManagers()

    - #### getTrustStore

          java.security.KeyStore getTrustStore()

    - #### init

          void init​(java.util.Map<java.lang.String,​java.lang.Object> params)

      Method used to pass parameters to initialize instance of class