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

Method m2i

scapy/layers/kerberos.py:2117–2153  ·  view source on GitHub ↗
(self, pkt, s)

Source from the content-addressed store, hash-verified

2115
2116class _KRBERROR_data_Field(ASN1F_STRING_PacketField):
2117 def m2i(self, pkt, s):
2118 val = super(_KRBERROR_data_Field, self).m2i(pkt, s)
2119 if not val[0].val:
2120 return val
2121 if pkt.errorCode.val in [14, 24, 25, 36]:
2122 # 14: KDC_ERR_ETYPE_NOSUPP
2123 # 24: KDC_ERR_PREAUTH_FAILED
2124 # 25: KDC_ERR_PREAUTH_REQUIRED
2125 # 36: KRB_AP_ERR_BADMATCH
2126 return MethodData(val[0].val, _underlayer=pkt), val[1]
2127 elif pkt.errorCode.val in [6, 7, 12, 13, 18, 29, 32, 41, 60, 62]:
2128 # 6: KDC_ERR_C_PRINCIPAL_UNKNOWN
2129 # 7: KDC_ERR_S_PRINCIPAL_UNKNOWN
2130 # 12: KDC_ERR_POLICY
2131 # 13: KDC_ERR_BADOPTION
2132 # 18: KDC_ERR_CLIENT_REVOKED
2133 # 29: KDC_ERR_SVC_UNAVAILABLE
2134 # 32: KRB_AP_ERR_TKT_EXPIRED
2135 # 41: KRB_AP_ERR_MODIFIED
2136 # 60: KRB_ERR_GENERIC
2137 # 62: KERB_ERR_TYPE_EXTENDED
2138 try:
2139 return KERB_ERROR_DATA(val[0].val, _underlayer=pkt), val[1]
2140 except BER_Decoding_Error:
2141 if pkt.errorCode.val in [18, 12]:
2142 # Some types can also happen in FAST sessions
2143 # 18: KDC_ERR_CLIENT_REVOKED
2144 return MethodData(val[0].val, _underlayer=pkt), val[1]
2145 elif pkt.errorCode.val == 7:
2146 # This looks like an undocumented structure.
2147 # 7: KDC_ERR_S_PRINCIPAL_UNKNOWN
2148 return KERB_ERROR_UNK(val[0].val, _underlayer=pkt), val[1]
2149 raise
2150 elif pkt.errorCode.val == 69:
2151 # KRB_AP_ERR_USER_TO_USER_REQUIRED
2152 return KRB_TGT_REP(val[0].val, _underlayer=pkt), val[1]
2153 return val
2154
2155
2156class KRB_ERROR(ASN1_Packet):

Callers

nothing calls this directly

Calls 5

MethodDataClass · 0.85
KERB_ERROR_DATAClass · 0.85
KERB_ERROR_UNKClass · 0.85
KRB_TGT_REPClass · 0.85
m2iMethod · 0.45

Tested by

no test coverage detected