Class CryptoAPIEncryptor
- java.lang.Object
-
- org.apache.poi.poifs.crypt.Encryptor
-
- org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptor
-
- All Implemented Interfaces:
GenericRecord
public class CryptoAPIEncryptor extends Encryptor
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
CryptoAPIEncryptor.CryptoAPICipherOutputStream
-
Field Summary
-
Fields inherited from class org.apache.poi.poifs.crypt.Encryptor
DEFAULT_POIFS_ENTRY
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
confirmPassword(String password)
void
confirmPassword(String password, byte[] keySpec, byte[] keySalt, byte[] verifier, byte[] verifierSalt, byte[] integritySalt)
CryptoAPIEncryptor
copy()
CryptoAPIEncryptor.CryptoAPICipherOutputStream
getDataStream(OutputStream stream, int initialOffset)
ChunkedCipherOutputStream
getDataStream(DirectoryNode dir)
Return an output stream for encrypted data.Cipher
initCipherForBlock(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, String encryptedStream, POIFSFileSystem entries)
Encrypt the Document-/SummaryInformation and other optionally streams.-
Methods inherited from class org.apache.poi.poifs.crypt.Encryptor
getDataStream, getEncryptionInfo, getGenericProperties, getInstance, getSecretKey, setEncryptionInfo, setSecretKey
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.poi.common.usermodel.GenericRecord
getGenericChildren, getGenericRecordType
-
-
-
-
Method Detail
-
confirmPassword
public void confirmPassword(String password)
- Specified by:
confirmPassword
in classEncryptor
-
confirmPassword
public void confirmPassword(String password, byte[] keySpec, byte[] keySalt, byte[] verifier, byte[] verifierSalt, byte[] integritySalt)
- Specified by:
confirmPassword
in classEncryptor
-
initCipherForBlock
public Cipher initCipherForBlock(Cipher cipher, int block) throws 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:
GeneralSecurityException
- when the cipher can't be initialized
-
getDataStream
public ChunkedCipherOutputStream getDataStream(DirectoryNode dir) throws IOException
Description copied from class:Encryptor
Return an output stream for encrypted data.- Specified by:
getDataStream
in classEncryptor
- Parameters:
dir
- the node to write to- Returns:
- encrypted stream
- Throws:
IOException
-
getDataStream
public CryptoAPIEncryptor.CryptoAPICipherOutputStream getDataStream(OutputStream stream, int initialOffset) throws IOException, GeneralSecurityException
- Overrides:
getDataStream
in classEncryptor
- Throws:
IOException
GeneralSecurityException
-
setSummaryEntries
public void setSummaryEntries(DirectoryNode dir, String encryptedStream, POIFSFileSystem entries) throws IOException, 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
-
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
-
copy
public CryptoAPIEncryptor copy()
-
-