Package org.h2.security
Class AES
- java.lang.Object
-
- org.h2.security.AES
-
- All Implemented Interfaces:
BlockCipher
public class AES extends java.lang.Object implements BlockCipher
An implementation of the AES block cipher algorithm, also known as Rijndael. Only AES-128 is supported by this class.
-
-
Field Summary
Fields Modifier and Type Field Description private int[]decKeyprivate int[]encKeyprivate static int[]FSprivate static int[]FT0private static int[]FT1private static int[]FT2private static int[]FT3private static int[]RCONprivate static int[]RSprivate static int[]RT0private static int[]RT1private static int[]RT2private static int[]RT3-
Fields inherited from interface org.h2.security.BlockCipher
ALIGN
-
-
Constructor Summary
Constructors Constructor Description AES()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddecrypt(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)intgetKeyLength()Get 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 Detail
-
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
-
-
Method Detail
-
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
-
-