Class CryptixAESEngine

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

public final 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
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    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.
    final 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.
    final 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

    getPadding, getPaddingSize, safeDecrypt, safeEncrypt

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • CryptixAESEngine

      public CryptixAESEngine(I2PAppContext context)
  • Method Details

    • 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:
      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 - must be 16 bytes
      length - must be a multiple of 16
    • 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:
      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 - must be 16 bytes
      length - must be a multiple of 16
    • 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 - 16 bytes
      length - must be a multiple of 16 (will overrun to next mod 16 if not)
    • 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 - 16 bytes starting at ivOffset
      length - must be a multiple of 16 (will overrun to next mod 16 if not)
    • 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
      Parameters:
      payload - plaintext data, 16 bytes starting at inIndex
      sessionKey - private session key
      out - out parameter, 16 bytes starting at outIndex
    • 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, 16 bytes starting at inIndex
      sessionKey - private session key
      rv - out parameter, 16 bytes starting at outIndex