import samba
from samba.tests.samba_tool.base import SambaToolCmdTest
from hashlib import md5
-import random
-import string
USER_NAME = "WdigestTestUser"
-# Create a random 32 character password, containing only letters and
-# digits to avoid issues when used on the command line.
-USER_PASS = ''.join(random.choice(string.ascii_uppercase +
- string.ascii_lowercase +
- string.digits) for _ in range(32))
# Calculate the MD5 password digest from the supplied user, realm and password
#
expression="ncName=%s" % self.samdb.get_default_basedn(),
attrs=["nETBIOSName"])
self.netbios_domain = str(res[0]["nETBIOSName"][0])
+ self.password = self.random_password()
self.runsubcmd("user",
"create",
USER_NAME,
- USER_PASS,
+ self.password,
"-H",
"ldap://%s" % os.environ["DC_SERVER"],
"-U%s%%%s" % (
attribute = "virtualWDigest01"
expected = calc_digest(USER_NAME,
self.netbios_domain,
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash02 MD5(LOWER(sAMAccountName),
attribute = "virtualWDigest02"
expected = calc_digest(USER_NAME.lower(),
self.netbios_domain.lower(),
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash03 MD5(UPPER(sAMAccountName),
attribute = "virtualWDigest03"
expected = calc_digest(USER_NAME.upper(),
self.netbios_domain.upper(),
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash04 MD5(sAMAccountName,
attribute = "virtualWDigest04"
expected = calc_digest(USER_NAME,
self.netbios_domain.upper(),
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash05 MD5(sAMAccountName,
attribute = "virtualWDigest05"
expected = calc_digest(USER_NAME,
self.netbios_domain.lower(),
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash06 MD5(UPPER(sAMAccountName),
attribute = "virtualWDigest06"
expected = calc_digest(USER_NAME.upper(),
self.netbios_domain.lower(),
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash07 MD5(LOWER(sAMAccountName),
attribute = "virtualWDigest07"
expected = calc_digest(USER_NAME.lower(),
self.netbios_domain.upper(),
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash08 MD5(sAMAccountName,
attribute = "virtualWDigest08"
expected = calc_digest(USER_NAME,
self.dns_domain,
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash09 MD5(LOWER(sAMAccountName),
attribute = "virtualWDigest09"
expected = calc_digest(USER_NAME.lower(),
self.dns_domain.lower(),
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash10 MD5(UPPER(sAMAccountName),
attribute = "virtualWDigest10"
expected = calc_digest(USER_NAME.upper(),
self.dns_domain.upper(),
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash11 MD5(sAMAccountName,
attribute = "virtualWDigest11"
expected = calc_digest(USER_NAME,
self.dns_domain.upper(),
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash12 MD5(sAMAccountName,
attribute = "virtualWDigest12"
expected = calc_digest(USER_NAME,
self.dns_domain.lower(),
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash13 MD5(UPPER(sAMAccountName),
attribute = "virtualWDigest13"
expected = calc_digest(USER_NAME.upper(),
self.dns_domain.lower(),
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash14 MD5(LOWER(sAMAccountName),
attribute = "virtualWDigest14"
expected = calc_digest(USER_NAME.lower(),
self.dns_domain.upper(),
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash15 MD5(userPrincipalName,
name = "%s@%s" % (USER_NAME, self.dns_domain)
expected = calc_digest(name,
"",
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash16 MD5(LOWER(userPrincipalName),
name = "%s@%s" % (USER_NAME.lower(), self.dns_domain.lower())
expected = calc_digest(name,
"",
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash17 MD5(UPPER(userPrincipalName),
name = "%s@%s" % (USER_NAME.upper(), self.dns_domain.upper())
expected = calc_digest(name,
"",
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash18 MD5(NETBIOSDomainName\sAMAccountName,
name = "%s\\%s" % (self.netbios_domain, USER_NAME)
expected = calc_digest(name,
"",
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash19 MD5(LOWER(NETBIOSDomainName\sAMAccountName),
name = "%s\\%s" % (self.netbios_domain, USER_NAME)
expected = calc_digest(name.lower(),
"",
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash20 MD5(UPPER(NETBIOSDomainName\sAMAccountName),
name = "%s\\%s" % (self.netbios_domain, USER_NAME)
expected = calc_digest(name.upper(),
"",
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash21 MD5(sAMAccountName,
attribute = "virtualWDigest21"
expected = calc_digest(USER_NAME,
"Digest",
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash22 MD5(LOWER(sAMAccountName),
attribute = "virtualWDigest22"
expected = calc_digest(USER_NAME.lower(),
"Digest",
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash23 MD5(UPPER(sAMAccountName),
attribute = "virtualWDigest23"
expected = calc_digest(USER_NAME.upper(),
"Digest",
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash24 MD5(userPrincipalName),
name = "%s@%s" % (USER_NAME, self.dns_domain)
expected = calc_digest(name,
"Digest",
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash25 MD5(LOWER(userPrincipalName),
name = "%s@%s" % (USER_NAME, self.dns_domain.lower())
expected = calc_digest(name.lower(),
"Digest",
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash26 MD5(UPPER(userPrincipalName),
name = "%s@%s" % (USER_NAME, self.dns_domain.lower())
expected = calc_digest(name.upper(),
"Digest",
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash27 MD5(NETBIOSDomainName\sAMAccountName,
# "Digest",
name = "%s\\%s" % (self.netbios_domain, USER_NAME)
expected = calc_digest(name,
"Digest",
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash28 MD5(LOWER(NETBIOSDomainName\sAMAccountName),
name = "%s\\%s" % (self.netbios_domain.lower(), USER_NAME.lower())
expected = calc_digest(name,
"Digest",
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
# Hash29 MD5(UPPER(NETBIOSDomainName\sAMAccountName),
name = "%s\\%s" % (self.netbios_domain.upper(), USER_NAME.upper())
expected = calc_digest(name,
"Digest",
- USER_PASS)
+ self.password)
self._testWDigest(attribute, expected)
def test_Wdigest30(self):