twisted/txacme

Responders passed ChallengeBody objects rather than Challenge objects as interface suggests

JayH5 opened this issue · 0 comments

JayH5 commented

The IResponder interface documentation says that for the start_responding() and stop_responding() methods, the challenge parameter should be "The acme.challenges challenge object".

The object passed to those methods in txacme.client.answer_challenges is currently actually the acme.messages.ChallengeBody challenge body.

This hasn't been a problem thus far because (@mithrandi on IRC)...

ChallengeBody has this:
def __getattr__(self, name):
return getattr(self.chall, name)
so mostly you can use the body interchangeably with the actual challenge, but not when calling .encode()

This does, however, cause a problem with the HTTP01Responder as it calls .encode('token') on the challenge it is passed.