diff options
author | Lars Wirzenius <liw@liw.fi> | 2011-04-12 14:14:46 +0100 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2011-04-12 14:14:46 +0100 |
commit | 007258866e20a058676dc6db166324f6b4af38e6 (patch) | |
tree | e305d87c05ef718ebc11d4b5ef879586526a1097 | |
parent | 6cef3c7c3f7ba2a2076db19ae75b865ff32147d8 (diff) | |
download | obnam-007258866e20a058676dc6db166324f6b4af38e6.tar.gz |
Add list-keys subcommand.
-rw-r--r-- | obnamlib/plugins/encryption_plugin.py | 14 | ||||
-rwxr-xr-x | test-encrypted-repo | 3 |
2 files changed, 17 insertions, 0 deletions
diff --git a/obnamlib/plugins/encryption_plugin.py b/obnamlib/plugins/encryption_plugin.py index fd706d66..6ee4f362 100644 --- a/obnamlib/plugins/encryption_plugin.py +++ b/obnamlib/plugins/encryption_plugin.py @@ -40,6 +40,7 @@ class EncryptionPlugin(obnamlib.ObnamPlugin): self._pubkey = None self.app.register_command('client-keys', self.client_keys) + self.app.register_command('list-keys', self.list_keys) @property def keyid(self): @@ -118,6 +119,19 @@ class EncryptionPlugin(obnamlib.ObnamPlugin): keyid = 'no key' print client, keyid + def list_keys(self, args): + repo = self.app.open_repository() + toplevels = repo.fs.listdir('.') + keys = dict() + for toplevel in toplevels: + userkeys = self.read_keyring(repo, toplevel) + for keyid in userkeys.keyids(): + keys[keyid] = keys.get(keyid, []) + [toplevel] + for keyid in keys: + print 'key: %s' % keyid + for toplevel in keys[keyid]: + print ' %s' % toplevel + # def add_client(self, repo, client_public_key): # self.add_to_userkeys(repo, 'metadata', client_public_key) # self.add_to_userkeys(repo, 'clientlist', client_public_key) diff --git a/test-encrypted-repo b/test-encrypted-repo index 03dc6fab..2193bd38 100755 --- a/test-encrypted-repo +++ b/test-encrypted-repo @@ -21,3 +21,6 @@ diff -u temp.data.manifest temp.restored.manifest echo "client keys:" $cmd client-keys + +echo "list-keys:" +$cmd list-keys |