dnsruby 1.61.9 → 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: 7f1d44662973a06d7ff5296b1c49530b10e58a08ca5df87c893bb25e06e4bf7c
4
- data.tar.gz: b82b2920d6d24ff8907d2e9b776a53f7034c11610335626ea31ee1485ffb6dde
3
+ metadata.gz: 4dc686d217ec8e77f7abacc6b43390f892920c36a99f88f30f10dd55945b262b
4
+ data.tar.gz: 4763e50a42d153c3921c40cdadd273259fa882007da3dbc43b2098d50d895be1
5
5
  SHA512:
6
- metadata.gz: 02f7ac0626839e3faf33f72a2b98e620ca1ac9bb5d11c06299b403c79e0552c5b0160b40978ead7aba27d8801b2b339a1cdeb856772c0241883f06b68a42beb5
7
- data.tar.gz: bdc9cf4c7e89b11fb67871b480957f3f28bd29e472438490e918041f9e1d2682fa434ce6d66dff283843e7c67fc2f002482175e2a7c6b6a05106785b6f7797cb
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', '3.1' ] # , 'ruby-head' ]
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,11 @@
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
+
3
9
  ## v.1.61.9
4
10
 
5
11
  * Remove unused net-ftp dependency
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/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.14.4'
40
- s.add_development_dependency 'rubydns', '~> 2.0.1'
41
- s.add_development_dependency 'nio4r', '~> 2.0'
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', '~> 0.9')
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
@@ -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.9'
2
+ VERSION = '1.70.0'
3
3
  end
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
- # 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.9
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: 2022-01-12 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
@@ -30,42 +30,42 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 5.14.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.14.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
@@ -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: '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.30
338
+ rubygems_version: 3.3.7
339
339
  signing_key:
340
340
  specification_version: 4
341
341
  summary: Ruby DNS(SEC) implementation