Add parser for CAA record

This commit is contained in:
Tim Caswell 2017-04-12 13:02:35 -05:00
parent 9b8526dc06
commit e9a2794990
1 changed files with 44 additions and 0 deletions

44
parser/type.caa.js Normal file
View File

@ -0,0 +1,44 @@
(function (exports) {
'use strict';
// A Certification Authority Authorization (CAA) record is used to specify which
// certificate authorities (CAs) are allowed to issue certificates for a domain.
// Value Meaning/Use
//
// Flag An unsigned integer between 0-255.
// It is currently used to represent the critical flag, that has a
// specific meaning per RFC 6844
// Tag An ASCII string that represents the identifier of the property
// represented by the record.
// Value The value associated with the tag.
// The RFC currently defines 3 available tags:
//
// - issue: explicity authorizes a single certificate authority to issue a
// certificate (any type) for the hostname.
// - issuewild: explicity authorizes a single certificate authority to issue a
// wildcard certificate (and only wildcard) for the hostname.
// - iodef: specifies an URL to which a certificate authority may report
// policy violations.
exports.DNS_PARSER_TYPE_CAA = function (ab, packet, record) {
var data = new Uint8Array(ab);
var i = record.rdstart;
var flag = data[i++];
var mid = data[i++];
mid += i;
var end = record.rdstart + record.rdlength;
var tag = '', value = '';
while (i < mid) { tag += String.fromCharCode(data[i++]); }
while (i < end) { value += String.fromCharCode(data[i++]); }
record.flag = flag;
record.tag = tag;
record.value = value;
return record;
};
}('undefined' !== typeof window ? window : exports));