+\hRUddlmZmZmZmZmZddlZddlm Z ddl m Z ddl m Z ddlmZej j#dr)ddlmZmZdd lmZmZdd lmZmZdd lmZmZmZmZm Z d Z!nd Z!eee"ejFjHfZ%iZ&eee e%fee fe'd<e!re&jQe jRdfee jTdfee jVdfee jXdfee jZdfee j\dfee j^dfe e j`dfee jbdfee jddfee jfdfei  ddee4e5fde%dee fdZ6dedee fdZ7 ddee4e5fdee deeejFjHe5fdee"ddf dZ8y))DictOptionalTupleTypeUnionN)GenericPrivateKey) Algorithm)UnsupportedAlgorithm)DNSKEYdnssec) PrivateDSAPrivateDSANSEC3SHA1)PrivateECDSAP256SHA256PrivateECDSAP384SHA384) PrivateED448PrivateED25519) PrivateRSAMD5PrivateRSASHA1PrivateRSASHA1NSEC3SHA1PrivateRSASHA256PrivateRSASHA512TF algorithms algorithmprefixreturnctj|}tj||f}|r|St dtj |d)zGet Private Key class from Algorithm. *algorithm*, a ``str`` or ``int`` specifying the DNSKEY algorithm. Raises ``UnsupportedAlgorithm`` if the algorithm is unknown. Returns a ``dns.dnssecalgs.GenericPrivateKey`` z algorithm "z" not supported by dnspython)r makergetr to_text)rrclss Z/root/niggaflix-v3/playground/venv/lib/python3.12/site-packages/dns/dnssecalgs/__init__.pyget_algorithm_clsr"/sSy)I ..)V, -C   i'' 233OP dnskeycVd}|jtjk(r.tjj |j d\}}nG|jtjk(r*t|j d}|j d|dz}t|j|S)zGet Private Key class from DNSKEY. *dnskey*, a ``DNSKEY`` to get Algorithm class for. Raises ``UnsupportedAlgorithm`` if the algorithm is unknown. Returns a ``dns.dnssecalgs.GenericPrivateKey`` Nr) rr PRIVATEDNSdnsname from_wirekey PRIVATEOIDintr")r$r_lengths r!get_algorithm_cls_from_dnskeyr0Cs#F 9///HH&&vzz15    Y11 1VZZ]#A + V--v 66r# algorithm_clsr)oidct|ts tdtj|}d}|tj k(r?| t dt|trtjj|}|}nS|tjk(r&| t dtt|g|z}n|r t d|r t d|t||f<y)aRegister Algorithm Private Key class. *algorithm*, a ``str`` or ``int`` specifying the DNSKEY algorithm. *algorithm_cls*: A `GenericPrivateKey` class. *name*, an optional ``dns.name.Name`` or ``str``, for for PRIVATEDNS algorithms. *oid*: an optional BER-encoded `bytes` for PRIVATEOID algorithms. Raises ``ValueError`` if a name or oid is specified incorrectly. zInvalid algorithm classNz'Name required for PRIVATEDNS algorithmsz&OID required for PRIVATEOID algorithmsz,Name only supported for PRIVATEDNS algorithmz+OID only supported for PRIVATEOID algorithm) issubclassr TypeErrorr rr' ValueError isinstancestrr(r) from_textr,byteslenr)rr1r)r2rs r!register_algorithm_clsr<Us$ m%6 7122y)I"FI((( <FG G dC 88%%d+D i** * ;EF FCz"S( GHH FGG&3J 6"#r#)N)NN)9typingrrrrrdns.namer(dns.dnssecalgs.baserdns.dnssectypesr dns.exceptionr dns.rdtypes.ANY.DNSKEYr _featureshavedns.dnssecalgs.dsar rdns.dnssecalgs.ecdsarrdns.dnssecalgs.eddsarrdns.dnssecalgs.rsarrrrr_have_cryptographyr:r)NameAlgorithmPrefixr__annotations__updateRSAMD5DSARSASHA1 DSANSEC3SHA1RSASHA1NSEC3SHA1 RSASHA256 RSASHA512ECDSAP256SHA256ECDSAP384SHA384ED25519ED448r-r8r"r0r<r#r!rZs551%.)==hBSA5 !567OQ Dy/12D9J4KK LQ   t $m ]]D !:    %~  # #T *,?  ' ' .0G  $ ')9  $ ')9  & & -/E  & & -/E    %~ __d #\ $;?S#X(7 (7&7T:K5L7*15 $4S#X$4)*$4 5+, -$4 % $4  $4r#