Logo Search packages:      
Sourcecode: jenkins-trilead-ssh2 version File versions  Download package

Public Member Functions | Package Attributes | Private Member Functions | Private Attributes | Static Private Attributes

com::trilead::ssh2::crypto::cipher::AES Class Reference

Inheritance diagram for com::trilead::ssh2::crypto::cipher::AES:
Inheritance graph
Collaboration diagram for com::trilead::ssh2::crypto::cipher::AES:
Collaboration graph

List of all members.

Public Member Functions

 AES ()
final String getAlgorithmName ()
final int getBlockSize ()
final void init (boolean forEncryption, byte[] key)
final int processBlock (byte[] in, int inOff, byte[] out, int outOff)
final void reset ()
void transformBlock (byte[] src, int srcoff, byte[] dst, int dstoff)

Package Attributes

int C1
int C2
int C3

Private Member Functions

final void decryptBlock (int[][] KW)
final void encryptBlock (int[][] KW)
final int FFmulX (int x)
final int[][] generateWorkingKey (byte[] key, boolean forEncryption)
final int inv_mcol (int x)
final void packBlock (byte[] bytes, int off)
final int shift (int r, int shift)
final int subWord (int x)
final void unpackBlock (byte[] bytes, int off)

Private Attributes

int C0
boolean doEncrypt
int[][] WorkingKey = null

Static Private Attributes

static final int BLOCK_SIZE = 16
static final int m1 = 0x80808080
static final int m2 = 0x7f7f7f7f
static final int m3 = 0x0000001b
static final int[] rcon
static final byte[] S
static final byte[] Si
static final int[] T0
static final int[] T1
static final int[] T2
static final int[] T3
static final int[] Tinv0
static final int[] Tinv1
static final int[] Tinv2
static final int[] Tinv3

Detailed Description

An implementation of the AES (Rijndael), from FIPS-197.

For further details see: http://csrc.nist.gov/encryption/aes/ .

This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at http://fp.gladman.plus.com/cryptography_technology/rijndael/

There are three levels of tradeoff of speed vs memory Because java has no preprocessor, they are written as three separate classes from which to choose

The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption and 4 for decryption.

The middle performance version uses only one 256 word table for each, for a total of 2Kbytes, adding 12 rotate operations per round to compute the values contained in the other tables from the contents of the first

The slowest version uses no static tables at all and computes the values in each round

This file contains the fast version with 8Kbytes of static tables for round precomputation

See comments in the source file
AES.java,v 1.1 2007/10/15 12:49:55 cplattne Exp

Definition at line 61 of file AES.java.

The documentation for this class was generated from the following file:

Generated by  Doxygen 1.6.0   Back to index