public AuthorizeChallenge SubmitAuthorizeChallengeAnswer(AuthorizationState authzState,
string challengeType, bool useRootUrl = false)
{
AssertInit();
AssertRegistration();
var authzChallenge = authzState.Challenges.FirstOrDefault(x => x.Type == challengeType);
if (authzChallenge == null)
throw new ArgumentException("no challenge found matching requested type");
if (authzChallenge.OldChallengeAnswer.Key == null
|| authzChallenge.OldChallengeAnswer.Value == null
|| authzChallenge.ChallengeAnswerMessage == null)
throw new InvalidOperationException("challenge answer has not been generated");
var requUri = new Uri(authzChallenge.Uri);
if (useRootUrl)
requUri = new Uri(RootUrl, requUri.PathAndQuery);
var resp = RequestHttpPost(requUri, authzChallenge.ChallengeAnswerMessage);
if (resp.IsError)
{
throw new AcmeWebException(resp.Error as WebException,
"Unexpected error", resp);
}
authzChallenge.HandlerHandleDate = DateTime.Now;
return authzChallenge;
}