/* * JBoss, Home of Professional Open Source. * Copyright 2008, Red Hat Middleware LLC, and individual contributors * as indicated by the @author tags. See the copyright.txt file in the * distribution for a full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.jboss.security.plugins; import java.io.IOException; import javax.management.ObjectName; import org.jboss.system.ServiceMBean; /** The JaasSecurityDomainMBean adds support for KeyStore management. @author Scott.Stark@jboss.org @author <a href="mailto:jasone@greenrivercomputing.com">Jason Essington</a> @version $Revision: 100045 $ */ public interface JaasSecurityDomainMBean extends ServiceMBean { /** KeyStore implementation type being used. @return the KeyStore implementation type being used. */ public String getKeyStoreType(); /** Set the type of KeyStore implementation to use. This is passed to the KeyStore.getInstance() factory method. */ public void setKeyStoreType(String type); /** Get the KeyStore database URL string. */ public String getKeyStoreURL(); /** Set the KeyStore database URL string. This is used to obtain an InputStream to initialize the KeyStore. */ public void setKeyStoreURL(String storeURL) throws IOException; /** Set the credential string for the KeyStore. */ public void setKeyStorePass(String password) throws Exception; /** Get the alias of the KeyStore. */ public String getKeyStoreAlias(); /** Set the alias of the KeyStore. */ public void setKeyStoreAlias(String alias); /** Get the type of the trust store * @return the type of the trust store */ public String getTrustStoreType(); /** Set the type of the trust store * @param type - the trust store implementation type */ public void setTrustStoreType(String type); /** Set the credential string for the trust store. */ public void setTrustStorePass(String password) throws Exception; /** Get the trust store database URL string. */ public String getTrustStoreURL(); /** Set the trust store database URL string. This is used to obtain an InputStream to initialize the trust store. */ public void setTrustStoreURL(String storeURL) throws IOException; /** Reload the key- and truststore */ public void reloadKeyAndTrustStore() throws Exception; /** The JMX object name string of the security manager service. @return The JMX object name string of the security manager service. */ public ObjectName getManagerServiceName(); /** Set the JMX object name string of the security manager service. */ public void setManagerServiceName(ObjectName jmxName); /** Set the salt used with PBE based on the keystore password. * @param salt - an 8 char randomization string */ public void setSalt(String salt); /** Set the iteration count used with PBE based on the keystore password. * @param count - an iteration count randomization value */ public void setIterationCount(int count); /** Encode a secret using the keystore password and PBEwithMD5andDES algo * @param secret - the byte sequence to encrypt * @return the encrypted byte sequence * @throws Exception */ public byte[] encode(byte[] secret) throws Exception; /** Decode a secret using the keystore password and PBEwithMD5andDES algo * @param secret - the byte sequence to decrypt * @return the decrypted byte sequence * @throws Exception */ public byte[] decode(byte[] secret) throws Exception; /** Encode a secret using the keystore password and PBEwithMD5andDES algo * @param secret - the byte sequence to encrypt as a base64 string using * the Util.tob64() function * @return the encrypted byte sequence * @throws Exception */ public String encode64(byte[] secret) throws Exception; /** Decode a secret using the keystore password and PBEwithMD5andDES algo * @param secret - the Util.tob64 string represention to decrypt * @return the decrypted byte sequence * @throws Exception */ public byte[] decode64(String secret) throws Exception; /** * Returns the KeyStore provider * @return provider of the KeyStore */ public String getKeyStoreProvider(); /** * Sets the KeyStore provider * @param provider provider name of the KeyStore */ public void setKeyStoreProvider(String provider); /** * Returns the KeyManagerFactory provider * @return provider of the KeyManagerFactory */ public String getKeyManagerFactoryProvider(); /** * Sets the KeyManagerFactory provider * @param provider provider name of the KeyManagerFactory */ public void setKeyManagerFactoryProvider(String provider); /** * Returns the TrustStore provider * @return provider of the TrustStore */ public String getTrustStoreProvider(); /** * Sets the TrustStore provider * @param provider provider name of the TrustStore */ public void setTrustStoreProvider(String provider); /** * Returns the TrustManagerFactory provider * @return provider of the TrustManagerFactory */ public String getTrustManagerFactoryProvider(); /** * Sets the TrustManagerFactory provider * @param provider provider name of the TrustManagerFactory */ public void setTrustManagerFactoryProvider(String provider); /** * Returns the KeyManagerFactory algorithm * @return algorithm of the KeyManagerFactory */ public String getKeyManagerFactoryAlgorithm(); /** * Sets the KeyManagerFactory algorithm * @param algorithm algorithm of the KeyManagerFactory */ public void setKeyManagerFactoryAlgorithm(String algorithm); /** * Returns the TrustManagerFactory algorithm * @return algorithm of the TrustManagerFactory */ public String getTrustManagerFactoryAlgorithm(); /** * Sets the TrustManagerFactory algorithm * @param algorithm algorithm of the TrustManagerFactory */ public void setTrustManagerFactoryAlgorithm(String algorithm); /** * Returns the argument for the KeyStore provider constructor * @return argument for the KeyStore provider */ public String getKeyStoreProviderArgument(); /** * Sets the argument for the KeyStore provider constructor * @param argument for the KeyStore provider */ public void setKeyStoreProviderArgument(String argument); /** * Returns the argument for the TrustStore provider constructor * @return argument for the TrustStore provider */ public String getTrustStoreProviderArgument(); /** * Sets the argument for the TrustStore provider constructor * @param argument for the TrustStore provider */ public void setTrustStoreProviderArgument(String argument); }