The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Mail::BIMI::VMC - Class to model a VMC

VERSION

version 3.20240402

DESCRIPTION

Class for representing, retrieving, validating, and processing a VMC Set

INPUTS

These values are used as inputs for lookups and verifications, they are typically set by the caller based on values found in the message being processed

check_domain

is=ro required

Domain to check the alt_name against

check_selector

is=ro required

Selector to check the alt_name against

data

is=rw

Raw data of the VMC contents; Fetched from authority URI if not given

uri

is=rw

URI of this VMC

ATTRIBUTES

These values are derived from lookups and verifications made based upon the input values, it is however possible to override these with other values should you wish to, for example, validate a record before it is published in DNS, or validate an Indicator which is only available locally

cache_backend

is=ro

cert_list

is=rw

ArrayRef of individual Certificates in the chain

chain_object

is=rw

Mail::BIMI::VMC::Chain object for this Chain

errors

is=rw

http_client

is=rw

HTTP::Tiny::Paranoid (or similar) object used for HTTP operations

indicator

is=rw

Mail::BIMI::Indicator object for the Indicator embedded in this VMC Set

indicator_uri

is=rw

The URI of the embedded Indicator

is_cert_valid

is=rw

Is this Certificate Set valid

is_valid

is=rw

Is this VMC valid

vmc_object

is=rw

Mail::BIMI::VMC::Cert object for this VMC Set

warnings

is=rw

CONSUMES

EXTENDS

METHODS

cache_valid_for()

How long should the cache for this class be valid

http_client_max_fetch_size()

Maximum permitted HTTP fetch

subject()

Return the subject of the VMC

mark_type()

Return the subject:markType if available

not_before()

Return not before of the vmc

not_after()

Return not after of the vmc

issuer()

Return the issuer string of the VMC

is_expired()

Return true if this VMC has expired

alt_name()

Return the alt name string for the VMC

is_valid_alt_name()

Return true if the VMC has a valid alt name for the domain of the current operation

is_self_signed()

Return true if this VMC is self signed

has_valid_usage()

Return true if this VMC has a valid usage extension for BIMI

is_experimental()

Return true if this (V)MC is experimental

is_allowed_mark_type()

finish()

Finish and clean up, write cache if enabled.

app_validate()

Output human readable validation status of this object

REQUIRES

AUTHOR

Marc Bradshaw <marc@marcbradshaw.net>

COPYRIGHT AND LICENSE

This software is copyright (c) 2020 by Marc Bradshaw.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.