Class AES

java.lang.Object
org.h2.security.AES
All Implemented Interfaces:
BlockCipher

public class AES extends 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 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 org.h2.security.BlockCipher

    ALIGN
  • Constructor Summary

    Constructors
    Constructor
    Description
    AES()
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    decrypt(byte[] bytes, int off, int len)
    Decrypt a number of bytes.
    private void
    decryptBlock(byte[] in, byte[] out, int off)
     
    void
    encrypt(byte[] bytes, int off, int len)
    Encrypt a number of bytes.
    private void
    encryptBlock(byte[] in, byte[] out, int off)
     
    private static int
    getDec(int t)
     
    int
    Get the length of the key in bytes.
    private static int
    mul(int[] pow, int[] log, int x, int y)
     
    private static int
    rot8(int x)
     
    void
    setKey(byte[] key)
    Set the encryption key used for encrypting and decrypting.
    private static int
    xtime(int x)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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: BlockCipher
      Set the encryption key used for encrypting and decrypting. The key needs to be 16 bytes long.
      Specified by:
      setKey in interface BlockCipher
      Parameters:
      key - the key
    • encrypt

      public void encrypt(byte[] bytes, int off, int len)
      Description copied from interface: BlockCipher
      Encrypt a number of bytes. This is done in-place, that means the bytes are overwritten.
      Specified by:
      encrypt in interface BlockCipher
      Parameters:
      bytes - the byte array
      off - the start index
      len - the number of bytes to encrypt
    • decrypt

      public void decrypt(byte[] bytes, int off, int len)
      Description copied from interface: BlockCipher
      Decrypt a number of bytes. This is done in-place, that means the bytes are overwritten.
      Specified by:
      decrypt in interface BlockCipher
      Parameters:
      bytes - the byte array
      off - the start index
      len - 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: BlockCipher
      Get the length of the key in bytes.
      Specified by:
      getKeyLength in interface BlockCipher
      Returns:
      the length of the key