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$@sPdZdddgZddlZddlmZddlZddlZddlZdZdZ d Z e d Z e d Z dVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxg#ZdejfdPYZdQejfdRYZdejfdSYZdTdydUYZdS(zs, module for accessing a USB HID YubiKey NEO turi_identifierstYubiKeyNEO_USBHIDtYubiKeyNEO_USBHIDErroriN(t __version__iii6tUtTis http://www.is https://www.ishttp://ishttps://istel:smailto:isftp://anonymous:anonymous@s ftp://ftp.i sftps://i ssftp://i ssmb://i snfs://i sftp://isdav://isnews:is telnet://isimap:isrtsp://isurn:ispop:issip:issips:istftp:isbtspp://is btl2cap://is btgoep://is tcpobex://is irdaobex://isfile://is urn:epc:id:is urn:epc:tag:i s urn:epc:pat:i!s urn:epc:raw:i"surn:epc:i#surn:nfc:cBseZdZRS(sA Exception raised for errors with the NEO USB HID communication. (t__name__t __module__t__doc__(((s>/usr/lib/python2.7/site-packages/yubico/yubikey_neo_usb_hid.pyRHstYubiKeyNEO_USBHIDCapabilitiescBs)eZdZdZdZdZRS(sM Capabilities of current YubiKey NEO BETA firmwares 2.1.4 and 2.1.5. cCstS(N(tFalse(tselftmode((s>/usr/lib/python2.7/site-packages/yubico/yubikey_neo_usb_hid.pythave_challenge_responsePscCs |dkS(Ni((R tslot((s>/usr/lib/python2.7/site-packages/yubico/yubikey_neo_usb_hid.pythave_configuration_slotSscCstS(N(tTrue(R ((s>/usr/lib/python2.7/site-packages/yubico/yubikey_neo_usb_hid.pyt have_nfc_ndefVs(RRRR RR(((s>/usr/lib/python2.7/site-packages/yubico/yubikey_neo_usb_hid.pyR Ks  cBs2eZdZdZdZeddZdZRS(s Class for accessing a YubiKey NEO over USB HID. The NEO is very similar to the original YubiKey (YubiKeyUSBHID) but does add the NDEF "slot". The NDEF is the tag the YubiKey emmits over it's NFC interface. s YubiKey NEOicCsJtjj||||jdkrF|jdkrFd|_ndS( s Find and connect to a YubiKey NEO (USB HID). Attributes : skip -- number of YubiKeys to skip debug -- True or False iiii sYubiKey NEO BETAN(iii(iii (tyubikey_usb_hidt YubiKeyUSBHIDt__init__t version_numt description(R tdebugtskip((s>/usr/lib/python2.7/site-packages/yubico/yubikey_neo_usb_hid.pyRfscCs|j|tS(sG Write an NDEF tag configuration to the YubiKey NEO. (t _write_configt _SLOT_NDEF(R tndef((s>/usr/lib/python2.7/site-packages/yubico/yubikey_neo_usb_hid.pyt write_ndefss(RRRtmodelRR RR(((s>/usr/lib/python2.7/site-packages/yubico/yubikey_neo_usb_hid.pyRYs  tYubiKeyNEO_NDEFcBseZdZeZd ZedeZ dZ dZ dZ d dZ dddZeed dZdZedZd Zd ZRS( s; Class allowing programming of a YubiKey NEO NDEF. itensUTF-8cCs%||_|dk r!||_ndS(N(tndef_strtNonet access_code(R tdataR"((s>/usr/lib/python2.7/site-packages/yubico/yubikey_neo_usb_hid.pyRs  cCst|_||_||_|S(s Configure parameters for NDEF type TEXT. @param encoding: The encoding used. Should be either 'UTF-8' or 'UTF16'. @param language: ISO/IANA language code (see RFC 3066). (t_NDEF_TEXT_TYPEt ndef_typetndef_text_langt ndef_text_enc(R tencodingtlanguage((s>/usr/lib/python2.7/site-packages/yubico/yubikey_neo_usb_hid.pyttexts   cCs|||fttdfkr*t|_nf|||fttdfkrTt|_n<||t|ftttfkr||_n td|S(s' Change the NDEF type. s&Bad or conflicting NDEF type specifiedN( RR R!t_NDEF_URI_TYPER%R$ttypetintR(R turlR*tother((s>/usr/lib/python2.7/site-packages/yubico/yubikey_neo_usb_hid.pyR,s  $  cCs|j}|jtkr*|j|}n!|jtkrK|j|}nt|tkrltdndtt f}t j |t||j|j tt d|j}|S(sH Return the current NDEF as a string (always 64 bytes). sNDEF payload too longs < B B %ss %ssi(R R%R+t_encode_ndef_uri_typeR$t_encode_ndef_text_paramstlent_NDEF_DATA_SIZERt_ACC_CODE_SIZEtstructtpacktljusttchrR"(R R#tfmttfirst((s>/usr/lib/python2.7/site-packages/yubico/yubikey_neo_usb_hid.pyt to_strings    cCs:|j}|jdtd}tjd|d|S(sL Return the current configuration as a YubiKeyFrame object. i@itcommandtpayload(R;R7R8t yubikey_framet YubiKeyFrame(R RR#R=((s>/usr/lib/python2.7/site-packages/yubico/yubikey_neo_usb_hid.pytto_frames cCsgd}xJtD]B\}}|t| j|kr |}|t|}Pq q Wt||}|S(s Implement NDEF URI Identifier Code. This is a small hack to replace some well known prefixes (such as http://) with a one byte code. If the prefix is not known, 0x00 is used. i(RR2tlowerR8(R R#tttcodetprefix((s>/usr/lib/python2.7/site-packages/yubico/yubikey_neo_usb_hid.pyR0scCs@t|j}|jdkr+|d@}nt||j|S(sw Prepend language and enconding information to data, according to nfcforum-ts-rtd-text-1-0.pdf tUTF16i(R2R&R'R8(R R#tstatus((s>/usr/lib/python2.7/site-packages/yubico/yubikey_neo_usb_hid.pyR1s N(RRRR+R%R!R R8R4R"t ndef_uri_rtR&R'RR*R R,R;RR@R0R1(((s>/usr/lib/python2.7/site-packages/yubico/yubikey_neo_usb_hid.pyR{s     (is http://www.(is https://www.(ishttp://(ishttps://(istel:(ismailto:(isftp://anonymous:anonymous@(is ftp://ftp.(i sftps://(i ssftp://(i ssmb://(i snfs://(i sftp://(isdav://(isnews:(is telnet://(isimap:(isrtsp://(isurn:(ispop:(issip:(issips:(istftp:(isbtspp://(is btl2cap://(is btgoep://(is tcpobex://(is irdaobex://(isfile://(is urn:epc:id:(is urn:epc:tag:(i s urn:epc:pat:(i!s urn:epc:raw:(i"surn:epc:(i#surn:nfc:((Rt__all__R5tyubicoRRR>tyubico_exceptionRR4R3tordR+R$Rt YubicoErrorRtYubiKeyUSBHIDCapabilitiesR RRR(((s>/usr/lib/python2.7/site-packages/yubico/yubikey_neo_usb_hid.pytsh        "