Class AES
java.lang.Object
org.h2.security.AES
- All Implemented Interfaces:
BlockCipher
An implementation of the AES block cipher algorithm,
also known as Rijndael. Only AES-128 is supported by this class.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final int[]private final int[]private static final int[]private static final int[]private static final int[]private static final int[]private static final int[]private static final int[]private static final int[]private static final int[]private static final int[]private static final int[]private static final int[]Fields inherited from interface BlockCipher
ALIGN -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoiddecrypt(byte[] bytes, int off, int len) Decrypt a number of bytes.private voiddecryptBlock(byte[] in, byte[] out, int off) voidencrypt(byte[] bytes, int off, int len) Encrypt a number of bytes.private voidencryptBlock(byte[] in, byte[] out, int off) private static intgetDec(int t) intGet the length of the key in bytes.private static intmul(int[] pow, int[] log, int x, int y) private static introt8(int x) voidsetKey(byte[] key) Set the encryption key used for encrypting and decrypting.private static intxtime(int x)
-
Field Details
-
RCON
private static final int[] RCON -
FS
private static final int[] FS -
FT0
private static final int[] FT0 -
FT1
private static final int[] FT1 -
FT2
private static final int[] FT2 -
FT3
private static final int[] FT3 -
RS
private static final int[] RS -
RT0
private static final int[] RT0 -
RT1
private static final int[] RT1 -
RT2
private static final int[] RT2 -
RT3
private static final int[] RT3 -
encKey
private final int[] encKey -
decKey
private final int[] decKey
-
-
Constructor Details
-
AES
public AES()
-
-
Method Details
-
rot8
private static int rot8(int x) -
xtime
private static int xtime(int x) -
mul
private static int mul(int[] pow, int[] log, int x, int y) -
getDec
private static int getDec(int t) -
setKey
public void setKey(byte[] key) Description copied from interface:BlockCipherSet the encryption key used for encrypting and decrypting. The key needs to be 16 bytes long.- Specified by:
setKeyin interfaceBlockCipher- Parameters:
key- the key
-
encrypt
public void encrypt(byte[] bytes, int off, int len) Description copied from interface:BlockCipherEncrypt a number of bytes. This is done in-place, that means the bytes are overwritten.- Specified by:
encryptin interfaceBlockCipher- Parameters:
bytes- the byte arrayoff- the start indexlen- the number of bytes to encrypt
-
decrypt
public void decrypt(byte[] bytes, int off, int len) Description copied from interface:BlockCipherDecrypt a number of bytes. This is done in-place, that means the bytes are overwritten.- Specified by:
decryptin interfaceBlockCipher- Parameters:
bytes- the byte arrayoff- the start indexlen- the number of bytes to decrypt
-
encryptBlock
private void encryptBlock(byte[] in, byte[] out, int off) -
decryptBlock
private void decryptBlock(byte[] in, byte[] out, int off) -
getKeyLength
public int getKeyLength()Description copied from interface:BlockCipherGet the length of the key in bytes.- Specified by:
getKeyLengthin interfaceBlockCipher- Returns:
- the length of the key
-