PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  Uc@sdZdddddgZddlmZddlZddlZddlZd Zd Zd Z d dd YZ de dZ dZ dZddZdS(s& utility functions for Yubico modules tcrc16tvalidate_crc16thexdumpt modhex_decodet hotp_truncatei(t __version__NicCsid}x\|D]T}|t|N}x;tdD]-}|d@}|dL}|r0|dN}q0q0Wq W|S(sA Calculate an ISO13239 CRC checksum of the input buffer. iiii(tordtrange(tdatatm_crctthist_tj((s6/usr/lib/python2.7/site-packages/yubico/yubico_util.pyRs   cCst|tkS(sS Validate that the CRC of the contents of buffer is the residual OK value. (Rt_CRC_OK_RESIDUAL(R((s6/usr/lib/python2.7/site-packages/yubico/yubico_util.pyR'st DumpColorscBs2eZdZdZdZdZdZRS(s> Class holding ANSI colors for colorization of hexdump output cCs+idd6dd6dd6|_t|_dS(NstBLUEstGREENstRESET(tcolorstTruetenabledtNone(tself((s6/usr/lib/python2.7/site-packages/yubico/yubico_util.pyt__init__1s    cCs*|jr&||jkr&|j|SndS(se Get the ANSI code for 'what' Returns an empty string if disabled/not found t(RR(Rtwhat((s6/usr/lib/python2.7/site-packages/yubico/yubico_util.pytget9s cCs t|_dS(s Enable colorization N(RR(R((s6/usr/lib/python2.7/site-packages/yubico/yubico_util.pytenableDscCs t|_dS(s Disable colorization N(tFalseR(R((s6/usr/lib/python2.7/site-packages/yubico/yubico_util.pytdisableHs(t__name__t __module__t__doc__RRRR(((s6/usr/lib/python2.7/site-packages/yubico/yubico_util.pyR.s   ic Cs|st|St|tk r>tjdt|nd}d}x2t||D]!}|r1|d|d }}t}|jd}t|tj @r|jd}n%t|tj @r|jd}n|dj g|D]} d t| ^q|jd} | d t|7} n,dj g|D]} d t| ^q>} |d || f7}||7}qZW|S( s3 Produce a string hexdump of src, for debug output.s%Hexdump 'src' must be string (got %s)iRiRRRt s%02xs %02xs %04X %s ( tstrttypetyubico_exceptiont InputErrortgroupRRRt yubikey_defstRESP_PENDING_FLAGtSLOT_WRITE_FLAGtjoin( tsrctlengthtcolorizetoffsettresultR tlastRtcolortxthex_s((s6/usr/lib/python2.7/site-packages/yubico/yubico_util.pyRLs*  =,cCs4gtdt||D]}||||!^qS(s* Split data into chunks of num chars each i(txrangetlen(Rtnumti((s6/usr/lib/python2.7/site-packages/yubico/yubico_util.pyR&fscCstjdd}|j|S(s* Convert a modhex string to ordinary hex. tcbdefghijklnrtuvt0123456789abcdef(tstringt maketranst translate(Rtt_map((s6/usr/lib/python2.7/site-packages/yubico/yubico_util.pyRjsicCst|dkr$tjdnt|dd@}t||d@d>t||dd@d >Bt||d d@d >Bt||d d@B}|d |S(s( Perform the HOTP Algorithm truncating. isHMAC-SHA-1 not 20 bytes longiiiiiiiiiii (R5R$t YubicoErrorR(t hmac_resultR,R.tbin_code((s6/usr/lib/python2.7/site-packages/yubico/yubico_util.pyRos b((R t__all__tyubicoRR'R$R:R RRRRRR&RR(((s6/usr/lib/python2.7/site-packages/yubico/yubico_util.pyts"