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:
Cloneable
-
Field Summary
Fields inherited from class org.apache.poi.poifs.crypt.Encryptor
DEFAULT_POIFS_ENTRY
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionclone()
void
confirmPassword
(String password) void
confirmPassword
(String password, byte[] keySpec, byte[] keySalt, byte[] verifier, byte[] verifierSalt, byte[] integritySalt) protected com.microsoft.schemas.office.x2006.encryption.EncryptionDocument
protected void
createEncryptionInfoEntry
(DirectoryNode dir, File tmpFile) Return a output stream for encrypted data.protected void
marshallEncryptionDocument
(com.microsoft.schemas.office.x2006.encryption.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, getInstance, getSecretKey, setChunkSize, setEncryptionInfo, setSecretKey
-
Constructor Details
-
AgileEncryptor
protected AgileEncryptor()
-
-
Method Details
-
confirmPassword
- 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
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:
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 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, File tmpFile) throws IOException, GeneralSecurityException - Throws:
IOException
GeneralSecurityException
-
clone
- Overrides:
clone
in classEncryptor
- Throws:
CloneNotSupportedException
-