Class CryptoAPIEncryptor

java.lang.Object
org.docx4j.org.apache.poi.poifs.crypt.Encryptor
org.docx4j.org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptor

public class CryptoAPIEncryptor
extends Encryptor
  • Constructor Details

  • Method Details

    • 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
    • getDataStream

      public java.io.OutputStream getDataStream​(DirectoryNode dir) 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
      Specified by:
      getDataStream in class Encryptor
      Parameters:
      dir - the node to write to
      Returns:
      encrypted stream
      Throws:
      java.io.IOException
      java.security.GeneralSecurityException
      See Also:
      2.3.5.4 RC4 CryptoAPI Encrypted Summary Stream
    • getKeySizeInBytes

      protected int getKeySizeInBytes()
    • createEncryptionInfoEntry

      protected void createEncryptionInfoEntry​(DirectoryNode dir) throws java.io.IOException
      Throws:
      java.io.IOException