@nictool/dns-resource-record 1.2.2 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -2
- package/package.json +11 -6
- package/rr/a.js +1 -3
- package/rr/aaaa.js +1 -3
- package/rr/cname.js +1 -3
- package/rr/dname.js +1 -3
- package/rr/ipseckey.js +2 -4
- package/rr/mx.js +1 -3
- package/rr/srv.js +1 -3
- package/rr.js +12 -3
- package/.codeclimate.yml +0 -25
- package/.github/FUNDING.yml +0 -3
- package/.github/workflows/ci.yml +0 -43
- package/.github/workflows/codeql.yml +0 -14
- package/.github/workflows/publish.yml +0 -16
- package/.gitmodules +0 -3
- package/.prettierrc.yml +0 -3
- package/DEVELOP.md +0 -9
- package/eslint.config.mjs +0 -41
- package/test/a.js +0 -75
- package/test/aaaa.js +0 -86
- package/test/base.js +0 -148
- package/test/caa.js +0 -111
- package/test/cert.js +0 -48
- package/test/cname.js +0 -40
- package/test/dname.js +0 -57
- package/test/dnskey.js +0 -45
- package/test/ds.js +0 -45
- package/test/fake.js +0 -34
- package/test/hinfo.js +0 -80
- package/test/https.js +0 -56
- package/test/ipseckey.js +0 -141
- package/test/key.js +0 -36
- package/test/loc.js +0 -75
- package/test/mx.js +0 -78
- package/test/naptr.js +0 -47
- package/test/ns.js +0 -56
- package/test/nsec.js +0 -37
- package/test/nsec3.js +0 -47
- package/test/nsec3param.js +0 -23
- package/test/nxt.js +0 -37
- package/test/openpgpkey.js +0 -85
- package/test/ptr.js +0 -56
- package/test/rr.js +0 -212
- package/test/smimea.js +0 -51
- package/test/soa.js +0 -99
- package/test/spf.js +0 -51
- package/test/srv.js +0 -101
- package/test/sshfp.js +0 -69
- package/test/svcb.js +0 -56
- package/test/tinydns.js +0 -163
- package/test/tlsa.js +0 -63
- package/test/txt.js +0 -82
- package/test/uri.js +0 -65
package/test/ipseckey.js
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import * as base from './base.js'
|
|
2
|
-
|
|
3
|
-
import IPSECKEY from '../rr/ipseckey.js'
|
|
4
|
-
|
|
5
|
-
const common = { ttl: 7200, class: 'IN', type: 'IPSECKEY' }
|
|
6
|
-
|
|
7
|
-
const validRecords = [
|
|
8
|
-
{
|
|
9
|
-
...common,
|
|
10
|
-
owner: '38.2.0.192.in-addr.arpa.',
|
|
11
|
-
precedence: 10,
|
|
12
|
-
'gateway type': 1,
|
|
13
|
-
algorithm: 2,
|
|
14
|
-
gateway: '192.0.2.38',
|
|
15
|
-
publickey: 'AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==',
|
|
16
|
-
testB:
|
|
17
|
-
'38.2.0.192.in-addr.arpa.\t7200\tIN\tIPSECKEY\t10\t1\t2\t192.0.2.38\tAQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==\n',
|
|
18
|
-
testT:
|
|
19
|
-
':38.2.0.192.in-addr.arpa:45:\\012\\001\\002\\300\\000\\002\\046\\001\\003QSy\\206\\3555S\\073\\140dG\\216\\356\\262\\173\\133\\327M\\256\\024\\233n\\201\\272\\072\\005\\041\\257\\202\\253x\\001:7200::\n',
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
...common,
|
|
23
|
-
owner: '38.2.0.192.in-addr.arpa.',
|
|
24
|
-
precedence: 10,
|
|
25
|
-
'gateway type': 0,
|
|
26
|
-
algorithm: 2,
|
|
27
|
-
gateway: '.',
|
|
28
|
-
publickey: 'AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==',
|
|
29
|
-
testB:
|
|
30
|
-
'38.2.0.192.in-addr.arpa.\t7200\tIN\tIPSECKEY\t10\t0\t2\t.\tAQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==\n',
|
|
31
|
-
testT:
|
|
32
|
-
':38.2.0.192.in-addr.arpa:45:\\012\\000\\002.\\001\\003QSy\\206\\3555S\\073\\140dG\\216\\356\\262\\173\\133\\327M\\256\\024\\233n\\201\\272\\072\\005\\041\\257\\202\\253x\\001:7200::\n',
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
...common,
|
|
36
|
-
owner: '38.2.0.192.in-addr.arpa.',
|
|
37
|
-
precedence: 10,
|
|
38
|
-
'gateway type': 1,
|
|
39
|
-
algorithm: 2,
|
|
40
|
-
gateway: '192.0.2.38',
|
|
41
|
-
publickey: 'AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==',
|
|
42
|
-
testB:
|
|
43
|
-
'38.2.0.192.in-addr.arpa.\t7200\tIN\tIPSECKEY\t10\t1\t2\t192.0.2.38\tAQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==\n',
|
|
44
|
-
testT:
|
|
45
|
-
':38.2.0.192.in-addr.arpa:45:\\012\\001\\002\\300\\000\\002\\046\\001\\003QSy\\206\\3555S\\073\\140dG\\216\\356\\262\\173\\133\\327M\\256\\024\\233n\\201\\272\\072\\005\\041\\257\\202\\253x\\001:7200::\n',
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
...common,
|
|
49
|
-
owner: '38.1.0.192.in-addr.arpa.',
|
|
50
|
-
precedence: 10,
|
|
51
|
-
'gateway type': 3,
|
|
52
|
-
algorithm: 2,
|
|
53
|
-
gateway: 'mygateway.example.com.',
|
|
54
|
-
publickey: 'AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==',
|
|
55
|
-
testB:
|
|
56
|
-
'38.1.0.192.in-addr.arpa.\t7200\tIN\tIPSECKEY\t10\t3\t2\tmygateway.example.com.\tAQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==\n',
|
|
57
|
-
testT:
|
|
58
|
-
':38.1.0.192.in-addr.arpa:45:\\012\\003\\002\\011mygateway\\007example\\003com\\000\\001\\003QSy\\206\\3555S\\073\\140dG\\216\\356\\262\\173\\133\\327M\\256\\024\\233n\\201\\272\\072\\005\\041\\257\\202\\253x\\001:7200::\n',
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
...common,
|
|
62
|
-
owner:
|
|
63
|
-
'0.d.4.0.3.0.e.f.f.f.3.f.0.1.2.0.1.0.0.0.0.0.2.8.b.d.0.1.0.0.2.ip6.arpa.',
|
|
64
|
-
precedence: 10,
|
|
65
|
-
'gateway type': 2,
|
|
66
|
-
algorithm: 2,
|
|
67
|
-
gateway: '2001:0db8:0:8002::2000:1',
|
|
68
|
-
publickey: 'AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==',
|
|
69
|
-
testB:
|
|
70
|
-
'0.d.4.0.3.0.e.f.f.f.3.f.0.1.2.0.1.0.0.0.0.0.2.8.b.d.0.1.0.0.2.ip6.arpa.\t7200\tIN\tIPSECKEY\t10\t2\t2\t2001:0db8:0:8002::2000:1\tAQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==\n',
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
...common,
|
|
74
|
-
owner: 'ipsec.simerson.com.',
|
|
75
|
-
ttl: 86400,
|
|
76
|
-
precedence: 1,
|
|
77
|
-
'gateway type': 3,
|
|
78
|
-
algorithm: 2,
|
|
79
|
-
gateway: 'matt.simerson.net.',
|
|
80
|
-
publickey:
|
|
81
|
-
'0sAQPeOwAGDPLrDebL1q5Lg8XW9B/d9MnxqlzIYKXhvZPWEHNYGP7AwART/tmkeDNn7HPMtgM6GIwQ4p0KGLfSRoUKbjtPlRVeWYLbsnNXeFU5bchyYef0efYiKlxZdo',
|
|
82
|
-
testB:
|
|
83
|
-
'ipsec.simerson.com.\t86400\tIN\tIPSECKEY\t1\t3\t2\tmatt.simerson.net.\t0sAQPeOwAGDPLrDebL1q5Lg8XW9B/d9MnxqlzIYKXhvZPWEHNYGP7AwART/tmkeDNn7HPMtgM6GIwQ4p0KGLfSRoUKbjtPlRVeWYLbsnNXeFU5bchyYef0efYiKlxZdo\n',
|
|
84
|
-
testT:
|
|
85
|
-
':ipsec.simerson.com:45:\\001\\003\\002\\004matt\\010simerson\\003net\\000\\322\\300\\020\\075\\343\\260\\000\\140\\317.\\260\\336l\\275j\\344\\270\\074\\135oA\\375\\337L\\237\\032\\245\\314\\206\\012\\136\\033\\331\\075a\\0075\\201\\217\\354\\014\\000E\\077\\355\\232G\\2036\\176\\307\\074\\313\\1403\\241\\210\\301\\016\\051\\320\\241\\213\\175\\044hP\\246\\343\\264\\371QU\\345\\230-\\273\\0475w\\205S\\226\\334\\207\\046\\036\\177G\\237b\\042\\245\\305\\227h:86400::\n',
|
|
86
|
-
},
|
|
87
|
-
]
|
|
88
|
-
|
|
89
|
-
const invalidRecords = [
|
|
90
|
-
{
|
|
91
|
-
...common,
|
|
92
|
-
owner:
|
|
93
|
-
'0.d.4.0.3.0.e.f.f.f.3.f.0.1.2.0.1.0.0.0.0.0.2.8.b.d.0.1.0.0.2.ip6.arpa.',
|
|
94
|
-
precedence: 10,
|
|
95
|
-
'gateway type': 4,
|
|
96
|
-
algorithm: 2,
|
|
97
|
-
gateway: '2001:0db8:0:8002::2000:1',
|
|
98
|
-
publickey: 'AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==',
|
|
99
|
-
msg: /Gateway Type is invalid/,
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
...common,
|
|
103
|
-
owner:
|
|
104
|
-
'0.d.4.0.3.0.e.f.f.f.3.f.0.1.2.0.1.0.0.0.0.0.2.8.b.d.0.1.0.0.2.ip6.arpa.',
|
|
105
|
-
precedence: 10,
|
|
106
|
-
'gateway type': 3,
|
|
107
|
-
algorithm: 3,
|
|
108
|
-
gateway: '2001:0db8:0:8002::2000:1',
|
|
109
|
-
publickey: 'AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==',
|
|
110
|
-
msg: /Algorithm invalid/,
|
|
111
|
-
},
|
|
112
|
-
]
|
|
113
|
-
|
|
114
|
-
describe('IPSECKEY record', function () {
|
|
115
|
-
base.valid(IPSECKEY, validRecords)
|
|
116
|
-
base.invalid(IPSECKEY, invalidRecords)
|
|
117
|
-
|
|
118
|
-
base.getDescription(IPSECKEY)
|
|
119
|
-
base.getRFCs(IPSECKEY, validRecords[0])
|
|
120
|
-
base.getRdataFields(IPSECKEY, [
|
|
121
|
-
'precedence',
|
|
122
|
-
'gateway type',
|
|
123
|
-
'algorithm',
|
|
124
|
-
'gateway',
|
|
125
|
-
'publickey',
|
|
126
|
-
])
|
|
127
|
-
base.getFields(IPSECKEY, [
|
|
128
|
-
'precedence',
|
|
129
|
-
'gateway type',
|
|
130
|
-
'algorithm',
|
|
131
|
-
'gateway',
|
|
132
|
-
'publickey',
|
|
133
|
-
])
|
|
134
|
-
base.getTypeId(IPSECKEY, 45)
|
|
135
|
-
|
|
136
|
-
base.toBind(IPSECKEY, validRecords)
|
|
137
|
-
base.toTinydns(IPSECKEY, validRecords)
|
|
138
|
-
|
|
139
|
-
base.fromBind(IPSECKEY, validRecords)
|
|
140
|
-
base.fromTinydns(IPSECKEY, validRecords)
|
|
141
|
-
})
|
package/test/key.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import * as base from './base.js'
|
|
2
|
-
|
|
3
|
-
import KEY from '../rr/key.js'
|
|
4
|
-
|
|
5
|
-
const validRecords = [
|
|
6
|
-
{
|
|
7
|
-
owner: 'example.com.',
|
|
8
|
-
ttl: 3600,
|
|
9
|
-
class: 'IN',
|
|
10
|
-
type: 'KEY',
|
|
11
|
-
flags: 256,
|
|
12
|
-
protocol: 3,
|
|
13
|
-
algorithm: 5,
|
|
14
|
-
publickey: `( AQPSKmynfzW4kyBv015MUG2DeIQ3 Cbl+BBZH4b/0PY1kxkmvHjcZc8no kfzj31GajIQKY+5CptLr3buXA10h WqTkF7H6RfoRqXQeogmMHfpftf6z Mv1LyBUgia7za6ZEzOJBOztyvhjL 742iU/TpPSEDhm2SNKLijfUppn1U aNvv4w== )`,
|
|
15
|
-
testB:
|
|
16
|
-
'example.com.\t3600\tIN\tKEY\t256\t3\t5\t( AQPSKmynfzW4kyBv015MUG2DeIQ3 Cbl+BBZH4b/0PY1kxkmvHjcZc8no kfzj31GajIQKY+5CptLr3buXA10h WqTkF7H6RfoRqXQeogmMHfpftf6z Mv1LyBUgia7za6ZEzOJBOztyvhjL 742iU/TpPSEDhm2SNKLijfUppn1U aNvv4w== )\n',
|
|
17
|
-
},
|
|
18
|
-
]
|
|
19
|
-
|
|
20
|
-
const invalidRecords = []
|
|
21
|
-
|
|
22
|
-
describe('KEY record', function () {
|
|
23
|
-
base.valid(KEY, validRecords)
|
|
24
|
-
base.invalid(KEY, invalidRecords, { ttl: 3600 })
|
|
25
|
-
|
|
26
|
-
base.getDescription(KEY)
|
|
27
|
-
base.getRFCs(KEY, validRecords[0])
|
|
28
|
-
base.getFields(KEY, ['flags', 'protocol', 'algorithm', 'publickey'])
|
|
29
|
-
base.getTypeId(KEY, 25)
|
|
30
|
-
|
|
31
|
-
base.toBind(KEY, validRecords)
|
|
32
|
-
// base.toTinydns(KEY, validRecords)
|
|
33
|
-
|
|
34
|
-
base.fromBind(KEY, validRecords)
|
|
35
|
-
// base.fromTinydns(KEY, validRecords)
|
|
36
|
-
})
|
package/test/loc.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import assert from 'assert'
|
|
2
|
-
|
|
3
|
-
import * as base from './base.js'
|
|
4
|
-
|
|
5
|
-
import LOC from '../rr/loc.js'
|
|
6
|
-
|
|
7
|
-
const defaults = { class: 'IN', ttl: 3600, type: 'LOC' }
|
|
8
|
-
|
|
9
|
-
const validRecords = [
|
|
10
|
-
{
|
|
11
|
-
...defaults,
|
|
12
|
-
owner: 'loc.home.example.com.',
|
|
13
|
-
address: '47 43 47 N 122 21 35 W 132m 100m 100m 2m',
|
|
14
|
-
testB: `loc.home.example.com.\t3600\tIN\tLOC\t47 43 47 N 122 21 35 W 132m 100m 100m 2m\n`,
|
|
15
|
-
testT:
|
|
16
|
-
':loc.home.example.com:29:\\000\\024\\024\\042\\212\\075\\337\\070\\145\\276\\224\\150\\000\\230\\312\\020:3600::\n',
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
...defaults,
|
|
20
|
-
owner: 'cambridge-net.kei.com.',
|
|
21
|
-
address: '42 21 54 N 71 6 18 W -24m 30m',
|
|
22
|
-
testB:
|
|
23
|
-
'cambridge-net.kei.com.\t3600\tIN\tLOC\t42 21 54 N 71 6 18 W -24m 30m\n',
|
|
24
|
-
testT:
|
|
25
|
-
':cambridge-net.kei.com:29:\\000\\063\\000\\000\\211\\027\\055\\320\\160\\276\\025\\360\\000\\230\\215\\040:3600::\n',
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
...defaults,
|
|
29
|
-
owner: 'rwy04l.logan-airport.boston.',
|
|
30
|
-
address: '42 21 28.764 N 71 0 51.617 W -44m 2000m',
|
|
31
|
-
testB:
|
|
32
|
-
'rwy04l.logan-airport.boston.\t3600\tIN\tLOC\t42 21 28.764 N 71 0 51.617 W -44m 2000m\n',
|
|
33
|
-
testT:
|
|
34
|
-
':rwy04l.logan-airport.boston:29:\\000\\045\\000\\000\\211\\026\\313\\074\\160\\303\\020\\337\\000\\230\\205\\120:3600::\n',
|
|
35
|
-
},
|
|
36
|
-
]
|
|
37
|
-
|
|
38
|
-
const invalidRecords = [
|
|
39
|
-
{
|
|
40
|
-
...defaults,
|
|
41
|
-
owner: 'server.example.com.',
|
|
42
|
-
address: '', // empty
|
|
43
|
-
msg: /address is required/,
|
|
44
|
-
},
|
|
45
|
-
]
|
|
46
|
-
|
|
47
|
-
describe('LOC record', function () {
|
|
48
|
-
base.valid(LOC, validRecords)
|
|
49
|
-
base.invalid(LOC, invalidRecords)
|
|
50
|
-
|
|
51
|
-
base.getDescription(LOC)
|
|
52
|
-
base.getRFCs(LOC, validRecords[0])
|
|
53
|
-
base.getFields(LOC, ['address'])
|
|
54
|
-
base.getTypeId(LOC, 29)
|
|
55
|
-
|
|
56
|
-
base.toBind(LOC, validRecords)
|
|
57
|
-
base.toTinydns(LOC, validRecords)
|
|
58
|
-
|
|
59
|
-
describe('toExponent', function () {
|
|
60
|
-
const loc = new LOC(validRecords[0])
|
|
61
|
-
it('converts a SIZE/PREC to exponent format', function () {
|
|
62
|
-
assert.equal(loc.toExponent(100), 18)
|
|
63
|
-
})
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
describe('fromExponent', function () {
|
|
67
|
-
const loc = new LOC(validRecords[0])
|
|
68
|
-
it('decodes an exponent format to SIZE/PREC', function () {
|
|
69
|
-
assert.equal(loc.fromExponent(18), 100)
|
|
70
|
-
})
|
|
71
|
-
})
|
|
72
|
-
|
|
73
|
-
base.fromTinydns(LOC, validRecords)
|
|
74
|
-
base.fromBind(LOC, validRecords)
|
|
75
|
-
})
|
package/test/mx.js
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import assert from 'assert'
|
|
2
|
-
|
|
3
|
-
import * as base from './base.js'
|
|
4
|
-
|
|
5
|
-
import MX from '../rr/mx.js'
|
|
6
|
-
|
|
7
|
-
const defaults = { class: 'IN', ttl: 3600, type: 'MX', preference: 0 }
|
|
8
|
-
|
|
9
|
-
const validRecords = [
|
|
10
|
-
{
|
|
11
|
-
...defaults,
|
|
12
|
-
owner: 'test.example.com.',
|
|
13
|
-
preference: 0,
|
|
14
|
-
exchange: 'mail.example.com.',
|
|
15
|
-
testB: 'test.example.com.\t3600\tIN\tMX\t0\tmail.example.com.\n',
|
|
16
|
-
testT: '@test.example.com::mail.example.com:0:3600::\n',
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
...defaults,
|
|
20
|
-
owner: 'www.example.com.',
|
|
21
|
-
ttl: 86400,
|
|
22
|
-
preference: 0,
|
|
23
|
-
exchange: '.', // null MX, RFC 7505
|
|
24
|
-
testB: 'www.example.com.\t86400\tIN\tMX\t0\t.\n',
|
|
25
|
-
testT: '@www.example.com::.:0:86400::\n',
|
|
26
|
-
},
|
|
27
|
-
]
|
|
28
|
-
|
|
29
|
-
const invalidRecords = [
|
|
30
|
-
{
|
|
31
|
-
...defaults,
|
|
32
|
-
owner: 'test.example.com.',
|
|
33
|
-
exchange: 'not-full-qualified.example.com',
|
|
34
|
-
msg: /exchange must be fully qualified/,
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
...defaults,
|
|
38
|
-
owner: 'test.example.com.',
|
|
39
|
-
exchange: '192.0.2.1',
|
|
40
|
-
msg: /exchange must be a FQDN/,
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
...defaults,
|
|
44
|
-
owner: 'test.example.com.',
|
|
45
|
-
exchange: '-blah',
|
|
46
|
-
msg: /exchange must be fully qualified/,
|
|
47
|
-
},
|
|
48
|
-
]
|
|
49
|
-
|
|
50
|
-
describe('MX record', function () {
|
|
51
|
-
base.valid(MX, validRecords)
|
|
52
|
-
base.invalid(MX, invalidRecords)
|
|
53
|
-
|
|
54
|
-
base.getDescription(MX)
|
|
55
|
-
base.getRFCs(MX, validRecords[0])
|
|
56
|
-
base.getFields(MX, ['preference', 'exchange'])
|
|
57
|
-
base.getTypeId(MX, 15)
|
|
58
|
-
|
|
59
|
-
base.toBind(MX, validRecords)
|
|
60
|
-
base.toTinydns(MX, validRecords)
|
|
61
|
-
|
|
62
|
-
base.fromBind(MX, validRecords)
|
|
63
|
-
base.fromTinydns(MX, validRecords)
|
|
64
|
-
|
|
65
|
-
for (const val of validRecords) {
|
|
66
|
-
it.skip(`imports tinydns MX (@) record (${val.owner})`, async function () {
|
|
67
|
-
const r = new MX({ tinyline: val.testT })
|
|
68
|
-
if (process.env.DEBUG) console.dir(r)
|
|
69
|
-
for (const f of ['owner', 'exchange', 'preference', 'ttl']) {
|
|
70
|
-
assert.deepStrictEqual(
|
|
71
|
-
r.get(f),
|
|
72
|
-
val[f],
|
|
73
|
-
`${f}: ${r.get(f)} !== ${val[f]}`,
|
|
74
|
-
)
|
|
75
|
-
}
|
|
76
|
-
})
|
|
77
|
-
}
|
|
78
|
-
})
|
package/test/naptr.js
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import * as base from './base.js'
|
|
2
|
-
|
|
3
|
-
import NAPTR from '../rr/naptr.js'
|
|
4
|
-
|
|
5
|
-
const validRecords = [
|
|
6
|
-
{
|
|
7
|
-
owner: 'cid.urn.arpa.',
|
|
8
|
-
ttl: 86400,
|
|
9
|
-
class: 'IN',
|
|
10
|
-
type: 'NAPTR',
|
|
11
|
-
order: 100,
|
|
12
|
-
preference: 10,
|
|
13
|
-
flags: '',
|
|
14
|
-
service: '',
|
|
15
|
-
regexp: '!^urn:cid:.+@([^\\.]+\\.)(.*)$!\x02!i',
|
|
16
|
-
replacement: '.',
|
|
17
|
-
testB:
|
|
18
|
-
'cid.urn.arpa.\t86400\tIN\tNAPTR\t100\t10\t""\t""\t"!^urn:cid:.+@([^\\.]+\\.)(.*)$!\x02!i"\t.\n',
|
|
19
|
-
testT:
|
|
20
|
-
':cid.urn.arpa:35:\\000\\144\\000\\012\\000\\000\\040!^urn\\072cid\\072.+@([^\\134.]+\\134.)(.*)$!\x02!i\\001.\\000:86400::\n',
|
|
21
|
-
},
|
|
22
|
-
]
|
|
23
|
-
|
|
24
|
-
const invalidRecords = []
|
|
25
|
-
|
|
26
|
-
describe('NAPTR record', function () {
|
|
27
|
-
base.valid(NAPTR, validRecords)
|
|
28
|
-
base.invalid(NAPTR, invalidRecords)
|
|
29
|
-
|
|
30
|
-
base.getDescription(NAPTR)
|
|
31
|
-
base.getRFCs(NAPTR, validRecords[0])
|
|
32
|
-
base.getFields(NAPTR, [
|
|
33
|
-
'order',
|
|
34
|
-
'preference',
|
|
35
|
-
'flags',
|
|
36
|
-
'service',
|
|
37
|
-
'regexp',
|
|
38
|
-
'replacement',
|
|
39
|
-
])
|
|
40
|
-
base.getTypeId(NAPTR, 35)
|
|
41
|
-
|
|
42
|
-
base.toBind(NAPTR, validRecords)
|
|
43
|
-
base.toTinydns(NAPTR, validRecords)
|
|
44
|
-
|
|
45
|
-
base.fromBind(NAPTR, validRecords)
|
|
46
|
-
base.fromTinydns(NAPTR, validRecords)
|
|
47
|
-
})
|
package/test/ns.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import assert from 'assert'
|
|
2
|
-
|
|
3
|
-
import * as base from './base.js'
|
|
4
|
-
|
|
5
|
-
import NS from '../rr/ns.js'
|
|
6
|
-
|
|
7
|
-
const defaults = { class: 'IN', ttl: 3600, type: 'NS' }
|
|
8
|
-
|
|
9
|
-
const validRecords = [
|
|
10
|
-
{
|
|
11
|
-
...defaults,
|
|
12
|
-
owner: 'example.com.',
|
|
13
|
-
dname: 'ns1.example.com.',
|
|
14
|
-
testB: 'example.com.\t3600\tIN\tNS\tns1.example.com.\n',
|
|
15
|
-
testT: '&example.com::ns1.example.com:3600::\n',
|
|
16
|
-
},
|
|
17
|
-
]
|
|
18
|
-
|
|
19
|
-
const invalidRecords = [
|
|
20
|
-
{
|
|
21
|
-
...defaults,
|
|
22
|
-
owner: 'example.com.',
|
|
23
|
-
dname: '1.2.3.4', // FQDN required
|
|
24
|
-
msg: /dname must be fully qualified/,
|
|
25
|
-
},
|
|
26
|
-
]
|
|
27
|
-
|
|
28
|
-
describe('NS record', function () {
|
|
29
|
-
base.valid(NS, validRecords)
|
|
30
|
-
base.invalid(NS, invalidRecords)
|
|
31
|
-
|
|
32
|
-
base.getDescription(NS)
|
|
33
|
-
base.getRFCs(NS, validRecords[0])
|
|
34
|
-
base.getFields(NS, ['dname'])
|
|
35
|
-
base.getTypeId(NS, 2)
|
|
36
|
-
|
|
37
|
-
base.toBind(NS, validRecords)
|
|
38
|
-
base.toTinydns(NS, validRecords)
|
|
39
|
-
|
|
40
|
-
base.fromBind(NS, validRecords)
|
|
41
|
-
base.fromTinydns(NS, validRecords)
|
|
42
|
-
|
|
43
|
-
for (const val of validRecords) {
|
|
44
|
-
it.skip(`imports tinydns NS (&) record (${val.owner})`, function () {
|
|
45
|
-
const r = new NS({ tinyline: val.testT })
|
|
46
|
-
if (process.env.DEBUG) console.dir(r)
|
|
47
|
-
for (const f of ['owner', 'dname', 'ttl']) {
|
|
48
|
-
assert.deepStrictEqual(
|
|
49
|
-
r.get(f),
|
|
50
|
-
val[f],
|
|
51
|
-
`${f}: ${r.get(f)} !== ${val[f]}`,
|
|
52
|
-
)
|
|
53
|
-
}
|
|
54
|
-
})
|
|
55
|
-
}
|
|
56
|
-
})
|
package/test/nsec.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import * as base from './base.js'
|
|
2
|
-
|
|
3
|
-
import NSEC from '../rr/nsec.js'
|
|
4
|
-
|
|
5
|
-
const validRecords = [
|
|
6
|
-
{
|
|
7
|
-
owner: 'alfa.example.com.',
|
|
8
|
-
ttl: 86400,
|
|
9
|
-
class: 'IN',
|
|
10
|
-
type: 'NSEC',
|
|
11
|
-
'next domain': 'host.example.com.',
|
|
12
|
-
'type bit maps': 'A MX RRSIG NSEC TYPE1234',
|
|
13
|
-
testB: `alfa.example.com.\t86400\tIN\tNSEC\thost.example.com.\tA MX RRSIG NSEC TYPE1234\n`,
|
|
14
|
-
// testT : '\n',
|
|
15
|
-
},
|
|
16
|
-
]
|
|
17
|
-
|
|
18
|
-
const invalidRecords = [
|
|
19
|
-
// {
|
|
20
|
-
// },
|
|
21
|
-
]
|
|
22
|
-
|
|
23
|
-
describe('NSEC record', function () {
|
|
24
|
-
base.valid(NSEC, validRecords)
|
|
25
|
-
base.invalid(NSEC, invalidRecords, { ttl: 3600 })
|
|
26
|
-
|
|
27
|
-
base.getDescription(NSEC)
|
|
28
|
-
base.getRFCs(NSEC, validRecords[0])
|
|
29
|
-
base.getFields(NSEC, ['next domain', 'type bit maps'])
|
|
30
|
-
base.getTypeId(NSEC, 47)
|
|
31
|
-
|
|
32
|
-
base.toBind(NSEC, validRecords)
|
|
33
|
-
// base.toTinydns(NSEC, validRecords)
|
|
34
|
-
|
|
35
|
-
base.fromBind(NSEC, validRecords)
|
|
36
|
-
// base.fromTinydns(NSEC, validRecords)
|
|
37
|
-
})
|
package/test/nsec3.js
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import * as base from './base.js'
|
|
2
|
-
|
|
3
|
-
import NSEC3 from '../rr/nsec3.js'
|
|
4
|
-
|
|
5
|
-
const defaults = { class: 'IN', ttl: 3600, type: 'NSEC3' }
|
|
6
|
-
|
|
7
|
-
const validRecords = [
|
|
8
|
-
{
|
|
9
|
-
...defaults,
|
|
10
|
-
owner: 'test.example.com.',
|
|
11
|
-
'hash algorithm': 1,
|
|
12
|
-
flags: 1,
|
|
13
|
-
iterations: 12,
|
|
14
|
-
salt: 'aabbccdd',
|
|
15
|
-
'type bit maps': 'A\tRRSIG',
|
|
16
|
-
'next hashed owner name': '2vptu5timamqttgl4luu9kg21e0aor3s',
|
|
17
|
-
testB:
|
|
18
|
-
'test.example.com.\t3600\tIN\tNSEC3\t1\t1\t12\taabbccdd\t(2vptu5timamqttgl4luu9kg21e0aor3s\tA\tRRSIG)\n',
|
|
19
|
-
testT:
|
|
20
|
-
':test.example.com:50:\\001\\001\\000\\014aabbccdd2vptu5timamqttgl4luu9kg21e0aor3sA\\011RRSIG:3600::\n',
|
|
21
|
-
},
|
|
22
|
-
]
|
|
23
|
-
|
|
24
|
-
const invalidRecords = []
|
|
25
|
-
|
|
26
|
-
describe('NSEC3 record', function () {
|
|
27
|
-
base.valid(NSEC3, validRecords)
|
|
28
|
-
base.invalid(NSEC3, invalidRecords, { ttl: 3600 })
|
|
29
|
-
|
|
30
|
-
base.getDescription(NSEC3)
|
|
31
|
-
base.getRFCs(NSEC3, validRecords[0])
|
|
32
|
-
base.getFields(NSEC3, [
|
|
33
|
-
'hash algorithm',
|
|
34
|
-
'flags',
|
|
35
|
-
'iterations',
|
|
36
|
-
'salt',
|
|
37
|
-
'next hashed owner name',
|
|
38
|
-
'type bit maps',
|
|
39
|
-
])
|
|
40
|
-
base.getTypeId(NSEC3, 50)
|
|
41
|
-
|
|
42
|
-
base.toBind(NSEC3, validRecords)
|
|
43
|
-
base.toTinydns(NSEC3, validRecords)
|
|
44
|
-
|
|
45
|
-
base.fromBind(NSEC3, validRecords)
|
|
46
|
-
// base.fromTinydns(NSEC3, validRecords)
|
|
47
|
-
})
|
package/test/nsec3param.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import * as base from './base.js'
|
|
2
|
-
|
|
3
|
-
import NSEC3PARAM from '../rr/nsec3param.js'
|
|
4
|
-
|
|
5
|
-
const validRecords = []
|
|
6
|
-
|
|
7
|
-
const invalidRecords = []
|
|
8
|
-
|
|
9
|
-
describe('NSEC3PARAM record', function () {
|
|
10
|
-
base.valid(NSEC3PARAM, validRecords)
|
|
11
|
-
base.invalid(NSEC3PARAM, invalidRecords, { ttl: 3600 })
|
|
12
|
-
|
|
13
|
-
base.getDescription(NSEC3PARAM)
|
|
14
|
-
base.getRFCs(NSEC3PARAM, validRecords[0])
|
|
15
|
-
base.getFields(NSEC3PARAM, ['hash algorithm', 'flags', 'iterations', 'salt'])
|
|
16
|
-
base.getTypeId(NSEC3PARAM, 51)
|
|
17
|
-
|
|
18
|
-
// base.toBind(NSEC3PARAM, validRecords)
|
|
19
|
-
// base.toTinydns(NSEC3PARAM, validRecords)
|
|
20
|
-
|
|
21
|
-
// base.fromBind(NSEC3PARAM, validRecords)
|
|
22
|
-
// base.fromTinydns(NSEC3PARAM, validRecords)
|
|
23
|
-
})
|
package/test/nxt.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import * as base from './base.js'
|
|
2
|
-
|
|
3
|
-
import NXT from '../rr/nxt.js'
|
|
4
|
-
|
|
5
|
-
const validRecords = [
|
|
6
|
-
{
|
|
7
|
-
owner: 'big.example.com.',
|
|
8
|
-
ttl: 86400,
|
|
9
|
-
class: 'IN',
|
|
10
|
-
type: 'NXT',
|
|
11
|
-
'next domain': 'medium.example.com.',
|
|
12
|
-
'type bit map': 'A SIG NXT',
|
|
13
|
-
testB: `big.example.com.\t86400\tIN\tNXT\tmedium.example.com.\tA SIG NXT\n`,
|
|
14
|
-
// testT : '\n',
|
|
15
|
-
},
|
|
16
|
-
]
|
|
17
|
-
|
|
18
|
-
const invalidRecords = [
|
|
19
|
-
// {
|
|
20
|
-
// },
|
|
21
|
-
]
|
|
22
|
-
|
|
23
|
-
describe('NXT record', function () {
|
|
24
|
-
base.valid(NXT, validRecords)
|
|
25
|
-
base.invalid(NXT, invalidRecords, { ttl: 3600 })
|
|
26
|
-
|
|
27
|
-
base.getDescription(NXT)
|
|
28
|
-
base.getRFCs(NXT, validRecords[0])
|
|
29
|
-
base.getFields(NXT, ['next domain', 'type bit map'])
|
|
30
|
-
base.getTypeId(NXT, 30)
|
|
31
|
-
|
|
32
|
-
base.toBind(NXT, validRecords)
|
|
33
|
-
// base.toTinydns(NXT, validRecords)
|
|
34
|
-
|
|
35
|
-
base.fromBind(NXT, validRecords)
|
|
36
|
-
// base.fromTinydns(NXT, validRecords)
|
|
37
|
-
})
|
package/test/openpgpkey.js
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import * as base from './base.js'
|
|
2
|
-
|
|
3
|
-
import OPENPGPKEY from '../rr/openpgpkey.js'
|
|
4
|
-
|
|
5
|
-
const validRecords = [
|
|
6
|
-
{
|
|
7
|
-
owner: 'matt.example.com.',
|
|
8
|
-
ttl: 86400,
|
|
9
|
-
class: 'IN',
|
|
10
|
-
type: 'OPENPGPKEY',
|
|
11
|
-
'public key': `-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
12
|
-
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
-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
-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
-
ckokta7hL6UbADBCuPrmqYZ0Z9MlhH4tjFMaVvzvuS/pZg+/eVQk66xv9iqSwb9r
|
|
16
|
-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
-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
-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
-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
-
+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
-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
-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
-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
-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
-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
-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
-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
-
Hhr+eKauLp3Ckd3A0TUtR5+5iOe4ybbtVaub/+GsJRRKM5dhoWI2h+siDpvC/uoX
|
|
29
|
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
Fm+55fI6UUpJooq9BTZrcSkCgOXXakQIVBSHic9dzfKK1aZ7s/pzsIRXRRfQ4b4r
|
|
48
|
-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
-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
-
bpNX3XZd51Oo6cDiPKQNp/6HiE4tWUVcH0GDvEQep1lq2Y9bWEz0m1m1k6pLxDzh
|
|
51
|
-
Jwst3ZJbWI9+MB5hCJSo1FojfqTnlFyS2cE58eNChRjANIMzG5oSfFEEeRHMoNbV
|
|
52
|
-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
-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
-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
-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
-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
-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
-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
-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
|
|
60
|
-
0VFBNRBmWIMXRAtmrzPyNp/nD7BymAQ=
|
|
61
|
-
=kezp
|
|
62
|
-
-----END PGP PUBLIC KEY BLOCK-----`,
|
|
63
|
-
testB:
|
|
64
|
-
'matt.example.com.\t86400\tIN\tOPENPGPKEY\t-----BEGIN PGP PUBLIC KEY BLOCK-----\n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\n0VFBNRBmWIMXRAtmrzPyNp/nD7BymAQ=\n=kezp\n-----END PGP PUBLIC KEY BLOCK-----\n',
|
|
65
|
-
// testT : '',
|
|
66
|
-
},
|
|
67
|
-
]
|
|
68
|
-
|
|
69
|
-
const invalidRecords = []
|
|
70
|
-
|
|
71
|
-
describe('OPENPGPKEY record', function () {
|
|
72
|
-
base.valid(OPENPGPKEY, validRecords)
|
|
73
|
-
base.invalid(OPENPGPKEY, invalidRecords, { ttl: 3600 })
|
|
74
|
-
|
|
75
|
-
base.getDescription(OPENPGPKEY)
|
|
76
|
-
base.getRFCs(OPENPGPKEY)
|
|
77
|
-
base.getFields(OPENPGPKEY, ['public key'])
|
|
78
|
-
base.getTypeId(OPENPGPKEY, 61)
|
|
79
|
-
|
|
80
|
-
base.toBind(OPENPGPKEY, validRecords)
|
|
81
|
-
// base.toTinydns(OPENPGPKEY, validRecords)
|
|
82
|
-
|
|
83
|
-
base.fromBind(OPENPGPKEY, validRecords)
|
|
84
|
-
// base.fromTinydns(OPENPGPKEY, validRecords)
|
|
85
|
-
})
|