List of usage examples for java.util.zip Inflater inflate
public int inflate(ByteBuffer output) throws DataFormatException
From source file:Main.java
public static byte[] decompress(byte[] data, int off, int len, int srcLen) { byte[] output = null; Inflater decompresser = new Inflater(); decompresser.reset();// w w w . java 2s.co m // decompresser.setInput(data); decompresser.setInput(data, off, len); ByteArrayOutputStream o = new ByteArrayOutputStream(srcLen); try { o.reset(); byte[] buf = new byte[1024]; while (!decompresser.finished()) { int i = decompresser.inflate(buf); o.write(buf, 0, i); } output = o.toByteArray(); } catch (Exception e) { throw new RuntimeException(e); } finally { try { o.close(); decompresser.end(); } catch (Exception e) { } } return output; }
From source file:Main.java
public static byte[] zlibDecompress(byte[] data, int offset, int length) { byte[] output = null; Inflater decompresser = new Inflater(); decompresser.reset();//w ww . j av a 2 s . c om try { decompresser.setInput(data, offset, length); } catch (Exception e) { return null; } ByteArrayOutputStream o = new ByteArrayOutputStream(data.length); try { byte[] buf = new byte[1024]; while (!decompresser.finished()) { int i = decompresser.inflate(buf); o.write(buf, 0, i); } output = o.toByteArray(); } catch (Exception e) { output = data; e.printStackTrace(); } finally { try { o.close(); } catch (IOException e) { e.printStackTrace(); } } decompresser.end(); return output; }
From source file:org.socraticgrid.workbench.security.wso2.Saml2Util.java
/** * Decoding and deflating the encoded AuthReq * * @param encodedStr encoded AuthReq/*from www .j a v a 2 s . c o m*/ * @return decoded AuthReq */ public static String decode(String encodedStr) throws Exception { try { org.apache.commons.codec.binary.Base64 base64Decoder = new org.apache.commons.codec.binary.Base64(); byte[] xmlBytes = encodedStr.getBytes("UTF-8"); byte[] base64DecodedByteArray = base64Decoder.decode(xmlBytes); try { Inflater inflater = new Inflater(true); inflater.setInput(base64DecodedByteArray); byte[] xmlMessageBytes = new byte[5000]; int resultLength = inflater.inflate(xmlMessageBytes); if (!inflater.finished()) { throw new RuntimeException("didn't allocate enough space to hold " + "decompressed data"); } inflater.end(); return new String(xmlMessageBytes, 0, resultLength, "UTF-8"); } catch (DataFormatException e) { ByteArrayInputStream bais = new ByteArrayInputStream(base64DecodedByteArray); ByteArrayOutputStream baos = new ByteArrayOutputStream(); InflaterInputStream iis = new InflaterInputStream(bais); byte[] buf = new byte[1024]; int count = iis.read(buf); while (count != -1) { baos.write(buf, 0, count); count = iis.read(buf); } iis.close(); String decodedStr = new String(baos.toByteArray()); return decodedStr; } } catch (IOException e) { throw new Exception("Error when decoding the SAML Request.", e); } }
From source file:radixcore.network.ByteBufIO.java
/** * Decompresses a compressed byte array. * /* w ww . j a v a 2 s . c o m*/ * @param input The byte array to be decompressed. * @return The byte array in its decompressed, readable form. */ public static byte[] decompress(byte[] input) { try { final Inflater inflater = new Inflater(); final ByteArrayOutputStream byteOutput = new ByteArrayOutputStream(input.length); final byte[] buffer = new byte[1024]; inflater.setInput(input); while (!inflater.finished()) { final int count = inflater.inflate(buffer); byteOutput.write(buffer, 0, count); } inflater.end(); byteOutput.close(); return byteOutput.toByteArray(); } catch (final DataFormatException e) { RadixExcept.logFatalCatch(e, "Error decompressing byte array."); return null; } catch (final IOException e) { RadixExcept.logFatalCatch(e, "Error decompressing byte array."); return null; } }
From source file:org.wso2.identity.integration.test.requestPathAuthenticator.RequestPathAuthenticatorTestCase.java
/** * Decoding and deflating the encoded AuthReq * * @param encodedStr encoded AuthReq/*from w ww . j av a 2s. c o m*/ * @return decoded AuthReq */ private static String decode(String encodedStr) { try { Base64 base64Decoder = new Base64(); byte[] xmlBytes = encodedStr.getBytes(DEFAULT_CHARSET); byte[] base64DecodedByteArray = base64Decoder.decode(xmlBytes); try { Inflater inflater = new Inflater(true); inflater.setInput(base64DecodedByteArray); byte[] xmlMessageBytes = new byte[5000]; int resultLength = inflater.inflate(xmlMessageBytes); if (!inflater.finished()) { throw new RuntimeException("End of the compressed data stream has NOT been reached"); } inflater.end(); String decodedString = new String(xmlMessageBytes, 0, resultLength, (DEFAULT_CHARSET)); return decodedString; } catch (DataFormatException e) { ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(base64DecodedByteArray); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); InflaterInputStream iis = new InflaterInputStream(byteArrayInputStream); byte[] buf = new byte[1024]; int count = iis.read(buf); while (count != -1) { byteArrayOutputStream.write(buf, 0, count); count = iis.read(buf); } iis.close(); String decodedStr = new String(byteArrayOutputStream.toByteArray(), StandardCharsets.UTF_8); return decodedStr; } } catch (IOException e) { Assert.fail("Error while decoding SAML response"); return ""; } }
From source file:ZipUtil.java
/** * Inflates a previously deflated file./*from w w w . ja v a 2 s .c om*/ */ public static byte[] unzipByteArray(byte[] file) throws IOException { byte[] byReturn = null; Inflater oInflate = new Inflater(false); oInflate.setInput(file); ByteArrayOutputStream oZipStream = new ByteArrayOutputStream(); try { while (!oInflate.finished()) { byte[] byRead = new byte[ZIP_BUFFER_SIZE]; int iBytesRead = oInflate.inflate(byRead); if (iBytesRead == byRead.length) { oZipStream.write(byRead); } else { oZipStream.write(byRead, 0, iBytesRead); } } byReturn = oZipStream.toByteArray(); } catch (DataFormatException ex) { throw new IOException("Attempting to unzip file that is not zipped."); } finally { oZipStream.close(); } return byReturn; }
From source file:ch.cern.security.saml2.utils.xml.XMLUtils.java
public static String xmlDecodeAndInflate(String encodedXmlString, boolean isDebugEnabled) throws UnsupportedEncodingException, DataFormatException { // URL decode // No need to URL decode: auto decoded by request.getParameter() method (GET) if (isDebugEnabled) nc.notice("Encoded XML String: " + encodedXmlString); // Base64 decode Base64 base64Decoder = new Base64(); byte[] xmlBytes = encodedXmlString.getBytes("UTF-8"); byte[] base64DecodedByteArray = base64Decoder.decode(xmlBytes); if (isDebugEnabled) nc.notice("Base64 decoded bytes: " + new String(base64DecodedByteArray, "UTF-8")); // Inflate (uncompress) the AuthnRequest data // First attempt to unzip the byte array according to DEFLATE (rfc 1951) Inflater inflater = new Inflater(true); inflater.setInput(base64DecodedByteArray); // since we are decompressing, it's impossible to know how much space we // might need; hopefully this number is suitably big byte[] xmlMessageBytes = new byte[5000]; int resultLength = inflater.inflate(xmlMessageBytes); if (!inflater.finished()) { throw new RuntimeException("didn't allocate enough space to hold " + "decompressed data"); }//from w w w .j av a 2s . com inflater.end(); String decodedString = new String(xmlMessageBytes, 0, resultLength, "UTF-8"); if (isDebugEnabled) nc.notice("Decoded and inflated string (UTF-8): " + new String(base64DecodedByteArray)); return decodedString; }
From source file:org.wso2.carbon.identity.authenticator.saml2.sso.ui.Util.java
/** * Decoding and deflating the encoded AuthReq * * @param encodedStr encoded AuthReq/* w w w . j a va2 s . c o m*/ * @return decoded AuthReq */ public static String decode(String encodedStr) throws SAML2SSOUIAuthenticatorException { try { org.apache.commons.codec.binary.Base64 base64Decoder = new org.apache.commons.codec.binary.Base64(); byte[] xmlBytes = encodedStr.getBytes("UTF-8"); byte[] base64DecodedByteArray = base64Decoder.decode(xmlBytes); try { Inflater inflater = new Inflater(true); inflater.setInput(base64DecodedByteArray); byte[] xmlMessageBytes = new byte[5000]; int resultLength = inflater.inflate(xmlMessageBytes); if (inflater.getRemaining() > 0) { throw new RuntimeException("didn't allocate enough space to hold " + "decompressed data"); } inflater.end(); return new String(xmlMessageBytes, 0, resultLength, "UTF-8"); } catch (DataFormatException e) { ByteArrayInputStream bais = new ByteArrayInputStream(base64DecodedByteArray); ByteArrayOutputStream baos = new ByteArrayOutputStream(); InflaterInputStream iis = new InflaterInputStream(bais); byte[] buf = new byte[1024]; int count = iis.read(buf); while (count != -1) { baos.write(buf, 0, count); count = iis.read(buf); } iis.close(); String decodedStr = new String(baos.toByteArray()); return decodedStr; } } catch (IOException e) { throw new SAML2SSOUIAuthenticatorException("Error when decoding the SAML Request.", e); } }
From source file:com.qatickets.common.ZIPHelper.java
public static byte[] decompressAsBytes(byte[] data) { if (data == null) { return null; }// w ww. j av a 2 s. c om // Create the decompressor and give it the data to compress final Inflater decompressor = new Inflater(); decompressor.setInput(data); // Create an expandable byte array to hold the decompressed data final ByteArrayOutputStream bos = new ByteArrayOutputStream(data.length); // Decompress the data final byte[] buf = new byte[1024]; while (!decompressor.finished()) { try { final int count = decompressor.inflate(buf); bos.write(buf, 0, count); } catch (DataFormatException e) { } } try { bos.close(); } catch (IOException e) { } // Get the decompressed data final byte[] decompressedData = bos.toByteArray(); decompressor.end(); return decompressedData; }
From source file:com.simiacryptus.text.CompressionUtil.java
/** * Decode lz byte [ ].//w w w.j a v a 2 s. c o m * * @param data the data * @param dictionary the dictionary * @return the byte [ ] */ public static byte[] decodeLZ(byte[] data, String dictionary) { try { Inflater decompresser = new Inflater(); decompresser.setInput(data, 0, data.length); byte[] result = new byte[data.length * 32]; int resultLength = 0; if (!dictionary.isEmpty()) { resultLength = decompresser.inflate(result); assert (0 == resultLength); if (decompresser.needsDictionary()) { byte[] bytes = dictionary.getBytes("UTF-8"); decompresser.setDictionary(bytes); } } resultLength = decompresser.inflate(result); decompresser.end(); return Arrays.copyOfRange(result, 0, resultLength); } catch (DataFormatException | UnsupportedEncodingException e) { throw new RuntimeException(e); } }