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, 18 Feb 2019 10:31:19 +0000 (11:31 +0100)
python/samba/__init__.py
python/samba/provision/__init__.py
python/samba/upgradehelpers.py

index 93240dddfbb6af0eb91b14d8c46b5f8490d765f8..a3ec63aa13e8dfd00d50cf120f4594e9b6ed3ff2 100644 (file)
@@ -395,7 +395,6 @@ unix2nttime = _glue.unix2nttime
 nttime2string = _glue.nttime2string
 nttime2unix = _glue.nttime2unix
 unix2nttime = _glue.unix2nttime
-generate_random_password = _glue.generate_random_password
 generate_random_machine_password = _glue.generate_random_machine_password
 check_password_quality = _glue.check_password_quality
 generate_random_bytes = _glue.generate_random_bytes
@@ -408,3 +407,7 @@ NTSTATUSError = _glue.NTSTATUSError
 HRESULTError = _glue.HRESULTError
 WERRORError = _glue.WERRORError
 DsExtendedError = _glue.DsExtendedError
+
+def generate_random_password(min_len, max_len):
+    string =  _glue.generate_random_password(min_len, max_len)
+    return unicode(string, 'utf-8')
index 1b7762eb12b17113b8f04152c1c2d01fc2a2f452..b5d738428eb95cddc22af29fb9ff6c4dc3a3bc9b 100644 (file)
@@ -1900,10 +1900,16 @@ def provision_fill(samdb, secrets_ldb, logger, names, paths,
 
     if krbtgtpass is None:
         krbtgtpass = samba.generate_random_machine_password(128, 255)
+    else:
+        krbtgtpass = unicode(krbtgtpass, 'utf-8')
     if machinepass is None:
         machinepass = samba.generate_random_machine_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.transaction_start()
     try:
index 40120bd7190c2998a6a6725595f92b74eb24909a..05daf5440d74fe2d3ad64b4bb20b814e6e6061a5 100644 (file)
@@ -642,7 +642,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,