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@srdZdgZddlZddlZddlZddlZddlZddlmZdddYZ dS(sB module for creating frames of data that can be sent to a YubiKey t YubiKeyFrameiN(t __version__cBsAeZdZddZdZdZedZdZRS(s Class containing an YKFRAME (as defined in ykdef.h). A frame is basically 64 bytes of data. When this is to be sent to a YubiKey, it is put inside 10 USB HID feature reports. Each feature report is 7 bytes of data plus 1 byte of sequencing and flags. tcCse|dkrdd}nt|dkr=tjdn||_||_tj||_dS(NRti@s!payload must be empty or 64 bytes(tlentyubico_exceptiont InputErrortpayloadtcommandt yubico_utiltcrc16tcrc(tselfRR((s8/usr/lib/python2.7/site-packages/yubico/yubikey_frame.pyt__init__ s    cCs/d|jj|jjtt||jfS(Ns<%s.%s instance at %s: %s>(t __class__t __module__t__name__thextidR(R ((s8/usr/lib/python2.7/site-packages/yubico/yubikey_frame.pyt__repr__)s   cCs(d}tjd|j|j|j|S(s7 Return the frame as a 70 byte string. Rs<64sBH3s(tstructtpackRRR (R tfiller((s8/usr/lib/python2.7/site-packages/yubico/yubikey_frame.pyt to_string1s cCs|j}d}g}x|r|d |d}}|dkr|r|dkr|ttj|7}|j|j||qn0|ttj|7}|j|j|||d7}qW|S(s^ Return the frame as an array of 8-byte parts, ready to be sent to a YubiKey. iiti(Rtchrt yubikey_defstSLOT_WRITE_FLAGtappendt _debug_string(R tdebugtresttseqtouttthis((s8/usr/lib/python2.7/site-packages/yubico/yubikey_frame.pytto_feature_reportsCs   cCsh|s |S|jtjtjtjtjtjgkrZt|ddkrW|dfSt|ddkrw|dfSt|ddkr|dfSt|ddkr|dfSt|dd kr|d fSt|dd kr|d fSt|dd kr|dfSt|ddkr7|dfSt|ddkrd|dfSn |dfSdS(s; Annotate a frames data, if debug is True. iitFFFFFFFiitFFUUUUUitUKKKKKKitKKKKKKKitKKKAAAAitAAlETCritrCRis ScrRN(Rtyubikey_configt SLOT_CONFIGt SLOT_CONFIG2t SLOT_UPDATE1t SLOT_UPDATE2t SLOT_SWAPtord(R Rtdata((s8/usr/lib/python2.7/site-packages/yubico/yubikey_frame.pyRZs4          ( RRt__doc__R RRtFalseR#R(((s8/usr/lib/python2.7/site-packages/yubico/yubikey_frame.pyRs    (( R3t__all__RR RRR+tyubicoRR(((s8/usr/lib/python2.7/site-packages/yubico/yubikey_frame.pyts