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:
java.lang.Cloneable
public class AgileEncryptor extends Encryptor implements java.lang.Cloneable
-
-
Field Summary
-
Fields inherited from class org.apache.poi.poifs.crypt.Encryptor
DEFAULT_POIFS_ENTRY
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAgileEncryptor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description AgileEncryptorclone()voidconfirmPassword(java.lang.String password)voidconfirmPassword(java.lang.String password, byte[] keySpec, byte[] keySalt, byte[] verifier, byte[] verifierSalt, byte[] integritySalt)protected com.microsoft.schemas.office.x2006.encryption.EncryptionDocumentcreateEncryptionDocument()protected voidcreateEncryptionInfoEntry(DirectoryNode dir, java.io.File tmpFile)java.io.OutputStreamgetDataStream(DirectoryNode dir)Return a output stream for encrypted data.protected voidmarshallEncryptionDocument(com.microsoft.schemas.office.x2006.encryption.EncryptionDocument ed, LittleEndianByteArrayOutputStream os)protected voidupdateIntegrityHMAC(java.io.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, getInstance, getSecretKey, setChunkSize, setEncryptionInfo, setSecretKey
-
-
-
-
Method Detail
-
confirmPassword
public void confirmPassword(java.lang.String password)
- Specified by:
confirmPasswordin classEncryptor
-
confirmPassword
public void confirmPassword(java.lang.String password, byte[] keySpec, byte[] keySalt, byte[] verifier, byte[] verifierSalt, byte[] integritySalt)- Specified by:
confirmPasswordin classEncryptor
-
getDataStream
public java.io.OutputStream getDataStream(DirectoryNode dir) throws java.io.IOException, java.security.GeneralSecurityException
Description copied from class:EncryptorReturn a output stream for encrypted data.- Specified by:
getDataStreamin classEncryptor- Parameters:
dir- the node to write to- Returns:
- encrypted stream
- Throws:
java.io.IOExceptionjava.security.GeneralSecurityException
-
updateIntegrityHMAC
protected void updateIntegrityHMAC(java.io.File tmpFile, int oleStreamSize) throws java.security.GeneralSecurityException, java.io.IOExceptionGenerate 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:
java.security.GeneralSecurityExceptionjava.io.IOException
-
createEncryptionDocument
protected com.microsoft.schemas.office.x2006.encryption.EncryptionDocument createEncryptionDocument()
-
marshallEncryptionDocument
protected void marshallEncryptionDocument(com.microsoft.schemas.office.x2006.encryption.EncryptionDocument ed, LittleEndianByteArrayOutputStream os)
-
createEncryptionInfoEntry
protected void createEncryptionInfoEntry(DirectoryNode dir, java.io.File tmpFile) throws java.io.IOException, java.security.GeneralSecurityException
- Throws:
java.io.IOExceptionjava.security.GeneralSecurityException
-
clone
public AgileEncryptor clone() throws java.lang.CloneNotSupportedException
-
-