Class AgileEncryptor

  • All Implemented Interfaces:
    java.lang.Cloneable

    public class AgileEncryptor
    extends Encryptor
    implements java.lang.Cloneable
    • Constructor Detail

      • AgileEncryptor

        protected AgileEncryptor()
    • 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
      • 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 com.microsoft.schemas.office.x2006.encryption.EncryptionDocument createEncryptionDocument()
      • marshallEncryptionDocument

        protected void marshallEncryptionDocument​(com.microsoft.schemas.office.x2006.encryption.EncryptionDocument 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
      • clone

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