dnsruby 1.61.7 → 1.70.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d267eba6aca51b53799b98294feea8a6394293e86d27b0054daf81f5da532f8e
4
- data.tar.gz: 5ed7a4a3c9c91407c79e7a2470546430ab13df880a22a8ed0d002d4bafb3cc3b
3
+ metadata.gz: 4dc686d217ec8e77f7abacc6b43390f892920c36a99f88f30f10dd55945b262b
4
+ data.tar.gz: 4763e50a42d153c3921c40cdadd273259fa882007da3dbc43b2098d50d895be1
5
5
  SHA512:
6
- metadata.gz: 910c119b759313510f8fb2397ce48b9ac652a6d9c9e176d5eae93148a77664d7fe4b0b40a1c1c447beefcfe652807f6b1a7493314dd8dd71032e7ec2a56e7e99
7
- data.tar.gz: 539eec74d5805ac121cb9b23d881ddb4bc98c755f90d88b07eedf864fef376ccceca076bf0d3c3bb8bdc858ff629133862253bad48a00ca205c6ad819b8cc97f
6
+ metadata.gz: 0550b91ea605ae46381df4eb119b7457cef365f0981b90185479b5e490fede56fd72323b9c98b4e4f886bf16925fc6b268c6d0f753196d5cb6f1daaea05499e1
7
+ data.tar.gz: 3a16635ca644a6d4654bdaa9d83c7c5e0bba69289ffa59e2ad69994099b03b2e15bc2eeaf521200104d860e5127a1066bb41e39f5492c8ee010438a9c81c9a93
@@ -7,7 +7,7 @@ jobs:
7
7
  runs-on: ubuntu-latest
8
8
  strategy:
9
9
  matrix:
10
- ruby: [ '2.5', '2.6', '2.7', '3.0' ]
10
+ ruby: [ '2.6', '2.7', '3.0', '3.1', '3.2' ] # , 'ruby-head' ]
11
11
  name: Ruby ${{ matrix.ruby }} tests
12
12
  steps:
13
13
  - uses: actions/checkout@v2
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
@@ -33,4 +33,3 @@ create_task(:soak, 'test/tc_soak.rb')
33
33
  create_task(:message, 'test/tc_message.rb')
34
34
  create_task(:cache, 'test/tc_cache.rb')
35
35
  create_task(:pipe, 'test/tc_tcp_pipelining.rb')
36
- create_task(:resolv, 'test/tc_resolv.rb')
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', '>= 12.3.3'
39
- s.add_development_dependency 'minitest', '~> 5.4'
40
- s.add_development_dependency 'rubydns', '~> 2.0.1'
41
- s.add_development_dependency 'nio4r', '~> 2.0'
42
- s.add_development_dependency 'minitest-display', '>= 0.3.0'
43
- s.add_development_dependency('yard', '~> 0.9')
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.7'
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
-
@@ -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
- raise ArgumentError.new("Can't make sense of nameserver : #{server}, exception : #{e}")
303
+ raise ArgumentError.new("Can't make sense of nameserver : #{server}, exception : #{e}")
304
304
  return nil
305
305
  end
306
306
  end
@@ -14,7 +14,6 @@
14
14
  # limitations under the License.
15
15
  # ++
16
16
  require 'digest/sha2'
17
- require 'net/ftp'
18
17
  require 'dnsruby/key_cache'
19
18
  require 'dnsruby/single_verifier'
20
19
  module Dnsruby
@@ -294,11 +294,11 @@ module Dnsruby
294
294
  begin
295
295
  key_text.gsub!(/\n/, "")
296
296
  key_text.gsub!(/ /, "")
297
- # @key=Base64.decode64(key_text)
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
- pkey = OpenSSL::PKey::RSA.new
345
- begin
346
- pkey.set_key(modulus, exponent, nil) # use set_key, present in later versions of openssl gem
347
- rescue NoMethodError
348
- pkey.e = exponent # set_key not available in earlier versions, use this approach instead
349
- pkey.n = modulus
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
- pkey = OpenSSL::PKey::DSA.new
370
- begin
371
- pkey.set_pgq(p,g,q)
372
- pkey.set_key(y, nil) # use set_pgq and set_key, present in later versions of openssl gem
373
- rescue NoMethodError
374
- pkey.p = p # set_key not available in earlier versions, use this approach instead
375
- pkey.q = q
376
- pkey.g = g
377
- pkey.pub_key = y
378
- end
379
-
380
- pkey
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
- point_from_pub = "\x04" + @key.to_s # octet string, \x04 prefix determines uncompressed
394
- pkey.public_key = OpenSSL::PKey::EC::Point.new(group, point_from_pub)
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
@@ -14,11 +14,8 @@
14
14
  # limitations under the License.
15
15
  # ++
16
16
  require 'base64'
17
- begin
18
- require 'Digest/sha2'
19
- rescue LoadError
20
- require 'digest/sha2'
21
- end
17
+ require 'digest/sha2'
18
+
22
19
  module Dnsruby
23
20
  class RR
24
21
  # RFC4034, section 4
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Dnsruby
2
- VERSION = '1.61.7'
2
+ VERSION = '1.70.0'
3
3
  end
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
- # [SimpleCov::Formatter::HTMLFormatter, Coveralls::SimpleCov::Formatter])
15
- SimpleCov.formatter = Coveralls::SimpleCov::Formatter
16
- SimpleCov.start do
17
- add_filter 'test/'
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
- # 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
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.61.7
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: 2021-06-22 00:00:00.000000000 Z
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: 12.3.3
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: 12.3.3
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: '5.4'
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.4'
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.1
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.1
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: '2.0'
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: '2.0'
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.0
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.0
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: '0.7'
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: '0.7'
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: '0.1'
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: '0.1'
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.2.3
338
+ rubygems_version: 3.3.7
339
339
  signing_key:
340
340
  specification_version: 4
341
341
  summary: Ruby DNS(SEC) implementation