docs: def wrap(self, message):
          """
          [MS-NLMP] v28.0 2016-07-14
  
          3.4.6 GSS_WrapEx()
          Emulates the GSS_Wrap() implementation to sign and seal messages if the correct flags
          are set.
  
          @param message: The message data that will be wrapped
          @return message: The message that has been sealed if flags are set
          @return signature: The signature of the message, None if flags are not set
          """
          if self.negotiate_flags & NegotiateFlags.NTLMSSP_NEGOTIATE_SEAL:
              encrypted_message = self._seal_message(message)
              signature = self._get_signature(message)
              message = encrypted_message
  
          elif self.negotiate_flags & NegotiateFlags.NTLMSSP_NEGOTIATE_SIGN:
              signature = self._get_signature(message)
          else:
              signature = None
  
          return message, signature