Java Code Examples for org.apache.poi.poifs.crypt.EncryptionInfo#setDecryptor()

The following examples show how to use org.apache.poi.poifs.crypt.EncryptionInfo#setDecryptor() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: XOREncryptionInfoBuilder.java    From lams with GNU General Public License v2.0 5 votes vote down vote up
@Override
public void initialize(EncryptionInfo info, LittleEndianInput dis)
throws IOException {
    info.setHeader(new XOREncryptionHeader());
    info.setVerifier(new XOREncryptionVerifier(dis));
    Decryptor dec = new XORDecryptor();
    dec.setEncryptionInfo(info);
    info.setDecryptor(dec);
    Encryptor enc = new XOREncryptor();
    enc.setEncryptionInfo(info);
    info.setEncryptor(enc);
}
 
Example 2
Source File: XOREncryptionInfoBuilder.java    From lams with GNU General Public License v2.0 5 votes vote down vote up
@Override
public void initialize(EncryptionInfo info,
    CipherAlgorithm cipherAlgorithm, HashAlgorithm hashAlgorithm,
    int keyBits, int blockSize, ChainingMode chainingMode) {
    info.setHeader(new XOREncryptionHeader());
    info.setVerifier(new XOREncryptionVerifier());
    Decryptor dec = new XORDecryptor();
    dec.setEncryptionInfo(info);
    info.setDecryptor(dec);
    Encryptor enc = new XOREncryptor();
    enc.setEncryptionInfo(info);
    info.setEncryptor(enc);
}
 
Example 3
Source File: StandardEncryptionInfoBuilder.java    From lams with GNU General Public License v2.0 5 votes vote down vote up
/**
 * initialize the builder from a stream
 */
@Override
public void initialize(EncryptionInfo info, LittleEndianInput dis) throws IOException {
    /* int hSize = */ dis.readInt();
    StandardEncryptionHeader header = new StandardEncryptionHeader(dis);
    info.setHeader(header);
    info.setVerifier(new StandardEncryptionVerifier(dis, header));

    if (info.getVersionMinor() == 2 && (info.getVersionMajor() == 3 || info.getVersionMajor() == 4)) {
        StandardDecryptor dec = new StandardDecryptor();
        dec.setEncryptionInfo(info);
        info.setDecryptor(dec);
    }
}
 
Example 4
Source File: StandardEncryptionInfoBuilder.java    From lams with GNU General Public License v2.0 4 votes vote down vote up
/**
 * initialize the builder from scratch
 */
@Override
public void initialize(EncryptionInfo info, CipherAlgorithm cipherAlgorithm, HashAlgorithm hashAlgorithm, int keyBits, int blockSize, ChainingMode chainingMode) {
    if (cipherAlgorithm == null) {
        cipherAlgorithm = CipherAlgorithm.aes128;
    }
    if (cipherAlgorithm != CipherAlgorithm.aes128 &&
        cipherAlgorithm != CipherAlgorithm.aes192 &&
        cipherAlgorithm != CipherAlgorithm.aes256) {
        throw new EncryptedDocumentException("Standard encryption only supports AES128/192/256.");
    }
    
    if (hashAlgorithm == null) {
        hashAlgorithm = HashAlgorithm.sha1;
    }
    if (hashAlgorithm != HashAlgorithm.sha1) {
        throw new EncryptedDocumentException("Standard encryption only supports SHA-1.");
    }
    if (chainingMode == null) {
        chainingMode = ChainingMode.ecb;
    }
    if (chainingMode != ChainingMode.ecb) {
        throw new EncryptedDocumentException("Standard encryption only supports ECB chaining.");
    }
    if (keyBits == -1) {
        keyBits = cipherAlgorithm.defaultKeySize;
    }
    if (blockSize == -1) {
        blockSize = cipherAlgorithm.blockSize;
    }
    boolean found = false;
    for (int ks : cipherAlgorithm.allowedKeySize) {
        found |= (ks == keyBits);
    }
    if (!found) {
        throw new EncryptedDocumentException("KeySize "+keyBits+" not allowed for Cipher "+ cipherAlgorithm);
    }
    info.setHeader(new StandardEncryptionHeader(cipherAlgorithm, hashAlgorithm, keyBits, blockSize, chainingMode));
    info.setVerifier(new StandardEncryptionVerifier(cipherAlgorithm, hashAlgorithm, keyBits, blockSize, chainingMode));
    StandardDecryptor dec = new StandardDecryptor();
    dec.setEncryptionInfo(info);
    info.setDecryptor(dec);
    StandardEncryptor enc = new StandardEncryptor();
    enc.setEncryptionInfo(info);
    info.setEncryptor(enc);
}