NAME
Data::Validate::DNS::CAA - Validate DNS Certification Authority Authorization (CAA) values
VERSION
version 0.04
SYNOPSIS
use Data::Validate::DNS::CAA qw(is_issue is_issuewild is_iodef);
if (is_caa_tag('issue')) {
print "Looks like a CAA tag value\n";
}
else {
print "Not a CAA tag value\n";
}
if (is_caa_value(issue => 'ca.example.com; policy=ev')) {
print "Looks like a CAA issue value\n";
}
else {
print "Not a CAA issue value\n";
}
if (is_caa_value(iodef => 'mailto:security@example.com')) {
print "Looks like a CAA iodef value\n";
}
else {
print "Not a CAA iodef value\n";
}
# or use Object interface.
my $v = Data::Validate::CAA::DNS->new;
die "not a CAA tag value" unless $v->is_caa_tag($suspect);
DESCRIPTION
This module offers a few subroutines for validating DNS Certification Authority Authorization (CAA) record fields to make input validation and untainting easier and more readable.
All of the functions return an untainted value on success and a false value (undef or empty list) on failure. In scalar context you should check that the return value is defined.
All functions can be called as methods if using the object oriented interface.
METHODS
new()
Constructor
FUNCTIONS
is_caa_tag($value, %opts)
Returns the untainted tag if the value appears to be a valid CAA tag name as defined in RFC 6844.
%opts
, if present can contain the following:
strict
Default: 1
In this mode, the tag must match exactly one of the registered tag names in RFC 6844, or the IANA registry for CAA tag names. Note that reserved tags are not allowed. Turning this off will merely do a syntax check on the tag string.
is_caa_value($tagname, $value)
Returns the untainted value if it appears to be a valid CAA tag name/value pair.
is_caa_issue($value)
Returns the untainted value if it looks like a CAA issue (or issuewild) value.
is_caa_issuewild($value)
Returns the untainted value if it looks like a CAA issuewild value. Since issuewild values have the same syntax as issue values, this is identical to is_caa_issue()
.
is_caa_iodef($value)
Returns the untainted value if it looks like a CAA iodef value.
SEE ALSO
RFC 6844
SOURCE
The development version is on github at http://github.com/mschout/perl-data-validate-dns-caa and may be cloned from git://github.com/mschout/perl-data-validate-dns-caa.git
BUGS
Please report any bugs or feature requests to bug-data-validate-dns-caa@rt.cpan.org or through the web interface at: http://rt.cpan.org/Public/Dist/Display.html?Name=Data-Validate-DNS-CAA
AUTHOR
Michael Schout <mschout@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2017 by Michael Schout.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.