letsencrypt.achallenges

Client annotated ACME challenges.

Please use names such as achall to distiguish from variables “of type” acme.challenges.Challenge (denoted by chall) and ChallengeBody (denoted by challb):

from acme import challenges
from acme import messages
from letsencrypt 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
class letsencrypt.achallenges.AnnotatedChallenge(**kwargs)[source]

Bases: acme.jose.util.ImmutableMap

Client annotated challenge.

Wraps around server provided challenge and annotates with data useful for the client.

Variables:challb – Wrapped ChallengeBody.
class letsencrypt.achallenges.KeyAuthorizationAnnotatedChallenge(**kwargs)[source]

Bases: letsencrypt.achallenges.AnnotatedChallenge

Client annotated KeyAuthorizationChallenge challenge.

response_and_validation(*args, **kwargs)[source]

Generate response and validation.

class letsencrypt.achallenges.DNS(**kwargs)[source]

Bases: letsencrypt.achallenges.AnnotatedChallenge

Client annotated “dns” ACME challenge.

acme_type

alias of DNS

class letsencrypt.achallenges.RecoveryContact(**kwargs)[source]

Bases: letsencrypt.achallenges.AnnotatedChallenge

Client annotated “recoveryContact” ACME challenge.

acme_type

alias of RecoveryContact

class letsencrypt.achallenges.ProofOfPossession(**kwargs)[source]

Bases: letsencrypt.achallenges.AnnotatedChallenge

Client annotated “proofOfPossession” ACME challenge.

acme_type

alias of ProofOfPossession