## 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
`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. 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