public final class AES extends BlockCipher
Rijndael is a symmetric cipher using 128-bit blocks and keysizes of 128, 192, and 256 bits.
In the current release, only ECB and CBC modes are supported; accordingly, while object identifiers for CFB and OFB modes have been registered by NIST, they are treated as unknown identifiers by the OIDManager
.
Cipher
, BlockCipher
Modifier and Type | Field and Description |
---|---|
static int |
AES128_KEY_LENGTH
Key length for AES 128 in terms of number of bits.
|
static int |
AES192_KEY_LENGTH
Key length for AES 192 in terms of number of bits.
|
static int |
AES256_KEY_LENGTH
Key length for AES 256 in terms of number of bits.
|
blockSize, iv, paddingID
Constructor and Description |
---|
AES()
Creates an uninitialized AES instance.
|
Modifier and Type | Method and Description |
---|---|
java.lang.String |
algName()
Returns the name of the algorithm which this coder implements.
|
protected void |
decryptBlock(byte[] input, int inOff, byte[] output, int outOff)
Performs the block cipher's basic decryption operation on one block of ciphertext placing the result in the output buffer.
|
protected void |
encryptBlock(byte[] input, int inOff, byte[] output, int outOff)
Performs the block cipher's basic encryption operation on one block of plaintext placing the result in the output buffer.
|
void |
erase()
Erases any sensitive information stored in this BlockCipher object.
|
AlgorithmIdentifier |
getAlgID()
Builds an AlgorithmIdentifier that is a "snapshot" of the Cipher's current configuration.
|
int |
getKeySize()
Returns the cipher keysize, in 8-bit blocks.
|
void |
initialize(AlgorithmIdentifier algID, SymmetricKey key, Padding.ID paddingID, RandomBitsSource rbs)
This method verifies the AlgorithmIdentifier's Object ID and configures the AES instance appropriately with the params of the AlgorithmIdentifier in addition to the SymmetricKey and padding identifier.
|
java.lang.String |
toString()
Returns the algorithm name of this cipher.
|
decrypt, decrypt, encrypt, encrypt, getBlockSize, getIV, getPaddingID, initialize, setIV, unwrapPrivateKey, unwrapSymmetricKey, wrapKey, wrapKey
assertDecryption, assertEncryption, assertKeyUnwrap, assertKeyWrap, cloneKey, decodeOp, decrypt, decrypt, decrypt, encodeOp, encrypt, encrypt, encrypt, finalize, getInstance, getInstance, getInstance, getInstance, getInstance, getInstance, getMode, initialize, initialize, releaseOp
public static final int AES128_KEY_LENGTH
public static final int AES192_KEY_LENGTH
public static final int AES256_KEY_LENGTH
public AES()
public void initialize(AlgorithmIdentifier algID, SymmetricKey key, Padding.ID paddingID, RandomBitsSource rbs) throws AlgorithmIdentifierException, InvalidKeyException, CipherException
initialize
in class Cipher
algID
- The AlgorithmIdentifier whose params will be used to configure the cipher.key
- The SymmetricKey instance that will be used by the cipher internally.paddingID
- Used to indicate the type of padding that the Cipher should use. Options are Padding.NONE or Padding.PKCS5. A Cipher must be re-initialized before being used with the other Padding type.rbs
- The RandomBitsSourfce to use in this cipher.AlgorithmIdentifierException
- If the algID's OID isn't valid for the Cipher instance being initialized or if the params are not valid for the algID's OID.InvalidKeyException
- If there is a problem with the Key instance the Cipher is being initialized with.CipherException
- If there's a problem initializing the Cipher with the given parameters.protected void decryptBlock(byte[] input, int inOff, byte[] output, int outOff) throws CipherException
BlockCipher
decryptBlock
in class BlockCipher
input
- Buffer in which data to be decrypted is stored.inOff
- Offset within input buffer of the start of data.output
- Buffer to place the decrypted bytes inoutOff
- Offset within output buffer where the encrypted bytes will be stored.CipherException
- If the Cipher is not initialized, length of data is not equal to the block size, etc.protected void encryptBlock(byte[] input, int inOff, byte[] output, int outOff) throws CipherException
BlockCipher
encryptBlock
in class BlockCipher
input
- Buffer in which data to be encrypted is storedinOff
- Offset within input buffer of the start of dataoutput
- Buffer to place the encrypted bytes inoutOff
- Offset within output buffer where the encrypted bytes will be storedCipherException
- If the Cipher is not initialized, length of data is not equal to the block size, etc.public java.lang.String algName()
Coder
public AlgorithmIdentifier getAlgID()
Cipher
Altering this AlgorithmIdentifier will have no effect on the state of the Cipher.
public int getKeySize()
public void erase()
BlockCipher
erase
in class BlockCipher
public java.lang.String toString()
toString
in class java.lang.Object