a }|ägèã@s”dZddlZddlmZddlmZddlZddlmZddl m Z e  e ¡Z Gdd„dejƒZGd d „d eƒZGd d „d eƒZGd d„deƒZdS)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@s6eZdZUdZdZeZeee d<e e dœdd„Z dS)Ú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ÚreturncCs t|j|ƒS)N)Úgetattrr)Úselfr ©r ú7/usr/lib/python3.9/site-packages/certbot/achallenges.pyÚ __getattr__,szAnnotatedChallenge.__getattr__N) Ú__name__Ú __module__Ú __qualname__Ú__doc__Ú __slots__ÚNotImplementedrrrÚ__annotations__Ústrrrr r r rr s rc@s&eZdZdZdZeeedœdd„ZdS)Ú"KeyAuthorizationAnnotatedChallengez7Client annotated `KeyAuthorizationChallenge` challenge.)rÚdomainÚ account_key)ÚargsÚkwargsr cOs|jjj|jg|¢Ri|¤ŽS)z!Generate response and validation.)rZchallÚresponse_and_validationr)r rrr r rr4sÿÿÿz:KeyAuthorizationAnnotatedChallenge.response_and_validationN)rrrrrrrr r r rr0src@seZdZdZdZejZdS)ÚDNSz&Client annotated "dns" ACME challenge.©rrN)rrrrrrrÚ acme_typer r r rr:src@seZdZdZdZejZdS)ÚOtherz3Client annotated ACME challenge of an unknown type.rN)rrrrrrrr r r r rr!@sr!)rZloggingÚtypingrrZjosepyZjoseZacmerZacme.challengesrZ getLoggerrÚloggerZ ImmutableMaprrrr!r r r rÚs