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)
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)
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)
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)