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,
(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