Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
idna / lib / python2.7 / site-packages / eventlet / support / dns / dnssec.pyc
Size: Mime:
ó
 ‹EYc@s9dZddlmZddlZddlZddlZddlZddlZddl	Zddl
ZddlZddlZddl
ZddlmZdejjfd„ƒYZdejjfd	„ƒYZdZd
ZdZdZd
ZdZdZdZdZdZdZdZdZ dZ!ied6ed6ed6ed6ed6ed6ed6ed6ed6ed 6ed!6ed"6e d#6e!d$6Z"e#d%„e"j$ƒDƒƒZ%d&„Z&d'„Z'd(„Z(dd)„Z*dd*„Z+d+„Z,d,„Z-d-„Z.d.„Z/d/„Z0d0„Z1d1„Z2d2„Z3d3„Z4d4„Z5d5„Z6ddd6„Z7ddd7„Z8d8„Z9y:ddl:Z;ddl<Z;ddl=Z;e8Z>e7Z?e@ZAWn#eBk
rÊe9Z>e9Z?eCZAnXyPddlDZDddlEZDddlFZDddlGZDe@ZHd9eIfd:„ƒYZJWneBk
r4eCZHnXdS(;s.Common DNSSEC-related functions and constants.iÿÿÿÿ(tBytesIONi(tstring_typestUnsupportedAlgorithmcBseZdZRS(s&The DNSSEC algorithm is not supported.(t__name__t
__module__t__doc__(((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyR!stValidationFailurecBseZdZRS(s The DNSSEC signature is invalid.(RRR(((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyR&siiiiiiii
i
iiüiýiþtRSAMD5tDHtDSAtECCtRSASHA1tDSANSEC3SHA1tRSASHA1NSEC3SHA1t	RSASHA256t	RSASHA512tINDIRECTtECDSAP256SHA256tECDSAP384SHA384t
PRIVATEDNSt
PRIVATEOIDccs!|]\}}||fVqdS(N((t.0txty((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pys	<genexpr>NscCs4tj|jƒƒ}|dkr0t|ƒ}n|S(s:Convert text into a DNSSEC algorithm value
    @rtype: intN(t_algorithm_by_texttgettuppertNonetint(ttexttvalue((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pytalgorithm_from_textQscCs.tj|ƒ}|dkr*t|ƒ}n|S(s;Convert a DNSSEC algorithm value to text
    @rtype: stringN(t_algorithm_by_valueRRtstr(RR((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pytalgorithm_to_text[scCs&tƒ}|j|d|ƒ|jƒS(Ntorigin(Rtto_wiretgetvalue(trecordR#ts((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyt	_to_rdataes	cCsÞt||ƒ}t|ƒ}|jtkr>|dd>|dSd}xDtt|ƒdƒD],}||d|d>|d|d7}q[Wt|ƒddkrÀ||t|ƒdd>7}n||d?d@7}|d@SdS(	Niýÿÿÿiiþÿÿÿiiiiiÿÿ(R(t	bytearrayt	algorithmRtrangetlen(tkeyR#trdatattotalti((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pytkey_idkscCs!|jƒdkr.d}tjjdƒ}n>|jƒdkr\d}tjjdƒ}ntd|ƒ‚t|tƒr“tjj||ƒ}n|j	|j
ƒjƒƒ|j	t||ƒƒ|j
ƒ}tjdt|ƒ|j|ƒ|}tjjtjjtjj|dt|ƒƒS(NtSHA1itSHA256isunsupported algorithm "%s"s!HBBi(RtdnsthashthashesRt
isinstanceRtnamet	from_texttupdatetcanonicalizeR$R(tdigesttstructtpackR1R*R.t	from_wiret
rdataclasstINt	rdatatypetDSR,(R8R-R*R#tdsalgR5R<tdsrdata((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pytmake_ds{s%!cCsÉg}|j|jƒ}|dkr(dSt|tjjƒrwy"|jtjj	tj
jƒ}Wq}tk
rsdSXn|}xE|D]=}|j
|j
kr„t|ƒ|jkr„|j|ƒq„q„W|S(N(RtsignerRR7R4tnodetNodet
find_rdatasetR@RARBtDNSKEYtKeyErrorR*R1tkey_tagtappend(tkeystrrsigtcandidate_keysRtrdatasetR.((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyt_find_candidate_keyss 

cCs|tttttfkS(N(RRR
RR(R*((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyt_is_rsa¤s	cCs|ttfkS(N(R	R(R*((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyt_is_dsaªscCsto|ttfkS(N(t_have_ecdsaRR(R*((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyt	_is_ecdsa®scCs
|tkS(N(R(R*((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyt_is_md5²scCs|ttttfkS(N(R	RRR
(R*((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyt_is_sha1¶s	cCs|ttfkS(N(RR(R*((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyt
_is_sha256»scCs
|tkS(N(R(R*((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyt
_is_sha384¿scCs
|tkS(N(R(R*((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyt
_is_sha512ÃscCs¥t|ƒrtjjdƒSt|ƒr:tjjdƒSt|ƒrWtjjdƒSt|ƒrttjjdƒSt|ƒr‘tjjdƒStd|ƒ‚dS(NtMD5R2R3tSHA384tSHA512sunknown hash for algorithm %u(	RXR4R5R6RYRZR[R\R(R*((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyt
_make_hashÇsc	Cs>t|ƒr-ddddddddg}n”t|ƒrQdd	d
ddg}npt|ƒrdddd
dd
ddd
g	}n@t|ƒr±dddd
dd
ddd
g	}ntd|ƒ‚t|ƒ}t|ƒj}dgd||gd|dgd|g|ddgd|g}tj	dt|ƒ|ŒS(Ni*i†iHi÷i
iii+iiii`iieisunknown algorithm %ui0iiis!%dB(
RXRYRZR\RR,R`tdigest_sizeR=R>(R*toidtolentdlentidbytes((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyt_make_algorithm_idÕs!$$Hc)Cs¦t|tƒr-tjj|tjjƒ}nxft||ƒD]U}|sXtdƒ‚nt|tƒr~|d}|d}n|j}|}|dkr¨t
j
ƒ}n|j|krÆtdƒ‚n|j|krätdƒ‚nt
|jƒ}t|jƒrä|j}	tjd|	dd!ƒ\}
|	d}	|
dkrftjd|	dd!ƒ\}
|	d}	n|	d|
!}|	|
}t|ƒd	}
tjjjtjjj|ƒtjjj|ƒfƒ}tjjj|jƒf}n»t|jƒr+|j}	tjd|	dd!ƒ\}|	d}	d
|d	}|	dd!}|	d}	|	d|!}|	|}	|	d|!}|	|}	|	d|!}tjjjtjjj|ƒtjjj|ƒtjjj|ƒtjjj|ƒfƒ}tjd|jdƒ\}}tjjj|ƒtjjj|ƒf}ntt|jƒrŒ|jtkr^t j!j"}d
}n0|jt#kr‚t j!j$}d}ntdƒ‚|j}	tjjj|	d|!ƒ}tjjj|	||d!ƒ}t j j%|j&||ƒsôt'‚t j(j)|j*|||j+ƒ}t j,j-j.||ƒ}t/||ƒ}|j| }|j|}t j j0tjjj|ƒtjjj|ƒƒ}ntd|jƒ‚|j1t2||ƒd ƒ|j1|j3j4|ƒƒ|j5t|ƒdkr|j6|j5dƒd} tjjd| ƒ}n|j4|ƒ}!tj7d|j8|j9|j:ƒ}"t;|ƒ}#xi|#D]a}$|j1|!ƒ|j1|"ƒ|$j4|ƒ}%tj7dt|%ƒƒ}&|j1|&ƒ|j1|%ƒq`W|j<ƒ}'t|jƒrHt=|jƒ|'}'|
d	t|'ƒd}(tj7dd|(dddgdg|(dgŒ|'}'n4t|jƒs|t|jƒrintd|jƒ‚|j>|'|ƒr=dSq=Wtdƒ‚dS(s®Validate an RRset against a single signature rdata

    The owner name of the rrsig is assumed to be the same as the owner name
    of the rrset.

    @param rrset: The RRset to validate
    @type rrset: dns.rrset.RRset or (dns.name.Name, dns.rdataset.Rdataset)
    tuple
    @param rrsig: The signature rdata
    @type rrsig: dns.rrset.Rdata
    @param keys: The key dictionary.
    @type keys: a dictionary keyed by dns.name.Name with node or rdataset
    values
    @param origin: The origin to use for relative names
    @type origin: dns.name.Name or None
    @param now: The time to use when validating the signatures.  The default
    is the current time.
    @type now: int
    sunknown keyiitexpireds
not yet valids!Bs!Hiii@is!20s20si i0sunknown ECDSA curvesunknown algorithm %uit*s!HHIis!%dBiÿNsverify failure(?R7RR4R8R9trootRSRttupleRttimet
expirationt	inceptionR`R*RTR-R=tunpackR,tCryptot	PublicKeytRSAt	constructtUtiltnumbert
bytes_to_longt	signatureRUR	RWRtecdsatcurvestNIST256pRtNIST384ptpoint_is_validt	generatortAssertionErrort
ellipticcurvetPointtcurvetorderROtVerifyingKeytfrom_public_pointtECKeyWrappert	SignatureR:R(RGt
to_digestabletlabelstsplitR>trdtypetrdclasstoriginal_ttltsortedR<Rftverify()trrsetRPROR#tnowt
candidate_keytrrnameRRR5tkeyptrtbytes_trsa_etrsa_ntkeylentpubkeytsigtttoctetstdsa_qtdsa_ptdsa_gtdsa_ytdsa_rtdsa_sR€tkey_lenRRtpointt
verifying_keytrR'tsuffixt	rrnamebuftrrfixedtrrlisttrrtrrdatatrrlenR<tpadlen((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyt_validate_rrsigèsÈ

		



	







			 !!	





(c	Cst|tƒr-tjj|tjjƒ}nt|tƒrI|d}n	|j}t|tƒrx|d}|d}n|j}|}|j|ƒ}|j|ƒ}||krÀtdƒ‚nx@|D]8}yt	|||||ƒdSWqÇtk
rþqÇXqÇWtdƒ‚dS(shValidate an RRset

    @param rrset: The RRset to validate
    @type rrset: dns.rrset.RRset or (dns.name.Name, dns.rdataset.Rdataset)
    tuple
    @param rrsigset: The signature RRset
    @type rrsigset: dns.rrset.RRset or (dns.name.Name, dns.rdataset.Rdataset)
    tuple
    @param keys: The key dictionary.
    @type keys: a dictionary keyed by dns.name.Name with node or rdataset
    values
    @param origin: The origin to use for relative names
    @type origin: dns.name.Name or None
    @param now: The time to use when validating the signatures.  The default
    is the current time.
    @type now: int
    iisowner names do not matchNsno RRSIGs validated(
R7RR4R8R9RiRjtchoose_relativityRR­(	RŽtrrsigsetROR#RR‘t	rrsignamet
rrsigrdatasetRP((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyt	_validatexs*
	

	

cOstdƒ‚dS(Ns#DNSSEC validation requires pycrypto(tNotImplementedError(targstkwargs((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyt_need_pycrypto¨sR„cBseZd„Zd„ZRS(cCs||_||_dS(N(R-R¡(tselfR-R¡((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyt__init__Às	cCs+tjjj|ƒ}|jjj||ƒS(N(RoRsRtRuR-R—tverifies(R·R<R˜tdiglong((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyRÄs(RRR¸R(((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyR„¾s	(KRtioRR=Rkt
dns.exceptionR4tdns.hashtdns.nametdns.nodetdns.rdatasett	dns.rdatat
dns.rdatatypetdns.rdataclasst_compatRt	exceptiontDNSExceptionRRRRR	R
RRR
RRRRRRRRtdicttitemsR RR"R(RR1RFRSRTRURWRXRYRZR[R\R`RfR­R²R¶tCrypto.PublicKey.RSARotCrypto.PublicKey.DSAtCrypto.Util.numbertvalidatetvalidate_rrsigtTruet_have_pycryptotImportErrortFalseRwtecdsa.ecdsatecdsa.ellipticcurvet
ecdsa.keysRVtobjectR„(((sP/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/support/dns/dnssec.pyt<module>s¦
	
	
												0