Java Code Examples for org.bouncycastle.openpgp.PGPCompressedData#getDataStream()
The following examples show how to use
org.bouncycastle.openpgp.PGPCompressedData#getDataStream() .
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: BouncyCastleTest.java From nomulus with Apache License 2.0 | 6 votes |
@Test public void testCompressDecompress() throws Exception { // Compress the data and write out a compressed data OpenPGP message. byte[] data; try (ByteArrayOutputStream output = new ByteArrayOutputStream()) { PGPCompressedDataGenerator kompressor = new PGPCompressedDataGenerator(ZIP); try (OutputStream output2 = kompressor.open(output)) { output2.write(FALL_OF_HYPERION_A_DREAM.getBytes(UTF_8)); } data = output.toByteArray(); } logger.atInfo().log("Compressed data: %s", dumpHex(data)); // Decompress the data. try (ByteArrayInputStream input = new ByteArrayInputStream(data)) { PGPObjectFactory pgpFact = new BcPGPObjectFactory(input); PGPCompressedData object = (PGPCompressedData) pgpFact.nextObject(); InputStream original = object.getDataStream(); // Closing this would close input. assertThat(CharStreams.toString(new InputStreamReader(original, UTF_8))) .isEqualTo(FALL_OF_HYPERION_A_DREAM); assertThat(pgpFact.nextObject()).isNull(); } }
Example 2
Source File: PGPEncryptionUtil.java From peer-os with Apache License 2.0 | 5 votes |
/** * *********************************************** */ private static PGPLiteralData asLiteral( final InputStream clear ) throws IOException, PGPException { final PGPObjectFactory plainFact = new PGPObjectFactory( clear, new JcaKeyFingerprintCalculator() ); final Object message = plainFact.nextObject(); if ( message instanceof PGPCompressedData ) { final PGPCompressedData cData = ( PGPCompressedData ) message; final PGPObjectFactory pgpFact = new PGPObjectFactory( cData.getDataStream(), new JcaKeyFingerprintCalculator() ); // Find the first PGPLiteralData object Object object = null; for ( int safety = 0; ( safety++ < 1000 ) && !( object instanceof PGPLiteralData ); object = pgpFact.nextObject() ) { //ignore } return ( PGPLiteralData ) object; } else if ( message instanceof PGPLiteralData ) { return ( PGPLiteralData ) message; } else if ( message instanceof PGPOnePassSignatureList ) { throw new PGPException( "encrypted message contains a signed message - not literal data." ); } else { throw new PGPException( "message is not a simple encrypted file - type unknown: " + message.getClass().getName() ); } }
Example 3
Source File: RydeCompression.java From nomulus with Apache License 2.0 | 5 votes |
/** * Creates an InputStream that decompresses the data. * * <p>TODO(b/110465964): document where the input comes from / output goes to. Something like * documenting that input is the result of openDecryptor and the result goes into openFileDecoder. */ @CheckReturnValue static ImprovedInputStream openDecompressor(@WillNotClose InputStream input) { try { PGPCompressedData compressed = PgpUtils.readSinglePgpObject(input, PGPCompressedData.class); return new ImprovedInputStream("RydeDecompressor", compressed.getDataStream()); } catch (PGPException e) { throw new RuntimeException(e); } }
Example 4
Source File: GPGFileDecryptor.java From incubator-gobblin with Apache License 2.0 | 5 votes |
/** * Move to the next {@link InputStream} if available, otherwise set {@link #currentUnderlyingStream} to null to * indicate that there is no more data. * @throws IOException */ private void moveToNextInputStream() throws IOException { Object pgpfObject = this.pgpFact.nextObject(); // no more data if (pgpfObject == null) { this.currentUnderlyingStream = null; return; } if (pgpfObject instanceof PGPCompressedData) { PGPCompressedData cData = (PGPCompressedData) pgpfObject; try { this.pgpFact = new JcaPGPObjectFactory(cData.getDataStream()); } catch (PGPException e) { throw new IOException("Could not get the PGP data stream", e); } pgpfObject = this.pgpFact.nextObject(); } if (pgpfObject instanceof PGPLiteralData) { this.currentUnderlyingStream = ((PGPLiteralData) pgpfObject).getInputStream(); } else if (pgpfObject instanceof PGPOnePassSignatureList) { throw new IOException("encrypted message contains PGPOnePassSignatureList message - not literal data."); } else if (pgpfObject instanceof PGPSignatureList) { throw new IOException("encrypted message contains PGPSignatureList message - not literal data."); } else { throw new IOException("message is not a simple encrypted file - type unknown."); } }
Example 5
Source File: PGPDecrypt.java From peer-os with Apache License 2.0 | 4 votes |
private static InputStream getInputStream( PGPPrivateKey privateKey, PGPPublicKeyEncryptedData pgpEncData ) throws PGPException, IOException { InputStream is = pgpEncData .getDataStream( new JcePublicKeyDataDecryptorFactoryBuilder().setProvider( "BC" ).build( privateKey ) ); JcaPGPObjectFactory objectFactory = new JcaPGPObjectFactory( is ); Object message = objectFactory.nextObject(); PGPCompressedData compressedData = ( PGPCompressedData ) message; JcaPGPObjectFactory pgpObjectFactory = new JcaPGPObjectFactory( compressedData.getDataStream() ); PGPLiteralData literalData = ( PGPLiteralData ) pgpObjectFactory.nextObject(); return literalData.getInputStream(); }
Example 6
Source File: PGPVerify.java From peer-os with Apache License 2.0 | 3 votes |
private static JcaPGPObjectFactory getObjectFactory( byte signedData[] ) throws IOException, PGPException { InputStream in = PGPUtil.getDecoderStream( new ByteArrayInputStream( signedData ) ); JcaPGPObjectFactory pgpFact = new JcaPGPObjectFactory( in ); PGPCompressedData compressedData = ( PGPCompressedData ) pgpFact.nextObject(); return new JcaPGPObjectFactory( compressedData.getDataStream() ); }