public final class CryptixRijndael_Algorithm extends Object
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.
Constructor | Description |
---|---|
CryptixRijndael_Algorithm() |
Modifier and Type | Method | Description |
---|---|---|
static 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).
|
static void |
blockDecrypt(byte[] in,
byte[] result,
int inOffset,
int outOffset,
Object sessionKey,
int blockSize) |
Decrypt exactly one block of ciphertext.
|
static 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).
|
static void |
blockEncrypt(byte[] in,
byte[] result,
int inOffset,
int outOffset,
Object sessionKey,
int blockSize) |
Encrypt exactly one block of plaintext.
|
static int |
blockSize() |
|
static int |
getRounds(int keySize,
int blockSize) |
Return The number of rounds for a given Rijndael's key and block sizes.
|
static Object |
makeKey(byte[] k) |
Convenience method to expand a user-supplied key material into a
session key, assuming Rijndael's default block size (128-bit).
|
static Object |
makeKey(byte[] k,
int blockSize) |
Expand a user-supplied key material into a session key.
|
static Object |
makeKey(byte[] k,
int blockSize,
CryptixAESKeyCache.KeyCacheEntry keyData) |
Expand a user-supplied key material into a session key.
|
public static final Object makeKey(byte[] k) throws InvalidKeyException
k
- The 128/192/256-bit user-key to use.InvalidKeyException
- If the key is invalid.public static final void blockEncrypt(byte[] in, byte[] result, int inOffset, int outOffset, Object sessionKey)
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.public static final void blockDecrypt(byte[] in, byte[] result, int inOffset, int outOffset, Object sessionKey)
in
- The ciphertext.result
- The resulting ciphertextinOffset
- 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.public static final int blockSize()
public static final Object makeKey(byte[] k, int blockSize) throws InvalidKeyException
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.InvalidKeyException
- If the key is invalid.public static final Object makeKey(byte[] k, int blockSize, CryptixAESKeyCache.KeyCacheEntry keyData) throws InvalidKeyException
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.InvalidKeyException
- If the key is invalid.public static final void blockEncrypt(byte[] in, byte[] result, int inOffset, int outOffset, Object sessionKey, int blockSize)
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.public static final void blockDecrypt(byte[] in, byte[] result, int inOffset, int outOffset, Object sessionKey, int blockSize)
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.public static final int getRounds(int keySize, int blockSize)
keySize
- The size of the user key material in bytes.blockSize
- The desired block size in bytes.