Class EncryptionInfo

java.lang.Object
org.apache.poi.poifs.crypt.EncryptionInfo
All Implemented Interfaces:
Cloneable

public class EncryptionInfo extends Object implements Cloneable
This class may require poi-ooxml to be on the classpath to load some EncryptionModes.
See Also:
  • Field Details

    • flagCryptoAPI

      public static final BitField flagCryptoAPI
      A flag that specifies whether CryptoAPI RC4 or ECMA-376 encryption ECMA-376 is used. It MUST be 1 unless flagExternal is 1. If flagExternal is 1, it MUST be 0.
    • flagDocProps

      public static final BitField flagDocProps
      A value that MUST be 0 if document properties are encrypted. The encryption of document properties is specified in section 2.3.5.4.
    • flagExternal

      public static final BitField flagExternal
      A value that MUST be 1 if extensible encryption is used. If this value is 1, the value of every other field in this structure MUST be 0.
    • flagAES

      public static final BitField flagAES
      A value that MUST be 1 if the protected content is an ECMA-376 document ECMA-376. If the fAES bit is 1, the fCryptoAPI bit MUST also be 1.
  • Constructor Details

  • Method Details

    • getBuilder

      This method loads the builder class with reflection, which may generate a ClassNotFoundException if the class is not on the classpath. For example, AgileEncryptionInfoBuilder is contained in the poi-ooxml package since the class makes use of some OOXML classes rather than using the poi package and plain XML DOM calls. As such, you may need to include poi-ooxml and poi-ooxml-schemas to load some encryption mode builders. See bug #60021 for more information. https://bz.apache.org/bugzilla/show_bug.cgi?id=60021
      Parameters:
      encryptionMode - the encryption mode
      Returns:
      an encryption info builder
      Throws:
      ClassNotFoundException - if the builder class is not on the classpath
      IllegalAccessException - if the builder class can't be loaded
      InstantiationException - if the builder class can't be loaded
    • getVersionMajor

      public int getVersionMajor()
    • getVersionMinor

      public int getVersionMinor()
    • getEncryptionFlags

      public int getEncryptionFlags()
    • getHeader

      public EncryptionHeader getHeader()
    • getVerifier

      public EncryptionVerifier getVerifier()
    • getDecryptor

      public Decryptor getDecryptor()
    • getEncryptor

      public Encryptor getEncryptor()
    • setHeader

      public void setHeader(EncryptionHeader header)
    • setVerifier

      public void setVerifier(EncryptionVerifier verifier)
    • setDecryptor

      public void setDecryptor(Decryptor decryptor)
    • setEncryptor

      public void setEncryptor(Encryptor encryptor)
    • getEncryptionMode

      public EncryptionMode getEncryptionMode()
    • isDocPropsEncrypted

      public boolean isDocPropsEncrypted()
      Returns:
      true, if Document Summary / Summary are encrypted and stored in the EncryptedStream stream, otherwise the Summaries aren't encrypted and located in their usual streams
    • clone

      Overrides:
      clone in class Object
      Throws:
      CloneNotSupportedException