summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Plugins/Properties.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-12-17 07:51:40 -0600
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-12-17 07:51:40 -0600
commita688e696b84df69214a1be363969e89d98f76d4b (patch)
treec432ab0c694e7fc95c33e3ff2ff963db0a30d1b8 /src/lib/Bcfg2/Server/Plugins/Properties.py
parent117cabdd852f609dbcbf42d6edbd22d144b0dd9e (diff)
downloadbcfg2-a688e696b84df69214a1be363969e89d98f76d4b.tar.gz
bcfg2-a688e696b84df69214a1be363969e89d98f76d4b.tar.bz2
bcfg2-a688e696b84df69214a1be363969e89d98f76d4b.zip
Properties: fix edge case where value is decrypted with the wrong key to produce gibberish
cf. 735b66606e25b20089b653977c23115e30170a1f
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Properties.py')
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Properties.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Properties.py b/src/lib/Bcfg2/Server/Plugins/Properties.py
index 2b4196ad6..e9653a212 100644
--- a/src/lib/Bcfg2/Server/Plugins/Properties.py
+++ b/src/lib/Bcfg2/Server/Plugins/Properties.py
@@ -216,10 +216,14 @@ class XMLPropertyFile(Bcfg2.Server.Plugin.StructFile, PropertyFile):
default="strict")) == "strict"
for el in self.xdata.xpath("//*[@encrypted]"):
try:
- el.text = self._decrypt(el)
+ el.text = self._decrypt(el).encode('ascii',
+ 'xmlcharrefreplace')
+ except UnicodeDecodeError:
+ LOGGER.info("Properties: Decrypted %s to gibberish, "
+ "skipping" % el.tag)
except EVPError:
- msg = "Failed to decrypt %s element in %s" % (el.tag,
- self.name)
+ msg = "Properties: Failed to decrypt %s element in %s" % \
+ (el.tag, self.name)
if strict:
raise PluginExecutionError(msg)
else: