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
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
DEFAULT_POIFS_ENTRY
public static final java.lang.String DEFAULT_POIFS_ENTRY
- See Also:
- Constant Field Values
builder
protected final EncryptionInfoBuilder builder
Decryptor
protected Decryptor(EncryptionInfoBuilder builder)
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 encrypted 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(OPOIFSFileSystem 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
getVerifier
public byte[] getVerifier()
getSecretKey
public javax.crypto.SecretKey getSecretKey()
getIntegrityHmacKey
public byte[] getIntegrityHmacKey()
getIntegrityHmacValue
public byte[] getIntegrityHmacValue()
setSecretKey
protected void setSecretKey(javax.crypto.SecretKey secretKey)
setVerifier
protected void setVerifier(byte[] verifier)
setIntegrityHmacKey
protected void setIntegrityHmacKey(byte[] integrityHmacKey)
setIntegrityHmacValue
protected void setIntegrityHmacValue(byte[] integrityHmacValue)
getBlockSizeInBytes
protected int getBlockSizeInBytes()
getKeySizeInBytes
protected int getKeySizeInBytes()
Copyright 2015 The Apache Software Foundation or
its licensors, as applicable.