net.i2p.crypto
Class CryptixAESEngine

java.lang.Object
  extended by net.i2p.crypto.AESEngine
      extended by net.i2p.crypto.CryptixAESEngine

public class CryptixAESEngine
extends AESEngine

Wrapper for AES cypher operation using Cryptix's Rijndael implementation. Implements CBC with a 16 byte IV. Problems: Only supports data of size mod 16 bytes - no inherent padding.

Author:
jrandom, thecrypto

Constructor Summary
CryptixAESEngine(I2PAppContext context)
           
 
Method Summary
 void decrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int length)
          Decrypt the data with the session key
 void decrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int ivOffset, int length)
          Decrypt the data with the session key
 void decryptBlock(byte[] payload, int inIndex, SessionKey sessionKey, byte[] rv, int outIndex)
          decrypt exactly 16 bytes of data with the session key provided
 void encrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int length)
          Encrypt the payload with the session key
 void encrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int ivOffset, int length)
          Encrypt the payload with the session key
 void encryptBlock(byte[] payload, int inIndex, SessionKey sessionKey, byte[] out, int outIndex)
          encrypt exactly 16 bytes using the session key
 
Methods inherited from class net.i2p.crypto.AESEngine
safeDecrypt, safeEncrypt
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CryptixAESEngine

public CryptixAESEngine(I2PAppContext context)
Method Detail

encrypt

public void encrypt(byte[] payload,
                    int payloadIndex,
                    byte[] out,
                    int outIndex,
                    SessionKey sessionKey,
                    byte[] iv,
                    int length)
Description copied from class: AESEngine
Encrypt the payload with the session key

Overrides:
encrypt in class AESEngine
Parameters:
length - must be a multiple of 16
payload - data to be encrypted
payloadIndex - index into the payload to start encrypting
out - where to store the result
outIndex - where in out to start writing
sessionKey - private esession key to encrypt to
iv - IV for CBC

encrypt

public void encrypt(byte[] payload,
                    int payloadIndex,
                    byte[] out,
                    int outIndex,
                    SessionKey sessionKey,
                    byte[] iv,
                    int ivOffset,
                    int length)
Description copied from class: AESEngine
Encrypt the payload with the session key

Overrides:
encrypt in class AESEngine
Parameters:
length - must be a multiple of 16
payload - data to be encrypted
payloadIndex - index into the payload to start encrypting
out - where to store the result
outIndex - where in out to start writing
sessionKey - private esession key to encrypt to
iv - IV for CBC

decrypt

public void decrypt(byte[] payload,
                    int payloadIndex,
                    byte[] out,
                    int outIndex,
                    SessionKey sessionKey,
                    byte[] iv,
                    int length)
Description copied from class: AESEngine
Decrypt the data with the session key

Overrides:
decrypt in class AESEngine
Parameters:
payload - data to be decrypted
payloadIndex - index into the payload to start decrypting
out - where to store the cleartext
outIndex - where in out to start writing
sessionKey - private session key to decrypt to
iv - IV for CBC
length - how much data to decrypt

decrypt

public void decrypt(byte[] payload,
                    int payloadIndex,
                    byte[] out,
                    int outIndex,
                    SessionKey sessionKey,
                    byte[] iv,
                    int ivOffset,
                    int length)
Description copied from class: AESEngine
Decrypt the data with the session key

Overrides:
decrypt in class AESEngine
Parameters:
payload - data to be decrypted
payloadIndex - index into the payload to start decrypting
out - where to store the cleartext
outIndex - where in out to start writing
sessionKey - private session key to decrypt to
iv - IV for CBC
length - how much data to decrypt

encryptBlock

public final void encryptBlock(byte[] payload,
                               int inIndex,
                               SessionKey sessionKey,
                               byte[] out,
                               int outIndex)
encrypt exactly 16 bytes using the session key

Overrides:
encryptBlock in class AESEngine
sessionKey - unused

decryptBlock

public final void decryptBlock(byte[] payload,
                               int inIndex,
                               SessionKey sessionKey,
                               byte[] rv,
                               int outIndex)
decrypt exactly 16 bytes of data with the session key provided

Overrides:
decryptBlock in class AESEngine
Parameters:
payload - encrypted data
sessionKey - private session key