org.apache.poi.poifs.crypt
Class Decryptor
- java.lang.Object
-
- org.apache.poi.poifs.crypt.Decryptor
-
- Direct Known Subclasses:
- AgileDecryptor, BinaryRC4Decryptor, CryptoAPIDecryptor, StandardDecryptor
public abstract class Decryptor extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field and Description static java.lang.StringDEFAULT_PASSWORDstatic java.lang.StringDEFAULT_POIFS_ENTRY
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method and Description abstract java.io.InputStreamgetDataStream(DirectoryNode dir)Return a stream with decrypted data.java.io.InputStreamgetDataStream(NPOIFSFileSystem fs)java.io.InputStreamgetDataStream(POIFSFileSystem fs)static DecryptorgetInstance(EncryptionInfo info)byte[]getIntegrityHmacKey()byte[]getIntegrityHmacValue()abstract longgetLength()Returns the length of the encrypted data that can be safely read withgetDataStream(org.apache.poi.poifs.filesystem.DirectoryNode).javax.crypto.SecretKeygetSecretKey()byte[]getVerifier()abstract booleanverifyPassword(java.lang.String password)
-
-
-
Field Detail
-
DEFAULT_PASSWORD
public static final java.lang.String DEFAULT_PASSWORD
- See Also:
- Constant Field Values
-
DEFAULT_POIFS_ENTRY
public static final java.lang.String DEFAULT_POIFS_ENTRY
- See Also:
- Constant Field Values
-
-
Method Detail
-
getDataStream
public abstract java.io.InputStream getDataStream(DirectoryNode dir) throws java.io.IOException, java.security.GeneralSecurityException
Return a stream with decrypted data.Use
getLength()to get the size of that data that can be safely read from the stream. Just reading to the end of the input stream is not sufficient because there are normally padding bytes that must be discarded- Parameters:
dir- the node to read from- Returns:
- decrypted stream
- Throws:
java.io.IOExceptionjava.security.GeneralSecurityException
-
verifyPassword
public abstract boolean verifyPassword(java.lang.String password) throws java.security.GeneralSecurityException- Throws:
java.security.GeneralSecurityException
-
getLength
public abstract long getLength()
Returns the length of the encrypted data that can be safely read withgetDataStream(org.apache.poi.poifs.filesystem.DirectoryNode). Just reading to the end of the input stream is not sufficient because there are normally padding bytes that must be discardedThe length variable is initialized in
getDataStream(org.apache.poi.poifs.filesystem.DirectoryNode), an attempt to call getLength() prior to getDataStream() will result in IllegalStateException.- Returns:
- length of the encrypted data
- Throws:
java.lang.IllegalStateException- ifgetDataStream(org.apache.poi.poifs.filesystem.DirectoryNode)was not called
-
getInstance
public static Decryptor getInstance(EncryptionInfo info)
-
getDataStream
public java.io.InputStream getDataStream(NPOIFSFileSystem fs) throws java.io.IOException, java.security.GeneralSecurityException
- Throws:
java.io.IOExceptionjava.security.GeneralSecurityException
-
getDataStream
public java.io.InputStream getDataStream(POIFSFileSystem fs) throws java.io.IOException, java.security.GeneralSecurityException
- Throws:
java.io.IOExceptionjava.security.GeneralSecurityException
-
getVerifier
public byte[] getVerifier()
-
getSecretKey
public javax.crypto.SecretKey getSecretKey()
-
getIntegrityHmacKey
public byte[] getIntegrityHmacKey()
-
getIntegrityHmacValue
public byte[] getIntegrityHmacValue()
-
-
DataMelt 3.0 © DataMelt by jWork.ORG