(self, tkt, clientpart, sessionkey, kdcrep)
| 237 | return conf.padding_layer |
| 238 | |
| 239 | def set_from_krb(self, tkt, clientpart, sessionkey, kdcrep): |
| 240 | self.ticket.data = bytes(tkt) |
| 241 | |
| 242 | # Set sname |
| 243 | self.server.name_type = tkt.sname.nameType.val |
| 244 | self.server.realm = CCCountedOctetString(data=tkt.realm.val) |
| 245 | self.server.components = [ |
| 246 | CCCountedOctetString(data=x.val) for x in tkt.sname.nameString |
| 247 | ] |
| 248 | |
| 249 | # Set cname |
| 250 | self.client.name_type = clientpart.cname.nameType.val |
| 251 | self.client.realm = CCCountedOctetString(data=clientpart.crealm.val) |
| 252 | self.client.components = [ |
| 253 | CCCountedOctetString(data=x.val) for x in clientpart.cname.nameString |
| 254 | ] |
| 255 | |
| 256 | # Set the sessionkey |
| 257 | self.keyblock = CCKeyBlock( |
| 258 | keytype=sessionkey.etype, |
| 259 | keyvalue=sessionkey.key, |
| 260 | ) |
| 261 | |
| 262 | # Set timestamps |
| 263 | self.authtime = kdcrep.authtime.datetime.timestamp() |
| 264 | if kdcrep.starttime is not None: |
| 265 | self.starttime = kdcrep.starttime.datetime.timestamp() |
| 266 | self.endtime = kdcrep.endtime.datetime.timestamp() |
| 267 | if kdcrep.flags.val[8] == "1": # renewable |
| 268 | self.renew_till = kdcrep.renewTill.datetime.timestamp() |
| 269 | |
| 270 | # Set flags |
| 271 | self.ticket_flags = int(kdcrep.flags.val, 2) |
| 272 | |
| 273 | |
| 274 | class CCache(Packet): |
no test coverage detected