summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2016-01-28 13:52:44 +0100
committerKarolin Seeger <kseeger@samba.org>2016-02-05 10:03:34 +0100
commit4e6d6c7a177b9b2f3d9441af61a11b530bfc9254 (patch)
tree7bd793d76d3eeb0c7ea604d5cd5220e8096f7843
parentffd18e18d6b2e88399784754aa2eb33b0e82fe45 (diff)
downloadsamba-4e6d6c7a177b9b2f3d9441af61a11b530bfc9254.tar.gz
python:samba: add a generic arcfour_encrypt() helper function
This works with Crypto.Cipher.ARC4 (from python*-crypto) and fallback to M2Crypto.RC4.RC4 (from [python*-]m2crypto). BUG: https://bugzilla.samba.org/show_bug.cgi?id=11699 Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Alexander Bokovoy <ab@samba.org> (cherry picked from commit 078a7ae71081c24991bb34c818cc2c763eefad99)
-rw-r--r--python/samba/__init__.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/python/samba/__init__.py b/python/samba/__init__.py
index 6adc412948d..aaf335c134e 100644
--- a/python/samba/__init__.py
+++ b/python/samba/__init__.py
@@ -370,6 +370,22 @@ def string_to_byte_array(string):
return blob
+def arcfour_encrypt(key, data):
+ try:
+ from Crypto.Cipher import ARC4
+ c = ARC4.new(key)
+ return c.encrypt(data)
+ except ImportError as e:
+ pass
+ try:
+ from M2Crypto.RC4 import RC4
+ c = RC4(key)
+ return c.update(data)
+ except ImportError as e:
+ pass
+ raise Exception("arcfour_encrypt() requires " +
+ "python*-crypto or python*-m2crypto or m2crypto")
+
import _glue
version = _glue.version
interface_ips = _glue.interface_ips