diff options
author | Stefan Metzmacher <metze@samba.org> | 2016-01-28 13:52:44 +0100 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2016-02-05 10:03:34 +0100 |
commit | 4e6d6c7a177b9b2f3d9441af61a11b530bfc9254 (patch) | |
tree | 7bd793d76d3eeb0c7ea604d5cd5220e8096f7843 | |
parent | ffd18e18d6b2e88399784754aa2eb33b0e82fe45 (diff) | |
download | samba-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__.py | 16 |
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 |