dnsruby 1.61.7 → 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 +15 -0
- data/Rakefile +0 -1
- data/demo/digdlv.rb +1 -0
- data/dnsruby.gemspec +9 -9
- data/lib/dnsruby/config.rb +1 -1
- data/lib/dnsruby/dnssec.rb +0 -1
- 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/spec_helper.rb +6 -6
- data/test/ts_offline.rb +8 -8
- metadata +23 -23
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
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Release Notes
|
|
2
2
|
|
|
3
|
+
## v.1.70.0
|
|
4
|
+
|
|
5
|
+
* OpenSSL 3 support
|
|
6
|
+
* Resource record hashes no longer include the rdata
|
|
7
|
+
* Removed requite to title-cased Digest - thanks jhawthron
|
|
8
|
+
|
|
9
|
+
## v.1.61.9
|
|
10
|
+
|
|
11
|
+
* Remove unused net-ftp dependency
|
|
12
|
+
|
|
13
|
+
## v.1.61.8
|
|
14
|
+
|
|
15
|
+
* Fix compatability with Ruby 3.1 - thanks @byroot Jean Boussier
|
|
16
|
+
* Get the digdlv demo to enable dnssec
|
|
17
|
+
|
|
3
18
|
## v1.61.7
|
|
4
19
|
|
|
5
20
|
* Fix namespace issue from v1.61.6
|
data/Rakefile
CHANGED
data/demo/digdlv.rb
CHANGED
|
@@ -53,6 +53,7 @@ unless (1..3).include?(ARGV.length)
|
|
|
53
53
|
end
|
|
54
54
|
|
|
55
55
|
resolver = Dnsruby::Recursor.new
|
|
56
|
+
resolver.dnssec = true
|
|
56
57
|
zone_transfer = Dnsruby::ZoneTransfer.new
|
|
57
58
|
|
|
58
59
|
dlv_key = Dnsruby::RR.create("dlv.isc.org. IN DNSKEY 257 3 5 BEAAAAPHMu/5onzrEE7z1egmhg/WPO0+juoZrW3euWEn4MxDCE1+lLy2 brhQv5rN32RKtMzX6Mj70jdzeND4XknW58dnJNPCxn8+jAGl2FZLK8t+ 1uq4W+nnA3qO2+DL+k6BD4mewMLbIYFwe0PG73Te9fZ2kJb56dhgMde5 ymX4BI/oQ+cAK50/xvJv00Frf8kw6ucMTwFlgPe+jnGxPPEmHAte/URk Y62ZfkLoBAADLHQ9IrS2tryAe7mbBZVcOwIeU/Rw/mRx/vwwMCTgNboM QKtUdvNXDrYJDSHZws3xiRXF1Rf+al9UmZfSav/4NWLKjHzpT59k/VSt TDN0YUuWrBNh")
|
data/dnsruby.gemspec
CHANGED
|
@@ -35,17 +35,17 @@ DNSSEC NSEC3 support.'
|
|
|
35
35
|
'source_code_uri' => 'https://github.com/alexdalitz/dnsruby',
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
s.add_development_dependency 'rake', '>=
|
|
39
|
-
s.add_development_dependency 'minitest', '~> 5.
|
|
40
|
-
s.add_development_dependency 'rubydns', '
|
|
41
|
-
s.add_development_dependency 'nio4r', '
|
|
42
|
-
s.add_development_dependency 'minitest-display', '>= 0.3.
|
|
43
|
-
s.add_development_dependency('yard', '
|
|
38
|
+
s.add_development_dependency 'rake', '>= 13.0.6'
|
|
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
|
+
s.add_development_dependency 'minitest-display', '>= 0.3.1'
|
|
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
|
|
51
|
-
|
data/lib/dnsruby/config.rb
CHANGED
|
@@ -300,7 +300,7 @@ module Dnsruby
|
|
|
300
300
|
end
|
|
301
301
|
rescue Exception => e
|
|
302
302
|
Dnsruby.log.error{"Can't make sense of nameserver : #{server}, exception : #{e}"}
|
|
303
|
-
|
|
303
|
+
raise ArgumentError.new("Can't make sense of nameserver : #{server}, exception : #{e}")
|
|
304
304
|
return nil
|
|
305
305
|
end
|
|
306
306
|
end
|
data/lib/dnsruby/dnssec.rb
CHANGED
|
@@ -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/spec_helper.rb
CHANGED
|
@@ -10,12 +10,12 @@ if ENV['RUN_EXTRA_TASK'] == 'TRUE'
|
|
|
10
10
|
|
|
11
11
|
require 'simplecov'
|
|
12
12
|
|
|
13
|
-
# SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new(
|
|
14
|
-
|
|
15
|
-
SimpleCov.formatter = Coveralls::SimpleCov::Formatter
|
|
16
|
-
SimpleCov.start do
|
|
17
|
-
|
|
18
|
-
end
|
|
13
|
+
# # SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new(
|
|
14
|
+
# # [SimpleCov::Formatter::HTMLFormatter, Coveralls::SimpleCov::Formatter])
|
|
15
|
+
# SimpleCov.formatter = Coveralls::SimpleCov::Formatter
|
|
16
|
+
# SimpleCov.start do
|
|
17
|
+
# add_filter 'test/'
|
|
18
|
+
# end
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
require 'minitest'
|
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
|
|
@@ -16,82 +16,82 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
19
|
+
version: 13.0.6
|
|
20
20
|
type: :development
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
26
|
+
version: 13.0.6
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: minitest
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
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:
|
|
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
|
|
72
72
|
requirements:
|
|
73
73
|
- - ">="
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: 0.3.
|
|
75
|
+
version: 0.3.1
|
|
76
76
|
type: :development
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
80
|
- - ">="
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: 0.3.
|
|
82
|
+
version: 0.3.1
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
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
|