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());
}
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();
}
Aggregations