+\hddlmZddlmZddlmZmZddlmZm Z ddl m Z ddl m Z Gdde ZGd d eZGd d eZGd deZGddeZGddeZy))Type) serialization)ed448ed25519)CryptographyPrivateKeyCryptographyPublicKey) Algorithm)DNSKEYcFeZdZdededdfdZdefdZededdfdZy) PublicEDDSA signaturedatareturnNc<|jj||y)N)keyverify)selfr rs W/root/niggaflix-v3/playground/venv/lib/python3.12/site-packages/dns/dnssecalgs/eddsa.pyrzPublicEDDSA.verify s  4(c|jjtjjtj jS)z,Encode a public key per RFC 8080, section 3.)encodingformat)r public_bytesrEncodingRaw PublicFormat)rs rencode_key_byteszPublicEDDSA.encode_key_bytess;xx$$"++// 8R8R8V8V%  rrc||j|||jj|jSN)r)!_ensure_algorithm_key_combinationkey_clsfrom_public_bytesr)clsrs r from_dnskeyzPublicEDDSA.from_dnskeys3 --c2 --cgg6  r) __name__ __module__ __qualname__bytesrr classmethodr r$rrr r sJ))U)t) %  f   rr c NeZdZUeeed< d dedededefdZe d dZ y) PrivateEDDSA public_clsrr deterministicrc|jj|}|r |jj|||S)z1Sign using a private key per RFC 8080, section 4.)rsign public_keyr)rrrr.r s rr0zPrivateEDDSA.sign s6HHMM$'  OO  $ $Y 5rcD||jjSr)r!generate)r#s rr3zPrivateEDDSA.generate,ss{{++-..rN)FT)rr,) r%r&r'rr __annotations__r(boolr0r)r3r*rrr,r,sT[!! "      //rr,c\eZdZUejed<ejZejZ y) PublicED25519rN) r%r&r'rEd25519PublicKeyr4r!r ED25519 algorithmr*rrr7r71s$  ! !!&&G!!Irr7cHeZdZUejed<ejZeZy)PrivateED25519rN) r%r&r'rEd25519PrivateKeyr4r!r7r-r*rrr<r<7s  " ""''GJrr<c\eZdZUejed<ejZejZ y) PublicED448rN) r%r&r'rEd448PublicKeyr4r!r ED448r:r*rrr?r?=s"   ""GIrr?cHeZdZUejed<ejZeZy) PrivateED448rN) r%r&r'rEd448PrivateKeyr4r!r?r-r*rrrCrCCs   ##GJrrCN)typingrcryptography.hazmat.primitivesr)cryptography.hazmat.primitives.asymmetricrrdns.dnssecalgs.cryptographyrrdns.dnssectypesr dns.rdtypes.ANY.DNSKEYr r r,r7r<r?rCr*rrrKsa8DU%) ' $/)/("K" \  + <r