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-09-11 10:36:13 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-09-11 10:36:13 -0400
commit918e26e0de92bac76c5cd8bc224c61b19de4345d (patch)
treeb4993b15922b64f573b824c97dd79a0d4d580b8d /src/lib/Bcfg2/Server/Plugins/Properties.py
parent86a7e70a49332af81434e6f7ede4d4e3d8b6731a (diff)
downloadbcfg2-918e26e0de92bac76c5cd8bc224c61b19de4345d.tar.gz
bcfg2-918e26e0de92bac76c5cd8bc224c61b19de4345d.tar.bz2
bcfg2-918e26e0de92bac76c5cd8bc224c61b19de4345d.zip
Properties: fixed bug in xpath for finding encrypted elements
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Properties.py')
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Properties.py11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Properties.py b/src/lib/Bcfg2/Server/Plugins/Properties.py
index 8fed8ad96..49500e915 100644
--- a/src/lib/Bcfg2/Server/Plugins/Properties.py
+++ b/src/lib/Bcfg2/Server/Plugins/Properties.py
@@ -6,7 +6,8 @@ import logging
import lxml.etree
import Bcfg2.Server.Plugin
try:
- from Bcfg2.Encryption import ssl_decrypt, get_passphrases, EVPError
+ from Bcfg2.Encryption import ssl_decrypt, get_passphrases, \
+ bruteforce_decrypt, EVPError
have_crypto = True
except ImportError:
have_crypto = False
@@ -70,7 +71,7 @@ class PropertyFile(Bcfg2.Server.Plugin.StructFile):
msg = "Properties: M2Crypto is not available: %s" % self.name
logger.error(msg)
raise Bcfg2.Server.Plugin.PluginExecutionError(msg)
- for el in self.xdata.xpath("*[@encrypted]"):
+ for el in self.xdata.xpath("//*[@encrypted]"):
try:
el.text = self._decrypt(el)
except EVPError:
@@ -91,11 +92,7 @@ class PropertyFile(Bcfg2.Server.Plugin.StructFile):
# error is raised below
pass
except KeyError:
- for passwd in passes.values():
- try:
- return ssl_decrypt(element.text, passwd)
- except EVPError:
- pass
+ return bruteforce_decrypt(element.text, passphrases=passes.values())
raise EVPError("Failed to decrypt")
class PropDirectoryBacked(Bcfg2.Server.Plugin.DirectoryBacked):