'Answer challenge.
:param challb: Challenge Resource body.
:type challb: `.ChallengeBody`
:param response: Corresponding Challenge response
:type response: `.challenges.ChallengeResponse`
:returns: Challenge Resource with updated body.
:rtype: `.ChallengeResource`
:raises .UnexpectedUpdate:'

def answer_challenge(self, challb, response):

    response = self.net.post(challb.uri, response)
    try:
        authzr_uri = response.links['up']['url']
    except KeyError:
        raise errors.ClientError('"up"    Link    header    missing')
    challr = messages.ChallengeResource(authzr_uri=authzr_uri, body=messages.ChallengeBody.from_json(response.json()))
    if (challr.uri != challb.uri):
        raise errors.UnexpectedUpdate(challr.uri)
    return challr
