org.apache.poi.poifs.crypt.cryptoapi
Class CryptoAPIEncryptor

java.lang.Object
  extended by org.apache.poi.poifs.crypt.Encryptor
      extended by org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptor

public class CryptoAPIEncryptor
extends Encryptor


Field Summary
 
Fields inherited from class org.apache.poi.poifs.crypt.Encryptor
DEFAULT_POIFS_ENTRY
 
Constructor Summary
protected CryptoAPIEncryptor(CryptoAPIEncryptionInfoBuilder builder)
           
 
Method Summary
 void confirmPassword(java.lang.String password)
           
 void confirmPassword(java.lang.String password, byte[] keySpec, byte[] keySalt, byte[] verifier, byte[] verifierSalt, byte[] integritySalt)
           
protected  void createEncryptionInfoEntry(DirectoryNode dir)
           
 java.io.OutputStream getDataStream(DirectoryNode dir)
          Encrypt the Document-/SummaryInformation and other optionally streams.
protected  int getKeySizeInBytes()
           
 javax.crypto.Cipher initCipherForBlock(javax.crypto.Cipher cipher, int block)
          Initializes a cipher object for a given block index for encryption
 
Methods inherited from class org.apache.poi.poifs.crypt.Encryptor
getDataStream, getDataStream, getDataStream, getInstance, getSecretKey, setSecretKey
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CryptoAPIEncryptor

protected CryptoAPIEncryptor(CryptoAPIEncryptionInfoBuilder builder)
Method Detail

confirmPassword

public void confirmPassword(java.lang.String password)
Specified by:
confirmPassword in class Encryptor

confirmPassword

public void confirmPassword(java.lang.String password,
                            byte[] keySpec,
                            byte[] keySalt,
                            byte[] verifier,
                            byte[] verifierSalt,
                            byte[] integritySalt)
Specified by:
confirmPassword in class Encryptor

initCipherForBlock

public javax.crypto.Cipher initCipherForBlock(javax.crypto.Cipher cipher,
                                              int block)
                                       throws java.security.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 index
block - the block index, e.g. the persist/slide id (hslf)
Returns:
a new cipher object, if cipher was null, otherwise the reinitialized cipher
Throws:
java.security.GeneralSecurityException

getDataStream

public java.io.OutputStream getDataStream(DirectoryNode dir)
                                   throws java.io.IOException,
                                          java.security.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

Specified by:
getDataStream in class Encryptor
Parameters:
dir - the node to write to
Returns:
encrypted stream
Throws:
java.io.IOException
java.security.GeneralSecurityException
See Also:
2.3.5.4 RC4 CryptoAPI Encrypted Summary Stream

getKeySizeInBytes

protected int getKeySizeInBytes()

createEncryptionInfoEntry

protected void createEncryptionInfoEntry(DirectoryNode dir)
                                  throws java.io.IOException
Throws:
java.io.IOException


Copyright 2016 The Apache Software Foundation or its licensors, as applicable.