Package org.h2.tools

Class ChangeFileEncryption

java.lang.Object
org.h2.util.Tool
org.h2.tools.ChangeFileEncryption

public class ChangeFileEncryption extends Tool
Allows changing the database file encryption password or algorithm. This tool can not be used to change a password of a user. The database must be closed before using this tool.
  • Field Details

    • directory

      private String directory
    • cipherType

      private String cipherType
    • decryptKey

      private byte[] decryptKey
    • encryptKey

      private byte[] encryptKey
  • Constructor Details

    • ChangeFileEncryption

      public ChangeFileEncryption()
  • Method Details

    • main

      public static void main(String... args)
      Options are case sensitive.
      Supported options
      [-help] or [-?] Print the list of options
      [-cipher type] The encryption type (AES)
      [-dir <dir>] The database directory (default: .)
      [-db <database>] Database name (all databases if not set)
      [-decrypt <pwd>] The decryption password (if not set: not yet encrypted)
      [-encrypt <pwd>] The encryption password (if not set: do not encrypt)
      [-quiet] Do not print progress information
      Parameters:
      args - the command line arguments
    • runTool

      public void runTool(String... args) throws SQLException
      Description copied from class: Tool
      Run the tool with the given output stream and arguments.
      Specified by:
      runTool in class Tool
      Parameters:
      args - the argument list
      Throws:
      SQLException - on failure
    • execute

      public static void execute(String dir, String db, String cipher, char[] decryptPassword, char[] encryptPassword, boolean quiet) throws SQLException
      Changes the password for a database. The passwords must be supplied as char arrays and are cleaned in this method. The database must be closed before calling this method.
      Parameters:
      dir - the directory (. for the current directory)
      db - the database name (null for all databases)
      cipher - the cipher (AES)
      decryptPassword - the decryption password as a char array
      encryptPassword - the encryption password as a char array
      quiet - don't print progress information
      Throws:
      SQLException - on failure
    • process

      private void process(String dir, String db, String cipher, char[] decryptPassword, char[] encryptPassword, boolean quiet) throws SQLException
      Throws:
      SQLException
    • process

      private void process(String fileName, boolean quiet, char[] decryptPassword) throws SQLException
      Throws:
      SQLException
    • copyMvStore

      private void copyMvStore(String fileName, boolean quiet, char[] decryptPassword) throws IOException, SQLException
      Throws:
      IOException
      SQLException
    • getFileChannel

      private static FileChannel getFileChannel(String fileName, String r, byte[] decryptKey) throws IOException
      Throws:
      IOException