Package net.i2p.crypto
Class CryptixRijndael_Algorithm
- java.lang.Object
- 
- net.i2p.crypto.CryptixRijndael_Algorithm
 
- 
 public final class CryptixRijndael_Algorithm extends Object Rijndael --pronounced Reindaal-- is a variable block-size (128-, 192- and 256-bit), variable key-size (128-, 192- and 256-bit) symmetric cipher.Rijndael was written by Vincent Rijmen and Joan Daemen. Portions of this code are Copyright © 1997, 1998 Systemics Ltd on behalf of the Cryptix Development Team. 
 All rights reserved.- Author:
- Raif S. Naffah, Paulo S. L. M. Barreto License is apparently available from http://www.cryptix.org/docs/license.html
 
- 
- 
Constructor SummaryConstructors Constructor Description CryptixRijndael_Algorithm()
 - 
Method SummaryAll Methods Static Methods Concrete Methods Modifier and Type Method Description static voidblockDecrypt(byte[] in, byte[] result, int inOffset, int outOffset, Object sessionKey)Convenience method to decrypt exactly one block of plaintext, assuming Rijndael's default block size (128-bit).static voidblockDecrypt(byte[] in, byte[] result, int inOffset, int outOffset, Object sessionKey, int blockSize)Decrypt exactly one block of ciphertext.static voidblockEncrypt(byte[] in, byte[] result, int inOffset, int outOffset, Object sessionKey)Convenience method to encrypt exactly one block of plaintext, assuming Rijndael's default block size (128-bit).static voidblockEncrypt(byte[] in, byte[] result, int inOffset, int outOffset, Object sessionKey, int blockSize)Encrypt exactly one block of plaintext.static intblockSize()static intgetRounds(int keySize, int blockSize)Return The number of rounds for a given Rijndael's key and block sizes.static ObjectmakeKey(byte[] k)Convenience method to expand a user-supplied key material into a session key, assuming Rijndael's default block size (128-bit).static ObjectmakeKey(byte[] k, int blockSize)Expand a user-supplied key material into a session key.static ObjectmakeKey(byte[] k, int blockSize, CryptixAESKeyCache.KeyCacheEntry keyData)Expand a user-supplied key material into a session key.
 
- 
- 
- 
Method Detail- 
makeKeypublic static final Object makeKey(byte[] k) throws InvalidKeyException Convenience method to expand a user-supplied key material into a session key, assuming Rijndael's default block size (128-bit).- Parameters:
- k- The 128/192/256-bit user-key to use.
- Returns:
- an array of two int[][] containing { Ke, Kd }
- Throws:
- InvalidKeyException- If the key is invalid.
 
 - 
blockEncryptpublic static final void blockEncrypt(byte[] in, byte[] result, int inOffset, int outOffset, Object sessionKey)Convenience method to encrypt exactly one block of plaintext, assuming Rijndael's default block size (128-bit).- Parameters:
- in- The plaintext.
- result- The resulting ciphertext.
- inOffset- Index of in from which to start considering data.
- sessionKey- The session key to use for encryption. This is a CryptixAESKeyCache.KeyCacheEntry. We use the Ke field for encryption. The actual parameter type is opaque, changed in 0.9.31, and is subject to change again.
 
 - 
blockDecryptpublic static final void blockDecrypt(byte[] in, byte[] result, int inOffset, int outOffset, Object sessionKey)Convenience method to decrypt exactly one block of plaintext, assuming Rijndael's default block size (128-bit).- Parameters:
- in- The ciphertext.
- result- The resulting ciphertext
- inOffset- Index of in from which to start considering data.
- sessionKey- The session key to use for decryption. This is a CryptixAESKeyCache.KeyCacheEntry. We use the Kd field, for decryption. The actual parameter type is opaque, changed in 0.9.31, and is subject to change again.
 
 - 
blockSizepublic static final int blockSize() - Returns:
- The default length in bytes of the Algorithm input block.
 
 - 
makeKeypublic static final Object makeKey(byte[] k, int blockSize) throws InvalidKeyException Expand a user-supplied key material into a session key.- Parameters:
- k- The 128/192/256-bit user-key to use.
- blockSize- The block size in bytes of this Rijndael, must be 16, 24, or 32.
- Returns:
- a CryptixAESKeyCache.KeyCacheEntry containing { Ke, Kd }. The actual return type is opaque, changed in 0.9.31, and is subject to change again.
- Throws:
- InvalidKeyException- If the key is invalid.
 
 - 
makeKeypublic static final Object makeKey(byte[] k, int blockSize, CryptixAESKeyCache.KeyCacheEntry keyData) throws InvalidKeyException Expand a user-supplied key material into a session key. Not for external use, not a public API.- Parameters:
- k- The 128/192/256-bit user-key to use.
- blockSize- The block size in bytes of this Rijndael, must be 16, 24, or 32.
- keyData- a cached data structure to fill in, or null.
- Returns:
- a CryptixAESKeyCache.KeyCacheEntry containing { Ke, Kd }. If keyData is non-null, this is keyData. If keyData is null, this is newly allocated.
- Throws:
- InvalidKeyException- If the key is invalid.
 
 - 
blockEncryptpublic static final void blockEncrypt(byte[] in, byte[] result, int inOffset, int outOffset, Object sessionKey, int blockSize)Encrypt exactly one block of plaintext.- Parameters:
- in- The plaintext.
- result- The resulting ciphertext.
- inOffset- Index of in from which to start considering data.
- sessionKey- The session key to use for encryption. This is a CryptixAESKeyCache.KeyCacheEntry. We use the Ke field for encryption. The actual parameter type is opaque, changed in 0.9.31, and is subject to change again.
- blockSize- The block size in bytes of this Rijndael.
 
 - 
blockDecryptpublic static final void blockDecrypt(byte[] in, byte[] result, int inOffset, int outOffset, Object sessionKey, int blockSize)Decrypt exactly one block of ciphertext.- Parameters:
- in- The ciphertext.
- result- The resulting ciphertext.
- inOffset- Index of in from which to start considering data.
- sessionKey- The session key to use for decryption. This is a CryptixAESKeyCache.KeyCacheEntry. We use the Kd field, for decryption. The actual parameter type is opaque, changed in 0.9.31, and is subject to change again.
- blockSize- The block size in bytes of this Rijndael.
 
 - 
getRoundspublic static final int getRounds(int keySize, int blockSize)Return The number of rounds for a given Rijndael's key and block sizes.- Parameters:
- keySize- The size of the user key material in bytes.
- blockSize- The desired block size in bytes.
- Returns:
- The number of rounds for a given Rijndael's key and block sizes.
 
 
- 
 
-