Secure iNet Factory

com.jscape.inet.ssh.transport
Class AlgorithmFactory

java.lang.Object
  extended by com.jscape.inet.ssh.transport.AlgorithmFactory

public class AlgorithmFactory
extends java.lang.Object

Author:
Alex Usun

Nested Class Summary
static class AlgorithmFactory.CipherEntry
          The cipher entry.
static class AlgorithmFactory.CompressionEntry
           
static class AlgorithmFactory.KexEntry
           
static class AlgorithmFactory.KeyFormatEntry
           
static class AlgorithmFactory.MacEntry
          The MAC entry.
 
Constructor Summary
AlgorithmFactory(java.lang.String provider, java.util.List<AlgorithmFactory.KexEntry> kexes, java.util.List<AlgorithmFactory.CipherEntry> ciphers, java.util.List<AlgorithmFactory.MacEntry> macs, java.util.List<AlgorithmFactory.CompressionEntry> compressions, java.util.List<AlgorithmFactory.KeyFormatEntry> keyFormats, java.util.List<java.lang.String> languages)
           
 
Method Summary
 void addCipher(java.lang.String sshName, java.lang.String jceName, int keyLength)
          Adds a cipher entry.
 void addCompression(java.lang.String sshName, java.lang.Class compressionClass)
           
 void addKeyExchange(java.lang.String sshName, java.lang.Class kexClass)
           
 void addKeyFormat(java.lang.String sshName, java.lang.String jceName, java.lang.Class formatClass)
           
 void addLanguage(java.lang.String language)
           
 void addMac(java.lang.String sshName, java.lang.String jceName, int keyLength)
           
 SshNameList allCiphers()
          Returns all registered ciphers.
 SshNameList allCompressions()
           
 SshNameList allKeyExchanges()
           
 SshNameList allKeyFormats()
           
 SshNameList allLanguages()
           
 javax.crypto.Cipher cipherFor(java.lang.String sshName, byte[] keyData, byte[] ivData, int mode)
          Creates a cipher for the specified parameetrs.
 Compression compressionFor(java.lang.String sshName, int mode)
           
 boolean containsCipher(java.lang.String sshName)
          Checks if the cipher is known by the factory.
 boolean containsCompression(java.lang.String sshName)
           
 boolean containsKeyExchange(java.lang.String sshName)
           
 boolean containsKeyFormat(java.lang.String sshName)
           
 boolean containsLanguage(java.lang.String lang)
           
 boolean containsMac(java.lang.String sshName)
           
 com.jscape.inet.ssh.transport.messages.SshMsgKexInit createInitMessage()
           
static AlgorithmFactory defaultFactory()
           
static AlgorithmFactory defaultFactoryFor(java.lang.String provider)
           
 SshNameList getAllMacs()
           
 int getCipherBlockLength(java.lang.String sshName)
          Returns the cipher block length.
 int getCipherKeyLength(java.lang.String sshName)
          Returns the cipher key length.
 KeyExchange getKeyExchange(java.lang.String sshName, Transport transport)
           
 java.lang.String getPreferredCipher()
          Returns the current preferred cipher name.
 java.lang.String getPreferredCompression()
           
 java.lang.String getPreferredFormat()
           
 java.lang.String getPreferredKeyExchange()
           
 java.lang.String getPreferredLanguage()
           
 java.lang.String getPreferredMac()
           
 KeyFormat keyFormatFor(java.lang.String sshName)
           
 KeyFormat keyFormatForJceName(java.lang.String jceName)
           
 javax.crypto.Mac macFor(java.lang.String sshName, byte[] keyData)
           
 int macKeyLength(java.lang.String sshName)
           
 void removeCipher(java.lang.String sshName)
          Removes the cipher entry.
 void removeCompression(java.lang.String sshName)
           
 void removeKeyExchange(java.lang.String sshName)
           
 void removeKeyFormat(java.lang.String sshName)
           
 void removeLanguage(java.lang.String lang)
           
 void removeMac(java.lang.String sshName)
           
 void setPreferredCipher(java.lang.String sshName)
          Sets the preferred cipher name.
 void setPreferredCompression(java.lang.String sshName)
           
 void setPreferredKeyExchange(java.lang.String sshName)
           
 void setPreferredKeyFormat(java.lang.String sshName)
           
 void setPreferredLanguage(java.lang.String language)
           
 void setPreferredMac(java.lang.String sshName)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AlgorithmFactory

public AlgorithmFactory(java.lang.String provider,
                        java.util.List<AlgorithmFactory.KexEntry> kexes,
                        java.util.List<AlgorithmFactory.CipherEntry> ciphers,
                        java.util.List<AlgorithmFactory.MacEntry> macs,
                        java.util.List<AlgorithmFactory.CompressionEntry> compressions,
                        java.util.List<AlgorithmFactory.KeyFormatEntry> keyFormats,
                        java.util.List<java.lang.String> languages)
Method Detail

defaultFactoryFor

public static AlgorithmFactory defaultFactoryFor(java.lang.String provider)

defaultFactory

public static AlgorithmFactory defaultFactory()

addKeyExchange

public void addKeyExchange(java.lang.String sshName,
                           java.lang.Class kexClass)

removeKeyExchange

public void removeKeyExchange(java.lang.String sshName)

containsKeyExchange

public boolean containsKeyExchange(java.lang.String sshName)

getKeyExchange

public KeyExchange getKeyExchange(java.lang.String sshName,
                                  Transport transport)
                           throws TransportException
Throws:
TransportException

getPreferredKeyExchange

public java.lang.String getPreferredKeyExchange()

setPreferredKeyExchange

public void setPreferredKeyExchange(java.lang.String sshName)

allKeyExchanges

public SshNameList allKeyExchanges()

addCipher

public void addCipher(java.lang.String sshName,
                      java.lang.String jceName,
                      int keyLength)
Adds a cipher entry.

Parameters:
sshName - the SSH cipher name
jceName - the JCE cipher name
keyLength - the algorithm key length

removeCipher

public void removeCipher(java.lang.String sshName)
Removes the cipher entry.

Parameters:
sshName - the SSH cipher name

containsCipher

public boolean containsCipher(java.lang.String sshName)
Checks if the cipher is known by the factory.

Parameters:
sshName - the SSH cipher name
Returns:
true if the factory contains cipher; false otherwise

cipherFor

public javax.crypto.Cipher cipherFor(java.lang.String sshName,
                                     byte[] keyData,
                                     byte[] ivData,
                                     int mode)
                              throws TransportException
Creates a cipher for the specified parameetrs.

Parameters:
sshName - the SSH cipher name
keyData - the key data
ivData - the IV data
mode - the cipher mode
Returns:
the cipher
Throws:
TransportException - if an error occurs

getCipherKeyLength

public int getCipherKeyLength(java.lang.String sshName)
Returns the cipher key length.

Parameters:
sshName - the SSH cipher name
Returns:
the cipher key length in bytes

getCipherBlockLength

public int getCipherBlockLength(java.lang.String sshName)
Returns the cipher block length.

Parameters:
sshName - the SSH cipher name
Returns:
the cipher block length in bytes

getPreferredCipher

public java.lang.String getPreferredCipher()
Returns the current preferred cipher name.

Returns:
the preferred cipher name

setPreferredCipher

public void setPreferredCipher(java.lang.String sshName)
Sets the preferred cipher name.

Parameters:
sshName - the cipher name

allCiphers

public SshNameList allCiphers()
Returns all registered ciphers.

Returns:
all registered ciphers

addMac

public void addMac(java.lang.String sshName,
                   java.lang.String jceName,
                   int keyLength)

removeMac

public void removeMac(java.lang.String sshName)

containsMac

public boolean containsMac(java.lang.String sshName)

macFor

public javax.crypto.Mac macFor(java.lang.String sshName,
                               byte[] keyData)
                        throws TransportException
Throws:
TransportException

macKeyLength

public int macKeyLength(java.lang.String sshName)

getPreferredMac

public java.lang.String getPreferredMac()

setPreferredMac

public void setPreferredMac(java.lang.String sshName)

getAllMacs

public SshNameList getAllMacs()

addCompression

public void addCompression(java.lang.String sshName,
                           java.lang.Class compressionClass)

removeCompression

public void removeCompression(java.lang.String sshName)

containsCompression

public boolean containsCompression(java.lang.String sshName)

compressionFor

public Compression compressionFor(java.lang.String sshName,
                                  int mode)
                           throws TransportException
Throws:
TransportException

getPreferredCompression

public java.lang.String getPreferredCompression()

setPreferredCompression

public void setPreferredCompression(java.lang.String sshName)
Parameters:
sshName -

allCompressions

public SshNameList allCompressions()

addKeyFormat

public void addKeyFormat(java.lang.String sshName,
                         java.lang.String jceName,
                         java.lang.Class formatClass)

removeKeyFormat

public void removeKeyFormat(java.lang.String sshName)

containsKeyFormat

public boolean containsKeyFormat(java.lang.String sshName)

keyFormatFor

public KeyFormat keyFormatFor(java.lang.String sshName)
                       throws TransportException
Throws:
TransportException

keyFormatForJceName

public KeyFormat keyFormatForJceName(java.lang.String jceName)
                              throws TransportException
Throws:
TransportException

setPreferredKeyFormat

public void setPreferredKeyFormat(java.lang.String sshName)

getPreferredFormat

public java.lang.String getPreferredFormat()

allKeyFormats

public SshNameList allKeyFormats()

addLanguage

public void addLanguage(java.lang.String language)

removeLanguage

public void removeLanguage(java.lang.String lang)

containsLanguage

public boolean containsLanguage(java.lang.String lang)

getPreferredLanguage

public java.lang.String getPreferredLanguage()

setPreferredLanguage

public void setPreferredLanguage(java.lang.String language)

allLanguages

public SshNameList allLanguages()

createInitMessage

public com.jscape.inet.ssh.transport.messages.SshMsgKexInit createInitMessage()

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

Secure iNet Factory

Copyright © JSCAPE LLC. 1999-2011. All Rights Reserved