code: def authenticate(self, password):
          
          if hasattr(self, "_authenticate"):
              args = "password={0!r}".format(password)
              log.debug("authenticate({0})".format(args))
              self._authenticated = self._authenticate(password)
              if self._authenticated is True:
                  self._ndef = None
              return self._authenticated
          else:
              log.error("this tag can not be authenticated with nfcpy")
              return None
docs: Authenticate a tag with a *password*.
  
          A tag that was once protected with a password requires
          authentication before write, potentially also read, operations
          may be performed. The *password* must be the same as the
          password provided to :meth:`protect`. The return value
          indicates authentication success with :const:`True` or
          :const:`False`. For a tag that does not support authentication
          the return value is :const:`None`.