Example #1
0
 def set_password(self, new_password, password_key):
     dev = self._descriptor.open_device(TRANSPORT.CCID)
     controller = OathController(dev.driver)
     if controller.locked and password_key is not None:
         controller.validate(a2b_hex(password_key))
     if new_password is not None:
         key = derive_key(controller.id, new_password)
         controller.set_password(key)
     else:
         controller.clear_password()
Example #2
0
 def set_password(self, new_password, remember=False):
     dev = self._descriptor.open_device(TRANSPORT.CCID)
     controller = OathController(dev.driver)
     self._unlock(controller)
     keys = self.settings.setdefault('keys', {})
     if new_password is not None:
         self._key = controller.set_password(new_password)
         if remember:
             keys[controller.id] = b2a_hex(self._key).decode()
         elif controller.id in keys:
             del keys[controller.id]
     else:
         controller.clear_password()
         del keys[controller.id]
         self._key = None
     self.settings.write()
Example #3
0
 def set_password(self, new_password, remember=False):
     dev = self._descriptor.open_device(TRANSPORT.CCID)
     controller = OathController(dev.driver)
     self._unlock(controller)
     keys = self.settings.setdefault('keys', {})
     if new_password is not None:
         self._key = controller.set_password(new_password)
         if remember:
             keys[controller.id] = b2a_hex(self._key).decode()
         elif controller.id in keys:
             del keys[controller.id]
     else:
         controller.clear_password()
         del keys[controller.id]
         self._key = None
     self.settings.write()