Class CryptoAPIEncryptor

  • All Implemented Interfaces:
    java.lang.Cloneable

    public class CryptoAPIEncryptor
    extends Encryptor
    implements java.lang.Cloneable
    • Method Detail

      • confirmPassword

        public void confirmPassword​(java.lang.String password)
        Specified by:
        confirmPassword in class Encryptor
      • confirmPassword

        public void confirmPassword​(java.lang.String password,
                                    byte[] keySpec,
                                    byte[] keySalt,
                                    byte[] verifier,
                                    byte[] verifierSalt,
                                    byte[] integritySalt)
        Specified by:
        confirmPassword in class Encryptor
      • initCipherForBlock

        public javax.crypto.Cipher initCipherForBlock​(javax.crypto.Cipher cipher,
                                                      int block)
                                               throws java.security.GeneralSecurityException
        Initializes a cipher object for a given block index for encryption
        Parameters:
        cipher - may be null, otherwise the given instance is reset to the new block index
        block - the block index, e.g. the persist/slide id (hslf)
        Returns:
        a new cipher object, if cipher was null, otherwise the reinitialized cipher
        Throws:
        java.security.GeneralSecurityException - when the cipher can't be initialized
      • getDataStream

        public org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptor.CryptoAPICipherOutputStream getDataStream​(java.io.OutputStream stream,
                                                                                                                 int initialOffset)
                                                                                                          throws java.io.IOException,
                                                                                                                 java.security.GeneralSecurityException
        Overrides:
        getDataStream in class Encryptor
        Throws:
        java.io.IOException
        java.security.GeneralSecurityException
      • setSummaryEntries

        public void setSummaryEntries​(DirectoryNode dir,
                                      java.lang.String encryptedStream,
                                      POIFSFileSystem entries)
                               throws java.io.IOException,
                                      java.security.GeneralSecurityException
        Encrypt the Document-/SummaryInformation and other optionally streams. Opposed to other crypto modes, cryptoapi is record based and can't be used to stream-encrypt a whole file
        Throws:
        java.io.IOException
        java.security.GeneralSecurityException
        See Also:
        2.3.5.4 RC4 CryptoAPI Encrypted Summary Stream
      • setChunkSize

        public void setChunkSize​(int chunkSize)
        Description copied from class: Encryptor
        Sets the chunk size of the data stream. Needs to be set before the data stream is requested. When not set, the implementation uses method specific default values
        Overrides:
        setChunkSize in class Encryptor
        Parameters:
        chunkSize - the chunk size, i.e. the block size with the same encryption key
      • clone

        public CryptoAPIEncryptor clone()
                                 throws java.lang.CloneNotSupportedException
        Overrides:
        clone in class Encryptor
        Throws:
        java.lang.CloneNotSupportedException