UNPKG

@nictool/dns-resource-record

Version:
107 lines (84 loc) 2.17 kB
import RR from '../rr.js' export default class RRSIG extends RR { constructor(opts) { super(opts) } /****** Resource record specific setters *******/ setTypeCovered(val) { // a 2 octet Type Covered field if (!val) this.throwHelp(`RRSIG: 'type covered' is required`) if (val.length > 2) this.throwHelp(`RRSIG: 'type covered' is too long`) this.set('type covered', val) } setAlgorithm(val) { // a 1 octet Algorithm field // 1=RSA/MD5, 2=DH, 3=RRSIGA/SHA-1, 4=EC, 5=RSA/SHA-1 if (![1, 2, 3, 4, 5, 253, 254].includes(val)) this.throwHelp(`RRSIG: algorithm invalid`) this.set('algorithm', val) } setLabels(val) { // a 1 octet Labels field this.is8bitInt('RRSIG', 'labels', val) this.set('labels', val) } setOriginalTtl(val) { // a 4 octet Original TTL field this.is32bitInt('RRSIG', '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 Signer's Name field this.set('signers name', val) } setSignature(val) { // the Signature field. this.set('signature', val) } getDescription() { return 'Resource Record Signature' } getRdataFields(arg) { return [ 'type covered', 'algorithm', 'labels', 'original ttl', 'signature expiration', 'signature inception', 'key tag', 'signers name', 'signature', ] } getRFCs() { return [4034] } getTypeId() { return 46 } /****** IMPORTERS *******/ // fromBind (str) { // // test.example.com 3600 IN RRSIG ... // const [ owner, ttl, c, type ] = str.split(/\s+/) // return new RRSIG({ // owner, // ttl : parseInt(ttl, 10), // class : c, // type : type, // }) // } /****** EXPORTERS *******/ }