Ticket #92: radiuslib.py

File radiuslib.py, 2.1 KB (added by anonymous, 2 years ago)
Line 
1radius_attribute_type = {
2        1:  "User-Name",
3        2:  "User-Password",
4        3:  "CHAP-Password",
5        4:  "NAS-IP-Address",
6        5:  "NAS-Port",
7        6:  "Service-Type",
8        7:  "Framed-Protocol",
9        8:  "Framed-IP-Address",
10        9:  "Framed-IP-Netmask",
11        10: "Framed-Routing",
12        11: "Filter-Id",
13        12: "Framed-MTU",
14        13: "Framed-Compression",
15        14: "Login-IP-Host",
16        15: "Login-Service",
17        16: "Login-TCP-Port",
18        17: "unassigned",
19        18: "Reply-Message",
20        19: "Callback-Number",
21        20: "Callback-Id",
22        21: "unassigned",
23        22: "Framed-Route",
24        23: "Framed-IPX-Network",
25        24: "State",
26        25: "Class",
27        26: "Vendor-Specific",
28        27: "Session-Timeout",
29        28: "Idle-Timeout",
30        29: "Termination-Action",
31        30: "Called-Station-Id",
32        31: "Calling-Station-Id",
33        32: "NAS-Identifier",
34        33: "Proxy-State",
35        34: "Login-LAT-Service",
36        35: "Login-LAT-Node",
37        36: "Login-LAT-Group",
38        37: "Framed-AppleTalk-Link",
39        38: "Framed-AppleTalk-Network",
40        39: "Framed-AppleTalk-Zone",
41        60: "CHAP-Challenge",
42        61: "NAS-Port-Type",
43        62: "Port-Limit",
44        63: "Login-LAT-Port",
45        70: "ARAP-Password",
46        75: "Password-Retry",
47        79: "EAP-Message",
48        80: "Message-Authenticator",
49        94: "Originating-Line-Info",
50        101:"Error-Cause"
51        }
52
53class RadiusAttr(Packet):
54    name = "Radius Attribute"
55    fields_desc = [ ByteEnumField("type", 1, radius_attribute_type),
56                    FieldLenField("len", None, "value", "B", adjust=lambda pkt,x: x+2),
57                    StrLenField("value", "", length_from=lambda pkt: pkt.len-2)
58                    ]
59bind_layers( UDP,           Radius,         sport=1812)
60bind_layers( UDP,           Radius,         dport=1812)
61bind_layers( UDP,           Radius,         dport=1813)
62bind_layers( UDP,           Radius,         sport=1813)
63bind_layers( Radius,        RadiusAttr,     )
64bind_layers( RadiusAttr,    RadiusAttr,     )