public class AesCipher extends SymmetricBlockCipher
AES uses the Rijndael algorithm, a symmetric block cipher that can process data blocks of 128 bits, with cipher keys of length 128, 192, and 256 bits. Rijndael was designed to handle additional block sizes and key lengths; however, they were not adopted by AES.
An instance of this algorithm can be obtained using the Java Cryptography
Architecture (JCA), by requesting an 'AES' cipher from the
Entrust cryptographic
service provider. This can be done using either of the following calls:
Cipher.getInstance("AES", "Entrust");Cipher.getInstance("AES/<mode>/<padding>", "Entrust");
A default block mode (mechanism) and padding mechanism are automatically used
when either block mechanism or padding mechanism are not specified in the
Cipher.getInstance() call. For a description of Entrust's
symmetric block cipher architecture, including supported block mechanisms,
padding mechanisms, and their default values, please refer to
SymmetricBlockCipher.
This cipher implementation accepts keys in 'RAW' format (software keys), or
keys stored on cryptographic hardware devices and accessed via the PKCS#11
interface (PKCS#11 keys). A software-based AES key can be generated using the
AES key generation algorithm (KeyGenerator.getInstance("AES, "Entrust"))
or manually created using an appropriate Key implementation (
javax.crypto.spec.SecretKeySpec). A PKCS#11-based AES key can be
created using the JNIPKCS11
class, and referenced using the
TokenSymmetricKey
class.
This cipher implementation only requires parameters when operated in a mode
that requires an initialization vector (IV). In this case, the only algorithm
parameters in transparent representation that are accepted is are
javax.crypto.spec.IvParameterSpec. Algorithm parameters in
opaque representation are also accepted (AlgorithmParameters.getInstance("AES, "Entrust")
), but these will need to be initialized with a transparent representation
before they can be used by the cipher.
This class SHOULD NOT be used directly; it should only be used through the JCA/JCE.
| Modifier and Type | Class and Description |
|---|---|
static class |
AesCipher.CBCPKCS5Padding
The constructor; creates a new instance of the AES/CBC/PKCS5Padding
symmetric cipher algorithm.
|
static class |
AesCipher.GcmNoPadding
An implementation of the AES symmetric cipher algorithm configured for
operation with the GCM block mode and the NoPadding padding type.
|
| Constructor and Description |
|---|
AesCipher()
The constructor; creates a new instance of the AES symmetric cipher
algorithm.
|
engineDoFinal, engineDoFinal, engineGetBlockSize, engineGetIV, engineGetKeySize, engineGetOutputSize, engineGetParameters, engineInit, engineInit, engineInit, engineSetMode, engineSetPadding, engineUnwrap, engineUpdate, engineUpdate, engineUpdateAAD, engineWrappublic AesCipher()
Applications should never use this constructor, instead the symmetric
cipher algorithm should be requested from the appropriate JCA/JCE
cryptographic service provider as follows:
Cipher.getInstance("AES", "Entrust").