Search in sources :

Example 1 with CryptoAPIEncryptionVerifier

use of org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptionVerifier in project poi by apache.

the class FilePassRecord method serialize.

@SuppressWarnings("resource")
@Override
public void serialize(LittleEndianOutput out) {
    out.writeShort(encryptionType);
    byte[] data = new byte[1024];
    // NOSONAR
    LittleEndianByteArrayOutputStream bos = new LittleEndianByteArrayOutputStream(data, 0);
    switch(encryptionInfo.getEncryptionMode()) {
        case xor:
            ((XOREncryptionHeader) encryptionInfo.getHeader()).write(bos);
            ((XOREncryptionVerifier) encryptionInfo.getVerifier()).write(bos);
            break;
        case binaryRC4:
            out.writeShort(encryptionInfo.getVersionMajor());
            out.writeShort(encryptionInfo.getVersionMinor());
            ((BinaryRC4EncryptionHeader) encryptionInfo.getHeader()).write(bos);
            ((BinaryRC4EncryptionVerifier) encryptionInfo.getVerifier()).write(bos);
            break;
        case cryptoAPI:
            out.writeShort(encryptionInfo.getVersionMajor());
            out.writeShort(encryptionInfo.getVersionMinor());
            out.writeInt(encryptionInfo.getEncryptionFlags());
            ((CryptoAPIEncryptionHeader) encryptionInfo.getHeader()).write(bos);
            ((CryptoAPIEncryptionVerifier) encryptionInfo.getVerifier()).write(bos);
            break;
        default:
            throw new EncryptedDocumentException("not supported");
    }
    out.write(data, 0, bos.getWriteIndex());
}
Also used : CryptoAPIEncryptionVerifier(org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptionVerifier) LittleEndianByteArrayOutputStream(org.apache.poi.util.LittleEndianByteArrayOutputStream) EncryptedDocumentException(org.apache.poi.EncryptedDocumentException) CryptoAPIEncryptionHeader(org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptionHeader) XOREncryptionHeader(org.apache.poi.poifs.crypt.xor.XOREncryptionHeader) BinaryRC4EncryptionVerifier(org.apache.poi.poifs.crypt.binaryrc4.BinaryRC4EncryptionVerifier) XOREncryptionVerifier(org.apache.poi.poifs.crypt.xor.XOREncryptionVerifier) BinaryRC4EncryptionHeader(org.apache.poi.poifs.crypt.binaryrc4.BinaryRC4EncryptionHeader)

Example 2 with CryptoAPIEncryptionVerifier

use of org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptionVerifier in project poi by apache.

the class DocumentEncryptionAtom method writeOut.

/**
	 * Write the contents of the record back, so it can be written
	 *  to disk
	 */
public void writeOut(OutputStream out) throws IOException {
    // Data
    byte[] data = new byte[1024];
    LittleEndianByteArrayOutputStream bos = new LittleEndianByteArrayOutputStream(data, 0);
    bos.writeShort(ei.getVersionMajor());
    bos.writeShort(ei.getVersionMinor());
    bos.writeInt(ei.getEncryptionFlags());
    ((CryptoAPIEncryptionHeader) ei.getHeader()).write(bos);
    ((CryptoAPIEncryptionVerifier) ei.getVerifier()).write(bos);
    // Header
    LittleEndian.putInt(_header, 4, bos.getWriteIndex());
    out.write(_header);
    out.write(data, 0, bos.getWriteIndex());
    bos.close();
}
Also used : CryptoAPIEncryptionVerifier(org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptionVerifier) LittleEndianByteArrayOutputStream(org.apache.poi.util.LittleEndianByteArrayOutputStream) CryptoAPIEncryptionHeader(org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptionHeader)

Aggregations

CryptoAPIEncryptionHeader (org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptionHeader)2 CryptoAPIEncryptionVerifier (org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptionVerifier)2 LittleEndianByteArrayOutputStream (org.apache.poi.util.LittleEndianByteArrayOutputStream)2 EncryptedDocumentException (org.apache.poi.EncryptedDocumentException)1 BinaryRC4EncryptionHeader (org.apache.poi.poifs.crypt.binaryrc4.BinaryRC4EncryptionHeader)1 BinaryRC4EncryptionVerifier (org.apache.poi.poifs.crypt.binaryrc4.BinaryRC4EncryptionVerifier)1 XOREncryptionHeader (org.apache.poi.poifs.crypt.xor.XOREncryptionHeader)1 XOREncryptionVerifier (org.apache.poi.poifs.crypt.xor.XOREncryptionVerifier)1