ó !`Nc@shddlZddlZddlZddlZddlZddlZdejjfd„ƒYZ dS(iÿÿÿÿNtHIPcBs’eZdZddddgZd„Zd ed„Zd ed„Ze eƒZd d d„Z d d „Z e e ƒZ d ed „Z d „Z RS( s=HIP record @ivar hit: the host identity tag @type hit: string @ivar algorithm: the public key cryptographic algorithm @type algorithm: int @ivar key: the public key @type key: string @ivar servers: the rendezvous servers @type servers: list of dns.name.Name objects @see: RFC 5205thitt algorithmtkeytserverscCsAtt|ƒj||ƒ||_||_||_||_dS(N(tsuperRt__init__RRRR(tselftrdclasstrdtypeRRRR((s9/usr/lib64/python2.7/site-packages/dns/rdtypes/ANY/HIP.pyR's    c Ks²|jjdƒ}|jjdƒjddƒ}d}g}x0|jD]%}|jt|j||ƒƒƒqFWt|ƒdkr›|ddj |ƒ7}nd|j |||fS(Ns hex-codecs base64-codecs tit s %u %s %s%s( RtencodeRtreplaceRtappendtstrtchoose_relativitytlentjoinR( Rtorigint relativizetkwRRttextRtserver((s9/usr/lib64/python2.7/site-packages/dns/rdtypes/ANY/HIP.pytto_text.s#c CsÓ|jƒ}|jƒjdƒ}t|ƒdkrHtjjdƒ‚n|jƒjdƒ}g} xT|jƒ} | jƒr‚Pntj j | j |ƒ} | j ||ƒ| j | ƒqf||||||| ƒS(Ns hex-codeciÿs HIT too longs base64-codec(t get_uint8t get_stringtdecodeRtdnst exceptiont SyntaxErrortgett is_eol_or_eoftnamet from_texttvalueRR( tclsRR ttokRRRRRRttokenR((s9/usr/lib64/python2.7/site-packages/dns/rdtypes/ANY/HIP.pyR"9s   cCs‹t|jƒ}t|jƒ}|jtjd||j|ƒƒ|j|jƒ|j|jƒx$|jD]}|j|d|ƒqjWdS(Ns!BBH( RRRtwritetstructtpackRRtto_wiretNone(RtfiletcompressRtlhtlkR((s9/usr/lib64/python2.7/site-packages/dns/rdtypes/ANY/HIP.pyR*Ks"cCs$tjd|||d!ƒ\}}} |d7}|d8}||||!jƒ} ||7}||8}|||| !jƒ} || 7}|| 8}g} xr|dkr tjj||| |ƒ\} }||7}||8}|dk rú| j|ƒ} n| j| ƒq™W|||| || | ƒS(Ns!BBHii( R(tunpacktunwrapRR!t from_wireR+RR(R$RR twiretcurrenttrdlenRR.RR/RRRRtcused((s9/usr/lib64/python2.7/site-packages/dns/rdtypes/ANY/HIP.pyR2Ts(          cCsFg}x0|jD]%}|j||ƒ}|j|ƒqW||_dS(N(RRR(RRRRR((s9/usr/lib64/python2.7/site-packages/dns/rdtypes/ANY/HIP.pyRls c Csˆtjƒ}t|jƒ}t|jƒ}|jtjd||j|ƒƒ|j|jƒ|j|jƒtjƒ}t|jƒ}t|jƒ}|jtjd||j|ƒƒ|j|jƒ|j|jƒt |j ƒ|j ƒƒ}|dkr|St|j ƒ}t|j ƒ}t ||ƒ} d} xG| | krt |j | |j | ƒ}|dkrr|S| d7} q9W||S(Ns!BBHii( t cStringIOtStringIORRRR'R(R)RtcmptgetvalueRtmin( Rtothertb1R.R/tb2tvtlstlotcountti((s9/usr/lib64/python2.7/site-packages/dns/rdtypes/ANY/HIP.pyt_cmpss2 " "  N(t__name__t __module__t__doc__t __slots__RR+tTrueRR"t classmethodR*R2RRD(((s9/usr/lib64/python2.7/site-packages/dns/rdtypes/ANY/HIP.pyRs      ( R7tstringR(t dns.exceptionRt dns.rdatat dns.rdatatypetrdatatRdataR(((s9/usr/lib64/python2.7/site-packages/dns/rdtypes/ANY/HIP.pyts