code: public byte[] decodeBinary() throws IOException {
  		final int length = decodeUnsignedInteger();
  		byte[] result = new byte[length];
  
  		int readBytes = 0;
  		while (readBytes < length) {
  			int len = is.read(result, readBytes, length - readBytes);
  			if (len == -1) {
  				throw new EOFException(
  						"Premature EOS found while reading data.");
  			}
  			readBytes += len;
  		}
  
  		// int readBytes = is.read(result);
  		// if (readBytes < length) {
  		// // special case: not all bytes are read
  		// while ((readBytes += is.read(result, readBytes, length - readBytes))
  		// < length) {
  		// }
  		// }
  
  		return result;
  	}
docs: Decode a binary value as a length-prefixed sequence of octets.