Package net.i2p.crypto
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
-
Constructor Summary
Constructors Constructor Description CryptixAESEngine(I2PAppContext context)
-
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 keyvoid
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 providedvoid
encrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int length)
Encrypt the payload with the session keyvoid
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 keyMethods inherited from class net.i2p.crypto.AESEngine
getPadding, getPaddingSize, safeDecrypt, safeEncrypt
-
Constructor Details
-
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 classAESEngine
- Parameters:
iv
- must be 16 byteslength
- must be a multiple of 16payload
- data to be encryptedpayloadIndex
- index into the payload to start encryptingout
- where to store the resultoutIndex
- where in out to start writingsessionKey
- private esession key to encrypt to
-
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 classAESEngine
- Parameters:
iv
- must be 16 byteslength
- must be a multiple of 16payload
- data to be encryptedpayloadIndex
- index into the payload to start encryptingout
- where to store the resultoutIndex
- where in out to start writingsessionKey
- private esession key to encrypt to
-
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 classAESEngine
- Parameters:
iv
- 16 byteslength
- must be a multiple of 16 (will overrun to next mod 16 if not)payload
- data to be decryptedpayloadIndex
- index into the payload to start decryptingout
- where to store the cleartextoutIndex
- where in out to start writingsessionKey
- private session key to decrypt to
-
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 classAESEngine
- Parameters:
iv
- 16 bytes starting at ivOffsetlength
- must be a multiple of 16 (will overrun to next mod 16 if not)payload
- data to be decryptedpayloadIndex
- index into the payload to start decryptingout
- where to store the cleartextoutIndex
- where in out to start writingsessionKey
- private session key to decrypt to
-
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 classAESEngine
- Parameters:
payload
- plaintext data, 16 bytes starting at inIndexsessionKey
- private session keyout
- 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 classAESEngine
- Parameters:
payload
- encrypted data, 16 bytes starting at inIndexsessionKey
- private session keyrv
- out parameter, 16 bytes starting at outIndex
-