Class SecureFileStore


  • public class SecureFileStore
    extends FileStore
    A file store that encrypts all data before writing, and decrypts all data after reading. Areas that were never written to (for example after calling setLength to enlarge the file) are not encrypted (contains 0 bytes).
    • Field Detail

      • key

        private byte[] key
      • cipherForInitVector

        private final BlockCipher cipherForInitVector
      • buffer

        private byte[] buffer
      • pos

        private long pos
      • bufferForInitVector

        private final byte[] bufferForInitVector
      • keyIterations

        private final int keyIterations
    • Constructor Detail

      • SecureFileStore

        public SecureFileStore​(DataHandler handler,
                               java.lang.String name,
                               java.lang.String mode,
                               java.lang.String cipher,
                               byte[] key,
                               int keyIterations)
    • Method Detail

      • generateSalt

        protected byte[] generateSalt()
        Description copied from class: FileStore
        Generate the random salt bytes if required.
        Overrides:
        generateSalt in class FileStore
        Returns:
        the random salt or the magic
      • initKey

        protected void initKey​(byte[] salt)
        Description copied from class: FileStore
        Initialize the key using the given salt.
        Overrides:
        initKey in class FileStore
        Parameters:
        salt - the salt
      • writeDirect

        protected void writeDirect​(byte[] b,
                                   int off,
                                   int len)
        Description copied from class: FileStore
        Write a number of bytes without encrypting.
        Overrides:
        writeDirect in class FileStore
        Parameters:
        b - the source buffer
        off - the offset
        len - the number of bytes to write
      • write

        public void write​(byte[] b,
                          int off,
                          int len)
        Description copied from class: FileStore
        Write a number of bytes.
        Overrides:
        write in class FileStore
        Parameters:
        b - the source buffer
        off - the offset
        len - the number of bytes to write
      • readFullyDirect

        public void readFullyDirect​(byte[] b,
                                    int off,
                                    int len)
        Description copied from class: FileStore
        Read a number of bytes without decrypting.
        Overrides:
        readFullyDirect in class FileStore
        Parameters:
        b - the target buffer
        off - the offset
        len - the number of bytes to read
      • readFully

        public void readFully​(byte[] b,
                              int off,
                              int len)
        Description copied from class: FileStore
        Read a number of bytes.
        Overrides:
        readFully in class FileStore
        Parameters:
        b - the target buffer
        off - the offset
        len - the number of bytes to read
      • seek

        public void seek​(long x)
        Description copied from class: FileStore
        Go to the specified file location.
        Overrides:
        seek in class FileStore
        Parameters:
        x - the location
      • xorInitVector

        private void xorInitVector​(byte[] b,
                                   int off,
                                   int len,
                                   long p)