docs: @Override
      public void sign ( byte[] data, int offset, int length, CommonServerMessageBlock request, CommonServerMessageBlock response ) {
          if ( log.isTraceEnabled() ) {
              log.trace("Signing with seq " + this.signSequence);
          }
  
          ( (ServerMessageBlock) request ).setSignSeq(this.signSequence);
          if ( response != null ) {
              ( (ServerMessageBlock) response ).setSignSeq(this.signSequence + 1);
          }
  
          try {
              update(this.macSigningKey, 0, this.macSigningKey.length);
              int index = offset + SmbConstants.SIGNATURE_OFFSET;
              for ( int i = 0; i < 8; i++ )
                  data[ index + i ] = 0;
              SMBUtil.writeInt4(this.signSequence, data, index);
              update(data, offset, length);
              System.arraycopy(digest(), 0, data, index, 8);
              if ( this.bypass ) {
                  this.bypass = false;
                  System.arraycopy("BSRSPYL ".getBytes(), 0, data, index, 8);
              }
          }
          catch ( Exception ex ) {
              log.error("Signature failed", ex);
          }
          finally {
              if ( request instanceof SmbComNtCancel ) {
                  this.signSequence++;
              }
              else {
                  this.signSequence += 2;
              }
          }
      }