MCPcopy Create free account
hub / github.com/secdev/scapy / KRB_PKAuthenticator

Class KRB_PKAuthenticator

scapy/layers/kerberos.py:1369–1406  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1367
1368
1369class KRB_PKAuthenticator(ASN1_Packet):
1370 ASN1_codec = ASN1_Codecs.BER
1371 ASN1_root = ASN1F_SEQUENCE(
1372 Microseconds("cusec", 0, explicit_tag=0xA0),
1373 KerberosTime("ctime", GeneralizedTime(), explicit_tag=0xA1),
1374 UInt32("nonce", 0, explicit_tag=0xA2),
1375 ASN1F_optional(
1376 ASN1F_STRING("paChecksum", "", explicit_tag=0xA3),
1377 ),
1378 # RFC8070 extension
1379 ASN1F_optional(
1380 ASN1F_STRING("freshnessToken", None, explicit_tag=0xA4),
1381 ),
1382 # [MS-PKCA] sect 2.2.3
1383 ASN1F_optional(
1384 ASN1F_PACKET("paChecksum2", PAChecksum2(), PAChecksum2, explicit_tag=0xA5),
1385 ),
1386 )
1387
1388 def make_checksum(self, text, h="sha256"):
1389 """
1390 Populate paChecksum and paChecksum2
1391 """
1392 # paChecksum (always sha-1)
1393 self.paChecksum = ASN1_STRING(Hash_SHA().digest(text))
1394
1395 # paChecksum2
1396 self.paChecksum2 = PAChecksum2()
1397 self.paChecksum2.make(text, h=h)
1398
1399 def verify_checksum(self, text):
1400 """
1401 Verify paChecksum and paChecksum2
1402 """
1403 if self.paChecksum.val != Hash_SHA().digest(text):
1404 raise ValueError("Bad paChecksum checksum !")
1405
1406 self.paChecksum2.verify(text)
1407
1408
1409# RFC8636 sect 6

Callers 2

KRB_AuthPackClass · 0.85
as_reqMethod · 0.85

Calls 6

ASN1F_SEQUENCEClass · 0.90
GeneralizedTimeClass · 0.90
ASN1F_optionalClass · 0.90
ASN1F_STRINGClass · 0.90
ASN1F_PACKETClass · 0.90
PAChecksum2Class · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…