net.i2p.crypto

## Class CryptixAESEngine

- java.lang.Object
- - net.i2p.crypto.AESEngine
  - - 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

### Field Summary

### Fields inherited from class net.i2p.crypto.AESEngine

`_context, _log`

### Constructor Summary

Constructors
Constructor and Description
`CryptixAESEngine(I2PAppContext context)`

### Method Summary

Methods
`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. This just copies payload to out, see extension for the real thing.

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. This just copies payload to out, see extension for the real thing.

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