Class CryptoAPIEncryptor
- java.lang.Object
-
- org.apache.poi.poifs.crypt.Encryptor
-
- org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptor
-
- All Implemented Interfaces:
java.lang.Cloneable
public class CryptoAPIEncryptor extends Encryptor implements java.lang.Cloneable
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description CryptoAPIEncryptor
clone()
void
confirmPassword(java.lang.String password)
void
confirmPassword(java.lang.String password, byte[] keySpec, byte[] keySalt, byte[] verifier, byte[] verifierSalt, byte[] integritySalt)
org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptor.CryptoAPICipherOutputStream
getDataStream(java.io.OutputStream stream, int initialOffset)
ChunkedCipherOutputStream
getDataStream(DirectoryNode dir)
Return a output stream for encrypted data.javax.crypto.Cipher
initCipherForBlock(javax.crypto.Cipher cipher, int block)
Initializes a cipher object for a given block index for encryptionvoid
setChunkSize(int chunkSize)
Sets the chunk size of the data stream.void
setSummaryEntries(DirectoryNode dir, java.lang.String encryptedStream, POIFSFileSystem entries)
Encrypt the Document-/SummaryInformation and other optionally streams.-
Methods inherited from class org.apache.poi.poifs.crypt.Encryptor
getDataStream, getEncryptionInfo, getInstance, getSecretKey, setEncryptionInfo, setSecretKey
-
-
-
-
Method Detail
-
confirmPassword
public void confirmPassword(java.lang.String password)
- Specified by:
confirmPassword
in classEncryptor
-
confirmPassword
public void confirmPassword(java.lang.String password, byte[] keySpec, byte[] keySalt, byte[] verifier, byte[] verifierSalt, byte[] integritySalt)
- Specified by:
confirmPassword
in classEncryptor
-
initCipherForBlock
public javax.crypto.Cipher initCipherForBlock(javax.crypto.Cipher cipher, int block) throws java.security.GeneralSecurityException
Initializes a cipher object for a given block index for encryption- 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
- when the cipher can't be initialized
-
getDataStream
public ChunkedCipherOutputStream getDataStream(DirectoryNode dir) throws java.io.IOException
Description copied from class:Encryptor
Return a output stream for encrypted data.- Specified by:
getDataStream
in classEncryptor
- Parameters:
dir
- the node to write to- Returns:
- encrypted stream
- Throws:
java.io.IOException
-
getDataStream
public org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptor.CryptoAPICipherOutputStream getDataStream(java.io.OutputStream stream, int initialOffset) throws java.io.IOException, java.security.GeneralSecurityException
- Overrides:
getDataStream
in classEncryptor
- Throws:
java.io.IOException
java.security.GeneralSecurityException
-
setSummaryEntries
public void setSummaryEntries(DirectoryNode dir, java.lang.String encryptedStream, POIFSFileSystem entries) throws java.io.IOException, java.security.GeneralSecurityException
Encrypt the Document-/SummaryInformation and other optionally streams. Opposed to other crypto modes, cryptoapi is record based and can't be used to stream-encrypt a whole file- Throws:
java.io.IOException
java.security.GeneralSecurityException
- See Also:
- 2.3.5.4 RC4 CryptoAPI Encrypted Summary Stream
-
setChunkSize
public void setChunkSize(int chunkSize)
Description copied from class:Encryptor
Sets the chunk size of the data stream. Needs to be set before the data stream is requested. When not set, the implementation uses method specific default values- Overrides:
setChunkSize
in classEncryptor
- Parameters:
chunkSize
- the chunk size, i.e. the block size with the same encryption key
-
clone
public CryptoAPIEncryptor clone() throws java.lang.CloneNotSupportedException
-
-