com.maverick.sshd.components.jce
Class JCEServerComponentManager

java.lang.Object
  extended by com.maverick.sshd.components.ServerComponentManager
      extended by com.maverick.sshd.components.jce.JCEServerComponentManager
All Implemented Interfaces:
com.maverick.ssh.components.jce.JCEAlgorithms

public class JCEServerComponentManager
extends ServerComponentManager
implements com.maverick.ssh.components.jce.JCEAlgorithms

A component manager for the Java runtime JCE provider. By default all algorithms will be selected from the default provider i.e no provider is specified in calls to JCE methods to create components. You can initialize a default provider to be used on all calls with the following code:

 JCEComponentManager.initializeDefaultProvider(new BouncyCastleProvider());
 
Alternatively you can also assign a specific provider for an individual algorithm, all algorithms used by the API are included as static constants in this class.
 JCEComponentManager.initializeProviderForAlgorithm(JCEComponentManager.JCE_DSA,
                new BouncyCastleProvider());
 

Author:
Lee David Painter

Field Summary
 
Fields inherited from interface com.maverick.ssh.components.jce.JCEAlgorithms
JCE_AESCBCNOPADDING, JCE_AESCTRNOPADDING, JCE_BLOWFISHCBCNOPADDING, JCE_DESCBCNOPADDING, JCE_DH, JCE_DSA, JCE_HMACMD5, JCE_HMACSHA1, JCE_MD5, JCE_RSA, JCE_RSANONEPKCS1PADDING, JCE_SHA1, JCE_SHA1PRNG, JCE_SHA1WithDSA, JCE_SHA1WithRSA, JCE_X509
 
Constructor Summary
JCEServerComponentManager()
           
 
Method Summary
 com.maverick.ssh.components.SshDsaPrivateKey createDsaPrivateKey(BigInteger p, BigInteger q, BigInteger g, BigInteger x, BigInteger y)
           
 com.maverick.ssh.components.SshDsaPublicKey createDsaPublicKey()
           
 com.maverick.ssh.components.SshDsaPublicKey createDsaPublicKey(BigInteger p, BigInteger q, BigInteger g, BigInteger y)
           
 com.maverick.ssh.components.SshRsaPrivateCrtKey createRsaPrivateCrtKey(BigInteger modulus, BigInteger publicExponent, BigInteger privateExponent, BigInteger primeP, BigInteger primeQ, BigInteger crtCoefficient)
           
 com.maverick.ssh.components.SshRsaPrivateCrtKey createRsaPrivateCrtKey(BigInteger modulus, BigInteger publicExponent, BigInteger privateExponent, BigInteger primeP, BigInteger primeQ, BigInteger primeExponentP, BigInteger primeExponentQ, BigInteger crtCoefficient)
           
 com.maverick.ssh.components.SshRsaPrivateKey createRsaPrivateKey(BigInteger modulus, BigInteger privateExponent)
           
 com.maverick.ssh.components.SshRsaPublicKey createRsaPublicKey(BigInteger modulus, BigInteger publicExponent, int version)
           
 com.maverick.ssh.components.SshRsaPublicKey createSsh2RsaPublicKey()
           
 com.maverick.ssh.components.SshKeyPair generateDsaKeyPair(int bits)
           
 com.maverick.ssh.components.SshKeyPair generateRsaKeyPair(int bits)
           
static Provider getProviderForAlgorithm(String jceAlgorithm)
          Get the provider for a specific algorithm.
 com.maverick.ssh.components.SshSecureRandomGenerator getRND()
           
static SecureRandom getSecureRandom()
          Get the secure random implementation for the API.
static String getSecureRandomAlgorithm()
          Get the algorithm used for secure random number generation.
static void initializeDefaultProvider(Provider provider)
          Initialize the default JCE provider used by the API.
protected  void initializeDigestFactory(com.maverick.ssh.components.ComponentFactory digests)
           
protected  void initializeHmacFactory(com.maverick.ssh.components.ComponentFactory hmacs)
           
protected  void initializeKeyExchangeFactory(com.maverick.ssh.components.ComponentFactory keyexchange)
           
static void initializeProviderForAlgorithm(String jceAlgorithm, Provider provider)
          Initialize a provider for a specific algorithm.
protected  void initializePublicKeyFactory(com.maverick.ssh.components.ComponentFactory publickeys)
           
protected  void initializeSsh2CipherFactory(com.maverick.ssh.components.ComponentFactory ciphers)
           
 void loadKeystore(File keystoreFile, String alias, String storePassphrase, String keyPassphrase, SshContext context)
          Load a keystore for use as an SSH host key.
static void setSecureRandomAlgorithm(String secureRandomAlgorithm)
          Set the algorithm used for secure random number generation.
 
Methods inherited from class com.maverick.sshd.components.ServerComponentManager
getInstance, init, setInstance, supportedDigests, supportedHMacsCS, supportedHMacsSC, supportedKeyExchanges, supportedPublicKeys, supportedSsh2CiphersCS, supportedSsh2CiphersSC
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JCEServerComponentManager

public JCEServerComponentManager()
Method Detail

initializeDefaultProvider

public static void initializeDefaultProvider(Provider provider)
Initialize the default JCE provider used by the API.

Parameters:
provider -

initializeProviderForAlgorithm

public static void initializeProviderForAlgorithm(String jceAlgorithm,
                                                  Provider provider)
Initialize a provider for a specific algorithm.

Parameters:
jceAlgorithm -
provider -

getSecureRandomAlgorithm

public static String getSecureRandomAlgorithm()
Get the algorithm used for secure random number generation.

Returns:
String

setSecureRandomAlgorithm

public static void setSecureRandomAlgorithm(String secureRandomAlgorithm)
Set the algorithm used for secure random number generation.

Parameters:
secureRandomAlgorithm -

getProviderForAlgorithm

public static Provider getProviderForAlgorithm(String jceAlgorithm)
Get the provider for a specific algorithm.

Parameters:
jceAlgorithm -
Returns:
Provider

getSecureRandom

public static SecureRandom getSecureRandom()
                                    throws NoSuchAlgorithmException
Get the secure random implementation for the API.

Returns:
SecureRandom
Throws:
NoSuchAlgorithmException

createDsaPrivateKey

public com.maverick.ssh.components.SshDsaPrivateKey createDsaPrivateKey(BigInteger p,
                                                                        BigInteger q,
                                                                        BigInteger g,
                                                                        BigInteger x,
                                                                        BigInteger y)
                                                                 throws com.maverick.ssh.SshException
Specified by:
createDsaPrivateKey in class ServerComponentManager
Throws:
com.maverick.ssh.SshException

createDsaPublicKey

public com.maverick.ssh.components.SshDsaPublicKey createDsaPublicKey(BigInteger p,
                                                                      BigInteger q,
                                                                      BigInteger g,
                                                                      BigInteger y)
                                                               throws com.maverick.ssh.SshException
Specified by:
createDsaPublicKey in class ServerComponentManager
Throws:
com.maverick.ssh.SshException

createDsaPublicKey

public com.maverick.ssh.components.SshDsaPublicKey createDsaPublicKey()
Specified by:
createDsaPublicKey in class ServerComponentManager

createRsaPrivateCrtKey

public com.maverick.ssh.components.SshRsaPrivateCrtKey createRsaPrivateCrtKey(BigInteger modulus,
                                                                              BigInteger publicExponent,
                                                                              BigInteger privateExponent,
                                                                              BigInteger primeP,
                                                                              BigInteger primeQ,
                                                                              BigInteger crtCoefficient)
                                                                       throws com.maverick.ssh.SshException
Specified by:
createRsaPrivateCrtKey in class ServerComponentManager
Throws:
com.maverick.ssh.SshException

createRsaPrivateCrtKey

public com.maverick.ssh.components.SshRsaPrivateCrtKey createRsaPrivateCrtKey(BigInteger modulus,
                                                                              BigInteger publicExponent,
                                                                              BigInteger privateExponent,
                                                                              BigInteger primeP,
                                                                              BigInteger primeQ,
                                                                              BigInteger primeExponentP,
                                                                              BigInteger primeExponentQ,
                                                                              BigInteger crtCoefficient)
                                                                       throws com.maverick.ssh.SshException
Specified by:
createRsaPrivateCrtKey in class ServerComponentManager
Throws:
com.maverick.ssh.SshException

createRsaPrivateKey

public com.maverick.ssh.components.SshRsaPrivateKey createRsaPrivateKey(BigInteger modulus,
                                                                        BigInteger privateExponent)
                                                                 throws com.maverick.ssh.SshException
Specified by:
createRsaPrivateKey in class ServerComponentManager
Throws:
com.maverick.ssh.SshException

createRsaPublicKey

public com.maverick.ssh.components.SshRsaPublicKey createRsaPublicKey(BigInteger modulus,
                                                                      BigInteger publicExponent,
                                                                      int version)
                                                               throws com.maverick.ssh.SshException
Specified by:
createRsaPublicKey in class ServerComponentManager
Throws:
com.maverick.ssh.SshException

createSsh2RsaPublicKey

public com.maverick.ssh.components.SshRsaPublicKey createSsh2RsaPublicKey()
                                                                   throws com.maverick.ssh.SshException
Specified by:
createSsh2RsaPublicKey in class ServerComponentManager
Throws:
com.maverick.ssh.SshException

generateDsaKeyPair

public com.maverick.ssh.components.SshKeyPair generateDsaKeyPair(int bits)
                                                          throws com.maverick.ssh.SshException
Specified by:
generateDsaKeyPair in class ServerComponentManager
Throws:
com.maverick.ssh.SshException

generateRsaKeyPair

public com.maverick.ssh.components.SshKeyPair generateRsaKeyPair(int bits)
                                                          throws com.maverick.ssh.SshException
Specified by:
generateRsaKeyPair in class ServerComponentManager
Throws:
com.maverick.ssh.SshException

getRND

public com.maverick.ssh.components.SshSecureRandomGenerator getRND()
                                                            throws com.maverick.ssh.SshException
Specified by:
getRND in class ServerComponentManager
Throws:
com.maverick.ssh.SshException

initializeDigestFactory

protected void initializeDigestFactory(com.maverick.ssh.components.ComponentFactory digests)
Specified by:
initializeDigestFactory in class ServerComponentManager

initializeHmacFactory

protected void initializeHmacFactory(com.maverick.ssh.components.ComponentFactory hmacs)
Specified by:
initializeHmacFactory in class ServerComponentManager

initializeKeyExchangeFactory

protected void initializeKeyExchangeFactory(com.maverick.ssh.components.ComponentFactory keyexchange)
Specified by:
initializeKeyExchangeFactory in class ServerComponentManager

initializePublicKeyFactory

protected void initializePublicKeyFactory(com.maverick.ssh.components.ComponentFactory publickeys)
Specified by:
initializePublicKeyFactory in class ServerComponentManager

initializeSsh2CipherFactory

protected void initializeSsh2CipherFactory(com.maverick.ssh.components.ComponentFactory ciphers)
Specified by:
initializeSsh2CipherFactory in class ServerComponentManager

loadKeystore

public void loadKeystore(File keystoreFile,
                         String alias,
                         String storePassphrase,
                         String keyPassphrase,
                         SshContext context)
                  throws IOException
Load a keystore for use as an SSH host key. This will create a public key using the X509V3_SIGN_RSA and X509V3_SIGN_RSA_SHA1 host key types. DSA keys are currently not supported.

Specified by:
loadKeystore in class ServerComponentManager
Parameters:
keystoreFile - path to the keystore file
alias - the alias of the key in the keystore
storePassphrase - the passphrase of the keystore
keyPassphrase - the passphrase of the key
Throws:
IOException


Copyright © 2012. All Rights Reserved.