-
Notifications
You must be signed in to change notification settings - Fork 101
Closed
Description
- System: Arch Linux
- python 3.11.8
- pykeepass 4.0.7
- secrets 8.0
Secrets is a password manager.
After importing #378 to make secrets even build and work (see the PR), secrets now crashes when trying to unlock the .kdbx. It looks like at least one of my expiration dates does have an incompatible format. This shouldn't happen inside a minor release. Rolling back to pykeepass 4.0.6 makes secrets work again.
This is the output I get when starting it from the terminal.
Traceback (most recent call last):
File "/usr/lib/python3.11/site-packages/gsecrets/unlock_database.py", line 212, in _unlock_callback
database_manager.unlock_finish(result)
File "/usr/lib/python3.11/site-packages/gsecrets/database_manager.py", line 124, in unlock_finish
self.entries.splice(0, 0, [SafeEntry(self, e) for e in db.entries])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/gsecrets/database_manager.py", line 124, in <listcomp>
self.entries.splice(0, 0, [SafeEntry(self, e) for e in db.entries])
^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/gsecrets/safe_element.py", line 545, in __init__
self._check_expiration()
File "/usr/lib/python3.11/site-packages/gsecrets/safe_element.py", line 603, in _check_expiration
if self.props.expired:
^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/gi/_propertyhelper.py", line 394, in obj_get_property
return getattr(self, name, None)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/gi/_propertyhelper.py", line 207, in __get__
value = self.fget(instance)
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/gsecrets/safe_element.py", line 919, in expired
return self.entry.expired
^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pykeepass/baseelement.py", line 120, in expired
self.expiry_time
File "/usr/lib/python3.11/site-packages/pykeepass/baseelement.py", line 127, in expiry_time
return self._get_times_property('ExpiryTime')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pykeepass/baseelement.py", line 94, in _get_times_property
return self._kp._decode_time(prop.text)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/pykeepass/pykeepass.py", line 824, in _decode_time
return datetime.strptime(text, DT_ISOFORMAT).replace(tzinfo=timezone.utc)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/_strptime.py", line 567, in _strptime_datetime
tt, fraction, gmtoff_fraction = _strptime(data_string, format)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/_strptime.py", line 349, in _strptime
raise ValueError("time data %r does not match format %r" %
ValueError: time data '2024-01-29T23:00:00+00:00' does not match format '%Y-%m-%dT%H:%M:%S%fZ'
Metadata
Metadata
Assignees
Labels
No labels