code: protected Digest copyState(DigestEngine dest) {
          dest.inputLen = inputLen;
          dest.blockCount = blockCount;
          System.arraycopy(inputBuf, 0, dest.inputBuf, 0, inputBuf.length);
          adjustDigestLen();
          dest.adjustDigestLen();
          System.arraycopy(outputBuf, 0, dest.outputBuf, 0, outputBuf.length);
          return dest;
      }
docs: This function copies the internal buffering state to some other instance of a
  class extending {@code DigestEngine}. It returns a reference to the copy.
  This method is intended to be called by the implementation of the
  {@link #copy} method.
  
  @param dest
  the copy
  @return the value {@code dest}