Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325
ó ð v_c@sbddlZddlZddlZddlZddlZyddlZWn<ek rŠddlZddlZdfd„ƒYZnXe Z dZ dZ dZ dZdZdZd Zd Zd Zd Zd ZdZdZdZdZdZdZdZdZdZdZdZ ide6de6de6de6de6de6de6d e6d!e6d"e6d#e6d$e6d%e6d&e6d'e6d(e6d)e 6Z!d Z"d*Z#dZ$d Z%d Z&dZ'd Z(d Z)d+Z*dZ+dZ,dZ-d,Z.d-Z/i d.e'6d/e(6d0e)6d1e*6d2e+6d3e,6d4e-6d5e.6d6e/6Z0d*Z1dZ2d Z3d Z4d Z5d Z6d Z7dZ8dZ9dZ:dZ;i d7e16d8e26d9e36d:e46d;e56d<e66d=e76d>e86d?e96d@e:6dAe;6Z<d*Z=dZ>d Z?d Z@idBe=6dCe>6dDe?6dEe@6ZAdZBd ZCd ZDd ZEd ZFd ZGdZHdZIdZJdZKdZLi dFeB6dGeC6dHeD6dIeE6dJeF6dKeG6dLeH6dMeI6dNeJ6dOeK6dPeL6ZMd*ZNdZOd ZPd+ZQdZRdZSdZTdQZUdRZVdSZWdTZXdUZYdVZZi dWeN6dXeO6dYeP6dZeQ6d[eR6d\eS6d]eT6d^eU6d_eV6d`eW6daeX6dbeY6dceZ6Z[d Z\d Z]d Z^d Z_d Z`dZadZbdZcdZddZed+Zfd,Zgd-ZhddZideZjdQZkdfZldgZmdhZndiZodjZpdkZqdRZrdSZsidle\6dme]6dne^6doe_6dpe`6dqea6dreb6dsec6dted6duee6dvef6dweg6dxeh6dyei6dzej6d{ek6d|el6d}em6d~en6deo6d€ep6d�eq6d‚er6dƒes6Ztd*ZudZvd Zwd ZxdSZyid„eu6d…ev6d†ew6d‡ex6dˆey6ZzdZ{d Z|d Z}dZ~d+ZdZ€dZ�dVZ‚dZƒid‰eƒ6Z„dŠ„Z…d‹„Z†dŒ„Z‡d�„ZˆdŽ„Z‰d�„ZŠd�„Z‹d‘„ZŒd’„Z�d“„ZŽd”e�fd•„ƒYZ�d–e�fd—„ƒYZ‘d˜e�fd™„ƒYZ’dše�fd›„ƒYZ“dœe�fd�„ƒYZ”dže�fdŸ„ƒYZ•d „Z–d¡„Z—d¢„Z˜e™d£„Zšd¤„Z›eœd¥kr^ddl�Z�x,e›eže�jŸdƒj ƒƒD] Z¡e¡GHqLWndS(¦iÿÿÿÿNthashlibcBseZed„ƒZRS(cCs9|dkrtjƒS|dkr,tjƒStd‚dS(Ntmd5tsha1sBad checksum type(Rtnewtshat ValueError(talgo((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyR#s     (t__name__t __module__t staticmethodR(((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyR!si€iÀi<i?iiiiiiiii i i i i iiiis#public-key encrypted session packetssignature packets&symmetric-key encrypted session packetsone-pass signature packetssecret-key certificate packetspublic-key certificate packetssecret-key subkey packetscompressed data packets#symmetric-key encrypted data packets marker packetsliteral data packets trust packetsuser id packetspublic subkey packetsuser attribute packets$symmetric encrypted integrity packets"modification detection code packetiiiisRSA (Encrypt or Sign)sRSA Encrypt-Onlys RSA Sign-OnlysElgamal Encrypt-Onlys DSA (Digital Signature Standard)sElliptic CurvetECDSAsElgamal (Encrypt or Sign)sDiffie-HellmansPlaintext or unencrypted datatIDEAs Triple-DEStCAST5tBlowfishs SAFER-SK128sDES/SKs AES 128-bits AES 192-bits AES 256-bitsTwofish 256-bitt UncompressedtZIPtZLIBtBZip2tMD5tSHA1t RIPEMD160sdouble-width SHAtMD2tTIGER192s HAVAL-5-160tSHA256tSHA384tSHA512tSHA224iii i(i0i@s document signature, binary images"document signature, canonical textssignature over just subpacketss;public key packet and user ID packet, generic certifications-public key packet and user ID packet, personas:public key packet and user ID packet, casual certifications<public key packet and user ID packet, positive certificationssubkey bindings key signatureskey revocationssubkey revocationscertificate revocationt timestampiiiiiiiissignature creation timessignature expiration timesexportable certificationstrust signaturesregular expressiont revocableskey expiration times&placeholder for backward compatibilityspreferred symmetric algorithmssrevocation keys issuer key IDs notation dataspreferred hash algorithmss preferred compression algorithmsskey server preferencesspreferred key serversprimary user ids policy URIs key flagsssigner's user idsreason for revocationtfeaturesssignature targetsembedded signaturesNo reason specifiedsKey is supercededsKey has been compromisedsKey is no longer useds&user id information is no longer validsModification DetectioncCsld}xY|dkratjd|||d!ƒd}|dt|ƒ}|d}|d}q W||fS(sðget_whole_number(msg, idx, numlen) extracts a "whole number" field of length numlen from msg at index idx returns (, new_idx) where the whole number is a long integer and new_idx is the index of the next element in the messagelitBil(tstructtunpacktlong(tmsgtidxtnumlentntb((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pytget_whole_number:s! cCs(t|||ƒ\}}t|ƒ|fS(siget_whole_int(msg, idx, numlen) same as get_whole_number but returns the number as an int for convenience(R'tint(R"R#R$R%((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyt get_whole_intGscCsPg}x:|dkrB|jdtjd|d@ƒƒ|dL}q Wdj|ƒS(sKpack_long(l) returns big-endian representation of unsigned long integeriRiÿit(tinsertRtpacktjoin(tltarr((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyt pack_longMs  cCs†t|ƒ}t|ƒdd}t|ƒdkrlt|dƒ}x-|dkrh|d7}|dL}qEWnd}tjd|ƒ|S(s_pack_mpi(l) returns the PGP Multi-Precision Integer representation of unsigned long integeriiis>H(R0tlentordRR,(R.tstbitsR%((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pytpack_mpiVs  cCs|t||dƒ\}}|dkr.||fS|dkrlt||dƒ\}}|dd>|d|fSt||dƒS(sfget_sig_subpak_len(msg, idx) extracts a signature subpacket length field returns (subpak_len, new_idx)iiÀiÿii(R)(R"R#tplentplen2((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pytget_sig_subpak_lenfs   cCs7t||dƒ\}}|ft|||ddƒS(sget_mpi(msg, idx) extracts a multi-precision integer field from the message msg at index idx returns (n, , new_idx) where the mpi is a long integer and new_idx is the index of the next element in the message and n is the number of bits of precision in iii(R)R'(R"R#tln((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyt get_n_mpirscCs!t||ƒ}|d|dfS(sÑget_mpi(msg, idx) extracts a multi-precision integer field from the message msg at index idx returns (, new_idx) where the mpi is a long integer and new_idx is the index of the next element in the messageii(R:(R"R#R.((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pytget_mpi{scCsdjtd„t|ƒƒƒS(NR*cSstt|ƒƒdjdƒS(Ni(thexR2tzfill(tx((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyt„s(R-tmaptlist(R3((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyt str_to_hexƒscCsf|dkrdS|d}|d}|d}|d}|d}|d}|}d||||fS(Nitneveri<is%d days %02d:%02d:%02d((R3tsecstminsthrstdays((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pytduration_to_str†s       cCs›g}t|ƒtjkrBt|ƒtjkrBt|fƒ}nxI|D]A}||kro|j||ƒqI|jdt|ƒdƒqIWdj|ƒS(Nsunknown(t)s, (ttypettypestListTypet TupleTypeRAtappendtstrR-(tmtvalstslistti((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyt map_to_str’s*  t pgp_packetcBseZd„Zd„ZRS(cCs d|_dS(N(tNonetpkt_typ(tself((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyt__init__ŸscCstt|jƒS(N(RTtctb_pkt_to_strRW(RX((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyt__str__¢s(RRRYR[(((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyRUžs t public_keycBs>eZd„Zd„Zd„Zd„Zd„Zd„ZRS(cCs5tj|ƒd|_d|_d|_d|_dS(Ni(RURYRVtversiontpk_algotkey_sizet fingerprint_(RX((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyRY¦s     cCsû|jr|jS|jdkrltjdƒ}|jt|jƒƒ|jt|jƒƒ|jƒ|_nˆ|jdkrátjdƒ}|jdƒ|j ƒ}|jt j dt |ƒƒƒ|j|ƒ|jƒ|_nt d|jƒ‚|jS(NiRiRs™s>Hsunknown public key version %d(R`R]RRtupdateR0t pk_rsa_modt pk_rsa_exptdigestt serializeRR,R1t RuntimeError(RXthtbuf((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyt fingerprint­s     cCsA|jdkr t|jd@ƒS|jdkr=|jƒdSdS(Nilÿÿÿÿiiøÿÿÿ(R]R0RbRi(RX((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pytkey_idÇscCsòg}|jdkrx|jtjd|jt|jƒ|j|jƒƒ|jt|j ƒƒ|jt|j ƒƒnm|jdkrå|jtjd|jt|jƒ|jƒƒ|jt ksÓ|jt kr|jt|j ƒƒ|jt|j ƒƒqå|jt krl|jt|jƒƒ|jt|jƒƒ|jt|jƒƒ|jt|jƒƒqå|jtksŠ|jtkrÏ|jt|jƒƒ|jt|jƒƒ|jt|jƒƒqåtd|jƒ‚ndj|ƒS(Nis>BIHBis>BIBsunknown public key algorithm %dR*(R]RNRR,R(RtvalidityR^R5RbRctALGO_PK_RSA_ENC_OR_SIGNtALGO_PK_RSA_SIGN_ONLYt ALGO_PK_DSAtpk_dsa_prime_ptpk_dsa_grp_ord_qtpk_dsa_grp_gen_gtpk_dsa_pub_keytALGO_PK_ELGAMAL_ENC_OR_SIGNtALGO_PK_ELGAMAL_ENC_ONLYtpk_elgamal_prime_ptpk_elgamal_grp_gen_gtpk_elgamal_pub_keyRfR-(RXtchunks((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyReÍs*4.cCsb|}t||dƒ\|_}|jdkrj|jdkrj|jdkrjtd|j|fƒ‚n|jdkr…d|_nt||dƒ\|_}t|jƒ|_|jdkrßt||dƒ\|_}nt||dƒ\|_}|jtks|jt krQt ||ƒ\|_ |_ }t ||ƒ\|_}n |jtkrÖt ||ƒ\}|_}t ||ƒ\|_}t ||ƒ\|_}t ||ƒ\}|_}|||_ nˆ|jtksô|jtkrEt ||ƒ\|_ |_}t ||ƒ\|_}t ||ƒ\|_}ntd|j|fƒ‚dS(Niiiis*unknown public key packet version %d at %ds%unknown public key algorithm %d at %d(R)R]RfR'RtfloatRkR^RlRmR:R_RbR;RcRnRoRpRqRrRsRtRuRvRw(RXR"R#tpkt_lentidx_savetl1tl2((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyt deserializeås2- cCs3tjƒ}|jtj|ƒdƒ|jdt|jƒdƒ|jdtj|j ƒdƒ|jdkr«|jdtj|j |j dddƒdƒn|jdt |j dƒ|j t kså|j tkr$|jd t|jƒdƒ|jd t|jƒdƒn|j tkr®|jd t|jƒdƒ|jd t|jƒdƒ|jd t|jƒdƒ|jdt|jƒdƒn{|j tksÌ|j tkr)|jdt|jƒdƒ|jdt|jƒdƒ|jdt|jƒdƒn|jƒS(Ns s version: s timestamp: is validity: ii<s pubkey algo: s pk_rsa_mod: s pk_rsa_exp: spk_dsa_prime_p: spk_dsa_grp_ord_q: spk_dsa_grp_gen_g: spk_dsa_pub_key: spk_elgamal_prime_p: spk_elgamal_grp_gen_g: spk_elgamal_pub_key: (t cStringIOtStringIOtwriteRUR[ROR]ttimetctimeRRktalgo_pk_to_strR^RlRmR<RbRcRnRoRpRqRrRsRtRuRvRwtgetvalue(RXtsio((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyR[s( !7!!!(RRRYRiRjReR~R[(((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyR\¥s      tuser_idcBs#eZd„Zd„Zd„ZRS(cCstj|ƒd|_dS(N(RURYRVtid(RX((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyRYs cCs||||!|_dS(N(Rˆ(RXR"R#Rz((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyR~scCs tj|ƒdd|jdS(Ns sid: (RUR[Rˆ(RX((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyR[s(RRRYR~R[(((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyR‡s  tuser_attributecBs#eZd„Zd„Zd„ZRS(cCs#tj|ƒd|_d|_dS(N(RURYRVtsub_typetdata(RX((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyRY#s  cCs=t||dƒ\|_}|d}||||!|_dS(Ni(R)RŠR‹(RXR"R#Rz((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyR~(s cCs3tj|ƒddt|jƒdt|jƒS(Ns s sub_type: s data: (RUR[RORŠRBR‹(RX((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyR[-s(RRRYR~R[(((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyR‰"s  t signaturecBskeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z RS( cCs>tj|ƒd|_d|_d|_d|_d|_dS(N(RURYRVR]tsig_typeR^t hash_algot hash_frag(RX((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyRY1s      cCsX|jdkr|jS|jtƒ}|r3|dS|jtƒ}|rP|dSdSdS(Nii(R]tkey_id_tget_hashed_subpaktSIG_SUB_TYPE_ISSUER_KEY_IDtget_unhashed_subpakRV(RXRS((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyRj9scCs1|jdkr|jS|jtƒ}|dSdS(Nii(R]RR‘tSIG_SUB_TYPE_CREATE_TIME(RXRS((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyt creation_timeEscCs?|jdkrtdƒ‚n|jtƒ}|r;|dSdS(Nis$v3 signatures don't have expirationsii(R]RR‘tSIG_SUB_TYPE_KEY_EXPIRE(RXRS((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyt expirationLs cCs,x%|jD]}|d|kr |Sq WdS(Ni(thashed_subpaksRV(RXttypRS((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyR‘TscCs,x%|jD]}|d|kr |Sq WdS(Ni(tunhashed_subpaksRV(RXR™RS((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyR“Zsc& Cs|t||ƒ\}}t||dƒ\}}|tkrgt||dƒ\}}|t|ƒf|fS|tks|tkr§t||dƒ\}}||f|fS|tks¿|tkrçt||dƒ\}}||f|fS|t kr6t||dƒ\}}t||dƒ\} }||| f|fS|t kru||||d!} ||d}|| f|fS|t ks¥|t ks¥|t ks¥|tkrêtd„t||||d!ƒƒ} ||d}|| f|fS|tkrWt||dƒ\} }t||dƒ\} }|||d!}|d}|| | |f|fS|tkrŽ|||d!}|d}||f|fS|tkrt||dƒ\}}t||dƒ\}}t||dƒ\}}t||dƒ\}}t||dƒ\}}t||dƒ\}}||||!}||}||||!}||}|||||||f|fS|tkr×g||||d!D]}t|ƒ^q¡}||d}||f|fS|tkr||||d!}||d}||f|fS|tkrJt||dƒ\}}||f|fS|tkr‰||||d!}||d}||f|fS|tkrÈ||||d!}||d}||f|fS|tkr$t||dƒ\}}|d}||||!}||}|||f|fS|tkr•|d}|g} x?|dkr„t||dƒ\}!}| j|!ƒ|d}qFWt| ƒ|fS|tkr t||dƒ\}"}t||dƒ\}#}||||d!}$||d}||"|#|$f|fS|tkrI||||d!}%||d}||%f|fS||||d!}%||d}||%f|fS( NiicSs t|ƒS(N(R2(R>((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyR?usiiiii( R8R)R”R'RytSIG_SUB_TYPE_EXPIRE_TIMER–tSIG_SUB_TYPE_EXPORT_CERTtSIG_SUB_TYPE_REVOCABLEtSIG_SUB_TYPE_TRUST_SIGtSIG_SUB_TYPE_REGEXPtSIG_SUB_TYPE_PREF_SYMM_ALGOtSIG_SUB_TYPE_PREF_HASH_ALGOtSIG_SUB_TYPE_PREF_COMP_ALGOtSIG_SUB_TYPE_KEY_FLAGSR@RAtSIG_SUB_TYPE_REVOKE_KEYR’tSIG_SUB_TYPE_NOTATIONtSIG_SUB_TYPE_KEY_SRV_PREFR2tSIG_SUB_TYPE_PREF_KEY_SRVRtSIG_SUB_TYPE_PRIM_USER_IDtSIG_SUB_TYPE_POLICY_URItSIG_SUB_TYPE_SGNR_USER_IDtSIG_SUB_TYPE_REVOKE_REASONtSIG_SUB_TYPE_FEATURESRNttupletSIG_SUB_TYPE_SIG_TARGETtSIG_SUB_TYPE_EMBEDDED_SIG(&RXR"R#tsublentsubtypettmR3tboolt trust_lvlt trust_amttexprt algo_listtclsRtfprinttk_idtflg1tflg2tflg3tflg4tname_lentval_lentnamtvalR>tprefsturlturit signer_idtrev_codetreas_lentreasR.tocttpublic_key_algoRŽthashtdat((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pytdeserialize_subpacket`s¶   0'        .             cCs0x)|jD]}|dtkr |dSq WdS(spis_primary_user_id() returns true if this signature contains a primary user id subpacket with value trueii(R˜R¨(RXRS((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pytis_primary_user_idÀs c Cs|dtkr%dtj|dƒS|dtkrGdt|dƒS|dtkrl|dredSdSn|dtkrÞ|ddkr�dS|ddkr¬d|d S|dd krÈd |d Sd |d|d fS|dtkrúd |dS|dtkr|drd SdSn|dt krAdt|dƒS|dt krfdt t |dƒS|dt kr¾d}|dt@r—|d}n|t t|d ƒdt|dƒS|dtkràdt|dƒS|dtkrüd|dS|dtkr!dt t|dƒS|dtkrFdt t|dƒS|dtkr•d}g}|ddd@r„|jdƒn|dj|ƒS|dtkr±d|dS|dtkrÖ|drÏdSdSn|dtkròd |dS|dtkrâg}d}t|dƒdkr5|dd}n|t@rO|jd!ƒn|t @ri|jd"ƒn|t!@rƒ|jd#ƒn|t"@r�|jd$ƒn|t#@r·|jd%ƒn|t$@rÑ|jd&ƒnd'dj|ƒS|dt%krþd(|dS|dt&kr6t'j(|dd)ƒ}d*||d fS|dt)krg}t|ƒdkr°|d}|t*@r‚|jd+ƒn|t*@}|dkr°|jd,|ƒq°nx<t+d t|ƒƒD]%} |jd-| d|| fƒqÆWd.dj|ƒSd/|dt|dƒfS(0Niscreation time: issignature expires: ssignature exportable: TRUEssignature exportable: FALSEstrust: ordinarystrust: introducer (%d)istrust: meta-introducer (%d)s trust: %d %dsregexp: ssignature revocable: TRUEssignature revocable: FALSEs key expires: s preferred symmetric algorithms: srevocation key: s (sensitive) t isissuer key id: s2notation: flags(%d, %d, %d, %d) name(%s) value(%s)spreferred hash algorithms: s"preferred compression algorithms: skey server preferences: i€s No-modifys, spreferred key server: %ssis primary user idsis not primary user idspolicy url: %ssmay certify other keyss may sign datasmay encrypt communicationssmay encrypt storages4private component may have been secret-sharing splits group keys key flags: s signer id: R*sreason for revocation: %s, %ssModification Detections[0]=0x%xs [%d]=0x%xs features: sunknown(%d): %s(,R”R‚RƒR›RHRœRžRŸR�R–R RTtalgo_sk_to_strR¤tREVOKE_KEY_CLASS_SENSR„RBR’R¥R¡talgo_hash_to_strR¢talgo_comp_to_strR¦RNR-R§R¨R©R£R1tKEY_FLAGS1_MAY_CERTIFYtKEY_FLAGS1_MAY_SIGNtKEY_FLAGS1_MAY_ENC_COMMtKEY_FLAGS1_MAY_ENC_STRGtKEY_FLAGS1_PRIV_MAYBE_SPLITtKEY_FLAGS1_GROUPRªR«trevoke_reason_to_strtgetR¬tPGP_FEATURE_1_MOD_DETECTtrange( RXtspR3RÃtflagstflgs1RÉRRÂRS((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pytsubpacket_to_strÈs²      '               #cCs÷t||dƒ\|_}|jdkr6d|_n|jdkrüt||dƒ\}}t||dƒ\|_}t||dƒ\|_}t|jƒ|_|||d!|_|d}t||dƒ\|_}t||dƒ\|_}nH|jdkr+t||dƒ\|_}t||dƒ\|_}t||dƒ\|_}t||dƒ\}}||}g|_ x8||krÁ|j ||ƒ\}}|j j |ƒqŠWt||dƒ\}}||}g|_ xT||kr'|j ||ƒ\}}|j j |ƒqðWnt d|j|fƒ‚t||dƒ\|_}|jtks}|jtkr˜t||ƒ\|_}n[|jtkrÚt||ƒ\|_}t||ƒ\|_}nt d|j|fƒ‚|S(Niiiiis)unknown signature packet version %d at %ds4unknown public-key algorithm (%d) in signature at %d(R)R]R'R�RRyR�R^RŽR˜RÎRNRšRfR�RlRmR;trsa_sigRnt dsa_sig_rt dsa_sig_s(RXR"R#Rzthash_lent sub_paks_lent sub_paks_endRß((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyR~'sJ      cCs,tjƒ}|jtj|ƒdƒ|jdt|jƒdƒ|jdt|jdƒ|jdkr±|jdt j |j ƒdƒ|jdt |j ƒdƒn�|jdkrA|jdƒx/|jD]$}|jd |j|ƒdƒq×W|jd ƒx2|jD]$}|jd |j|ƒdƒqWn|jd t|jdƒ|jd t|jƒdƒ|jtks™|jtkrÇ|jd ƒ|jdt|jƒdƒn[|jtkr"|jdƒ|jdt|jƒdƒ|jdt|jƒdƒn|jƒS(Ns s version: stype: is timestamp: skey_id: ishashed subpackets: s sunhashed subpackets: s hash_algo: s hash_frag: s pk_algo: RSA s rsa_sig: s pk_algo: DSA s dsa_sig_r: s dsa_sig_s: (RR€R�RUR[ROR]tsig_type_to_strR�R‚RƒRRBR�R˜RâRšRÓRŽR<R�R^RlRmRãRnRäRåR…(RXR†RS((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyR[Ps0 !! " % ! !( RRRYRjR•R—R‘R“RÎRÏRâR~R[(((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyRŒ0s      `  _ )tpgp_certificatecBsJeZd„Zd„Zd„ZeeƒZd„Zd„Zd„Z RS(cCs1d|_d|_g|_g|_d|_dS(Niÿÿÿÿ(RVR]R\t revocationstuser_idstprimary_user_id(RX((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyRYps     cCsAtjƒ}|jd|jƒ|jdt|jjƒƒƒ|jd|jƒ|jt|jƒƒxT|j D]I}|jt|dƒƒx)|dD]}|jdt|ƒƒqœWqtWt |dƒr7xd|j D]V}|jdƒ|jt|dƒƒx)|dD]}|jdt|ƒƒqWqÚWn|j ƒS( NsPGP Public Key Certificate v%d s Cert ID: %s sPrimary ID: %s iis t user_attrsRÐ( RR€R�R]RBR\RjR‡RORìthasattrRîR…(RXR†tuidtsigtuattr((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyR[ws    "cCs|j|jdjS(Ni(RìRíRˆ(RX((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyt get_user_id‰scCs¨|jdkrE|jjdkr%dS|jj|jjdddS|jd}xK|dD]?}|jtkr]|jƒ}|dkrŽdS|jj|Sq]WdSdS(Niiii<i(R]R\RkRRìR�tSIG_TYPE_PK_USER_GENR—(RXtu_idRStexp((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyR—‘s    cCsdS(Ni((RX((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyR_¢sc Cs5|djtkr6tdtt|djƒƒ‚n|d|_|jj|_|jdkr8d}x˜||jtkr||jdkrªtd||jƒ‚n||jt kràtdtt ||jƒƒ‚n|j j ||ƒ|d}qjWxõ|t |ƒkr4||jtkrlt |jƒdkrhtd|tt||jƒfƒ‚qlPn||g}|d}d}d}x�|t |ƒkr ||jtkr ||jtttttfkrtd|tt ||jƒfƒ‚n|j ||ƒ|d}q’W|jj |ƒqWnÂd}g|_g|_g|_g|_|jjƒ}xÔ|t |ƒkrG||jtkrG||jd krÆtd ||jƒ‚n||jt krð|j j ||ƒnJ||jtkr|jj ||ƒn td tt ||jƒƒ‚|d}qtWd}x©|t |ƒkrù||jtkr¡||g}d}d}|d}xò|t |ƒkr�||jtkr�||jtttttfkr td|tt ||jƒfƒ‚n|j ||ƒ||jƒ|kr€||jƒr€||jƒ}||kr}t |jƒ|_|}q}q€n|d}qœW|jj |ƒqQ||jtkrv||g} d}|d}x�|t |ƒkrb||jtkrb||jtttttfkrDtd |tt ||jƒfƒ‚n| j ||ƒ|d}qÔW|jj | ƒqQ||jtkrÁ||g} |d}d}|t |ƒkr||jtkr||jt krd}| j ||ƒ|d}n|t |ƒkr+td |dƒ‚n||jtksQ||jt!krztd|tt ||jƒfƒ‚n| j ||ƒ|d}|r®|jj | ƒqö|jj | ƒqQ||jtkrõ|j j ||ƒ|d}qQPqQWt |jƒdkr1tdt"|jjƒƒƒ‚n|S(s load(pkts) Initialize the pgp_certificate with a list of OpenPGP packets. The list of packets will be scanned to make sure they are valid for a pgp certificate.is6first PGP packet should be a public-key packet, not %siis'version 3 cert has version %d signatures"v3 cert revocation sig has type %ss#pgp packet %d is not user id, is %ss/signature %d doesn't bind user_id to key, is %sis'version 4 cert has version %d signaturesZv4 cert signature has type %s, supposed to be revocation signature or direct key signatures1signature %d doesn't bind user_attr to key, is %ss2subkey at index %d was not followed by a signatures3signature %d doesn't bind subkey to key, type is %ss,no user id packet was present in the cert %s(#RWtCTB_PKT_PK_CERTRRTRZR\R]t CTB_PKT_SIGR�tSIG_TYPE_KEY_REVOKERéRëRNR1tCTB_PKT_USER_IDRìRôtSIG_TYPE_PK_USER_PERtSIG_TYPE_PK_USER_CAStSIG_TYPE_PK_USER_POStSIG_TYPE_CERT_REVOKEtdirect_key_sigstsubkeyst rvkd_subkeysRîRjt SIG_TYPE_KEYRÏR•RítCTB_PKT_USER_ATTRtCTB_PKT_PK_SUBtSIG_TYPE_SUBKEY_REVOKEtSIG_TYPE_SUBKEY_BINDRB( RXtpktstpkt_idxR‡t is_revokedRÏtcert_idtprim_user_id_sig_timetctt user_attrtsubkey((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pytload¥sÀ# #)  (")    (   (")   (")  8 &)  "( RRRYR[RótpropertyR‡R—R_R(((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyRêos      cCs¹t||dƒ\}}|t@tkrÔd}|t@tkrGd}n|t@tkr`d}n|t@tkryd}n|t@tkr’d}nd}|dkr¿t|||ƒ\}}n|t@d?||fS|t@t kr¢t||dƒ\}}|dkr|t @||fS|dkr^t||dƒ\}}|t @|dd>|d|fS|dkr“t||dƒ\}}|t @||fSt d |‚nt d ||f‚d S( sget_ctb(msg, idx) extracts a the "cypher type bit" information from message msg at index idx returns (type, len, new_idx) where type is the enumerated type of the packet, len is the length of the packet, and new_idx is the index of the next element in the messageiiiiiÀiàiiÿs=partial message bodies are not supported by this version (%d)s4unknown (not "normal") cypher type bit %d at byte %dN( R)t CTB_76_MASKt CTB_76_NORMALtCTB_PKT_LEN_MASKt CTB_PKT_LEN_1t CTB_PKT_LEN_2t CTB_PKT_LEN_4tCTB_PKT_LEN_UNDEFtCTB_PKTV2_MASKt CTB_76_NEWt CTB_PKT_MASKt Exception(R"R#R&tn_lenRzR6R7((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pytget_ctb^s6       ! cCs€d}d}|}xct|ƒD]U}|t|ƒd>A}x8tddƒD]'}|d>}|d@rI||A}qIqIWqW|d@S( NiηiûL†iiiiiiÿÿÿ(RAR2RÞ(R"t crc24_initt crc24_polytcrcRStj((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pytcrc24‚s  cCs4g}d}t|ƒ}x||kr/t||ƒ\}}}d}|tks]|tkritƒ}nH|tkr�tƒ}n0|tkr™t ƒ}n|t kr±t ƒ}n|rö||_ |j |||ƒtrtj|jƒdƒqntdtt|ƒ|fƒ‚|j|ƒ||}qW|S(Nis s#unexpected pgp packet type %s at %d(R1RRVR÷RR\RúR‡RøRŒRR‰RWR~tdebugR�R[RRTRZRN(R"tpkt_listR#tmsg_lenRWRztpkt((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pytdecode�s.          cCs°td„|jdƒƒ}d}d}tjƒ}xl|D]d}|sa|dkr:d}q:q:n|sˆt|ƒdkr:d}q:q:n|r‘|ddkr‘tj|dd!ƒ}d}t||dƒ\}}tj|jƒƒ} |j ƒ|t | ƒkrt d ‚nt | ƒ} g} xQt| ƒdkrtt ƒ} || _| j| ƒ} | j| ƒg| d| +q$W|s�| s…d S| dS| S|j|ƒq:W|s¬d SgS( s‚decode_msg(msg) ==> list of OpenPGP "packet" objects Takes an ascii-armored PGP block and returns a list of objects each of which corresponds to a PGP "packets". A PGP message is a series of packets. You need to understand how packets are to be combined together in order to know what to do with them. For example a PGP "certificate" includes a public key, user id(s), and signature. cSs |jƒS(N(trstrip(R>((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyR?¼ss is$-----BEGIN PGP PUBLIC KEY BLOCK-----it=iisbad checksum on pgp messageN(R@tsplitRR€R1tbase64t decodestringR'R…tcloseR"RR'Rêtraw_keyRRNRVR�(R"tmultit pgpkey_linestin_blocktin_datat block_bufR.tcsumRStcert_msgR$t cert_listtcertR((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyt decode_msg±sL            cCsÅg}td„|jdƒƒ}d}d}x‘|D]‰}|si|dkrid}|d|7}q4qin|d|7}|dkr4d}t|d tƒ}|r±|j|ƒnd}q4q4q4W|S( NcSs |jƒS(N(R((R>((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pyR?ùss iR*s$-----BEGIN PGP PUBLIC KEY BLOCK-----is%s s"-----END PGP PUBLIC KEY BLOCK-----R/(R@R*R8tTruetextend(R"tcertsR0R1tblockR.t thesecerts((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pytdecode_multiple_keysõs&     t__main__(¢RR‚RR+RKRt ImportErrorRRRVR#RRRRRtCTB_PKT_PK_ENCRøtCTB_PKT_SK_ENCtCTB_PKT_OP_SIGtCTB_PKT_SK_CERTR÷tCTB_PKT_SK_SUBtCTB_PKT_COMPRESSEDt CTB_PKT_ENCtCTB_PKT_MARKERt CTB_PKT_LITt CTB_PKT_TRUSTRúRRtCTB_PKT_SYM_ENC_INTtCTB_PKT_MOD_DETECTRZRRRRRRltALGO_PK_RSA_ENC_ONLYRmRtRntALGO_PK_ELLIPTIC_CURVEt ALGO_PK_ECDSARst ALGO_PK_DHR„t ALGO_SK_PLAINt ALGO_SK_IDEAt ALGO_SK_3DESt ALGO_SK_CAST5tALGO_SK_BLOWFISHtALGO_SK_SAFER_SK128tALGO_SK_DES_SKtALGO_SK_AES_128tALGO_SK_AES_192tALGO_SK_AES_256tALGO_SK_TWOFISH_256RÑtALGO_COMP_UNCOMPt ALGO_COMP_ZIPtALGO_COMP_ZLIBtALGO_COMP_BZIP2RÔt ALGO_HASH_MD5tALGO_HASH_SHA1tALGO_HASH_RIPEMD160tALGO_HASH_SHA_DBLt ALGO_HASH_MD2tALGO_HASH_TIGER192tALGO_HASH_HAVAL_5_160tALGO_HASH_SHA256tALGO_HASH_SHA384tALGO_HASH_SHA512tALGO_HASH_SHA224RÓtSIG_TYPE_DOCUMENTtSIG_TYPE_DOCUMENT_CANONtSIG_TYPE_STANDALONERôRûRüRýRRRùRRþtSIG_TYPE_TIMESTAMPRéR”R›RœRžRŸR�R–tSIG_SUB_TYPE_PLACEHOLDERR R¤R’R¥R¡R¢R¦R§R¨R©R£RªR«R¬R®R¯tsig_sub_type_to_strtREVOKE_REASON_NONEtREVOKE_REASON_SUPERtREVOKE_REASON_COMPRtREVOKE_REASON_NOT_USEDtREVOKE_REASON_ID_INVALIDRÛRÕRÖR×RØRÙRÚtREVOKE_KEY_CLASS_MANDRÒRÝtpgp_feature_to_strR'R)R0R5R8R:R;RBRHRTtobjectRUR\R‡R‰RŒRêRR"R'tFalseR8R>Rtsystopentargvtreadtpgp_cert(((s./usr/lib/python2.7/site-packages/yum/pgpmsg.pytsô<                   r ÿ@ï $ " D   &