Ë +\§hì ãó´—ddlZddlmZddlmZddlmZmZddlm Z m Z ddl m Z ddl mZGd„d e «ZGd „d e «ZGd „d e«ZGd„de«Zy)éN)Údefault_backend)Úhashes)ÚdsaÚutils)ÚCryptographyPrivateKeyÚCryptographyPublicKey)Ú Algorithm)ÚDNSKEYcó¸—eZdZUejed<ejZejZ e j«Z de de ddfd„Zde fd„Zededdfd„«Zy) Ú PublicDSAÚkeyÚ signatureÚdataÚreturnNcóâ—|dd}|dd}tjtj|d«tj|d««}|jj |||j «y)NééÚbig)rÚencode_dss_signatureÚintÚ from_bytesr ÚverifyÚ chosen_hash)ÚselfrrÚsig_rÚsig_sÚsigs úU/root/niggaflix-v3/playground/venv/lib/python3.12/site-packages/dns/dnssecalgs/dsa.pyrzPublicDSA.verifys_€Ø˜!˜BˆØ˜"˜#ˆÜ×(Ñ(Ü N‰N˜5 %Ó (¬#¯.©.¸ÀÓ*Fó ˆð ‰‰˜˜T 4×#3Ñ#3Õ4ócó—|jj«}|jjdzdz dz}|dkDr td«‚d|dzz}t j d|«}||j jjdd«z }||j jj|d«z }||j jj|d«z }||jj|d«z }|S)z,Encode a public key per RFC 2536, section 2.éé@zunsupported DSA key sizeú!Bér) r Úpublic_numbersÚkey_sizeÚ ValueErrorÚstructÚpackÚparameter_numbersÚqÚto_bytesÚpÚgÚy)rÚpnÚdsa_tÚoctetsÚress rÚencode_key_byteszPublicDSA.encode_key_bytessé€à X‰X× $Ñ $Ó &ˆØ—‘×"Ñ" aÑ'¨"Ñ,°Ñ2ˆØ 1Š9ÜÐ7Ó8Ð 8Øe˜a‘i‘ˆÜk‰k˜$ Ó&ˆØ ˆr×#Ñ#×%Ñ%×.Ñ.¨r°5Ó9Ñ9ˆØ ˆr×#Ñ#×%Ñ%×.Ñ.¨v°uÓ=Ñ=ˆØ ˆr×#Ñ#×%Ñ%×.Ñ.¨v°uÓ=Ñ=ˆØ ˆrt‰t}‰}˜V UÓ+Ñ+ˆØˆ rc ó—|j|«|j}tjd|dd«\}|dd}d|dzz}|dd}|dd}|d|}||d}|d|}||d}|d|}|t j t j|d«t jt j|d«t j|d«t j|d«««jt««¬«S) Nr#rrr"r!r$r©r ) Ú!_ensure_algorithm_key_combinationr r(ÚunpackrÚDSAPublicNumbersrrÚDSAParameterNumbersÚ public_keyr) Úclsr ÚkeyptrÚtr2Údsa_qÚdsa_pÚdsa_gÚdsa_ys rÚ from_dnskeyzPublicDSA.from_dnskey(s €à ×-Ñ-¨cÔ2Ø—‘ˆÜ}‰}˜T 6¨!¨A ;Ó/‰ˆØ˜˜ˆØa˜!‘e‘ˆØq˜ ˆØ˜˜ˆØq˜Ð ˆØ˜˜ˆØq˜Ð ˆØ˜˜ˆØq˜Ð ˆÙÜ×$Ñ$Ü—‘˜u eÓ,Ü×'Ñ'Ü—N‘N 5¨%Ó0Ü—N‘N 5¨%Ó0Ü—N‘N 5¨%Ó0óó÷‰jœÓ*Ó+ô  ð r)Ú__name__Ú __module__Ú __qualname__rÚ DSAPublicKeyÚ__annotations__Úkey_clsr ÚDSAÚ algorithmrÚSHA1rÚbytesrr4Ú classmethodr rC©rrr r sw…Ø × Ñ ÓØ×Ñ€GØ— ‘ €IØ&—+‘+“-€Kð5 ð5¨Uð5°tó5ð  %ó ðð ˜fð ¨ò óñ rr c ó€—eZdZUejed<ejZeZ d de de de de fd„Z e de ddfd„«Zy ) Ú PrivateDSAr rrÚ deterministicrcó—|jj«}|jdkDr td«‚|jj ||j j «}tj|«\}}|jdzdz dz}d} tjd|«tj|| d¬«ztj|| d¬«z} |r |j«j| |«| S) z1Sign using a private key per RFC 2536, section 3.izDSA key size overflowr!r"r$r#r)ÚlengthÚ byteorder)r r;r&r'ÚsignÚ public_clsrrÚdecode_dss_signaturer(r)rr,r) rrrrRÚpublic_dsa_keyÚ der_signatureÚdsa_rÚdsa_sr1r2rs rrVzPrivateDSA.signGsæ€ðŸ™×,Ñ,Ó.ˆØ × "Ñ " TÒ )ÜÐ4Ó5Ð 5ØŸ™Ÿ ™  d¨D¯O©O×,GÑ,GÓHˆ Ü×1Ñ1°-Ó@‰ ˆˆuØ×(Ñ(¨AÑ-°Ñ2°qÑ8ˆØˆä K‰K˜˜eÓ $Ül‰l˜5¨¸5ˆlÓAñ Bäl‰l˜5¨¸5ˆlÓAñ Bð ñ Ø O‰OÓ × $Ñ $ Y°Ô 5ØÐrr&có<—|tj|¬«¬«S)N)r&r6)rÚgenerate_private_key)r<r&s rÚgeneratezPrivateDSA.generate^s€áÜ×(Ñ(°(Ô;ô ð rN)FT)rDrErFrÚ DSAPrivateKeyrHrIr rWrMÚboolrVrNrr_rOrrrQrQBss…Ø × Ñ ÓØ×Ñ€GØ€Jð Ø"ñ àððððð ð ó ð.ð  ð ¨ ò óñ rrQcó$—eZdZejZy)ÚPublicDSANSEC3SHA1N)rDrErFr Ú DSANSEC3SHA1rKrOrrrcrces „Ø×&Ñ&Irrccó—eZdZeZy)ÚPrivateDSANSEC3SHA1N)rDrErFrcrWrOrrrfrfis„Ø#Jrrf)r(Úcryptography.hazmat.backendsrÚcryptography.hazmat.primitivesrÚ)cryptography.hazmat.primitives.asymmetricrrÚdns.dnssecalgs.cryptographyrrÚdns.dnssectypesr Údns.rdtypes.ANY.DNSKEYr r rQrcrfrOrrúrmsNðÛ å8Ý1ß@çUÝ%Ý)ô3 Ð%ô3 ôl  Ð'ô  ôF'˜ô'ô$˜*õ$r