TODO... s4:scripting/python: add support for utf-8 passwords from the command line
authorStefan Metzmacher <metze@samba.org>
Mon, 4 Feb 2013 10:41:39 +0000 (11:41 +0100)
committerStefan Metzmacher <metze@samba.org>
Mon, 27 Jun 2016 19:46:15 +0000 (21:46 +0200)
python/samba/__init__.py
python/samba/provision/__init__.py
python/samba/upgradehelpers.py

index 7cfbc4c10889f5cca8663c1630fd5dc4d35ee6c3..db7f115c337ee9e7b4bb0f1305cdd8d741aaf7a6 100644 (file)
@@ -395,7 +395,10 @@ unix2nttime = _glue.unix2nttime
 nttime2string = _glue.nttime2string
 nttime2unix = _glue.nttime2unix
 unix2nttime = _glue.unix2nttime
-generate_random_password = _glue.generate_random_password
 strcasecmp_m = _glue.strcasecmp_m
 strstr_m = _glue.strstr_m
 is_ntvfs_fileserver_built = _glue.is_ntvfs_fileserver_built
+
+def generate_random_password(min_len, max_len):
+    string =  _glue.generate_random_password(min_len, max_len)
+    return unicode(string, 'utf-8')
index b36a7d2a7c9cd525cae2551f4c273426d52104a0..637fc0c9b5fae4a9183ca8fa5d21b55e0e177fc7 100644 (file)
@@ -876,7 +876,7 @@ def secretsdb_self_join(secretsdb, domain,
         msg["msDS-KeyVersionNumber"] = [str(key_version_number)]
         msg["privateKeytab"] = ["secrets.keytab"]
 
-    msg["secret"] = [machinepass]
+    msg["secret"] = [machinepass.encode('utf-8')]
     msg["samAccountName"] = ["%s$" % netbiosname]
     msg["secureChannelType"] = [str(secure_channel_type)]
     if domainsid is not None:
@@ -1778,10 +1778,16 @@ def provision_fill(samdb, secrets_ldb, logger, names, paths,
 
     if krbtgtpass is None:
         krbtgtpass = samba.generate_random_password(128, 255)
+    else:
+        krbtgtpass = unicode(krbtgtpass, 'utf-8')
     if machinepass is None:
         machinepass  = samba.generate_random_password(128, 255)
+    else:
+        machinepass = unicode(machinepass, 'utf-8')
     if dnspass is None:
         dnspass = samba.generate_random_password(128, 255)
+    else:
+        dnspass = unicode(dnspass, 'utf-8')
 
     samdb = fill_samdb(samdb, lp, names, logger=logger,
                    schema=schema,
index 9b2c1c233aaa004897f9e5139baa1715ab0523b3..98fb14f5366b49553c0bc9a4deb6b358e3aff82e 100644 (file)
@@ -628,7 +628,7 @@ def update_dns_account_password(samdb, secrets_ldb, names):
         kvno = str(res[0]["msDs-keyVersionNumber"])
 
         msg = ldb.Message(secrets_msg[0].dn)
-        msg["secret"] = ldb.MessageElement(machinepass,
+        msg["secret"] = ldb.MessageElement(machinepass.encode('utf-8'),
                                                 ldb.FLAG_MOD_REPLACE,
                                                 "secret")
         msg["msDS-KeyVersionNumber"] = ldb.MessageElement(kvno,