summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Sutton <josephsutton@catalyst.net.nz>2021-10-20 12:45:47 +1300
committerStefan Metzmacher <metze@samba.org>2021-10-26 12:00:28 +0000
commit46ef1ac3f37118aa6c4a67c98a6fbd3829905153 (patch)
tree409ebf5f7b9fe2c8e78c610a2db21411cb2b218c
parentb2157fd16de68853c98422cfcaea6bd35faa3a42 (diff)
downloadsamba-46ef1ac3f37118aa6c4a67c98a6fbd3829905153.tar.gz
tests/krb5: Fix account salt calculation to match Windows
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14874 BUG: https://bugzilla.samba.org/show_bug.cgi?id=14881 Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz> Reviewed-by: Stefan Metzmacher <metze@samba.org> (cherry picked from commit 25bdf4c994e4fdb74abbacb1e22237f3f2cc37fe)
-rw-r--r--python/samba/tests/krb5/raw_testcase.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/python/samba/tests/krb5/raw_testcase.py b/python/samba/tests/krb5/raw_testcase.py
index 619a8d006b2..f352615db1f 100644
--- a/python/samba/tests/krb5/raw_testcase.py
+++ b/python/samba/tests/krb5/raw_testcase.py
@@ -454,13 +454,22 @@ class KerberosCredentials(Credentials):
if self.forced_salt is not None:
return self.forced_salt
+ upn = self.get_upn()
+ if upn is not None:
+ salt_name = upn.rsplit('@', 1)[0].replace('/', '')
+ else:
+ salt_name = self.get_username()
+
if self.get_workstation():
+ salt_name = self.get_username().lower()
+ if salt_name[-1] == '$':
+ salt_name = salt_name[:-1]
salt_string = '%shost%s.%s' % (
self.get_realm().upper(),
- self.get_username().lower().rsplit('$', 1)[0],
+ salt_name,
self.get_realm().lower())
else:
- salt_string = self.get_realm().upper() + self.get_username()
+ salt_string = self.get_realm().upper() + salt_name
return salt_string.encode('utf-8')