NAME

Net::ACME::Authorization::Pending - pending ACME authorization

SYNOPSIS

use Net::ACME::Authorization::Pending ();

my $authz_p = Net::ACME::Authorization::Pending->new(
    uri => 'http://url/to/poll/for/authz',
    challenges => \@challenge_objects,
    combinations => [
        [ 2 ],
        [ 1 ],
        [ 0 ],
    ],
);

for my $cmb ( $authz_p->combinations() ) {

    #An example of only doing “http-01”:
    next if @$cmb > 1;
    next if $cmb->[0]->type() ne 'http-01';

    #Prepare for the challenge …

    #Assume we instantiated Net::ACME above …
    $acme->do_challenge($cmb->[0]);

    while (1) {
        if ($authz_p->is_time_to_poll()) {
            my $poll = $authz_p->poll();

            last if $poll->status() eq 'valid';

            if ($poll->status() eq 'invalid') {
                my $completed_challenge = ($poll->challenges())[0];
                print $completed_challenge->error()->detail() . $/;
                die "Failed authorization!$/";
            }

        }

        sleep 1;
    }

    last;
}