From eca18a451bbd85e1e6272c854c703613bad06d58 Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Fri, 27 Jan 2017 10:09:15 -0500 Subject: [PATCH] Fix no password backup If password=None was supplied, it would fail. Now accomodate unprotected keys. --- .../confluent/config/configmanager.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/confluent_server/confluent/config/configmanager.py b/confluent_server/confluent/config/configmanager.py index 63d8aa4a..4506e5e9 100644 --- a/confluent_server/confluent/config/configmanager.py +++ b/confluent_server/confluent/config/configmanager.py @@ -1344,13 +1344,24 @@ class ConfigManager(object): self._recalculate_expressions(cfgobj[key], formatter, node, changeset) + def _dump_keys(password): if _masterkey is None or _masterintegritykey is None: init_masterkey() cryptkey = _format_key(_masterkey, password=password) - cryptkey = '!'.join(map(base64.b64encode, cryptkey['passphraseprotected'])) + if 'passphraseprotected' in cryptkey: + cryptkey = '!'.join(map(base64.b64encode, + cryptkey['passphraseprotected'])) + else: + cryptkey = '*unencrypted:{0}'.format(base64.b64encode( + cryptkey['unencryptedvalue'])) integritykey = _format_key(_masterintegritykey, password=password) - integritykey = '!'.join(map(base64.b64encode, integritykey['passphraseprotected'])) + if 'passphraseprotected' in integritykey: + integritykey = '!'.join(map(base64.b64encode, + integritykey['passphraseprotected'])) + else: + integritykey = '*unencrypted:{0}'.format(base64.b64encode( + integritykey['unencryptedvalue'])) return json.dumps({'cryptkey': cryptkey, 'integritykey': integritykey}, sort_keys=True, indent=4, separators=(',', ': '))