dnsruby 1.60.0 → 1.60.1
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.
- checksums.yaml +4 -4
- data/RELEASE_NOTES.md +14 -0
- data/lib/dnsruby/bit_mapping.rb +1 -1
- data/lib/dnsruby/code_mapper.rb +3 -3
- data/lib/dnsruby/code_mappers.rb +4 -2
- data/lib/dnsruby/config.rb +1 -1
- data/lib/dnsruby/dnssec.rb +1 -1
- data/lib/dnsruby/packet_sender.rb +8 -5
- data/lib/dnsruby/resolver.rb +6 -6
- data/lib/dnsruby/resource/APL.rb +146 -0
- data/lib/dnsruby/resource/CAA.rb +70 -0
- data/lib/dnsruby/resource/IN.rb +4 -1
- data/lib/dnsruby/resource/MX.rb +3 -0
- data/lib/dnsruby/resource/OPT.rb +1 -1
- data/lib/dnsruby/resource/RRSIG.rb +1 -1
- data/lib/dnsruby/resource/TLSA.rb +149 -0
- data/lib/dnsruby/resource/domain_name.rb +1 -1
- data/lib/dnsruby/resource/generic.rb +1 -0
- data/lib/dnsruby/version.rb +1 -1
- data/lib/dnsruby/zone_transfer.rb +5 -2
- data/test/run-tests-individually +347 -0
- data/test/spec_helper.rb +3 -3
- data/test/tc_caa.rb +49 -0
- data/test/tc_cache.rb +6 -16
- data/test/tc_dlv.rb +3 -2
- data/test/tc_dns.rb +3 -1
- data/test/tc_ds.rb +4 -1
- data/test/tc_escapedchars.rb +3 -1
- data/test/tc_gpos.rb +2 -2
- data/test/tc_header.rb +3 -1
- data/test/tc_hip.rb +3 -1
- data/test/tc_hs.rb +0 -2
- data/test/tc_ipseckey.rb +3 -1
- data/test/tc_message.rb +0 -16
- data/test/tc_name.rb +3 -1
- data/test/tc_naptr.rb +3 -1
- data/test/tc_nsec.rb +3 -3
- data/test/tc_nsec3.rb +3 -1
- data/test/tc_nsec3param.rb +3 -1
- data/test/tc_nxt.rb +2 -2
- data/test/tc_packet.rb +3 -2
- data/test/tc_packet_unique_push.rb +3 -1
- data/test/tc_ptrin.rb +2 -1
- data/test/tc_question.rb +3 -1
- data/test/tc_res_env.rb +3 -1
- data/test/tc_res_opt.rb +3 -1
- data/test/tc_resolv.rb +1 -2
- data/test/tc_resolver.rb +18 -19
- data/test/tc_rr-opt.rb +3 -2
- data/test/tc_rr-txt.rb +3 -1
- data/test/tc_rr-unknown.rb +3 -1
- data/test/tc_rr.rb +15 -1
- data/test/tc_single_resolver.rb +4 -1
- data/test/tc_soak.rb +2 -1
- data/test/tc_soak_base.rb +2 -0
- data/test/tc_sshfp.rb +3 -1
- data/test/tc_tlsa.rb +191 -0
- data/test/tc_tsig.rb +3 -1
- data/test/tc_update.rb +6 -3
- data/test/tc_validator.rb +3 -2
- data/test/tc_zone_reader.rb +4 -2
- data/test/ts_offline.rb +1 -0
- data/test/ts_online.rb +6 -7
- metadata +8 -2
data/test/tc_rr-opt.rb
CHANGED
@@ -18,10 +18,9 @@ require_relative 'spec_helper'
|
|
18
18
|
|
19
19
|
require 'socket'
|
20
20
|
|
21
|
-
include Dnsruby
|
22
21
|
class TestRrOpt < Minitest::Test
|
23
22
|
|
24
|
-
|
23
|
+
include Dnsruby
|
25
24
|
|
26
25
|
# This test illustrates that when an OPT record specifying a maximum
|
27
26
|
# UDP size is added to a query, the server will respect that setting
|
@@ -100,6 +99,7 @@ class TestRrOpt < Minitest::Test
|
|
100
99
|
|
101
100
|
# Now send query
|
102
101
|
res = Resolver.new("127.0.0.1")
|
102
|
+
res.dnssec = true
|
103
103
|
res.port = port
|
104
104
|
res.udp_size = 4096
|
105
105
|
assert(res.udp_size == 4096)
|
@@ -177,6 +177,7 @@ class TestRrOpt < Minitest::Test
|
|
177
177
|
}
|
178
178
|
# Now send query
|
179
179
|
res = Resolver.new("127.0.0.1")
|
180
|
+
res.dnssec = true
|
180
181
|
res.port = port
|
181
182
|
res.udp_size = 4096
|
182
183
|
assert(res.udp_size == 4096)
|
data/test/tc_rr-txt.rb
CHANGED
data/test/tc_rr-unknown.rb
CHANGED
@@ -16,8 +16,10 @@
|
|
16
16
|
|
17
17
|
require_relative 'spec_helper'
|
18
18
|
|
19
|
-
include Dnsruby
|
20
19
|
class TestRrUnknown < Minitest::Test
|
20
|
+
|
21
|
+
include Dnsruby
|
22
|
+
|
21
23
|
def test_RrUnknown
|
22
24
|
assert_equal(10226, Types::typesbyname('TYPE10226'), 'typesbyname(TYPE10226) returns 10226')
|
23
25
|
assert_equal('TYPE10226', Types::typesbyval(10226), 'typesbyval(10226) returns TYPE10226')
|
data/test/tc_rr.rb
CHANGED
@@ -16,8 +16,10 @@
|
|
16
16
|
|
17
17
|
require_relative 'spec_helper'
|
18
18
|
|
19
|
-
include Dnsruby
|
20
19
|
class TestRR < Minitest::Test
|
20
|
+
|
21
|
+
include Dnsruby
|
22
|
+
|
21
23
|
def test_rr
|
22
24
|
# ------------------------------------------------------------------------------
|
23
25
|
# Canned data.
|
@@ -178,6 +180,18 @@ class TestRR < Minitest::Test
|
|
178
180
|
:preference => 10,
|
179
181
|
:exchange => 'kx-exchange.example.com',
|
180
182
|
},
|
183
|
+
{ # [26]
|
184
|
+
:type => Types.APL,
|
185
|
+
:prefixes => '1:10.0.0.0/8 !1:172.16.0.0/12 1:192.168.0.0/16 !1:192.168.0.0/24',
|
186
|
+
},
|
187
|
+
{ # [27]
|
188
|
+
:type => Types.APL,
|
189
|
+
:prefixes => '!2:fe80::/10 2:2001:db8::/32 2:2001:db8::/64',
|
190
|
+
},
|
191
|
+
{ # [28]
|
192
|
+
:type => Types.APL,
|
193
|
+
:prefixes => '1:0.0.0.0/0 1:255.255.255.255/32 2:::/0 2:::1/128',
|
194
|
+
}
|
181
195
|
]
|
182
196
|
|
183
197
|
|
data/test/tc_single_resolver.rb
CHANGED
@@ -16,8 +16,10 @@
|
|
16
16
|
|
17
17
|
require_relative 'spec_helper'
|
18
18
|
|
19
|
-
include Dnsruby
|
20
19
|
class TestSingleResolver < Minitest::Test
|
20
|
+
|
21
|
+
include Dnsruby
|
22
|
+
|
21
23
|
Thread::abort_on_exception = true
|
22
24
|
# Dnsruby.log.level=Logger::DEBUG
|
23
25
|
|
@@ -109,6 +111,7 @@ class TestSingleResolver < Minitest::Test
|
|
109
111
|
udps.bind("127.0.0.1", 0)
|
110
112
|
port = *udps.addr.values_at(3, 1)
|
111
113
|
res = SingleResolver.new("127.0.0.1")
|
114
|
+
res.dnssec = true
|
112
115
|
res.port = port
|
113
116
|
res.packet_timeout=1
|
114
117
|
q = Queue.new
|
data/test/tc_soak.rb
CHANGED
@@ -20,7 +20,6 @@ require_relative 'spec_helper'
|
|
20
20
|
require_relative 'tc_soak_base'
|
21
21
|
require_relative 'test_dnsserver'
|
22
22
|
|
23
|
-
include Dnsruby
|
24
23
|
|
25
24
|
# This class tries to soak test the Dnsruby library.
|
26
25
|
# It can't do this very well, owing to the small number of sockets allowed to be open simultaneously.
|
@@ -30,6 +29,8 @@ include Dnsruby
|
|
30
29
|
|
31
30
|
class MyServer < RubyDNS::Server
|
32
31
|
|
32
|
+
include Dnsruby
|
33
|
+
|
33
34
|
IP = "127.0.0.1"
|
34
35
|
PORT = 53927
|
35
36
|
|
data/test/tc_soak_base.rb
CHANGED
data/test/tc_sshfp.rb
CHANGED
@@ -17,8 +17,10 @@
|
|
17
17
|
|
18
18
|
require_relative 'spec_helper'
|
19
19
|
|
20
|
-
include Dnsruby
|
21
20
|
class TestSSHFP < Minitest::Test
|
21
|
+
|
22
|
+
include Dnsruby
|
23
|
+
|
22
24
|
def test_sshfp
|
23
25
|
txt = "apt-blade6.nominet.org.uk. 85826 IN SSHFP 1 1 6D4CF7C68E3A959990855099E15D6E0D4DEA4FFF"
|
24
26
|
sshfp = RR.create(txt)
|
data/test/tc_tlsa.rb
ADDED
@@ -0,0 +1,191 @@
|
|
1
|
+
require_relative 'spec_helper'
|
2
|
+
|
3
|
+
require 'openssl'
|
4
|
+
require 'digest'
|
5
|
+
|
6
|
+
class TLSATest < Minitest::Test
|
7
|
+
include Dnsruby
|
8
|
+
|
9
|
+
INPUT = ['_443._tcp.example.jp. IN TLSA 3 0 1 ( 6609173804b9e31895f550db027ef7c7fa6f1bc9326c99371b61f1ba5 '\
|
10
|
+
'cb3595d )',
|
11
|
+
'_443._tcp.example.jp. IN TLSA 255 255 255 ( 6609173804b9e31895f550db027ef7c7fa6f1bc9326c99371b61f1ba5 '\
|
12
|
+
'cb3595d )',
|
13
|
+
'_443._tcp.data.iana.org. IN TLSA 3 0 0 ( 308206833082056ba003020102021009cabbe2191c8f569dd4b6dd250 '\
|
14
|
+
'f21d8300d06092a864886f70d01010b05003070310b30090603550406 '\
|
15
|
+
'1302555331153013060355040a130c446967694365727420496e63311 '\
|
16
|
+
'93017060355040b13107777772e64696769636572742e636f6d312f30 '\
|
17
|
+
'2d0603550403132644696769436572742053484132204869676820417 '\
|
18
|
+
'3737572616e636520536572766572204341301e170d31343130323730 '\
|
19
|
+
'30303030305a170d3138303130333132303030305a3081a3310b30090 '\
|
20
|
+
'60355040613025553311330110603550408130a43616c69666f726e69 '\
|
21
|
+
'61311430120603550407130b4c6f7320416e67656c6573313c303a060 '\
|
22
|
+
'355040a1333496e7465726e657420436f72706f726174696f6e20666f '\
|
23
|
+
'722041737369676e6564204e616d657320616e64204e756d626572733 '\
|
24
|
+
'1163014060355040b130d4954204f7065726174696f6e733113301106 '\
|
25
|
+
'035504030c0a2a2e69616e612e6f726730820222300d06092a864886f '\
|
26
|
+
'70d01010105000382020f003082020a02820201009dbdfddeb5cae53a '\
|
27
|
+
'559747e2fda63728e4aba60f18b79a69f03310bf0164e5ee7db6b15bf '\
|
28
|
+
'56df23fddbae6a1bb38449b8c883f18102bbd8bb655ac0e2dac2ee3ed '\
|
29
|
+
'5cf4315868d2c598068284854b24894dcd4bd37811f0ad3a282cd4b4e '\
|
30
|
+
'599ffd07d8d2d3f2478554f81020b320ee12f44948e2ea1edbc990b83 '\
|
31
|
+
'0ca5cca6b4a839fb27b51850c9847eac74f26609eb24365b9751fb1c3 '\
|
32
|
+
'208f56913bacbcae49201347c78b7e54a9d99979404c37f00fb65db84 '\
|
33
|
+
'9fd75e3a68770c30f2abe65b33256fb59b450050b00d8139d4d80d36f '\
|
34
|
+
'7bc46daf303e48f0f0791b2fdd72ec60b2cb3ad533c3f288c9c194e49 '\
|
35
|
+
'337a69c496731f086d4f1f9825900713e2a551d05cb6057567850d91e '\
|
36
|
+
'6001c4ce27176f0957873a95b880acbec19e7bd9bcf1286d0452b7378 '\
|
37
|
+
'9c41905dd470971cd73aea52c77b080cd779af58234f337225c26f87a '\
|
38
|
+
'8c13e2a65e9dd4e03a5b41d7e06b3353f38129b2327a531ec9627a21d '\
|
39
|
+
'c423733aa029d4989448ba3322891c1a5690ddf2d25c8ec8aaa894b14 '\
|
40
|
+
'aa92130c6b6d969a21ff671b60c4c923a94a93ea1dd0492c93393ca6e '\
|
41
|
+
'dd61f33ca77e9208d01d6bd15107662ec088733df4c876a7e1608b829 '\
|
42
|
+
'73a0f7592e84ed15579d181e79024ae8a7e4b9f0078eb2005b23f9d09 '\
|
43
|
+
'a1df1bbc7de2a5a6085a3646d9fadb0e9da273a5f403cdd42831ce6f0 '\
|
44
|
+
'ca46889585602bb8bc36bb3be861ff6d1a62e350203010001a38201e3 '\
|
45
|
+
'308201df301f0603551d230418301680145168ff90af0207753cccd96 '\
|
46
|
+
'56462a212b859723b301d0603551d0e04160414c7d0acef898b20e4b9 '\
|
47
|
+
'14668933032394f6bf3a61301f0603551d1104183016820a2a2e69616 '\
|
48
|
+
'e612e6f7267820869616e612e6f7267300e0603551d0f0101ff040403 '\
|
49
|
+
'0205a0301d0603551d250416301406082b0601050507030106082b060 '\
|
50
|
+
'1050507030230750603551d1f046e306c3034a032a030862e68747470 '\
|
51
|
+
'3a2f2f63726c332e64696769636572742e636f6d2f736861322d68612 '\
|
52
|
+
'd7365727665722d67332e63726c3034a032a030862e687474703a2f2f '\
|
53
|
+
'63726c342e64696769636572742e636f6d2f736861322d68612d73657 '\
|
54
|
+
'27665722d67332e63726c30420603551d20043b303930370609608648 '\
|
55
|
+
'0186fd6c0101302a302806082b06010505070201161c68747470733a2 '\
|
56
|
+
'f2f7777772e64696769636572742e636f6d2f43505330818306082b06 '\
|
57
|
+
'01050507010104773075302406082b060105050730018618687474703 '\
|
58
|
+
'a2f2f6f6373702e64696769636572742e636f6d304d06082b06010505 '\
|
59
|
+
'0730028641687474703a2f2f636163657274732e64696769636572742 '\
|
60
|
+
'e636f6d2f446967694365727453484132486967684173737572616e63 '\
|
61
|
+
'6553657276657243412e637274300c0603551d130101ff04023000300 '\
|
62
|
+
'd06092a864886f70d01010b0500038201010070314c38e7c02fd80810 '\
|
63
|
+
'500b9df6dae85de9b23e29fbd68bfdb5f23411c89acfaf9ae05af9123 '\
|
64
|
+
'a8aa6bce6954a4e68dc7cfc480a65d76f229c4bd5f5674b0c9ac6d06a '\
|
65
|
+
'37a1a1c145c3956120b8efe67c887ab4ff7d6aa950ff3698f27c4a19d '\
|
66
|
+
'59d93a39aca5a7b6d6c75e34974e50f5a590005b3cb665ddbd7074f9f '\
|
67
|
+
'cbcbf9c50228d5e25596b64ada160b48f77a93aaced22617bfe005e00 '\
|
68
|
+
'fe20a532a0adcb818c878dc5d6649277777ca1a814e21d0b53308af40 '\
|
69
|
+
'78be4554715e4ce4828b012f25ffa13a6ceb30d20a75deba8a344e41d '\
|
70
|
+
'627fa638feff38a3063a0187519b39b053f7134d9cd83e6091accf5d2 '\
|
71
|
+
'e3a05edfa1dfbe181a87ad86ba24fe6b97fe )',
|
72
|
+
'_443._tcp.data.iana.org. IN TLSA 3 0 1 ( 2760bc55bbb8cf398e4c90da21018b2eaafc9e375f7428cf0708e7c88 '\
|
73
|
+
'8261b49',
|
74
|
+
'_443._tcp.data.iana.org. IN TLSA 3 0 2 ( e6f38e78b1c9f8e0969e81c555e2770eeccb3f120986558adfb2c48aa '\
|
75
|
+
'dc6f85d3596f0cc7362a6a6cda7b6dea222a968fef5aeeaf6d334c8b9 '\
|
76
|
+
'725543f27683db )',
|
77
|
+
'_443._tcp.data.iana.org. IN TLSA 3 1 0 (30820222300d06092a864886f70d01010105000382020f003082020a0 '\
|
78
|
+
'2820201009dbdfddeb5cae53a559747e2fda63728e4aba60f18b79a69 '\
|
79
|
+
'f03310bf0164e5ee7db6b15bf56df23fddbae6a1bb38449b8c883f181 '\
|
80
|
+
'02bbd8bb655ac0e2dac2ee3ed5cf4315868d2c598068284854b24894d '\
|
81
|
+
'cd4bd37811f0ad3a282cd4b4e599ffd07d8d2d3f2478554f81020b320 '\
|
82
|
+
'ee12f44948e2ea1edbc990b830ca5cca6b4a839fb27b51850c9847eac '\
|
83
|
+
'74f26609eb24365b9751fb1c3208f56913bacbcae49201347c78b7e54 '\
|
84
|
+
'a9d99979404c37f00fb65db849fd75e3a68770c30f2abe65b33256fb5 '\
|
85
|
+
'9b450050b00d8139d4d80d36f7bc46daf303e48f0f0791b2fdd72ec60 '\
|
86
|
+
'b2cb3ad533c3f288c9c194e49337a69c496731f086d4f1f9825900713 '\
|
87
|
+
'e2a551d05cb6057567850d91e6001c4ce27176f0957873a95b880acbe '\
|
88
|
+
'c19e7bd9bcf1286d0452b73789c41905dd470971cd73aea52c77b080c '\
|
89
|
+
'd779af58234f337225c26f87a8c13e2a65e9dd4e03a5b41d7e06b3353 '\
|
90
|
+
'f38129b2327a531ec9627a21dc423733aa029d4989448ba3322891c1a '\
|
91
|
+
'5690ddf2d25c8ec8aaa894b14aa92130c6b6d969a21ff671b60c4c923 '\
|
92
|
+
'a94a93ea1dd0492c93393ca6edd61f33ca77e9208d01d6bd15107662e '\
|
93
|
+
'c088733df4c876a7e1608b82973a0f7592e84ed15579d181e79024ae8 '\
|
94
|
+
'a7e4b9f0078eb2005b23f9d09a1df1bbc7de2a5a6085a3646d9fadb0e '\
|
95
|
+
'9da273a5f403cdd42831ce6f0ca46889585602bb8bc36bb3be861ff6d '\
|
96
|
+
'1a62e350203010001 )',
|
97
|
+
'_443._tcp.data.iana.org. IN TLSA 3 1 1 ( d56f85824b6ed2ab15b9040c20b574515d9a0ab415ca253b42cbc915a '\
|
98
|
+
'11de18d )',
|
99
|
+
'_443._tcp.data.iana.org. IN TLSA 3 1 2 ( ba8b1b6f74782cb681373c314cf7bf4d2468c6a9dee47909fae1381ca '\
|
100
|
+
'6447249c42cb2a4d6d808fa1486ba70b7c1bb70dd76657a281441110b '\
|
101
|
+
'b4043007ee5ce3 )'
|
102
|
+
].freeze
|
103
|
+
CERT = "-----BEGIN CERTIFICATE-----
|
104
|
+
MIIGgzCCBWugAwIBAgIQCcq74hkcj1ad1LbdJQ8h2DANBgkqhkiG9w0BAQsFADBw
|
105
|
+
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
106
|
+
d3cuZGlnaWNlcnQuY29tMS8wLQYDVQQDEyZEaWdpQ2VydCBTSEEyIEhpZ2ggQXNz
|
107
|
+
dXJhbmNlIFNlcnZlciBDQTAeFw0xNDEwMjcwMDAwMDBaFw0xODAxMDMxMjAwMDBa
|
108
|
+
MIGjMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxML
|
109
|
+
TG9zIEFuZ2VsZXMxPDA6BgNVBAoTM0ludGVybmV0IENvcnBvcmF0aW9uIGZvciBB
|
110
|
+
c3NpZ25lZCBOYW1lcyBhbmQgTnVtYmVyczEWMBQGA1UECxMNSVQgT3BlcmF0aW9u
|
111
|
+
czETMBEGA1UEAwwKKi5pYW5hLm9yZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
|
112
|
+
AgoCggIBAJ29/d61yuU6VZdH4v2mNyjkq6YPGLeaafAzEL8BZOXufbaxW/Vt8j/d
|
113
|
+
uuahuzhEm4yIPxgQK72LtlWsDi2sLuPtXPQxWGjSxZgGgoSFSySJTc1L03gR8K06
|
114
|
+
KCzUtOWZ/9B9jS0/JHhVT4ECCzIO4S9ElI4uoe28mQuDDKXMprSoOfsntRhQyYR+
|
115
|
+
rHTyZgnrJDZbl1H7HDII9WkTusvK5JIBNHx4t+VKnZmXlATDfwD7ZduEn9deOmh3
|
116
|
+
DDDyq+ZbMyVvtZtFAFCwDYE51NgNNve8RtrzA+SPDweRsv3XLsYLLLOtUzw/KIyc
|
117
|
+
GU5JM3ppxJZzHwhtTx+YJZAHE+KlUdBctgV1Z4UNkeYAHEzicXbwlXhzqVuICsvs
|
118
|
+
Gee9m88ShtBFK3N4nEGQXdRwlxzXOupSx3sIDNd5r1gjTzNyJcJvh6jBPipl6d1O
|
119
|
+
A6W0HX4GszU/OBKbIyelMeyWJ6IdxCNzOqAp1JiUSLozIokcGlaQ3fLSXI7IqqiU
|
120
|
+
sUqpITDGttlpoh/2cbYMTJI6lKk+od0Ekskzk8pu3WHzPKd+kgjQHWvRUQdmLsCI
|
121
|
+
cz30yHan4WCLgpc6D3WS6E7RVXnRgeeQJK6KfkufAHjrIAWyP50Jod8bvH3ipaYI
|
122
|
+
WjZG2frbDp2ic6X0A83UKDHObwykaIlYVgK7i8Nrs76GH/bRpi41AgMBAAGjggHj
|
123
|
+
MIIB3zAfBgNVHSMEGDAWgBRRaP+QrwIHdTzM2WVkYqISuFlyOzAdBgNVHQ4EFgQU
|
124
|
+
x9Cs74mLIOS5FGaJMwMjlPa/OmEwHwYDVR0RBBgwFoIKKi5pYW5hLm9yZ4IIaWFu
|
125
|
+
YS5vcmcwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF
|
126
|
+
BQcDAjB1BgNVHR8EbjBsMDSgMqAwhi5odHRwOi8vY3JsMy5kaWdpY2VydC5jb20v
|
127
|
+
c2hhMi1oYS1zZXJ2ZXItZzMuY3JsMDSgMqAwhi5odHRwOi8vY3JsNC5kaWdpY2Vy
|
128
|
+
dC5jb20vc2hhMi1oYS1zZXJ2ZXItZzMuY3JsMEIGA1UdIAQ7MDkwNwYJYIZIAYb9
|
129
|
+
bAEBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMw
|
130
|
+
gYMGCCsGAQUFBwEBBHcwdTAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNl
|
131
|
+
cnQuY29tME0GCCsGAQUFBzAChkFodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20v
|
132
|
+
RGlnaUNlcnRTSEEySGlnaEFzc3VyYW5jZVNlcnZlckNBLmNydDAMBgNVHRMBAf8E
|
133
|
+
AjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBwMUw458Av2AgQUAud9troXemyPin71ov9
|
134
|
+
tfI0Eciaz6+a4Fr5EjqKprzmlUpOaNx8/EgKZddvIpxL1fVnSwyaxtBqN6GhwUXD
|
135
|
+
lWEguO/mfIh6tP99aqlQ/zaY8nxKGdWdk6Oaylp7bWx140l05Q9aWQAFs8tmXdvX
|
136
|
+
B0+fy8v5xQIo1eJVlrZK2hYLSPd6k6rO0iYXv+AF4A/iClMqCty4GMh43F1mSSd3
|
137
|
+
d8oagU4h0LUzCK9AeL5FVHFeTOSCiwEvJf+hOmzrMNIKdd66ijROQdYn+mOP7/OK
|
138
|
+
MGOgGHUZs5sFP3E02c2D5gkazPXS46Be36Hfvhgah62GuiT+a5f+
|
139
|
+
-----END CERTIFICATE-----".freeze
|
140
|
+
|
141
|
+
def test_tlsa_from_string
|
142
|
+
t1 = Dnsruby::RR.create(INPUT[0])
|
143
|
+
assert_equal(3, t1.usage)
|
144
|
+
assert_equal(0, t1.selector)
|
145
|
+
assert_equal(1, t1.matching_type)
|
146
|
+
assert_equal('6609173804b9e31895f550db027ef7c7fa6f1bc9326c99371b61f1ba5 cb3595d', t1.data)
|
147
|
+
|
148
|
+
t2 = Dnsruby::RR.create(INPUT[1])
|
149
|
+
assert_equal(255, t2.usage)
|
150
|
+
assert_equal(255, t2.selector)
|
151
|
+
assert_equal(255, t2.matching_type)
|
152
|
+
assert_equal('6609173804b9e31895f550db027ef7c7fa6f1bc9326c99371b61f1ba5 cb3595d', t2.data)
|
153
|
+
end
|
154
|
+
|
155
|
+
def test_tlsa_from_data
|
156
|
+
t1 = Dnsruby::RR.create(INPUT[0])
|
157
|
+
m = Dnsruby::Message.new
|
158
|
+
m.add_additional(t1)
|
159
|
+
data = m.encode
|
160
|
+
m2 = Dnsruby::Message.decode(data)
|
161
|
+
t3 = m2.additional[0]
|
162
|
+
assert_equal(t1.to_s, t3.to_s)
|
163
|
+
end
|
164
|
+
|
165
|
+
def test_tlsa_verify_rsa_cert
|
166
|
+
cert = OpenSSL::X509::Certificate.new(CERT)
|
167
|
+
der = cert.to_der
|
168
|
+
t4 = Dnsruby::RR.create(INPUT[2])
|
169
|
+
assert_equal(t4.databin, der)
|
170
|
+
|
171
|
+
t5 = Dnsruby::RR.create(INPUT[3])
|
172
|
+
assert_equal(t5.databin, OpenSSL::Digest::SHA256.digest(der))
|
173
|
+
|
174
|
+
t6 = Dnsruby::RR.create(INPUT[4])
|
175
|
+
assert_equal(t6.databin, OpenSSL::Digest::SHA512.digest(der))
|
176
|
+
end
|
177
|
+
|
178
|
+
def test_tlsa_verify_rsa_pkey
|
179
|
+
cert = OpenSSL::X509::Certificate.new(CERT)
|
180
|
+
pkey = cert.public_key.to_der
|
181
|
+
|
182
|
+
t7 = Dnsruby::RR.create(INPUT[5])
|
183
|
+
assert_equal(t7.databin, pkey)
|
184
|
+
|
185
|
+
t8 = Dnsruby::RR.create(INPUT[6])
|
186
|
+
assert_equal(t8.databin, OpenSSL::Digest::SHA256.digest(pkey))
|
187
|
+
|
188
|
+
t9 = Dnsruby::RR.create(INPUT[7])
|
189
|
+
assert_equal(t9.databin, OpenSSL::Digest::SHA512.digest(pkey))
|
190
|
+
end
|
191
|
+
end
|
data/test/tc_tsig.rb
CHANGED
@@ -17,8 +17,10 @@
|
|
17
17
|
require_relative 'spec_helper'
|
18
18
|
|
19
19
|
require "digest/md5"
|
20
|
-
include Dnsruby
|
21
20
|
class TestTSig < Minitest::Test
|
21
|
+
|
22
|
+
include Dnsruby
|
23
|
+
|
22
24
|
KEY_NAME="rubytsig"
|
23
25
|
KEY = "8n6gugn4aJ7MazyNlMccGKH1WxD2B3UvN/O/RA6iBupO2/03u9CTa3Ewz3gBWTSBCH3crY4Kk+tigNdeJBAvrw=="
|
24
26
|
def is_empty(string)
|
data/test/tc_update.rb
CHANGED
@@ -16,8 +16,10 @@
|
|
16
16
|
|
17
17
|
require_relative 'spec_helper'
|
18
18
|
|
19
|
-
include Dnsruby
|
20
19
|
class TestUpdate < Minitest::Test
|
20
|
+
|
21
|
+
include Dnsruby
|
22
|
+
|
21
23
|
def is_empty(string)
|
22
24
|
return true if string == nil || string.length == 0
|
23
25
|
|
@@ -236,7 +238,8 @@ class TestUpdate < Minitest::Test
|
|
236
238
|
assert_equal(rr.ttl, 0, 'nxdomain - right ttl')
|
237
239
|
assert_equal(rr.klass.string, 'NONE', 'nxdomain - right class')
|
238
240
|
assert_equal(rr.type.string, 'CNAME', 'nxdomain - right type')
|
239
|
-
|
241
|
+
# assert_nil(rr.rdata, 'nxdomain - data empty')
|
242
|
+
assert(is_empty(rr.rdata), 'nxdomain - data empty')
|
240
243
|
end
|
241
244
|
|
242
245
|
def test_delete_specific_cname
|
@@ -262,7 +265,7 @@ class TestUpdate < Minitest::Test
|
|
262
265
|
assert_equal 0, rr.ttl, 'delete_cname - right ttl'
|
263
266
|
assert_equal 'ANY', rr.klass.string, 'delete_cname - right class'
|
264
267
|
assert_equal 'CNAME', rr.type.string, 'delete_cname - right type'
|
265
|
-
|
268
|
+
assert(is_empty(rr.rdata), 'delete_cname - right rdata')
|
266
269
|
end
|
267
270
|
|
268
271
|
def test_txt
|
data/test/tc_validator.rb
CHANGED
data/test/tc_zone_reader.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
|
2
2
|
require_relative 'spec_helper'
|
3
3
|
|
4
|
-
include Dnsruby
|
5
|
-
|
6
4
|
class ZoneReaderTest < Minitest::Test
|
7
5
|
|
6
|
+
include Dnsruby
|
7
|
+
|
8
8
|
def setup
|
9
9
|
@zone_data = <<ZONEDATA
|
10
10
|
$TTL 3600
|
@@ -25,6 +25,7 @@ www IN A 192.0.2.10
|
|
25
25
|
IN AAAA 2001:DB8::10
|
26
26
|
ftp.example.com. IN CNAME www
|
27
27
|
db IN CNAME www.example.com.
|
28
|
+
foo.example.com. IN CAA 0 issue "ca.example.net; account=230123"
|
28
29
|
ZONEDATA
|
29
30
|
|
30
31
|
@zone_file = Tempfile.new('zonefile')
|
@@ -49,6 +50,7 @@ ZONEDATA
|
|
49
50
|
assert_equal("2001:DB8::10", zone[6].rdata)
|
50
51
|
assert_equal("www.example.com.", zone[7].rdata)
|
51
52
|
assert_equal("www.example.com.", zone[8].rdata)
|
53
|
+
assert_equal('0 issue "ca.example.net; account=230123"', zone[9].rdata)
|
52
54
|
end
|
53
55
|
|
54
56
|
def test_process_file_with_filename
|
data/test/ts_offline.rb
CHANGED
data/test/ts_online.rb
CHANGED