Package org.h2.tools

Class 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 Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.String cipherType  
      private byte[] decryptKey  
      private java.lang.String directory  
      private byte[] encryptKey  
      • Fields inherited from class org.h2.util.Tool

        out
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void copyMvStore​(java.lang.String fileName, boolean quiet, char[] decryptPassword)  
      static void execute​(java.lang.String dir, java.lang.String db, java.lang.String cipher, char[] decryptPassword, char[] encryptPassword, boolean quiet)
      Changes the password for a database.
      private static java.nio.channels.FileChannel getFileChannel​(java.lang.String fileName, java.lang.String r, byte[] decryptKey)  
      static void main​(java.lang.String... args)
      Options are case sensitive.
      private void process​(java.lang.String fileName, boolean quiet, char[] decryptPassword)  
      private void process​(java.lang.String dir, java.lang.String db, java.lang.String cipher, char[] decryptPassword, char[] encryptPassword, boolean quiet)  
      void runTool​(java.lang.String... args)
      Run the tool with the given output stream and arguments.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • directory

        private java.lang.String directory
      • cipherType

        private java.lang.String cipherType
      • decryptKey

        private byte[] decryptKey
      • encryptKey

        private byte[] encryptKey
    • Constructor Detail

      • ChangeFileEncryption

        public ChangeFileEncryption()
    • Method Detail

      • main

        public static void main​(java.lang.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​(java.lang.String... args)
                     throws java.sql.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:
        java.sql.SQLException - on failure
      • execute

        public static void execute​(java.lang.String dir,
                                   java.lang.String db,
                                   java.lang.String cipher,
                                   char[] decryptPassword,
                                   char[] encryptPassword,
                                   boolean quiet)
                            throws java.sql.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:
        java.sql.SQLException - on failure
      • process

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

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

        private void copyMvStore​(java.lang.String fileName,
                                 boolean quiet,
                                 char[] decryptPassword)
                          throws java.io.IOException,
                                 java.sql.SQLException
        Throws:
        java.io.IOException
        java.sql.SQLException
      • getFileChannel

        private static java.nio.channels.FileChannel getFileChannel​(java.lang.String fileName,
                                                                    java.lang.String r,
                                                                    byte[] decryptKey)
                                                             throws java.io.IOException
        Throws:
        java.io.IOException