summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2011-04-12 14:14:46 +0100
committerLars Wirzenius <liw@liw.fi>2011-04-12 14:14:46 +0100
commit007258866e20a058676dc6db166324f6b4af38e6 (patch)
treee305d87c05ef718ebc11d4b5ef879586526a1097
parent6cef3c7c3f7ba2a2076db19ae75b865ff32147d8 (diff)
downloadobnam-007258866e20a058676dc6db166324f6b4af38e6.tar.gz
Add list-keys subcommand.
-rw-r--r--obnamlib/plugins/encryption_plugin.py14
-rwxr-xr-xtest-encrypted-repo3
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