com.maverick.ssh.components
Class SshCipher

java.lang.Object
  extended by com.maverick.ssh.components.SshCipher
All Implemented Interfaces:
SshComponent
Direct Known Subclasses:
AbstractJCECipher, NoneCipher, Ssh1Des3

public abstract class SshCipher
extends Object
implements SshComponent

Base class for all SSH protocol ciphers. The cipher itself has 2 modes, encryption or decrpytion. The same method is used to transporm the data depending upon the mode.

Author:
Lee David Painter

Field Summary
static int DECRYPT_MODE
          Decryption mode.
static int ENCRYPT_MODE
          Encryption mode.
 
Constructor Summary
SshCipher(String algorithm)
           
 
Method Summary
abstract  int getBlockSize()
          Get the cipher block size.
 String getName()
           
abstract  void init(int mode, byte[] iv, byte[] keydata)
          Initialize the cipher with up to 40 bytes of iv and key data.
 void transform(byte[] data)
          Transform the byte array according to the cipher mode.
abstract  void transform(byte[] src, int start, byte[] dest, int offset, int len)
          Transform the byte array according to the cipher mode; it is legal for the source and destination arrays to reference the same physical array so care should be taken in the transformation process to safeguard this rule.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ENCRYPT_MODE

public static final int ENCRYPT_MODE
Encryption mode.

See Also:
Constant Field Values

DECRYPT_MODE

public static final int DECRYPT_MODE
Decryption mode.

See Also:
Constant Field Values
Constructor Detail

SshCipher

public SshCipher(String algorithm)
Method Detail

getName

public String getName()
Specified by:
getName in interface SshComponent

getBlockSize

public abstract int getBlockSize()
Get the cipher block size.

Returns:
the block size in bytes.

init

public abstract void init(int mode,
                          byte[] iv,
                          byte[] keydata)
                   throws IOException
Initialize the cipher with up to 40 bytes of iv and key data. Each implementation should take as much data from the initialization as it needs ignoring any data that it does not require.

Parameters:
mode - the mode to operate
iv - the initiaization vector
keydata - the key data
Throws:
IOException

transform

public void transform(byte[] data)
               throws IOException
Transform the byte array according to the cipher mode.

Parameters:
data -
Throws:
IOException

transform

public abstract void transform(byte[] src,
                               int start,
                               byte[] dest,
                               int offset,
                               int len)
                        throws IOException
Transform the byte array according to the cipher mode; it is legal for the source and destination arrays to reference the same physical array so care should be taken in the transformation process to safeguard this rule.

Parameters:
src -
start -
dest -
offset -
len -
Throws:
IOException


Copyright © 2013. All Rights Reserved.