/* See LICENSE for licensing and NOTICE for copyright. */ package org.ldaptive.ssl; import java.security.GeneralSecurityException; import javax.net.ssl.KeyManager; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; /** * Provides an interface for the initialization of new SSL contexts. * * @author Middleware Services */ public interface SSLContextInitializer { /** * Creates an initialized SSLContext for the supplied protocol. * * @param protocol type to use for SSL * * @return SSL context * * @throws GeneralSecurityException if the SSLContext cannot be created */ SSLContext initSSLContext(String protocol) throws GeneralSecurityException; /** * Returns the trust managers used when creating SSL contexts. * * @return trust managers * * @throws GeneralSecurityException if an errors occurs while loading the TrustManagers */ TrustManager[] getTrustManagers() throws GeneralSecurityException; /** * Sets the trust managers. May be in isolation or in conjunction with other trust material. * * @param managers trust managers */ void setTrustManagers(TrustManager... managers); /** * Returns the key managers used when creating SSL contexts. * * @return key managers * * @throws GeneralSecurityException if an errors occurs while loading the KeyManagers */ KeyManager[] getKeyManagers() throws GeneralSecurityException; }