def restore_keys(self): """ After being loaded in, re-create out key objects. """ # Restore our master key if self.UserSettings['keys'].get('master') is not None: if 'encryptedprivkey' in self.UserSettings['keys']['master']: self.Keys['master'] = LockedKey( pub=self.UserSettings['keys']['master']['pubkey'], encryptedprivkey=self.UserSettings['keys']['master'] ['encryptedprivkey']) self.Keys['master'].generated = self.UserSettings['keys'][ 'master']['generated'] self.Keys['master'].expires = self.UserSettings['keys'][ 'master']['expires'] self.server.logger.info("Reconstructed with encryptedprivkey") else: # If we just have a pubkey string, do the best we can. if self.UserSettings['keys']['master'].get('pubkey'): self.Keys['master'] = Key( pub=self.UserSettings['keys']['master']['pubkey']) self.Keys['master'].generated = self.UserSettings['keys'][ 'master'].get('generated') self.Keys['master'].expires = self.UserSettings['keys'][ 'master'].get('expires') self.server.logger.info( "reconstructed user without privkey") else: print("Requested user had no master key.") # Restore any Posted communication keys. for key in self.UserSettings['keys'].get('posted', []): lk = LockedKey(pub=key['pubkey'], encryptedprivkey=key['encryptedprivkey']) lk.generated = key['generated'] lk.expires = key['expires'] self.Keys['posted'].append(lk) # Restore any oneoff communication keys for key in self.UserSettings['keys'].get('secret', []): lk = LockedKey(pub=key['pubkey'], encryptedprivkey=key['encryptedprivkey']) lk.generated = key['generated'] lk.expires = key['expires'] self.Keys['secret'].append(lk)