NAME

WWW::LetsEncrypt::Message - Base class for all ACME messages.

SYNPOSIS

package Some::Acme::Message;

use Moose;
extends 'WWW::LetsEncrypt::Message';

# implement functions required functions
...

DESCRIPTION

This is an abstract class that provides the basis for ACME messages being sent to the Let's Encrypt CA server.

Attributes

_acme_base_url

private attribute that holds the ACME API URL. Defaults to the Let's Encrypt API URL, cannot be changed once the object has been created.

JWK

JSON Web Key object that implements both JWK and JWA (will be passed to a JWS object). This is required.

nonce

scalar attribute that holds the nonce. It will be used when sending messages, and will be automatically refreshed upon receiving a message from the Let's Encrypt CA server. This attribute is not required but messages w/o a valid nonce may fail!

retry_time

scalar integer attribute that holds how much time the client should wait before trying to send another API request. This value being true usually means an HTTP 429 was encountered and that the client should back off.

WebAgent

object attribute that holds an instance of LWP::UserAgent (or anything that happens to implement the same functions). If not provided during initialization, a new LWP::UserAgent object will be created with the following settings:

protocols allows: https
agent: LE-Bot (libwww-perl)
ssl_option: verify_hostname => true

Functions

$Obj->do_request()

This method is the primary method that a client should use to perform message calls out to an ACME server. It performs some error handling, but passes all major processing off to a derived class's _process_request function.

Output

\%hash_ref = {
	successful => boolean value that expresses if a step performed successfully,
	finished   => boolean value that expresses if all steps have been performed,
	error      => boolean value that expresses a FATAL error has occurred,
	...
	(other values depending on step)
}