+\hd ddlmZddlmZddlmZmZddlmZm Z ddl m Z ddl m Z Gdde ZGd d eZGd d eZGd deZGddeZGddeZy))default_backend)hashes)ecutils)CryptographyPrivateKeyCryptographyPublicKey) Algorithm)DNSKEYceZdZUejed<ejZeed<ejed<ejed<e ed<de de dd fd Z de fd Zededdfd Zy ) PublicECDSAkey algorithm chosen_hashcurveoctets signaturedatareturnNc0|d|j}||jd}tjtj |dtj |d}|j j ||tj|jy)Nrbig) rrencode_dss_signatureint from_bytesr verifyrECDSAr)selfrrsig_rsig_ssigs W/root/niggaflix-v3/playground/venv/lib/python3.12/site-packages/dns/dnssecalgs/ecdsa.pyrzPublicECDSA.verifysr!dkk*$++-((( NN5% (#..*F  T288D,<,<#=>c|jj}|jj|jd|j j|jdzS)z,Encode a public key per RFC 6605, section 4.r)r public_numbersxto_bytesry)rpns r encode_key_byteszPublicECDSA.encode_key_bytessE XX $ $ &tt}}T[[%0244==e3TTTr!c r|j||jd|j}|j|j|jdz}|tj|j t j|dt j|djtS)Nrr)rr$r&r ) !_ensure_algorithm_key_combinationr rrEllipticCurvePublicNumbersrrr public_keyr)clsr ecdsa_xecdsa_ys r from_dnskeyzPublicECDSA.from_dnskeys --c2''!cjj)''#**szzA~6--ii..%0..%0j*+   r!)__name__ __module__ __qualname__rEllipticCurvePublicKey__annotations__key_clsr r HashAlgorithm EllipticCurverbytesrr( classmethodr r2r!r r r s " ""''G%%%   K??U?t?U%U   f      r!r c xeZdZUejed<ejZeZ d de de de de fdZ e d dZ y) PrivateECDSAr rr deterministicrctj|jj|}|jj ||}t j|\}}tj||jjdtj||jjdz}|r |jj|||S)z1Sign using a private key per RFC 6605, section 4.)deterministic_signingr)length byteorder) rr public_clsrr signrdecode_dss_signaturerr%rr.r) rrrr@r der_signaturedsa_rdsa_srs r rFzPrivateECDSA.sign2sHH OO ' '}  dI6 11-@ uLL $//00E! LLt'='=L OP   OO  $ $Y 5r!cv|tj|jjt S)N)rbackendr+)rgenerate_private_keyrErr)r/s r generatezPrivateECDSA.generateEs/''nn**O4E  r!N)FT)rr?)r3r4r5rEllipticCurvePrivateKeyr7r8r rEr;boolrFr<rNr=r!r r?r?-se # ##((GJ "    &  r!r?cleZdZejZejZe jZ dZ y)PublicECDSAP256SHA256 N) r3r4r5r ECDSAP256SHA256rrSHA256rr SECP256R1rrr=r!r rRrRN,))I&--/K BLLNE Fr!rRceZdZeZy)PrivateECDSAP256SHA256N)r3r4r5rRrEr=r!r rYrYU&Jr!rYcleZdZejZejZe jZ dZ y)PublicECDSAP384SHA3840N) r3r4r5r ECDSAP384SHA384rrSHA384rr SECP384R1rrr=r!r r\r\YrWr!r\ceZdZeZy)PrivateECDSAP384SHA384N)r3r4r5r\rEr=r!r rbrb`rZr!rbN)cryptography.hazmat.backendsrcryptography.hazmat.primitivesr)cryptography.hazmat.primitives.asymmetricrrdns.dnssecalgs.cryptographyrrdns.dnssectypesr dns.rdtypes.ANY.DNSKEYr r r?rRrYr\rbr=r!r risc81?U%)  '  F ) BK'\'K'\'r!