!`Nc@s\ddlZddlZddlZddlZddlZdejjfdYZdS(iNtIPSECKEYcBseZdZdddddgZdZd edZd edZe eZd d d Z d d Z e e Z d Z RS( sIPSECKEY record @ivar precedence: the precedence for this key data @type precedence: int @ivar gateway_type: the gateway type @type gateway_type: int @ivar algorithm: the algorithm to use @type algorithm: int @ivar gateway: the public key @type gateway: None, IPv4 address, IPV6 address, or domain name @ivar key: the public key @type key: string @see: RFC 4025t precedencet gateway_typet algorithmtgatewaytkeyc Cstt|j|||dkrU|dkrL|dk rLtdnd}ns|dkrtjjtjj|}nI|dkrtjjtjj |}n|dkrntd|||_ ||_ ||_ ||_ ||_dS(Nit.s"invalid gateway for gateway type 0iiis!invalid IPSECKEY gateway type: %d(tsuperRt__init__tNonet SyntaxErrortdnstinett inet_ptontAF_INETtAF_INET6RRRRR( tselftrdclasstrdtypeRRRRRtjunk((s=/usr/lib64/python2.7/site-packages/dns/rdtypes/IN/IPSECKEY.pyR(s"         cKs|jdkrd}no|jdkr3|j}nT|jdkrN|j}n9|jdkr{t|jj||}n tdd|j|j|j|tjj |j fS(NiRiiisinvalid gateway types%d %d %d %s %s( RRtstrtchoose_relativityt ValueErrorRRR trdatat _base64ifyR(Rtorigint relativizetkwR((s=/usr/lib64/python2.7/site-packages/dns/rdtypes/IN/IPSECKEY.pytto_text?s     cCs|j}|j}|j}|dkrK|jj||} n |j} g} xP|jj} | jrPn| jstj j n| j | j q`dj | } | jd} ||||||| | S(Nitt base64_codec(t get_uint8tget_nameRt get_stringtgettunescapet is_eol_or_eoft is_identifierR t exceptionR tappendtvaluetjointdecode(tclsRRttokRRRRRRtchunkstttb64R((s=/usr/lib64/python2.7/site-packages/dns/rdtypes/IN/IPSECKEY.pyt from_textNs$       cCstjd|j|j|j}|j||jdkr@n|jdkrw|jtjjtjj |j nk|jdkr|jtjjtjj |j n4|jdkr|j j |d|n td|j|jdS(Ns!BBBiiiisinvalid gateway type(tstructtpackRRRtwriteR R R RRRtto_wireR RR(RtfiletcompressRtheader((s=/usr/lib64/python2.7/site-packages/dns/rdtypes/IN/IPSECKEY.pyR4es  (( c Cs|dkrtjjntjd|||d!}|d}|d7}|d8}|dkrkd} n|dkrtjjtjj|||d!} |d7}|d8}n|dkrtjjtjj |||d!} |d7}|d8}nX|dkrCtj j ||| |\} } || 7}|| 8}ntjjd||||!j } ||||d||d| | S( Nis!BBBiiiiisinvalid IPSECKEY gateway type( R R&t FormErrorR1tunpackR R t inet_ntopRRtnamet from_wiretunwrap( R+RRtwiretcurrenttrdlenRR7RRtcusedR((s=/usr/lib64/python2.7/site-packages/dns/rdtypes/IN/IPSECKEY.pyR<us6               cCsltj}|j||j}|jd|j|j||j}|jt||S(Ni(t cStringIOtStringIOR4tgetvaluetseekttruncatetclosetcmp(Rtothertftwire1twire2((s=/usr/lib64/python2.7/site-packages/dns/rdtypes/IN/IPSECKEY.pyt_cmps        N( t__name__t __module__t__doc__t __slots__RR tTrueRR0t classmethodR4R<RM(((s=/usr/lib64/python2.7/site-packages/dns/rdtypes/IN/IPSECKEY.pyRs     ( RBR1t dns.exceptionR tdns.inettdns.nameRtRdataR(((s=/usr/lib64/python2.7/site-packages/dns/rdtypes/IN/IPSECKEY.pyts