2022-10-16 22:58:38 +02:00
|
|
|
"""Data structures and utilities to make keyring access easier.
|
2022-10-15 13:47:45 +02:00
|
|
|
|
|
|
|
IMPORTANT: This module has to be loaded _after_ initialisation of the logging
|
|
|
|
module.
|
|
|
|
"""
|
2022-09-30 22:40:42 +02:00
|
|
|
|
2022-10-22 19:21:25 +02:00
|
|
|
import lacre.config as conf
|
2023-09-30 22:38:33 +02:00
|
|
|
from lacre._keyringcommon import KeyRing, KeyCache
|
2023-12-17 14:03:20 +01:00
|
|
|
from lacre.repositories import IdentityRepository, init_engine
|
2022-10-05 22:11:26 +02:00
|
|
|
import logging
|
2022-09-30 22:40:42 +02:00
|
|
|
|
2022-10-05 22:11:26 +02:00
|
|
|
LOG = logging.getLogger(__name__)
|
|
|
|
|
2022-09-30 22:40:42 +02:00
|
|
|
|
2023-10-29 19:39:08 +01:00
|
|
|
def init_keyring() -> KeyRing:
|
2023-09-30 22:38:33 +02:00
|
|
|
"""Initialise appropriate type of keyring."""
|
2023-10-29 19:39:08 +01:00
|
|
|
url = conf.get_item('database', 'url')
|
2023-12-17 14:03:20 +01:00
|
|
|
db_engine = init_engine(url)
|
|
|
|
return IdentityRepository(engine=db_engine)
|
2023-11-17 22:51:09 +01:00
|
|
|
|
|
|
|
|
2023-11-24 22:59:21 +01:00
|
|
|
def freeze_and_load_keys() -> KeyCache:
|
2023-11-17 22:51:09 +01:00
|
|
|
"""Load and return keys.
|
|
|
|
|
|
|
|
Doesn't refresh the keys when they change on disk.
|
|
|
|
"""
|
|
|
|
keyring = init_keyring()
|
|
|
|
return keyring.freeze_identities()
|