UNPKG

@nictool/dns-resource-record

Version:
106 lines (82 loc) 2.05 kB
import RR from '../rr.js' export default class SIG extends RR { constructor(opts) { super(opts) } /****** Resource record specific setters *******/ setTypeCovered(val) { // a 2 octet Type Covered field if (!val) this.throwHelp(`SIG: 'type covered' is required`) this.set('type covered', val) } setAlgorithm(val) { // a 1 octet Algorithm field this.is8bitInt('SIG', 'labels', val) this.set('algorithm', val) } setLabels(val) { // a 1 octet Labels field this.is8bitInt('SIG', 'labels', val) this.set('labels', val) } setOriginalTtl(val) { // a 4 octet Original TTL field this.is32bitInt('SIG', 'original ttl', val) this.set('original ttl', val) } setSignatureExpiration(val) { // a 4 octet Signature Expiration field this.set('signature expiration', val) } setSignatureInception(val) { // a 4 octet Signature Inception field this.set('signature inception', val) } setKeyTag(val) { // a 2 octet Key tag this.set('key tag', val) } setSignersName(val) { // the domain name of the signer generating the SIG RR // RFC 4034: letters in the DNS names are lower cased this.set('signers name', val.toLowerCase()) } setSignature(val) { // the Signature field. this.set('signature', val) } getDescription() { return 'Signature' } getRdataFields(arg) { return [ 'type covered', 'algorithm', 'labels', 'original ttl', 'signature expiration', 'signature inception', 'key tag', 'signers name', 'signature', ] } getRFCs() { return [2535] } getTypeId() { return 24 } /****** IMPORTERS *******/ // fromBind (str) { // // test.example.com 3600 IN SIG ... // const [ owner, ttl, c, type ] = str.split(/\s+/) // return new SIG({ // owner, // ttl : parseInt(ttl, 10), // class : c, // type : type, // }) // } /****** EXPORTERS *******/ }