@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.
Files changed (54) hide show
  1. package/CHANGELOG.md +11 -2
  2. package/package.json +11 -6
  3. package/rr/a.js +1 -3
  4. package/rr/aaaa.js +1 -3
  5. package/rr/cname.js +1 -3
  6. package/rr/dname.js +1 -3
  7. package/rr/ipseckey.js +2 -4
  8. package/rr/mx.js +1 -3
  9. package/rr/srv.js +1 -3
  10. package/rr.js +12 -3
  11. package/.codeclimate.yml +0 -25
  12. package/.github/FUNDING.yml +0 -3
  13. package/.github/workflows/ci.yml +0 -43
  14. package/.github/workflows/codeql.yml +0 -14
  15. package/.github/workflows/publish.yml +0 -16
  16. package/.gitmodules +0 -3
  17. package/.prettierrc.yml +0 -3
  18. package/DEVELOP.md +0 -9
  19. package/eslint.config.mjs +0 -41
  20. package/test/a.js +0 -75
  21. package/test/aaaa.js +0 -86
  22. package/test/base.js +0 -148
  23. package/test/caa.js +0 -111
  24. package/test/cert.js +0 -48
  25. package/test/cname.js +0 -40
  26. package/test/dname.js +0 -57
  27. package/test/dnskey.js +0 -45
  28. package/test/ds.js +0 -45
  29. package/test/fake.js +0 -34
  30. package/test/hinfo.js +0 -80
  31. package/test/https.js +0 -56
  32. package/test/ipseckey.js +0 -141
  33. package/test/key.js +0 -36
  34. package/test/loc.js +0 -75
  35. package/test/mx.js +0 -78
  36. package/test/naptr.js +0 -47
  37. package/test/ns.js +0 -56
  38. package/test/nsec.js +0 -37
  39. package/test/nsec3.js +0 -47
  40. package/test/nsec3param.js +0 -23
  41. package/test/nxt.js +0 -37
  42. package/test/openpgpkey.js +0 -85
  43. package/test/ptr.js +0 -56
  44. package/test/rr.js +0 -212
  45. package/test/smimea.js +0 -51
  46. package/test/soa.js +0 -99
  47. package/test/spf.js +0 -51
  48. package/test/srv.js +0 -101
  49. package/test/sshfp.js +0 -69
  50. package/test/svcb.js +0 -56
  51. package/test/tinydns.js +0 -163
  52. package/test/tlsa.js +0 -63
  53. package/test/txt.js +0 -82
  54. 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
- })
@@ -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
- })
@@ -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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
- 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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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
- TNps8g6OkzKVOTp7VR8MemtCJjM/hho19TlLo5SRBAQoraASOCo6h/8+OUknGKIl
30
- 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
- LgEpCRDm5czycq0wO8BdIAQZAQoABgUCZe5x6AAKCRDVDA4eB3wND1JeCACZItbc
32
- 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
- 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
- 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
- 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
- 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
- owTwuzXWphHps48aGToH/jzwAqkXO1Ma43o9TMswsx7rpE3VOFEBOVdDEXXV67yE
38
- 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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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
- 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
- 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
- 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
- teB/hDypDvvUUBE1/Cc9DlpwRhdzvsoyEgg7auKldzveeYhCNryP3mPRE2BeD5SN
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
- })