U •v«`ã@sdZddlmZddlmZddlmZGdd„dejƒZdd „Z dZ d Z d Z d Z d ZdZdZdZd Zd Zd Zd ZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'd Z(d!Z)d"Z*d#Z+d$Z,d%Z-d&Z.d'Z/d(Z0d)Z1d*Z2d+Z3d,Z4d-Z5d.Z6d/Z7d0Z8d1Z9d2d3„Z:d4d5„Z;d6d7„Zé?cCsTddlm}|dƒ}t|ƒ}t|ƒdks,t‚|d\}}|tksDt‚|dksPt‚dS)Nr©Ú unhexlifyZ0106757365720000róuser)ÚbinasciirGrr ÚAssertionErrorÚRADIUS_USER_NAME)rGrrÚtype0Úvalue0rrrÚtest_parse_attrsjs ÿ   rNcCsxddlm}|dƒ}t|ƒ}t|ƒdks,t‚|d\}}|tksDt‚|dksPt‚|d\}}|tksht‚|dkstt‚dS)NrrFZ 010675736572020a70617373776f7264rrHrspassword)rIrGrr rJrKÚRADIUS_USER_PASSWORD)rGrrrLrMZtype1Zvalue1rrrÚtest_parse_multiple_attrs}s ÿ      rPcCshddlm}|dƒ}|dƒ}||}t|ƒ}t|jƒdks>t‚|jd\}}|dksXt‚|dksdt‚dS)NrrFZ 010675736572Z(013412340123456789abcdef0123456789abcdefrrH)rIrGrr rrJ)rGZ buf_attrsZbuf_radius_headerrZradiusZname0rMrrrÚtest_radius_unpacking•s ÿÿ rQN)=rÚ __future__rÚrÚcompatrrrrZRADIUS_ACCESS_REQUESTZRADIUS_ACCESS_ACCEPTZRADIUS_ACCESS_REJECTZRADIUS_ACCT_REQUESTZRADIUS_ACCT_RESPONSEZRADIUS_ACCT_STATUSZRADIUS_ACCESS_CHALLENGErKrOZRADIUS_CHAP_PASSWORDZRADIUS_NAS_IP_ADDRZRADIUS_NAS_PORTZRADIUS_SERVICE_TYPEZRADIUS_FRAMED_PROTOCOLZRADIUS_FRAMED_IP_ADDRZRADIUS_FRAMED_IP_NETMASKZRADIUS_FRAMED_ROUTINGZRADIUS_FILTER_IDZRADIUS_FRAMED_MTUZRADIUS_FRAMED_COMPRESSIONZRADIUS_LOGIN_IP_HOSTZRADIUS_LOGIN_SERVICEZRADIUS_LOGIN_TCP_PORTZRADIUS_REPLY_MESSAGEZRADIUS_CALLBACK_NUMBERZRADIUS_CALLBACK_IDZRADIUS_FRAMED_ROUTEZRADIUS_FRAMED_IPX_NETWORKZ RADIUS_STATEZ RADIUS_CLASSZRADIUS_VENDOR_SPECIFICZRADIUS_SESSION_TIMEOUTZRADIUS_IDLE_TIMEOUTZRADIUS_TERMINATION_ACTIONZRADIUS_CALLED_STATION_IDZRADIUS_CALLING_STATION_IDZ RADIUS_NAS_IDZRADIUS_PROXY_STATEZRADIUS_LOGIN_LAT_SERVICEZRADIUS_LOGIN_LAT_NODEZRADIUS_LOGIN_LAT_GROUPZRADIUS_FRAMED_ATALK_LINKZRADIUS_FRAMED_ATALK_NETWORKZRADIUS_FRAMED_ATALK_ZONEZRADIUS_CHAP_CHALLENGEZRADIUS_NAS_PORT_TYPEZRADIUS_PORT_LIMITZRADIUS_LOGIN_LAT_PORTrNrPrQrrrrÚsp