def authenticate(self, key=None):
        salt = self._data.get(TAG_SALT)

        if key is not None and salt is not None:
            key = derive_key(key, salt)
        elif is_hex_key(key):
            key = key.decode('hex')

        self._authenticated = False
        if test(self._key.authenticate, key, catches=PivError):
            self._authenticated = True
        else:
            raise ValueError(m.wrong_key)
Example #2
0
    def authenticate(self, key=None):
        salt = self._data.get(TAG_SALT)

        if key is not None and salt is not None:
            key = derive_key(key, salt)
        elif is_hex_key(key):
            key = a2b_hex(key)

        self._authenticated = False
        if test(self._key.authenticate, key, catches=PivError):
            self._authenticated = True
        else:
            raise ValueError(m.wrong_key)
    def ensure_authenticated(self, key=None, window=None):
        if self.authenticated or test(self.authenticate, catches=ValueError):
            return

        if window is None:
            window = get_active_window()

        if self.pin_is_key:
            key = self.ensure_pin(key, window)
            self.authenticate(key)
            return
        elif key is not None:
            try:
                self.authenticate(key)
                return
            except ValueError:
                pass

        self._do_ensure_auth(None, window)
Example #4
0
    def ensure_authenticated(self, key=None, window=None):
        if self.authenticated or test(self.authenticate, catches=ValueError):
            return

        if window is None:
            window = get_active_window()

        if self.pin_is_key:
            key = self.ensure_pin(key, window)
            self.authenticate(key)
            return
        elif key is not None:
            try:
                self.authenticate(key)
                return
            except ValueError:
                pass

        self._do_ensure_auth(None, window)
 def _invalidate_puk(self):
     set_flag(self._data, TAG_FLAGS_1, FLAG1_PUK_BLOCKED)
     for i in range(8):  # Invalidate the PUK
         test(self._key.set_puk, '', '', catches=ValueError)
 def is_uninitialized(self):
     return not self._data and test(self._key.authenticate)
 def poll(self):
     return test(self._key._read_version)
Example #8
0
 def _invalidate_puk(self):
     set_flag(self._data, TAG_FLAGS_1, FLAG1_PUK_BLOCKED)
     for i in range(8):  # Invalidate the PUK
         test(self._key.set_puk, '', '000000', catches=ValueError)
Example #9
0
 def is_uninitialized(self):
     return not self._data and test(self._key.authenticate)
Example #10
0
 def poll(self):
     return test(self._key._read_version)