]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
tests/krb5: Fix account salt calculation to match Windows
authorJoseph Sutton <josephsutton@catalyst.net.nz>
Tue, 19 Oct 2021 23:45:47 +0000 (12:45 +1300)
committerStefan Metzmacher <metze@samba.org>
Wed, 20 Oct 2021 12:02:33 +0000 (12:02 +0000)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14874

Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
python/samba/tests/krb5/raw_testcase.py

index 619a8d006b2c6387f55775edd9bed3171301a9c8..f352615db1fdffd08640d6a789933706f5703a81 100644 (file)
@@ -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')