net-ssh 7.1.0 → 7.3.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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/.github/FUNDING.yml +1 -0
  4. data/.github/workflows/ci.yml +10 -3
  5. data/.gitignore +2 -0
  6. data/.rubocop_todo.yml +2 -2
  7. data/CHANGES.txt +24 -0
  8. data/DEVELOPMENT.md +23 -0
  9. data/Dockerfile +4 -2
  10. data/Gemfile.norbnacl +12 -0
  11. data/README.md +24 -18
  12. data/Rakefile +51 -18
  13. data/docker-compose.yml +2 -0
  14. data/lib/net/ssh/authentication/ed25519.rb +2 -4
  15. data/lib/net/ssh/authentication/key_manager.rb +19 -2
  16. data/lib/net/ssh/authentication/methods/publickey.rb +1 -1
  17. data/lib/net/ssh/authentication/pub_key_fingerprint.rb +1 -1
  18. data/lib/net/ssh/authentication/session.rb +7 -0
  19. data/lib/net/ssh/buffered_io.rb +1 -1
  20. data/lib/net/ssh/known_hosts.rb +2 -3
  21. data/lib/net/ssh/transport/aes128_gcm.rb +40 -0
  22. data/lib/net/ssh/transport/aes256_gcm.rb +40 -0
  23. data/lib/net/ssh/transport/algorithms.rb +35 -6
  24. data/lib/net/ssh/transport/chacha20_poly1305_cipher.rb +117 -0
  25. data/lib/net/ssh/transport/chacha20_poly1305_cipher_loader.rb +17 -0
  26. data/lib/net/ssh/transport/cipher_factory.rb +28 -1
  27. data/lib/net/ssh/transport/gcm_cipher.rb +207 -0
  28. data/lib/net/ssh/transport/hmac/abstract.rb +16 -0
  29. data/lib/net/ssh/transport/identity_cipher.rb +8 -0
  30. data/lib/net/ssh/transport/openssl_cipher_extensions.rb +8 -0
  31. data/lib/net/ssh/transport/packet_stream.rb +44 -23
  32. data/lib/net/ssh/transport/state.rb +1 -1
  33. data/lib/net/ssh/version.rb +1 -1
  34. data/lib/net/ssh.rb +5 -2
  35. data/net-ssh-public_cert.pem +19 -18
  36. data/net-ssh.gemspec +5 -2
  37. data.tar.gz.sig +0 -0
  38. metadata +62 -24
  39. metadata.gz.sig +0 -0
@@ -49,7 +49,7 @@ module Net
49
49
  MAJOR = 7
50
50
 
51
51
  # The minor component of this version of the Net::SSH library
52
- MINOR = 1
52
+ MINOR = 3
53
53
 
54
54
  # The tiny component of this version of the Net::SSH library
55
55
  TINY = 0
data/lib/net/ssh.rb CHANGED
@@ -64,9 +64,9 @@ module Net
64
64
  # Net::SSH.start for a description of each option.
65
65
  VALID_OPTIONS = %i[
66
66
  auth_methods bind_address compression compression_level config
67
- encryption forward_agent hmac host_key remote_user
67
+ encryption forward_agent hmac host_key identity_agent remote_user
68
68
  keepalive keepalive_interval keepalive_maxcount kex keys key_data
69
- keycerts languages logger paranoid password port proxy
69
+ keycerts keycert_data languages logger paranoid password port proxy
70
70
  rekey_blocks_limit rekey_limit rekey_packet_limit timeout verbose
71
71
  known_hosts global_known_hosts_file user_known_hosts_file host_key_alias
72
72
  host_name user properties passphrase keys_only max_pkt_size
@@ -146,6 +146,8 @@ module Net
146
146
  # and hostbased authentication
147
147
  # * :keycerts => an array of file names of key certificates to use
148
148
  # with publickey authentication
149
+ # * :keycert_data => an array of strings, which each element of the array
150
+ # being a key certificate to use with publickey authentication
149
151
  # * :key_data => an array of strings, with each element of the array being
150
152
  # a raw private key in PEM format.
151
153
  # * :keys_only => set to +true+ to use only private keys from +keys+ and
@@ -192,6 +194,7 @@ module Net
192
194
  # Defaults to %w(~/.ssh/known_hosts ~/.ssh/known_hosts2).
193
195
  # * :use_agent => Set false to disable the use of ssh-agent. Defaults to
194
196
  # true
197
+ # * :identity_agent => the path to the ssh-agent's UNIX socket
195
198
  # * :verbose => how verbose to be (Logger verbosity constants, Logger::DEBUG
196
199
  # is very verbose, Logger::FATAL is all but silent). Logger::FATAL is the
197
200
  # default. The symbols :debug, :info, :warn, :error, and :fatal are also
@@ -1,20 +1,21 @@
1
1
  -----BEGIN CERTIFICATE-----
2
- MIIDQDCCAiigAwIBAgIBATANBgkqhkiG9w0BAQsFADAlMSMwIQYDVQQDDBpuZXRz
3
- c2gvREM9c29sdXRpb3VzL0RDPWNvbTAeFw0yMzAxMjQwMzE3NTVaFw0yNDAxMjQw
4
- MzE3NTVaMCUxIzAhBgNVBAMMGm5ldHNzaC9EQz1zb2x1dGlvdXMvREM9Y29tMIIB
5
- IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxieE22fR/qmdPKUHyYTyUx2g
6
- wskLwrCkxay+Tvc97ZZUOwf85LDDDPqhQaTWLvRwnIOMgQE2nBPzwalVclK6a+pW
7
- x/18KDeZY15vm3Qn5p42b0wi9hUxOqPm3J2hdCLCcgtENgdX21nVzejn39WVqFJO
8
- lntgSDNW5+kCS8QaRsmIbzj17GKKkrsw39kiQw7FhWfJFeTjddzoZiWwc59KA/Bx
9
- fBbmDnsMLAtAtauMOxORrbx3EOY7sHku/kSrMg3FXFay7jc6BkbbUij+MjJ/k82l
10
- 4o8o0YO4BAnya90xgEmgOG0LCCxRhuXQFnMDuDjK2XnUe0h4/6NCn94C+z9GsQID
11
- AQABo3sweTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUBfKiwO2e
12
- M4NEiRrVG793qEPLYyMwHwYDVR0RBBgwFoEUbmV0c3NoQHNvbHV0aW91cy5jb20w
13
- HwYDVR0SBBgwFoEUbmV0c3NoQHNvbHV0aW91cy5jb20wDQYJKoZIhvcNAQELBQAD
14
- ggEBAHyOSaOUji+EJFWZ46g+2EZ/kG7EFloFtIQUz8jDJIWGE+3NV5po1M0Z6EqH
15
- XmG3BtMLfgOV9NwMQRqIdKnZDfKsqM/FOu+9IqrP+OieAde5OrXR2pzQls60Xft7
16
- 3qNVaQS99woQRqiUiDQQ7WagOYrZjuVANqTDNt4myzGSjS5sHcKlz3PRn0LJRMe5
17
- ouuLwQ7BCXityv5RRXex2ibCOyY7pB5ris6xDnPe1WdlyCfUf1Fb+Yqxpy6a8QmH
18
- v84waVXQ2i5M7pJaHVBF7DxxeW/q8W3VCnsq8vmmvULSThD18QqYGaFDJeN8sTR4
19
- 6tfjgZ6OvGSScvbCMHkCE9XjonE=
2
+ MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQsFADBBMQ8wDQYDVQQDDAZuZXRz
3
+ c2gxGTAXBgoJkiaJk/IsZAEZFglzb2x1dGlvdXMxEzARBgoJkiaJk/IsZAEZFgNj
4
+ b20wHhcNMjQwNDAxMDk1NjIxWhcNMjUwNDAxMDk1NjIxWjBBMQ8wDQYDVQQDDAZu
5
+ ZXRzc2gxGTAXBgoJkiaJk/IsZAEZFglzb2x1dGlvdXMxEzARBgoJkiaJk/IsZAEZ
6
+ FgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGJ4TbZ9H+qZ08
7
+ pQfJhPJTHaDCyQvCsKTFrL5O9z3tllQ7B/zksMMM+qFBpNYu9HCcg4yBATacE/PB
8
+ qVVyUrpr6lbH/XwoN5ljXm+bdCfmnjZvTCL2FTE6o+bcnaF0IsJyC0Q2B1fbWdXN
9
+ 6Off1ZWoUk6We2BIM1bn6QJLxBpGyYhvOPXsYoqSuzDf2SJDDsWFZ8kV5ON13Ohm
10
+ JbBzn0oD8HF8FuYOewwsC0C1q4w7E5GtvHcQ5juweS7+RKsyDcVcVrLuNzoGRttS
11
+ KP4yMn+TzaXijyjRg7gECfJr3TGASaA4bQsILFGG5dAWcwO4OMrZedR7SHj/o0Kf
12
+ 3gL7P0axAgMBAAGjezB5MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
13
+ BBQF8qLA7Z4zg0SJGtUbv3eoQ8tjIzAfBgNVHREEGDAWgRRuZXRzc2hAc29sdXRp
14
+ b3VzLmNvbTAfBgNVHRIEGDAWgRRuZXRzc2hAc29sdXRpb3VzLmNvbTANBgkqhkiG
15
+ 9w0BAQsFAAOCAQEAfY2WbsBKwRtBep4l+Y2/84H1BKH9UVOsFxqQzYkvM2LFDyup
16
+ UkjYf8nPSjg3mquhaiA5KSoSVUPpNDfQo+UvY3+mlxRs96ttWiUGwz27fy82rx1B
17
+ ZnfKjsWOntemNON6asOD0mtv0xsNBfOB2VNIKW/uqHsiPpa0OaVy5uENhX+5OFan
18
+ 2P1Uy+WcMiv38RlRkn4cdEIZUFupDgKFsguYlaJy473/wsae4exUgc5bvi3Splob
19
+ 1uE/LmB/qWBVSNW8e9KDtJynhDDZBlpESyQHFQCZj6UapzxlnC46LaDncPoAtJPc
20
+ MlWxJ8mKghIcyXc5y4cSyGypNG5BralqnvQUyg==
20
21
  -----END CERTIFICATE-----
data/net-ssh.gemspec CHANGED
@@ -36,9 +36,12 @@ Gem::Specification.new do |spec|
36
36
  spec.add_development_dependency('x25519') unless RUBY_PLATFORM == 'java'
37
37
  end
38
38
 
39
+ spec.add_development_dependency('rbnacl', '~> 7.1') unless ENV['NET_SSH_NO_RBNACL']
40
+
41
+ spec.add_development_dependency "base64"
39
42
  spec.add_development_dependency "bundler", ">= 1.17"
40
- spec.add_development_dependency "minitest", "~> 5.10"
41
- spec.add_development_dependency "mocha", "~> 1.11.2"
43
+ spec.add_development_dependency "minitest", "~> 5.19"
44
+ spec.add_development_dependency "mocha", "~> 2.1.0"
42
45
  spec.add_development_dependency "rake", "~> 12.0"
43
46
  spec.add_development_dependency "rubocop", "~> 1.28.0"
44
47
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-ssh
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.0
4
+ version: 7.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamis Buck
@@ -12,26 +12,27 @@ bindir: exe
12
12
  cert_chain:
13
13
  - |
14
14
  -----BEGIN CERTIFICATE-----
15
- MIIDQDCCAiigAwIBAgIBATANBgkqhkiG9w0BAQsFADAlMSMwIQYDVQQDDBpuZXRz
16
- c2gvREM9c29sdXRpb3VzL0RDPWNvbTAeFw0yMzAxMjQwMzE3NTVaFw0yNDAxMjQw
17
- MzE3NTVaMCUxIzAhBgNVBAMMGm5ldHNzaC9EQz1zb2x1dGlvdXMvREM9Y29tMIIB
18
- IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxieE22fR/qmdPKUHyYTyUx2g
19
- wskLwrCkxay+Tvc97ZZUOwf85LDDDPqhQaTWLvRwnIOMgQE2nBPzwalVclK6a+pW
20
- x/18KDeZY15vm3Qn5p42b0wi9hUxOqPm3J2hdCLCcgtENgdX21nVzejn39WVqFJO
21
- lntgSDNW5+kCS8QaRsmIbzj17GKKkrsw39kiQw7FhWfJFeTjddzoZiWwc59KA/Bx
22
- fBbmDnsMLAtAtauMOxORrbx3EOY7sHku/kSrMg3FXFay7jc6BkbbUij+MjJ/k82l
23
- 4o8o0YO4BAnya90xgEmgOG0LCCxRhuXQFnMDuDjK2XnUe0h4/6NCn94C+z9GsQID
24
- AQABo3sweTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUBfKiwO2e
25
- M4NEiRrVG793qEPLYyMwHwYDVR0RBBgwFoEUbmV0c3NoQHNvbHV0aW91cy5jb20w
26
- HwYDVR0SBBgwFoEUbmV0c3NoQHNvbHV0aW91cy5jb20wDQYJKoZIhvcNAQELBQAD
27
- ggEBAHyOSaOUji+EJFWZ46g+2EZ/kG7EFloFtIQUz8jDJIWGE+3NV5po1M0Z6EqH
28
- XmG3BtMLfgOV9NwMQRqIdKnZDfKsqM/FOu+9IqrP+OieAde5OrXR2pzQls60Xft7
29
- 3qNVaQS99woQRqiUiDQQ7WagOYrZjuVANqTDNt4myzGSjS5sHcKlz3PRn0LJRMe5
30
- ouuLwQ7BCXityv5RRXex2ibCOyY7pB5ris6xDnPe1WdlyCfUf1Fb+Yqxpy6a8QmH
31
- v84waVXQ2i5M7pJaHVBF7DxxeW/q8W3VCnsq8vmmvULSThD18QqYGaFDJeN8sTR4
32
- 6tfjgZ6OvGSScvbCMHkCE9XjonE=
15
+ MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQsFADBBMQ8wDQYDVQQDDAZuZXRz
16
+ c2gxGTAXBgoJkiaJk/IsZAEZFglzb2x1dGlvdXMxEzARBgoJkiaJk/IsZAEZFgNj
17
+ b20wHhcNMjQwNDAxMDk1NjIxWhcNMjUwNDAxMDk1NjIxWjBBMQ8wDQYDVQQDDAZu
18
+ ZXRzc2gxGTAXBgoJkiaJk/IsZAEZFglzb2x1dGlvdXMxEzARBgoJkiaJk/IsZAEZ
19
+ FgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGJ4TbZ9H+qZ08
20
+ pQfJhPJTHaDCyQvCsKTFrL5O9z3tllQ7B/zksMMM+qFBpNYu9HCcg4yBATacE/PB
21
+ qVVyUrpr6lbH/XwoN5ljXm+bdCfmnjZvTCL2FTE6o+bcnaF0IsJyC0Q2B1fbWdXN
22
+ 6Off1ZWoUk6We2BIM1bn6QJLxBpGyYhvOPXsYoqSuzDf2SJDDsWFZ8kV5ON13Ohm
23
+ JbBzn0oD8HF8FuYOewwsC0C1q4w7E5GtvHcQ5juweS7+RKsyDcVcVrLuNzoGRttS
24
+ KP4yMn+TzaXijyjRg7gECfJr3TGASaA4bQsILFGG5dAWcwO4OMrZedR7SHj/o0Kf
25
+ 3gL7P0axAgMBAAGjezB5MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
26
+ BBQF8qLA7Z4zg0SJGtUbv3eoQ8tjIzAfBgNVHREEGDAWgRRuZXRzc2hAc29sdXRp
27
+ b3VzLmNvbTAfBgNVHRIEGDAWgRRuZXRzc2hAc29sdXRpb3VzLmNvbTANBgkqhkiG
28
+ 9w0BAQsFAAOCAQEAfY2WbsBKwRtBep4l+Y2/84H1BKH9UVOsFxqQzYkvM2LFDyup
29
+ UkjYf8nPSjg3mquhaiA5KSoSVUPpNDfQo+UvY3+mlxRs96ttWiUGwz27fy82rx1B
30
+ ZnfKjsWOntemNON6asOD0mtv0xsNBfOB2VNIKW/uqHsiPpa0OaVy5uENhX+5OFan
31
+ 2P1Uy+WcMiv38RlRkn4cdEIZUFupDgKFsguYlaJy473/wsae4exUgc5bvi3Splob
32
+ 1uE/LmB/qWBVSNW8e9KDtJynhDDZBlpESyQHFQCZj6UapzxlnC46LaDncPoAtJPc
33
+ MlWxJ8mKghIcyXc5y4cSyGypNG5BralqnvQUyg==
33
34
  -----END CERTIFICATE-----
34
- date: 2023-03-12 00:00:00.000000000 Z
35
+ date: 2024-10-02 00:00:00.000000000 Z
35
36
  dependencies:
36
37
  - !ruby/object:Gem::Dependency
37
38
  name: bcrypt_pbkdf
@@ -75,6 +76,34 @@ dependencies:
75
76
  - - ">="
76
77
  - !ruby/object:Gem::Version
77
78
  version: '0'
79
+ - !ruby/object:Gem::Dependency
80
+ name: rbnacl
81
+ requirement: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '7.1'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: '7.1'
93
+ - !ruby/object:Gem::Dependency
94
+ name: base64
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ type: :development
101
+ prerelease: false
102
+ version_requirements: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
78
107
  - !ruby/object:Gem::Dependency
79
108
  name: bundler
80
109
  requirement: !ruby/object:Gem::Requirement
@@ -95,28 +124,28 @@ dependencies:
95
124
  requirements:
96
125
  - - "~>"
97
126
  - !ruby/object:Gem::Version
98
- version: '5.10'
127
+ version: '5.19'
99
128
  type: :development
100
129
  prerelease: false
101
130
  version_requirements: !ruby/object:Gem::Requirement
102
131
  requirements:
103
132
  - - "~>"
104
133
  - !ruby/object:Gem::Version
105
- version: '5.10'
134
+ version: '5.19'
106
135
  - !ruby/object:Gem::Dependency
107
136
  name: mocha
108
137
  requirement: !ruby/object:Gem::Requirement
109
138
  requirements:
110
139
  - - "~>"
111
140
  - !ruby/object:Gem::Version
112
- version: 1.11.2
141
+ version: 2.1.0
113
142
  type: :development
114
143
  prerelease: false
115
144
  version_requirements: !ruby/object:Gem::Requirement
116
145
  requirements:
117
146
  - - "~>"
118
147
  - !ruby/object:Gem::Version
119
- version: 1.11.2
148
+ version: 2.1.0
120
149
  - !ruby/object:Gem::Dependency
121
150
  name: rake
122
151
  requirement: !ruby/object:Gem::Requirement
@@ -157,6 +186,7 @@ extra_rdoc_files:
157
186
  - README.md
158
187
  files:
159
188
  - ".dockerignore"
189
+ - ".github/FUNDING.yml"
160
190
  - ".github/config/rubocop_linter_action.yml"
161
191
  - ".github/workflows/ci-with-docker.yml"
162
192
  - ".github/workflows/ci.yml"
@@ -165,10 +195,12 @@ files:
165
195
  - ".rubocop.yml"
166
196
  - ".rubocop_todo.yml"
167
197
  - CHANGES.txt
198
+ - DEVELOPMENT.md
168
199
  - Dockerfile
169
200
  - Dockerfile.openssl3
170
201
  - Gemfile
171
202
  - Gemfile.noed25519
203
+ - Gemfile.norbnacl
172
204
  - ISSUE_TEMPLATE.md
173
205
  - LICENSE.txt
174
206
  - Manifest
@@ -226,10 +258,15 @@ files:
226
258
  - lib/net/ssh/test/remote_packet.rb
227
259
  - lib/net/ssh/test/script.rb
228
260
  - lib/net/ssh/test/socket.rb
261
+ - lib/net/ssh/transport/aes128_gcm.rb
262
+ - lib/net/ssh/transport/aes256_gcm.rb
229
263
  - lib/net/ssh/transport/algorithms.rb
264
+ - lib/net/ssh/transport/chacha20_poly1305_cipher.rb
265
+ - lib/net/ssh/transport/chacha20_poly1305_cipher_loader.rb
230
266
  - lib/net/ssh/transport/cipher_factory.rb
231
267
  - lib/net/ssh/transport/constants.rb
232
268
  - lib/net/ssh/transport/ctr.rb
269
+ - lib/net/ssh/transport/gcm_cipher.rb
233
270
  - lib/net/ssh/transport/hmac.rb
234
271
  - lib/net/ssh/transport/hmac/abstract.rb
235
272
  - lib/net/ssh/transport/hmac/md5.rb
@@ -260,6 +297,7 @@ files:
260
297
  - lib/net/ssh/transport/kex/ecdh_sha2_nistp521.rb
261
298
  - lib/net/ssh/transport/key_expander.rb
262
299
  - lib/net/ssh/transport/openssl.rb
300
+ - lib/net/ssh/transport/openssl_cipher_extensions.rb
263
301
  - lib/net/ssh/transport/packet_stream.rb
264
302
  - lib/net/ssh/transport/server_version.rb
265
303
  - lib/net/ssh/transport/session.rb
metadata.gz.sig CHANGED
Binary file