All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.mobicents.smsc.smpp.SslConfigurationWrapperMBean Maven / Gradle / Ivy

There is a newer version: 7.2.104
Show newest version
package org.mobicents.smsc.smpp;

/**
 * SSL Configuration to be used with {@link SmppServerManagement} and
 * {@link Esme}
 * 
 * @author Amit Bhayani
 * 
 */
public interface SslConfigurationWrapperMBean {
	
	/**
	 * Set to true if SSL is needed
	 * 
	 * @param value
	 */
	public void setUseSsl(boolean value);
	
	/**
	 * Returns true if SSL is used
	 * 
	 * @return
	 */
	public boolean isUseSsl();

	/**
	 * @return Alias of SSL certificate for the connector
	 */
	public String getCertAlias();

	/**
	 * @return Path to file that contains Certificate Revocation List
	 */
	public String getCrlPath();

	/**
	 * @return The algorithm name (default "SunX509") used by the
	 *         {@link KeyManagerFactory}
	 */
	public String getKeyManagerFactoryAlgorithm();

	/**
	 * @return The password (if any) for the specific key within the key store
	 */
	public String getKeyManagerPassword();

	/**
	 * Get the Key Store Password
	 * 
	 * @return
	 */
	public String getKeyStorePassword();
	
    /**
     * @return The file or URL of the SSL Key store.
     */
    public String getKeyStorePath();

	/**
	 * Get the path for Key Store
	 * 
	 * @return
	 */
	public String getKeyStoreProvider();
	
    /**
     * @param keyStoreProvider The provider of the key store
     */
    public void setKeyStoreProvider(String keyStoreProvider);

	/**
	 * @return The type of the key store (default "JKS")
	 */
	public String getKeyStoreType();

	/**
	 * @return Maximum number of intermediate certificates in the certification
	 *         path (-1 for unlimited)
	 */
	public int getMaxCertPathLength();

	/**
	 * @return True if SSL needs client authentication.
	 * @see SSLEngine#getNeedClientAuth()
	 */
	public boolean getNeedClientAuth();

	/**
	 * @return Location of the OCSP Responder
	 */
	public String getOcspResponderURL();

	/**
	 * @return The SSL protocol (default "TLS") passed to
	 *         {@link SSLContext#getInstance(String, String)}
	 */
	public String getProtocol();

	/**
	 * @return The SSL provider name, which if set is passed to
	 *         {@link SSLContext#getInstance(String, String)}
	 */
	public String getProvider();

	/**
	 * @return The algorithm name, which if set is passed to
	 *         {@link SecureRandom#getInstance(String)} to obtain the
	 *         {@link SecureRandom} instance passed to
	 *         {@link SSLContext#init(javax.net.ssl.KeyManager[], javax.net.ssl.TrustManager[], SecureRandom)}
	 */
	public String getSecureRandomAlgorithm();

	/**
	 * Get SSL session cache size.
	 * 
	 * @return SSL session cache size
	 */
	public int getSslSessionCacheSize();

	/**
	 * Get SSL session timeout.
	 * 
	 * @return SSL session timeout
	 */
	public int getSslSessionTimeout();

	/**
	 * @return The algorithm name (default "SunX509") used by the
	 *         {@link TrustManagerFactory}
	 */
	public String getTrustManagerFactoryAlgorithm();

	/**
	 * @return The password for the trust store
	 */
	public String getTrustStorePassword();

	/**
	 * @return The file name or URL of the trust store location
	 */
	public String getTrustStorePath();

	/**
	 * @return The provider of the trust store
	 */
	public String getTrustStoreProvider();

	/**
	 * @return The type of the trust store (default "JKS")
	 */
	public String getTrustStoreType();

	/**
	 * @return True if SSL wants client authentication.
	 * @see SSLEngine#getWantClientAuth()
	 */
	public boolean getWantClientAuth();

	/**
	 * @return True if SSL re-negotiation is allowed (default false)
	 */
	public boolean isAllowRenegotiate();

	/**
	 * @return true if CRL Distribution Points support is enabled
	 */
	public boolean isEnableCRLDP();

	/**
	 * @return true if On-Line Certificate Status Protocol support is enabled
	 */
	public boolean isEnableOCSP();

	/**
	 * @return true if SSL Session caching is enabled
	 */
	public boolean isSessionCachingEnabled();

	/**
	 * @return True if all certificates should be trusted if there is no
	 *         KeyStore or TrustStore
	 */
	public boolean isTrustAll();

	/**
	 * @return true if SSL certificate has to be validated
	 */
	public boolean isValidateCerts();

	/**
	 * @return true if SSL certificates of the peer have to be validated
	 */
	public boolean isValidatePeerCerts();

	/**
	 * Set if SSL re-negotiation is allowed. CVE-2009-3555 discovered a
	 * vulnerability in SSL/TLS with re-negotiation. If your JVM does not have
	 * CVE-2009-3555 fixed, then re-negotiation should not be allowed.
	 * CVE-2009-3555 was fixed in Sun java 1.6 with a ban of renegotiates in u19
	 * and with RFC5746 in u22.
	 * 
	 * @param allowRenegotiate
	 *            true if re-negotiation is allowed (default false)
	 */
	public void setAllowRenegotiate(boolean allowRenegotiate);

	/**
	 * @param certAlias
	 *            Alias of SSL certificate for the connector
	 */
	public void setCertAlias(String certAlias);

	/**
	 * @param crlPath
	 *            Path to file that contains Certificate Revocation List
	 */
	public void setCrlPath(String crlPath);

	/**
	 * Enables CRL Distribution Points Support
	 * 
	 * @param enableCRLDP
	 *            true - turn on, false - turns off
	 */
	public void setEnableCRLDP(boolean enableCRLDP);

	/**
	 * Enables On-Line Certificate Status Protocol support
	 * 
	 * @param enableOCSP
	 *            true - turn on, false - turn off
	 */
	public void setEnableOCSP(boolean enableOCSP);

	/**
	 * @param algorithm
	 *            The algorithm name (default "SunX509") used by the
	 *            {@link KeyManagerFactory}
	 */
	public void setKeyManagerFactoryAlgorithm(String algorithm);

	/**
	 * 
	 * @param password
	 *            The password (if any) for the specific key within the key
	 *            store
	 */
	public void setKeyManagerPassword(String password);

	/**
	 * Set Key Store Password
	 * 
	 * @param password
	 */
	public void setKeyStorePassword(String password);

	/**
	 * Set the absolute path for key store
	 * 
	 * @param keyStorePath
	 */
	public void setKeyStorePath(String keyStorePath);

	/**
	 * @param keyStoreType
	 *            The type of the key store (default "JKS")
	 */
	public void setKeyStoreType(String keyStoreType);

	/**
	 * @param maxCertPathLength
	 *            maximum number of intermediate certificates in the
	 *            certification path (-1 for unlimited)
	 */
	public void setMaxCertPathLength(int maxCertPathLength);

	/**
	 * @param needClientAuth
	 *            True if SSL needs client authentication.
	 */
	public void setNeedClientAuth(boolean needClientAuth);

	/**
	 * Set the location of the OCSP Responder.
	 * 
	 * @param ocspResponderURL
	 *            location of the OCSP Responder
	 */
	public void setOcspResponderURL(String ocspResponderURL);

	/**
	 * @param protocol
	 *            The SSL protocol (default "TLS") passed to
	 *            {@link SSLContext#getInstance(String, String)}
	 */
	public void setProtocol(String protocol);

	/**
	 * @param provider
	 *            The SSL provider name, which if set is passed to
	 *            {@link SSLContext#getInstance(String, String)}
	 */
	public void setProvider(String provider);

	/**
	 * @param algorithm
	 *            The algorithm name, which if set is passed to
	 *            {@link SecureRandom#getInstance(String)} to obtain the
	 *            {@link SecureRandom} instance passed to
	 *            {@link SSLContext#init(javax.net.ssl.KeyManager[], javax.net.ssl.TrustManager[], SecureRandom)}
	 */
	public void setSecureRandomAlgorithm(String algorithm);

	/**
	 * Set the flag to enable SSL Session caching.
	 * 
	 * @param enableSessionCaching
	 *            the value of the flag
	 */
	public void setSessionCachingEnabled(boolean enableSessionCaching);

	/**
	 * Set SSL session cache size.
	 * 
	 * @param sslSessionCacheSize
	 *            SSL session cache size to set
	 */
	public void setSslSessionCacheSize(int sslSessionCacheSize);

	/**
	 * Set SSL session timeout.
	 * 
	 * @param sslSessionTimeout
	 *            SSL session timeout to set
	 */
	public void setSslSessionTimeout(int sslSessionTimeout);

	/**
	 * @param trustAll
	 *            True if all certificates should be trusted if there is no
	 *            KeyStore or TrustStore
	 */
	public void setTrustAll(boolean trustAll);

	/**
	 * @param algorithm
	 *            The algorithm name (default "SunX509") used by the
	 *            {@link TrustManagerFactory} Use the string "TrustAll" to
	 *            install a trust manager that trusts all.
	 */
	public void setTrustManagerFactoryAlgorithm(String algorithm);

	/**
	 * @param password
	 *            The password for the trust store
	 */
	public void setTrustStorePassword(String password);

	/**
	 * @param trustStorePath
	 *            The file name or URL of the trust store location
	 */
	public void setTrustStorePath(String trustStorePath);

	/**
	 * @param trustStoreProvider
	 *            The provider of the trust store
	 */
	public void setTrustStoreProvider(String trustStoreProvider);

	/**
	 * @param trustStoreType
	 *            The type of the trust store (default "JKS")
	 */
	public void setTrustStoreType(String trustStoreType);

	/**
	 * @param validateCerts
	 *            true if SSL certificates have to be validated
	 */
	public void setValidateCerts(boolean validateCerts);

	/**
	 * @param validatePeerCerts
	 *            true if SSL certificates of the peer have to be validated
	 */
	public void setValidatePeerCerts(boolean validatePeerCerts);

	/**
	 * @param wantClientAuth
	 *            True if SSL wants client authentication.
	 */
	public void setWantClientAuth(boolean wantClientAuth);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy