+\h&lddlZddlZddlmZddlmZddlmZmZddl m Z m Z ddl m Z ddlmZGdd e ZGd d e ZGd d eZGddeZGddeZGddeZGddeZGddeZGddeZGddeZGddeZGddeZy) N)default_backend)hashes)paddingrsa)CryptographyPrivateKeyCryptographyPublicKey) Algorithm)DNSKEYceZdZUejed<ejZeed<ejed<de de ddfdZ de fd Z e deddfd Zy) PublicRSAkey algorithm chosen_hash signaturedatareturnNcx|jj||tj|jy)N)r verifyrPKCS1v15r)selfrrs U/root/niggaflix-v3/playground/venv/lib/python3.12/site-packages/dns/dnssecalgs/rsa.pyrzPublicRSA.verifys'  4)9)9);T=M=MNcX|jj}tjtj |j dz }tj|j |d}|dkDrdtjd|z}ntjd|}|jj dks|jj d kDr td ||z|jj|jj d zdzdzS) z,Encode a public key per RFC 3110, section 2.big)length byteorder!H!Biizunsupported RSA key length) r public_numbersmathceilint bit_lengtheto_bytesstructpackn ValueError)rpn_exp_lenexp exp_headers rencode_key_byteszPublicRSA.encode_key_bytess XX $ $ &99S^^BDD1A56ll244ElB c>T8!<9: :C"$$--1BQ1F10Le"TTTrc |j||j}tjd|dd\}|dd}|dk(r tjd|dd\}|dd}|d|}||d}|t j t j|dt j|djtS)Nr!rr rr ) !_ensure_algorithm_key_combinationr r*unpackrRSAPublicNumbersr& from_bytes public_keyr)clsr keyptrbytes_rsa_ersa_ns r from_dnskeyzPublicRSA.from_dnskey#s --c2MM$q 4  Q; dF1QK8IVABZFq vw$$ue,cnnUE.Jj*+  r)__name__ __module__ __qualname__r RSAPublicKey__annotations__key_clsr r HashAlgorithmbytesrr2 classmethodr rArrr r sy  G%%%OOUOtO U% U f   rr c eZdZUejed<ejZeZdZ d de de de de fdZ e deddfd Zy ) PrivateRSAr irr deterministicrc|jj|tj|jj }|r |j j|||S)z1Sign using a private key per RFC 3110, section 3.)r signrr public_clsrr;r)rrrrNrs rrPzPrivateRSA.sign;sMHHMM$(8(8(:DOOrs 81BU%)% %% P ' :9 J I Z Y (j("i" !z!"i" !z!r