org.apache.poi.poifs.crypt.cryptoapi
Class CryptoAPIDecryptor
- java.lang.Object
-
- org.apache.poi.poifs.crypt.Decryptor
-
- org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIDecryptor
-
public class CryptoAPIDecryptor extends Decryptor
-
-
Field Summary
-
Fields inherited from class org.apache.poi.poifs.crypt.Decryptor
DEFAULT_PASSWORD, DEFAULT_POIFS_ENTRY
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description java.io.InputStreamgetDataStream(DirectoryNode dir)Decrypt the Document-/SummaryInformation and other optionally streams.longgetLength()Returns the length of the encrypted data that can be safely read withDecryptor.getDataStream(org.apache.poi.poifs.filesystem.DirectoryNode).javax.crypto.CipherinitCipherForBlock(javax.crypto.Cipher cipher, int block)Initializes a cipher object for a given block index for decryptionbooleanverifyPassword(java.lang.String password)-
Methods inherited from class org.apache.poi.poifs.crypt.Decryptor
getDataStream, getDataStream, getInstance, getIntegrityHmacKey, getIntegrityHmacValue, getSecretKey, getVerifier
-
-
-
-
Method Detail
-
verifyPassword
public boolean verifyPassword(java.lang.String password)
- Specified by:
verifyPasswordin classDecryptor
-
initCipherForBlock
public javax.crypto.Cipher initCipherForBlock(javax.crypto.Cipher cipher, int block) throws java.security.GeneralSecurityExceptionInitializes a cipher object for a given block index for decryption- Parameters:
cipher- may be null, otherwise the given instance is reset to the new block indexblock- 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.InputStream getDataStream(DirectoryNode dir) throws java.io.IOException, java.security.GeneralSecurityException
Decrypt the Document-/SummaryInformation and other optionally streams. Opposed to other crypto modes, cryptoapi is record based and can't be used to stream-decrypt a whole file- Specified by:
getDataStreamin classDecryptor- Parameters:
dir- the node to read from- Returns:
- decrypted stream
- Throws:
java.io.IOExceptionjava.security.GeneralSecurityException- See Also:
- 2.3.5.4 RC4 CryptoAPI Encrypted Summary Stream
-
getLength
public long getLength()
Description copied from class:DecryptorReturns the length of the encrypted data that can be safely read withDecryptor.getDataStream(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
Decryptor.getDataStream(org.apache.poi.poifs.filesystem.DirectoryNode), an attempt to call getLength() prior to getDataStream() will result in IllegalStateException.- Specified by:
getLengthin classDecryptor- Returns:
- the length of the stream returned by
getDataStream(DirectoryNode)
-
-
DataMelt 3.0 © DataMelt by jWork.ORG