dnsruby 1.61.9 → 1.70.0
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/.github/workflows/ci.yml +1 -1
- data/RELEASE_NOTES.md +6 -0
- data/Rakefile +0 -1
- data/dnsruby.gemspec +7 -6
- data/lib/dnsruby/resource/DNSKEY.rb +31 -25
- data/lib/dnsruby/resource/DS.rb +2 -5
- data/lib/dnsruby/resource/RR.rb +1 -1
- data/lib/dnsruby/version.rb +1 -1
- data/test/tc_res_file.rb +0 -6
- data/test/ts_offline.rb +8 -8
- metadata +19 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4dc686d217ec8e77f7abacc6b43390f892920c36a99f88f30f10dd55945b262b
|
4
|
+
data.tar.gz: 4763e50a42d153c3921c40cdadd273259fa882007da3dbc43b2098d50d895be1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0550b91ea605ae46381df4eb119b7457cef365f0981b90185479b5e490fede56fd72323b9c98b4e4f886bf16925fc6b268c6d0f753196d5cb6f1daaea05499e1
|
7
|
+
data.tar.gz: 3a16635ca644a6d4654bdaa9d83c7c5e0bba69289ffa59e2ad69994099b03b2e15bc2eeaf521200104d860e5127a1066bb41e39f5492c8ee010438a9c81c9a93
|
data/.github/workflows/ci.yml
CHANGED
data/RELEASE_NOTES.md
CHANGED
data/Rakefile
CHANGED
data/dnsruby.gemspec
CHANGED
@@ -36,15 +36,16 @@ DNSSEC NSEC3 support.'
|
|
36
36
|
}
|
37
37
|
|
38
38
|
s.add_development_dependency 'rake', '>= 13.0.6'
|
39
|
-
s.add_development_dependency 'minitest', '~> 5.
|
40
|
-
s.add_development_dependency 'rubydns', '
|
41
|
-
s.add_development_dependency 'nio4r', '
|
39
|
+
s.add_development_dependency 'minitest', '~> 5.18.0'
|
40
|
+
s.add_development_dependency 'rubydns', '>= 2.0.2'
|
41
|
+
s.add_development_dependency 'nio4r', '>= 2.5.8'
|
42
42
|
s.add_development_dependency 'minitest-display', '>= 0.3.1'
|
43
|
-
s.add_development_dependency('yard', '
|
43
|
+
s.add_development_dependency('yard', '>= 0.9')
|
44
|
+
# s.add_development_dependency('io-event', '>=1.1.7')
|
44
45
|
|
45
46
|
if RUBY_VERSION >= "1.9.3"
|
46
|
-
s.add_development_dependency 'coveralls', '~> 0.
|
47
|
+
s.add_development_dependency 'coveralls', '~> 0.8.23'
|
47
48
|
end
|
48
49
|
|
49
|
-
s.add_runtime_dependency 'simpleidn', '~> 0.1'
|
50
|
+
s.add_runtime_dependency 'simpleidn', '~> 0.2.1'
|
50
51
|
end
|
@@ -294,11 +294,11 @@ module Dnsruby
|
|
294
294
|
begin
|
295
295
|
key_text.gsub!(/\n/, "")
|
296
296
|
key_text.gsub!(/ /, "")
|
297
|
-
|
298
|
-
@key=key_text.unpack("m*")[0]
|
297
|
+
@key=Base64.decode64(key_text)
|
299
298
|
public_key
|
300
299
|
get_new_key_tag
|
301
|
-
rescue Exception
|
300
|
+
rescue Exception => e
|
301
|
+
Dnsruby.log.error(e)
|
302
302
|
raise ArgumentError.new("Key #{key_text} invalid")
|
303
303
|
end
|
304
304
|
end
|
@@ -341,13 +341,12 @@ module Dnsruby
|
|
341
341
|
modulus = RR::get_num(@key[pos, @key.length])
|
342
342
|
@key_length = (@key.length - pos) * 8
|
343
343
|
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
end
|
344
|
+
data_sequence = OpenSSL::ASN1::Sequence([
|
345
|
+
OpenSSL::ASN1::Integer(modulus),
|
346
|
+
OpenSSL::ASN1::Integer(exponent)
|
347
|
+
])
|
348
|
+
asn1 = OpenSSL::ASN1::Sequence(data_sequence)
|
349
|
+
pkey = OpenSSL::PKey::RSA.new(asn1.to_der)
|
351
350
|
return pkey
|
352
351
|
end
|
353
352
|
|
@@ -366,18 +365,25 @@ module Dnsruby
|
|
366
365
|
pos += pgy_len
|
367
366
|
@key_length = (pgy_len * 8)
|
368
367
|
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
368
|
+
asn1 = OpenSSL::ASN1::Sequence.new(
|
369
|
+
[
|
370
|
+
OpenSSL::ASN1::Sequence.new(
|
371
|
+
[
|
372
|
+
OpenSSL::ASN1::ObjectId.new('DSA'),
|
373
|
+
OpenSSL::ASN1::Sequence.new(
|
374
|
+
[
|
375
|
+
OpenSSL::ASN1::Integer.new(p),
|
376
|
+
OpenSSL::ASN1::Integer.new(q),
|
377
|
+
OpenSSL::ASN1::Integer.new(g)
|
378
|
+
]
|
379
|
+
)
|
380
|
+
]
|
381
|
+
),
|
382
|
+
OpenSSL::ASN1::BitString.new(OpenSSL::ASN1::Integer.new(y).to_der)
|
383
|
+
]
|
384
|
+
)
|
385
|
+
|
386
|
+
pkey = OpenSSL::PKey::DSA.new(asn1.to_der)
|
381
387
|
end
|
382
388
|
|
383
389
|
# RFC6605, section 4
|
@@ -387,13 +393,13 @@ module Dnsruby
|
|
387
393
|
def ec_key(curve = 'prime256v1')
|
388
394
|
group = OpenSSL::PKey::EC::Group.new(curve)
|
389
395
|
pkey = OpenSSL::PKey::EC.new(group)
|
390
|
-
|
391
396
|
# DNSSEC pub does not have first octet that determines whether it's uncompressed
|
392
397
|
# or compressed form, but it's required by OpenSSL to parse EC point correctly
|
393
|
-
|
394
|
-
pkey
|
398
|
+
public_key_with_prefix = "\x04" + @key.to_s
|
399
|
+
pkey = OpenSSL::PKey::EC.new(group, public_key_with_prefix)
|
395
400
|
|
396
401
|
pkey
|
402
|
+
|
397
403
|
end
|
398
404
|
end
|
399
405
|
end
|
data/lib/dnsruby/resource/DS.rb
CHANGED
data/lib/dnsruby/resource/RR.rb
CHANGED
@@ -350,7 +350,7 @@ class RR
|
|
350
350
|
end
|
351
351
|
|
352
352
|
def hash # :nodoc:
|
353
|
-
vars = (self.instance_variables - [:@ttl]).sort
|
353
|
+
vars = (self.instance_variables - [:@ttl, :@rdata]).sort
|
354
354
|
vars.inject(0) do |hash_value, var_name|
|
355
355
|
hash_value ^ self.instance_variable_get(var_name).hash
|
356
356
|
end
|
data/lib/dnsruby/version.rb
CHANGED
data/test/tc_res_file.rb
CHANGED
@@ -21,12 +21,6 @@ class TestAResolverFile < Minitest::Test
|
|
21
21
|
Dnsruby::Config.reset
|
22
22
|
end
|
23
23
|
|
24
|
-
# def test_bad_resFile
|
25
|
-
# res = Dnsruby::DNS.new("test/resolv.conf.bad")
|
26
|
-
# res.getaddress("bbc.co.uk")
|
27
|
-
# assert_nil res
|
28
|
-
# end
|
29
|
-
|
30
24
|
def test_resFile
|
31
25
|
res = Dnsruby::DNS.new("test/resolv.conf")
|
32
26
|
|
data/test/ts_offline.rb
CHANGED
@@ -62,14 +62,14 @@ TESTS.each { |test| require_relative "tc_#{test}.rb" }
|
|
62
62
|
|
63
63
|
def have_open_ssl?
|
64
64
|
have_open_ssl = true
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
65
|
+
begin
|
66
|
+
require "openssl"
|
67
|
+
OpenSSL::HMAC.digest(OpenSSL::Digest::MD5.new, "key", "data")
|
68
|
+
key = OpenSSL::PKey::RSA.new
|
69
|
+
key.e = 111
|
70
|
+
rescue
|
71
|
+
have_open_ssl = false
|
72
|
+
end
|
73
73
|
have_open_ssl
|
74
74
|
end
|
75
75
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dnsruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.70.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Dalitz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-04-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -30,42 +30,42 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 5.
|
33
|
+
version: 5.18.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 5.
|
40
|
+
version: 5.18.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rubydns
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 2.0.
|
47
|
+
version: 2.0.2
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 2.0.
|
54
|
+
version: 2.0.2
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: nio4r
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 2.5.8
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 2.5.8
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: minitest-display
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,14 +84,14 @@ dependencies:
|
|
84
84
|
name: yard
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0.9'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0.9'
|
97
97
|
- !ruby/object:Gem::Dependency
|
@@ -100,28 +100,28 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
103
|
+
version: 0.8.23
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
110
|
+
version: 0.8.23
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: simpleidn
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
117
|
+
version: 0.2.1
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
124
|
+
version: 0.2.1
|
125
125
|
description: |-
|
126
126
|
Dnsruby is a pure Ruby DNS client library which implements a
|
127
127
|
stub resolver. It aims to comply with all DNS RFCs, including
|
@@ -335,7 +335,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
335
335
|
- !ruby/object:Gem::Version
|
336
336
|
version: '0'
|
337
337
|
requirements: []
|
338
|
-
rubygems_version: 3.
|
338
|
+
rubygems_version: 3.3.7
|
339
339
|
signing_key:
|
340
340
|
specification_version: 4
|
341
341
|
summary: Ruby DNS(SEC) implementation
|