Package org.apache.poi.poifs.crypt.agile
Class AgileEncryptor
- java.lang.Object
-
- org.apache.poi.poifs.crypt.Encryptor
-
- org.apache.poi.poifs.crypt.agile.AgileEncryptor
-
- All Implemented Interfaces:
GenericRecord
public class AgileEncryptor extends Encryptor
-
-
Field Summary
-
Fields inherited from class org.apache.poi.poifs.crypt.Encryptor
DEFAULT_POIFS_ENTRY
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AgileEncryptor()
protected
AgileEncryptor(AgileEncryptor other)
-
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)
AgileEncryptor
copy()
protected EncryptionDocument
createEncryptionDocument()
OutputStream
getDataStream(DirectoryNode dir)
Return an output stream for encrypted data.protected void
marshallEncryptionDocument(EncryptionDocument ed, LittleEndianByteArrayOutputStream os)
protected void
updateIntegrityHMAC(File tmpFile, int oleStreamSize)
Generate an HMAC, as specified in [RFC2104], of the encrypted form of the data (message), which the DataIntegrity element will verify by using the Salt generated in step 2 as the key.-
Methods inherited from class org.apache.poi.poifs.crypt.Encryptor
getDataStream, getDataStream, getEncryptionInfo, getGenericProperties, getInstance, getSecretKey, setChunkSize, 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
-
-
-
-
Constructor Detail
-
AgileEncryptor
protected AgileEncryptor()
-
AgileEncryptor
protected AgileEncryptor(AgileEncryptor other)
-
-
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
-
getDataStream
public OutputStream getDataStream(DirectoryNode dir) throws IOException, GeneralSecurityException
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
GeneralSecurityException
-
updateIntegrityHMAC
protected void updateIntegrityHMAC(File tmpFile, int oleStreamSize) throws GeneralSecurityException, IOException
Generate an HMAC, as specified in [RFC2104], of the encrypted form of the data (message), which the DataIntegrity element will verify by using the Salt generated in step 2 as the key. Note that the entire EncryptedPackage stream (1), including the StreamSize field, MUST be used as the message. Encrypt the HMAC as in step 3 by using a blockKey byte array consisting of the following bytes: 0xa0, 0x67, 0x7f, 0x02, 0xb2, 0x2c, 0x84, and 0x33.- Throws:
GeneralSecurityException
IOException
-
createEncryptionDocument
protected EncryptionDocument createEncryptionDocument()
-
marshallEncryptionDocument
protected void marshallEncryptionDocument(EncryptionDocument ed, LittleEndianByteArrayOutputStream os)
-
copy
public AgileEncryptor copy()
-
-