docs: @Override
      public synchronized void sign ( byte[] data, int offset, int length, CommonServerMessageBlock request, CommonServerMessageBlock response ) {
          this.digest.reset();
  
          // zero out signature field
          int index = offset + SIGNATURE_OFFSET;
          for ( int i = 0; i < SIGNATURE_LENGTH; i++ )
              data[ index + i ] = 0;
  
          // set signed flag
          int oldFlags = SMBUtil.readInt4(data, offset + 16);
          int flags = oldFlags | ServerMessageBlock2.SMB2_FLAGS_SIGNED;
          SMBUtil.writeInt4(flags, data, offset + 16);
  
          this.digest.update(data, offset, length);
  
          byte[] sig = this.digest.doFinal();
          System.arraycopy(sig, 0, data, offset + SIGNATURE_OFFSET, SIGNATURE_LENGTH);
      }