docs: public byte[] digest(InputStream data, int bufferLength) {
  		if (bufferLength < 1) {
  			bufferLength = IoUtil.DEFAULT_BUFFER_SIZE;
  		}
  		byte[] buffer = new byte[bufferLength];
  		
  		byte[] result = null;
  		try {
  			int read = data.read(buffer, 0, bufferLength);
  			
  			while (read > -1) {
  				mac.update(buffer, 0, read);
  				read = data.read(buffer, 0, bufferLength);
  			}
  			result = mac.doFinal();
  		} catch (IOException e) {
  			throw new CryptoException(e);
  		}finally{
  			mac.reset();
  		}
  		return result;
  	}