dnsruby 1.60.0 → 1.60.1
Sign up to get free protection for your applications and to get access to all the features.
- 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