Ë M/ÅeèãóØ—dZddlZddlmZddlmZddlZddlmZddl m Z eje «Z Gd„dej«ZGd „d e«ZGd „d e«ZGd „de«Zy)a0Client annotated ACME challenges. Please use names such as ``achall`` to distinguish from variables "of type" :class:`acme.challenges.Challenge` (denoted by ``chall``) and :class:`.ChallengeBody` (denoted by ``challb``):: from acme import challenges from acme import messages from certbot import achallenges chall = challenges.DNS(token='foo') challb = messages.ChallengeBody(chall=chall) achall = achallenges.DNS(chall=challb, domain='example.com') Note, that all annotated challenges act as a proxy objects:: achall.token == challb.token éN)ÚAny)ÚType)Ú challenges)Ú Challengecó:—eZdZUdZdZeZeee d<de de fd„Z y)ÚAnnotatedChallengez°Client annotated challenge. Wraps around server provided challenge and annotates with data useful for the client. :ivar ~.challb: Wrapped `~.ChallengeBody`. )ÚchallbÚ _acme_typeÚnameÚreturncó.—t|j|«S)N)Úgetattrr )Úselfr s ú5/usr/lib/python3/dist-packages/certbot/achallenges.pyÚ __getattr__zAnnotatedChallenge.__getattr__,s€Üt—{‘{ DÓ)Ð)óN) Ú__name__Ú __module__Ú __qualname__Ú__doc__Ú __slots__ÚNotImplementedr rrÚ__annotations__Ústrrr©rrrr s/…ñð€IØ"0€JY‘Ó0ð* ð*¨ô*rrcó(—eZdZdZdZdededefd„Zy)Ú"KeyAuthorizationAnnotatedChallengez7Client annotated `KeyAuthorizationChallenge` challenge.)r ÚdomainÚ account_keyÚargsÚkwargsr cój—|jjj|jg|¢­i|¤ŽS)z!Generate response and validation.)r ÚchallÚresponse_and_validationr)rr r!s rr$z:KeyAuthorizationAnnotatedChallenge.response_and_validation4s:€à8ˆt{‰{× Ñ ×8Ñ8Ø × Ñ ð/Ø#ò/Ø'-ñ/ð /rN)rrrrrrr$rrrrr0s$„ÙAØ3€Ið/¨Sð/¸Cð/ÀCô/rrcó,—eZdZdZdZej Zy)ÚDNSz&Client annotated "dns" ACME challenge.©r rN)rrrrrrr&Ú acme_typerrrr&r&:s„Ù0Ø$€IØ—‘Irr&có,—eZdZdZdZej Zy)ÚOtherz3Client annotated ACME challenge of an unknown type.r'N)rrrrrrrr(rrrr*r*@s„Ù=Ø$€IØ×$Ñ$Irr*)rÚloggingÚtypingrrÚjosepyÚjoseÚacmerÚacme.challengesrÚ getLoggerrÚloggerÚ ImmutableMaprrr&r*rrrúr4siðñó&ÝÝãåÝ%à ˆ× Ñ ˜8Ó $€ô *˜×*Ñ*ô *ô /Ð);ô/ôÐ ôô %Ð õ%r