]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
tests/krb5: Add get_EpochFromKerberosTime()
authorJoseph Sutton <josephsutton@catalyst.net.nz>
Thu, 22 Jul 2021 04:27:17 +0000 (16:27 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 18 Aug 2021 22:28:33 +0000 (22:28 +0000)
Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
python/samba/tests/krb5/kdc_base_test.py
python/samba/tests/krb5/raw_testcase.py

index 64d9e62767205bc9fdc55fe16c6713dccd19dfa7..f0a9e7311a582201d4a44bfae9c26958f570b5fc 100644 (file)
@@ -732,15 +732,9 @@ class KDCBaseTest(RawKerberosTest):
         cred.client = cprincipal
         cred.server = sprincipal
         cred.keyblock = keyblock
-        cred.authtime = int(datetime.strptime(authtime.decode(),
-                                              "%Y%m%d%H%M%SZ")
-                            .replace(tzinfo=timezone.utc).timestamp())
-        cred.starttime = int(datetime.strptime(starttime.decode(),
-                                               "%Y%m%d%H%M%SZ")
-                            .replace(tzinfo=timezone.utc).timestamp())
-        cred.endtime = int(datetime.strptime(endtime.decode(),
-                                             "%Y%m%d%H%M%SZ")
-                            .replace(tzinfo=timezone.utc).timestamp())
+        cred.authtime = self.get_EpochFromKerberosTime(authtime)
+        cred.starttime = self.get_EpochFromKerberosTime(starttime)
+        cred.endtime = self.get_EpochFromKerberosTime(endtime)
 
         # Account for clock skew of up to five minutes.
         self.assertLess(cred.authtime - 5 * 60,
index e9b4c6c9efa5e46604686d07b0f7aa2b21153daa..3ab63cd01d02a3eac90611005e459e3cf3b4d6b6 100644 (file)
@@ -861,6 +861,17 @@ class RawKerberosTest(TestCaseInTempDir):
         (s, _) = self.get_KerberosTimeWithUsec(epoch=epoch, offset=offset)
         return s
 
+    def get_EpochFromKerberosTime(self, kerberos_time):
+        if isinstance(kerberos_time, bytes):
+            kerberos_time = kerberos_time.decode()
+
+        epoch = datetime.datetime.strptime(kerberos_time,
+                                           '%Y%m%d%H%M%SZ')
+        epoch = epoch.replace(tzinfo=datetime.timezone.utc)
+        epoch = int(epoch.timestamp())
+
+        return epoch
+
     def get_Nonce(self):
         nonce_min = 0x7f000000
         nonce_max = 0x7fffffff