ACMESharp.AcmeClient.GenerateAuthorizeChallengeAnswer C# (CSharp) Method

GenerateAuthorizeChallengeAnswer() private method

private GenerateAuthorizeChallengeAnswer ( AuthorizationState authzState, string type ) : AuthorizeChallenge
authzState AuthorizationState
type string
return AuthorizeChallenge
        public AuthorizeChallenge GenerateAuthorizeChallengeAnswer(AuthorizationState authzState, string type)
        {
            AssertInit();
            AssertRegistration();

            var c = authzState.Challenges.FirstOrDefault(x => x.Type == type);
            if (c == null)
                throw new ArgumentOutOfRangeException(nameof(type),
                        "no challenge found matching requested type");

            switch (type)
            {
                case AcmeProtocol.CHALLENGE_TYPE_DNS:
                    c.OldChallengeAnswer = c.GenerateDnsChallengeAnswer(authzState.Identifier, Signer);
                    c.ChallengeAnswerMessage = new AnswerDnsChallengeRequest
                    {
                        KeyAuthorization = c.OldChallengeAnswer.Value,
                    };
                    break;

                case AcmeProtocol.CHALLENGE_TYPE_HTTP:
                    c.OldChallengeAnswer = c.GenerateHttpChallengeAnswer(authzState.Identifier, Signer);
                    c.ChallengeAnswerMessage = new AnswerHttpChallengeRequest
                    {
                        KeyAuthorization = c.OldChallengeAnswer.Value,
                    };
                    break;

                case AcmeProtocol.CHALLENGE_TYPE_SNI:
                case AcmeProtocol.CHALLENGE_TYPE_PRIORKEY:
                    throw new ArgumentException("unimplemented or unsupported challenge type", nameof(type));

                default:
                    throw new ArgumentException("unknown challenge type", nameof(type));
            }

            return c;
        }