def init_keyring(self): print("Testing SecretServiceKeyring; the following " "password prompts are for this keyring") keyring = SecretService.Keyring() keyring.preferred_collection = ( '/org/freedesktop/secrets/collection/session') return keyring
def configureKeyring(self): """ Sets the propper keyring backend for the used OS. This isn't automatically detected correctly with Nuitka """ if self.osType.usingWindows: from keyring.backends import Windows keyring.set_keyring(Windows.WinVaultKeyring()) elif self.osType.usingMac: from keyring.backends import OS_X keyring.set_keyring(OS_X.Keyring()) else: from keyring.backends import SecretService keyring.set_keyring(SecretService.Keyring())
def init_keyring(self): print("Testing SecretServiceKeyring; the following " "password prompts are for this keyring") return SecretService.Keyring()
For Linux not every system has SecretService available, so it will fall back to a simple database keystore if needed. """ if sys.platform == 'darwin': # from keyring.backends import OS_X # keyring.set_keyring(OS_X.Keyring()) from vorta.keyring_darwin import VortaDarwinKeyring keyring.set_keyring(VortaDarwinKeyring()) elif sys.platform == 'win32': from keyring.backends import Windows keyring.set_keyring(Windows.WinVaultKeyring()) elif sys.platform == 'linux': from keyring.backends import SecretService try: SecretService.Keyring.priority() # Test if keyring works. keyring.set_keyring(SecretService.Keyring()) except Exception: keyring.set_keyring(VortaDBKeyring()) else: # Fall back to saving password to database. keyring.set_keyring(VortaDBKeyring()) def nested_dict(): """ Combination of two idioms to quickly build dicts from lists of keys: - https://stackoverflow.com/a/16724937/3983708 - https://stackoverflow.com/a/14692747/3983708 """ return defaultdict(nested_dict)
def __init__(self): from keyring.backends import SecretService backend = SecretService.Keyring() super().__init__(backend) self._ensure_backend_is_working()