code: @Override
    @CanIgnoreReturnValue
    public int read() throws IOException {
      int b = in.read();
      if (b != -1) {
        hasher.putByte((byte) b);
      }
      return b;
    }
docs: Reads the next byte of data from the underlying input stream and updates the hasher with the
  byte read.