]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
tests/krb5: Introduce helper method for creating invalid length checksums
authorJoseph Sutton <josephsutton@catalyst.net.nz>
Tue, 28 Sep 2021 22:54:49 +0000 (11:54 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 14 Oct 2021 18:59:31 +0000 (18:59 +0000)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14642

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

index 0217674ed2de58c16bd5fe82ad71e2e2bbe9bde4..6107442409fb662c43b95558c3cba2bef6b6745e 100644 (file)
@@ -314,17 +314,20 @@ class WrongLengthChecksumKey(Krb5EncryptionKey):
 
         self._length = length
 
-    def make_checksum(self, usage, plaintext, ctype=None):
-        checksum = super().make_checksum(usage, plaintext, ctype)
-
-        diff = self._length - len(checksum)
+    @classmethod
+    def _adjust_to_length(cls, checksum, length):
+        diff = length - len(checksum)
         if diff > 0:
             checksum += bytes(diff)
         elif diff < 0:
-            checksum = checksum[:self._length]
+            checksum = checksum[:length]
 
         return checksum
 
+    def make_checksum(self, usage, plaintext, ctype=None):
+        checksum = super().make_checksum(usage, plaintext, ctype)
+        return self._adjust_to_length(checksum, self._length)
+
 
 class KerberosCredentials(Credentials):