summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2016-01-28 14:00:38 +0100
committerKarolin Seeger <kseeger@samba.org>2016-02-05 10:03:34 +0100
commitb950d91b97bf2e54392a5442eb19ea90811bd06a (patch)
tree1b8bd9f4cade751df8952b0c7a38a64862d01e18
parent4e6d6c7a177b9b2f3d9441af61a11b530bfc9254 (diff)
downloadsamba-b950d91b97bf2e54392a5442eb19ea90811bd06a.tar.gz
python:samba/join.py: make use of the generic arcfour_encrypt() and string_to_byte_array() functions
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 d5423feb4b3d388d2de8e1745a8f1138b42b64f5)
-rw-r--r--python/samba/join.py19
1 files changed, 3 insertions, 16 deletions
diff --git a/python/samba/join.py b/python/samba/join.py
index c3561452765..f71f3de1a40 100644
--- a/python/samba/join.py
+++ b/python/samba/join.py
@@ -20,7 +20,7 @@
from samba.auth import system_session
from samba.samdb import SamDB
-from samba import gensec, Ldb, drs_utils
+from samba import gensec, Ldb, drs_utils, arcfour_encrypt, string_to_byte_array
import ldb, samba, sys, uuid
from samba.ndr import ndr_pack
from samba.dcerpc import security, drsuapi, misc, nbt, lsa, drsblobs
@@ -944,19 +944,6 @@ class dc_join(object):
def join_setup_trusts(ctx):
"""provision the local SAM."""
- def arcfour_encrypt(key, data):
- from Crypto.Cipher import ARC4
- c = ARC4.new(key)
- return c.encrypt(data)
-
- def string_to_array(string):
- blob = [0] * len(string)
-
- for i in range(len(string)):
- blob[i] = ord(string[i])
-
- return blob
-
print "Setup domain trusts with server %s" % ctx.server
binding_options = "" # why doesn't signing work here? w2k8r2 claims no session key
lsaconn = lsa.lsarpc("ncacn_np:%s[%s]" % (ctx.server, binding_options),
@@ -986,7 +973,7 @@ class dc_join(object):
except RuntimeError:
pass
- password_blob = string_to_array(ctx.trustdom_pass.encode('utf-16-le'))
+ password_blob = string_to_byte_array(ctx.trustdom_pass.encode('utf-16-le'))
clear_value = drsblobs.AuthInfoClear()
clear_value.size = len(password_blob)
@@ -1022,7 +1009,7 @@ class dc_join(object):
auth_blob = lsa.DATA_BUF2()
auth_blob.size = len(encrypted_trustpass)
- auth_blob.data = string_to_array(encrypted_trustpass)
+ auth_blob.data = string_to_byte_array(encrypted_trustpass)
auth_info = lsa.TrustDomainInfoAuthInfoInternal()
auth_info.auth_blob = auth_blob