+\h ddlmZmZddlmZmZmZddlZddl Zddl m Z ddl m Z ddlmZddlmZGdd eZGd d eZy) )ABCabstractmethod)AnyOptionalTypeN) Algorithm)AlgorithmKeyMismatch)DNSKEY)Flagc eZdZUeed<ededdfdZedededdfdZ edefd Z e de ddfd Z ejd fd ed ede fdZe ede ddfdZe ededdfdZedefdZy)GenericPublicKey algorithmkeyreturnNcyNselfrs V/root/niggaflix-v3/playground/venv/lib/python3.12/site-packages/dns/dnssecalgs/base.py__init__zGenericPublicKey.__init__ signaturedatacy)zVerify signed DNSSEC dataNr)rrrs rverifyzGenericPublicKey.verifyrcy)zEncode key as bytes for DNSKEYNrrs rencode_key_bytesz!GenericPublicKey.encode_key_bytesrrcB|j|jk7rtyr)rr clsrs r!_ensure_algorithm_key_combinationz2GenericPublicKey._ensure_algorithm_key_combinations ==CMM )& & *rflagsprotocolc ttjjtjj|||j |j S)zReturn public key as DNSKEY)rdclassrdtyper'r(rr)r dns rdataclassIN rdatatyperr!)rr'r(s r to_dnskeyzGenericPublicKey.to_dnskey sBNN%%==''nn%%'   rcy)zCreate public key from DNSKEYNrr#s r from_dnskeyzGenericPublicKey.from_dnskey+rr public_pemcy)zXCreate public key from PEM-encoded SubjectPublicKeyInfo as specified in RFC 5280Nr)r$r3s rfrom_pemzGenericPublicKey.from_pem0rrcy)zVReturn public-key as PEM-encoded SubjectPublicKeyInfo as specified in RFC 5280Nrr s rto_pemzGenericPublicKey.to_pem6rr)__name__ __module__ __qualname__r__annotations__rrrbytesrr! classmethodr r%r ZONEintr0r2r5r7rrrr r s$ C D  ((U(t((-%--'F't''&*YY  s  #  f  ,f,);,,%,>rr c eZdZUeeed<ededdfdZe dde de de de fd Z edd Z e e dd e d ee ddfd Zedd ee de fdZy)GenericPrivateKey public_clsrrNcyrrrs rrzGenericPrivateKey.__init__?rrrr deterministiccy)zSign DNSSEC dataNr)rrrrDs rsignzGenericPrivateKey.signCrrcy)zReturn public key instanceNrr s r public_keyzGenericPrivateKey.public_keyLrr private_pempasswordcy)z*Create private key from PEM-encoded PKCS#8Nr)r$rIrJs rr5zGenericPrivateKey.from_pemPrrcy)z(Return private key as PEM-encoded PKCS#8Nr)rrJs rr7zGenericPrivateKey.to_pemWrr)FT)rr r)r8r9r:rr r;rrrr<boolrFrHr=rr5r7rrrrArA<s%&& C D  "    ))=A99+3E?9 99 7x7%77rrA)abcrrtypingrrrdns.rdataclassr, dns.rdatatypedns.dnssectypesr dns.exceptionr dns.rdtypes.ANY.DNSKEYr dns.rdtypes.dnskeybaser r rArrrrVs9#&&%.)'-s-`77r