org.apache.poi.poifs.crypt
Class Decryptor
java.lang.Object
org.apache.poi.poifs.crypt.Decryptor
- Direct Known Subclasses:
- AgileDecryptor, EcmaDecryptor
public abstract class Decryptor
- extends java.lang.Object
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DEFAULT_PASSWORD
public static final java.lang.String DEFAULT_PASSWORD
- See Also:
- Constant Field Values
Decryptor
public Decryptor()
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.IOException
java.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 encytpted data that can be safely read with
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 discarded
The 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
- if getDataStream(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.IOException
java.security.GeneralSecurityException
getDataStream
public java.io.InputStream getDataStream(POIFSFileSystem fs)
throws java.io.IOException,
java.security.GeneralSecurityException
- Throws:
java.io.IOException
java.security.GeneralSecurityException
getBlockSize
protected static int getBlockSize(int algorithm)
hashPassword
protected byte[] hashPassword(EncryptionInfo info,
java.lang.String password)
throws java.security.NoSuchAlgorithmException
- Throws:
java.security.NoSuchAlgorithmException
Copyright 2012 The Apache Software Foundation or
its licensors, as applicable.