Class AgileEncryptor

java.lang.Object
org.docx4j.org.apache.poi.poifs.crypt.Encryptor
org.docx4j.org.apache.poi.poifs.crypt.agile.AgileEncryptor

public class AgileEncryptor
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
    • getDataStream

      public java.io.OutputStream getDataStream​(DirectoryNode dir) throws java.io.IOException, java.security.GeneralSecurityException
      Description copied from class: Encryptor
      Return a output stream for encrypted data.
      Specified by:
      getDataStream in class Encryptor
      Parameters:
      dir - the node to write to
      Returns:
      encrypted stream
      Throws:
      java.io.IOException
      java.security.GeneralSecurityException
    • updateIntegrityHMAC

      protected void updateIntegrityHMAC​(java.io.File tmpFile, int oleStreamSize) throws java.security.GeneralSecurityException, java.io.IOException
      Generate an HMAC, as specified in [RFC2104], of the encrypted form of the data (message), which the DataIntegrity element will verify by using the Salt generated in step 2 as the key. Note that the entire EncryptedPackage stream (1), including the StreamSize field, MUST be used as the message. Encrypt the HMAC as in step 3 by using a blockKey byte array consisting of the following bytes: 0xa0, 0x67, 0x7f, 0x02, 0xb2, 0x2c, 0x84, and 0x33.
      Throws:
      java.security.GeneralSecurityException
      java.io.IOException
    • createEncryptionDocument

      protected CTEncryption createEncryptionDocument()
    • marshallEncryptionDocument

      protected void marshallEncryptionDocument​(CTEncryption ed, LittleEndianByteArrayOutputStream os)
    • createEncryptionInfoEntry

      protected void createEncryptionInfoEntry​(DirectoryNode dir, java.io.File tmpFile) throws java.io.IOException, java.security.GeneralSecurityException
      Throws:
      java.io.IOException
      java.security.GeneralSecurityException