List of usage examples for org.bouncycastle.cms.jcajce ZlibCompressor ZlibCompressor
ZlibCompressor
From source file:de.mendelson.comm.as2.message.AS2MessageCreation.java
/** * Compresses the payload using the ZLIB algorithm *///from ww w. j ava 2 s .c om private MimeBodyPart compressPayload(Partner receiver, InputStream dataStream, String contentType) throws Exception { MimeBodyPart bodyPart = new MimeBodyPart(); bodyPart.setDataHandler(new DataHandler(new ByteArrayDataSource(dataStream, contentType))); bodyPart.addHeader("Content-Type", contentType); if (receiver.getContentTransferEncoding() == AS2Message.CONTENT_TRANSFER_ENCODING_BASE64) { bodyPart.addHeader("Content-Transfer-Encoding", "base64"); } else { bodyPart.addHeader("Content-Transfer-Encoding", "binary"); } SMIMECompressedGenerator generator = new SMIMECompressedGenerator(); if (receiver.getContentTransferEncoding() == AS2Message.CONTENT_TRANSFER_ENCODING_BASE64) { generator.setContentTransferEncoding("base64"); } else { generator.setContentTransferEncoding("binary"); } return (generator.generate(bodyPart, new ZlibCompressor())); }
From source file:de.mendelson.comm.as2.message.AS2MessageCreation.java
/** * Compresses the payload using the ZLIB algorithm *///from ww w. ja v a 2s. c o m private MimeBodyPart compressPayload(Partner receiver, Part contentPart) throws SMIMEException { SMIMECompressedGenerator generator = new SMIMECompressedGenerator(); if (receiver.getContentTransferEncoding() == AS2Message.CONTENT_TRANSFER_ENCODING_BASE64) { generator.setContentTransferEncoding("base64"); } else { generator.setContentTransferEncoding("binary"); } if (contentPart instanceof MimeBodyPart) { return (generator.generate((MimeBodyPart) contentPart, new ZlibCompressor())); } else if (contentPart instanceof MimeMessage) { return (generator.generate((MimeMessage) contentPart, new ZlibCompressor())); } else { throw new IllegalArgumentException( "compressPayload: Unable to compress a Part of class " + contentPart.getClass().getName()); } }
From source file:de.mendelson.util.security.BCCryptoHelper.java
/** * Compress a data stream//from w w w . ja va 2s . c o m */ public void compressCMS(InputStream uncompressed, OutputStream compressed, boolean inMemory) throws Exception { //streamed compression does not work without a stream buffer in bc 1.45 and before CMSCompressedDataStreamGenerator generator = new CMSCompressedDataStreamGenerator(); if (inMemory) { ByteArrayOutputStream memBuffer = new ByteArrayOutputStream(); OutputStream cOut = generator.open(memBuffer, new ZlibCompressor()); this.copyStreams(uncompressed, cOut); cOut.flush(); cOut.close(); compressed.write(memBuffer.toByteArray()); } else { File tempFile = File.createTempFile("compress", ".temp"); FileOutputStream fileBuffer = null; try { fileBuffer = new FileOutputStream(tempFile); OutputStream cOut = generator.open(fileBuffer, new ZlibCompressor()); this.copyStreams(uncompressed, cOut); cOut.flush(); cOut.close(); } finally { if (fileBuffer != null) { fileBuffer.flush(); fileBuffer.close(); } } FileInputStream fileIn = null; try { fileIn = new FileInputStream(tempFile); this.copyStreams(fileIn, compressed); } finally { if (fileIn != null) { fileIn.close(); } } boolean deleted = tempFile.delete(); } }