com.maverick.ssh.components.jce
Class JCEComponentManager

java.lang.Object
  extended bycom.maverick.ssh.components.ComponentManager
      extended bycom.maverick.ssh.components.jce.JCEComponentManager
All Implemented Interfaces:
JCEAlgorithms

public class JCEComponentManager
extends ComponentManager
implements 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_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
JCEComponentManager()
           
 
Method Summary
 SshDsaPrivateKey createDsaPrivateKey(java.math.BigInteger p, java.math.BigInteger q, java.math.BigInteger g, java.math.BigInteger x, java.math.BigInteger y)
          Create an instance of a DSA private key.
 SshDsaPublicKey createDsaPublicKey()
          Create an uninitialized instance of a DSA public key
 SshDsaPublicKey createDsaPublicKey(java.math.BigInteger p, java.math.BigInteger q, java.math.BigInteger g, java.math.BigInteger y)
          Create an instance of a DSA public key.
 SshRsaPrivateCrtKey createRsaPrivateCrtKey(java.math.BigInteger modulus, java.math.BigInteger publicExponent, java.math.BigInteger privateExponent, java.math.BigInteger primeP, java.math.BigInteger primeQ, java.math.BigInteger crtCoefficient)
          Create an instance of an RSA co-effecient private key.
 SshRsaPrivateCrtKey createRsaPrivateCrtKey(java.math.BigInteger modulus, java.math.BigInteger publicExponent, java.math.BigInteger privateExponent, java.math.BigInteger primeP, java.math.BigInteger primeQ, java.math.BigInteger primeExponentP, java.math.BigInteger primeExponentQ, java.math.BigInteger crtCoefficient)
          Create an instance of an RSA co-efficent private key.
 SshRsaPrivateKey createRsaPrivateKey(java.math.BigInteger modulus, java.math.BigInteger privateExponent)
          Create an instance of an RSA private key.
 SshRsaPublicKey createRsaPublicKey(java.math.BigInteger modulus, java.math.BigInteger publicExponent, int version)
          Create an instance of an RSA public key.
 SshRsaPublicKey createSsh2RsaPublicKey()
          Create an instance of an SSH2 RSA public key.
 SshKeyPair generateDsaKeyPair(int bits)
          Generate a new DSA public/private key pair.
 SshKeyPair generateRsaKeyPair(int bits, int version)
          Generate an RSA public/private pair.
static java.security.Provider getProviderForAlgorithm(java.lang.String jceAlgorithm)
          Get the provider for a specific algorithm.
 SshSecureRandomGenerator getRND()
          Get the secure random number generator.
static java.security.SecureRandom getSecureRandom()
          Get the secure random implementation for the API.
static java.lang.String getSecureRandomAlgorithm()
          Get the algorithm used for secure random number generation.
static void initializeDefaultProvider(java.security.Provider provider)
          Initialize the default JCE provider used by the API.
protected  void initializeDigestFactory(ComponentFactory digests)
          Initialize the digest factory.
protected  void initializeHmacFactory(ComponentFactory hmacs)
          Initialize the SSH2 HMAC factory.
protected  void initializeKeyExchangeFactory(ComponentFactory keyexchange)
          Initialize the SSH2 key exchange factory.
static void initializeProviderForAlgorithm(java.lang.String jceAlgorithm, java.security.Provider provider)
          Initialize a provider for a specific algorithm.
protected  void initializePublicKeyFactory(ComponentFactory publickeys)
          Initialize the public key factory.
protected  void initializeSsh1CipherFactory(ComponentFactory ciphers)
          Initialize the SSH1 cipher factory.
protected  void initializeSsh2CipherFactory(ComponentFactory ciphers)
          Initialize the SSH2 cipher factory.
static void setSecureRandomAlgorithm(java.lang.String secureRandomAlgorithm)
          Set the algorithm used for secure random number generation.
 
Methods inherited from class com.maverick.ssh.components.ComponentManager
getInstance, getPerContextAlgorithmPreferences, init, setInstance, setPerContextAlgorithmPreferences, supportedDigests, supportedHMacsCS, supportedHMacsSC, supportedKeyExchanges, supportedPublicKeys, supportedSsh1CiphersCS, supportedSsh1CiphersSC, supportedSsh2CiphersCS, supportedSsh2CiphersSC
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JCEComponentManager

public JCEComponentManager()
Method Detail

initializeDefaultProvider

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

Parameters:
provider -

initializeProviderForAlgorithm

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

Parameters:
jceAlgorithm -
provider -

getSecureRandomAlgorithm

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

Returns:
String

setSecureRandomAlgorithm

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

Parameters:
secureRandomAlgorithm -

getProviderForAlgorithm

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

Parameters:
jceAlgorithm -
Returns:
Provider

getSecureRandom

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

Returns:
SecureRandom
Throws:
java.security.NoSuchAlgorithmException

createDsaPrivateKey

public SshDsaPrivateKey createDsaPrivateKey(java.math.BigInteger p,
                                            java.math.BigInteger q,
                                            java.math.BigInteger g,
                                            java.math.BigInteger x,
                                            java.math.BigInteger y)
                                     throws SshException
Description copied from class: ComponentManager
Create an instance of a DSA private key.

Specified by:
createDsaPrivateKey in class ComponentManager
Parameters:
p -
q -
g -
x -
y -
Returns:
SshDsaPrivateKey
Throws:
SshException

createDsaPublicKey

public SshDsaPublicKey createDsaPublicKey(java.math.BigInteger p,
                                          java.math.BigInteger q,
                                          java.math.BigInteger g,
                                          java.math.BigInteger y)
                                   throws SshException
Description copied from class: ComponentManager
Create an instance of a DSA public key.

Specified by:
createDsaPublicKey in class ComponentManager
Parameters:
p -
q -
g -
y -
Returns:
SshDsaPublicKey
Throws:
SshException

createDsaPublicKey

public SshDsaPublicKey createDsaPublicKey()
Description copied from class: ComponentManager
Create an uninitialized instance of a DSA public key

Specified by:
createDsaPublicKey in class ComponentManager
Returns:
SshDsaPublicKey

createRsaPrivateCrtKey

public SshRsaPrivateCrtKey createRsaPrivateCrtKey(java.math.BigInteger modulus,
                                                  java.math.BigInteger publicExponent,
                                                  java.math.BigInteger privateExponent,
                                                  java.math.BigInteger primeP,
                                                  java.math.BigInteger primeQ,
                                                  java.math.BigInteger crtCoefficient)
                                           throws SshException
Description copied from class: ComponentManager
Create an instance of an RSA co-effecient private key.

Specified by:
createRsaPrivateCrtKey in class ComponentManager
Parameters:
modulus -
publicExponent -
privateExponent -
primeP -
primeQ -
crtCoefficient -
Returns:
SshRsaPrivateCrtKey
Throws:
SshException

createRsaPrivateCrtKey

public SshRsaPrivateCrtKey createRsaPrivateCrtKey(java.math.BigInteger modulus,
                                                  java.math.BigInteger publicExponent,
                                                  java.math.BigInteger privateExponent,
                                                  java.math.BigInteger primeP,
                                                  java.math.BigInteger primeQ,
                                                  java.math.BigInteger primeExponentP,
                                                  java.math.BigInteger primeExponentQ,
                                                  java.math.BigInteger crtCoefficient)
                                           throws SshException
Description copied from class: ComponentManager
Create an instance of an RSA co-efficent private key.

Specified by:
createRsaPrivateCrtKey in class ComponentManager
Parameters:
modulus -
publicExponent -
privateExponent -
primeP -
primeQ -
primeExponentP -
primeExponentQ -
crtCoefficient -
Returns:
SshRsaPrivateCrtKey
Throws:
SshException

createRsaPrivateKey

public SshRsaPrivateKey createRsaPrivateKey(java.math.BigInteger modulus,
                                            java.math.BigInteger privateExponent)
                                     throws SshException
Description copied from class: ComponentManager
Create an instance of an RSA private key.

Specified by:
createRsaPrivateKey in class ComponentManager
Parameters:
modulus -
privateExponent -
Returns:
SshRsaPrivateKey
Throws:
SshException

createRsaPublicKey

public SshRsaPublicKey createRsaPublicKey(java.math.BigInteger modulus,
                                          java.math.BigInteger publicExponent,
                                          int version)
                                   throws SshException
Description copied from class: ComponentManager
Create an instance of an RSA public key.

Specified by:
createRsaPublicKey in class ComponentManager
Parameters:
modulus -
publicExponent -
version -
Returns:
SshRsaPublicKey
Throws:
SshException

createSsh2RsaPublicKey

public SshRsaPublicKey createSsh2RsaPublicKey()
                                       throws SshException
Description copied from class: ComponentManager
Create an instance of an SSH2 RSA public key.

Specified by:
createSsh2RsaPublicKey in class ComponentManager
Returns:
SshRsaPublicKey
Throws:
SshException

generateDsaKeyPair

public SshKeyPair generateDsaKeyPair(int bits)
                              throws SshException
Description copied from class: ComponentManager
Generate a new DSA public/private key pair.

Specified by:
generateDsaKeyPair in class ComponentManager
Parameters:
bits -
Returns:
SshKeyPair
Throws:
SshException

generateRsaKeyPair

public SshKeyPair generateRsaKeyPair(int bits,
                                     int version)
                              throws SshException
Description copied from class: ComponentManager
Generate an RSA public/private pair.

Specified by:
generateRsaKeyPair in class ComponentManager
Parameters:
bits -
version -
Returns:
SshKeyPair
Throws:
SshException

getRND

public SshSecureRandomGenerator getRND()
                                throws SshException
Description copied from class: ComponentManager
Get the secure random number generator.

Specified by:
getRND in class ComponentManager
Returns:
SshSecureRandomGenerator
Throws:
SshException

initializeDigestFactory

protected void initializeDigestFactory(ComponentFactory digests)
Description copied from class: ComponentManager
Initialize the digest factory.

Specified by:
initializeDigestFactory in class ComponentManager
Parameters:
digests -

initializeHmacFactory

protected void initializeHmacFactory(ComponentFactory hmacs)
Description copied from class: ComponentManager
Initialize the SSH2 HMAC factory.

Specified by:
initializeHmacFactory in class ComponentManager
Parameters:
hmacs -

initializeKeyExchangeFactory

protected void initializeKeyExchangeFactory(ComponentFactory keyexchange)
Description copied from class: ComponentManager
Initialize the SSH2 key exchange factory.

Specified by:
initializeKeyExchangeFactory in class ComponentManager
Parameters:
keyexchange -

initializePublicKeyFactory

protected void initializePublicKeyFactory(ComponentFactory publickeys)
Description copied from class: ComponentManager
Initialize the public key factory.

Specified by:
initializePublicKeyFactory in class ComponentManager
Parameters:
publickeys -

initializeSsh1CipherFactory

protected void initializeSsh1CipherFactory(ComponentFactory ciphers)
Description copied from class: ComponentManager
Initialize the SSH1 cipher factory. These ciphers are exclusively used by the SSH1 implementation.

Specified by:
initializeSsh1CipherFactory in class ComponentManager
Parameters:
ciphers -

initializeSsh2CipherFactory

protected void initializeSsh2CipherFactory(ComponentFactory ciphers)
Description copied from class: ComponentManager
Initialize the SSH2 cipher factory. These ciphers are exclusively used by the SSH2 implementation.

Specified by:
initializeSsh2CipherFactory in class ComponentManager
Parameters:
ciphers -


Copyright © 2003 3SP LTD. All Rights Reserved.