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 protectedAgileEncryptor()protectedAgileEncryptor(AgileEncryptor other)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidconfirmPassword(String password)voidconfirmPassword(String password, byte[] keySpec, byte[] keySalt, byte[] verifier, byte[] verifierSalt, byte[] integritySalt)AgileEncryptorcopy()protected EncryptionDocumentcreateEncryptionDocument()OutputStreamgetDataStream(DirectoryNode dir)Return an output stream for encrypted data.protected voidmarshallEncryptionDocument(EncryptionDocument ed, LittleEndianByteArrayOutputStream os)protected voidupdateIntegrityHMAC(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:
confirmPasswordin classEncryptor
-
confirmPassword
public void confirmPassword(String password, byte[] keySpec, byte[] keySalt, byte[] verifier, byte[] verifierSalt, byte[] integritySalt)
- Specified by:
confirmPasswordin classEncryptor
-
getDataStream
public OutputStream getDataStream(DirectoryNode dir) throws IOException, GeneralSecurityException
Description copied from class:EncryptorReturn an output stream for encrypted data.- Specified by:
getDataStreamin classEncryptor- Parameters:
dir- the node to write to- Returns:
- encrypted stream
- Throws:
IOExceptionGeneralSecurityException
-
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:
GeneralSecurityExceptionIOException
-
createEncryptionDocument
protected EncryptionDocument createEncryptionDocument()
-
marshallEncryptionDocument
protected void marshallEncryptionDocument(EncryptionDocument ed, LittleEndianByteArrayOutputStream os)
-
copy
public AgileEncryptor copy()
-
-