logstash-input-tcp 6.0.10-java → 6.2.1-java

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.
data/version CHANGED
@@ -1 +1 @@
1
- 6.0.10
1
+ 6.2.1
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-tcp
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.10
4
+ version: 6.2.1
5
5
  platform: java
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-22 00:00:00.000000000 Z
11
+ date: 2021-08-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -20,8 +20,8 @@ dependencies:
20
20
  - !ruby/object:Gem::Version
21
21
  version: '2.99'
22
22
  name: logstash-core-plugin-api
23
- prerelease: false
24
23
  type: :runtime
24
+ prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
@@ -30,6 +30,54 @@ dependencies:
30
30
  - - "<="
31
31
  - !ruby/object:Gem::Version
32
32
  version: '2.99'
33
+ - !ruby/object:Gem::Dependency
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - "~>"
37
+ - !ruby/object:Gem::Version
38
+ version: '1.2'
39
+ name: logstash-mixin-ecs_compatibility_support
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.2'
47
+ - !ruby/object:Gem::Dependency
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 6.7.0
53
+ name: logstash-core
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 6.7.0
61
+ - !ruby/object:Gem::Dependency
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 0.10.2
67
+ - - "<"
68
+ - !ruby/object:Gem::Version
69
+ version: '0.12'
70
+ name: jruby-openssl
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: 0.10.2
78
+ - - "<"
79
+ - !ruby/object:Gem::Version
80
+ version: '0.12'
33
81
  - !ruby/object:Gem::Dependency
34
82
  requirement: !ruby/object:Gem::Requirement
35
83
  requirements:
@@ -37,8 +85,8 @@ dependencies:
37
85
  - !ruby/object:Gem::Version
38
86
  version: '0'
39
87
  name: logstash-codec-plain
40
- prerelease: false
41
88
  type: :runtime
89
+ prerelease: false
42
90
  version_requirements: !ruby/object:Gem::Requirement
43
91
  requirements:
44
92
  - - ">="
@@ -51,8 +99,8 @@ dependencies:
51
99
  - !ruby/object:Gem::Version
52
100
  version: '0'
53
101
  name: logstash-codec-line
54
- prerelease: false
55
102
  type: :runtime
103
+ prerelease: false
56
104
  version_requirements: !ruby/object:Gem::Requirement
57
105
  requirements:
58
106
  - - ">="
@@ -65,8 +113,8 @@ dependencies:
65
113
  - !ruby/object:Gem::Version
66
114
  version: '0'
67
115
  name: logstash-codec-json
68
- prerelease: false
69
116
  type: :runtime
117
+ prerelease: false
70
118
  version_requirements: !ruby/object:Gem::Requirement
71
119
  requirements:
72
120
  - - ">="
@@ -79,8 +127,8 @@ dependencies:
79
127
  - !ruby/object:Gem::Version
80
128
  version: '0'
81
129
  name: logstash-codec-json_lines
82
- prerelease: false
83
130
  type: :runtime
131
+ prerelease: false
84
132
  version_requirements: !ruby/object:Gem::Requirement
85
133
  requirements:
86
134
  - - ">="
@@ -93,8 +141,8 @@ dependencies:
93
141
  - !ruby/object:Gem::Version
94
142
  version: '0'
95
143
  name: logstash-codec-multiline
96
- prerelease: false
97
144
  type: :runtime
145
+ prerelease: false
98
146
  version_requirements: !ruby/object:Gem::Requirement
99
147
  requirements:
100
148
  - - ">="
@@ -107,8 +155,8 @@ dependencies:
107
155
  - !ruby/object:Gem::Version
108
156
  version: '0'
109
157
  name: logstash-devutils
110
- prerelease: false
111
158
  type: :development
159
+ prerelease: false
112
160
  version_requirements: !ruby/object:Gem::Requirement
113
161
  requirements:
114
162
  - - ">="
@@ -121,8 +169,8 @@ dependencies:
121
169
  - !ruby/object:Gem::Version
122
170
  version: '0'
123
171
  name: insist
124
- prerelease: false
125
172
  type: :development
173
+ prerelease: false
126
174
  version_requirements: !ruby/object:Gem::Requirement
127
175
  requirements:
128
176
  - - ">="
@@ -135,8 +183,8 @@ dependencies:
135
183
  - !ruby/object:Gem::Version
136
184
  version: 0.0.6
137
185
  name: flores
138
- prerelease: false
139
186
  type: :development
187
+ prerelease: false
140
188
  version_requirements: !ruby/object:Gem::Requirement
141
189
  requirements:
142
190
  - - "~>"
@@ -149,8 +197,8 @@ dependencies:
149
197
  - !ruby/object:Gem::Version
150
198
  version: 0.0.22
151
199
  name: stud
152
- prerelease: false
153
200
  type: :development
201
+ prerelease: false
154
202
  version_requirements: !ruby/object:Gem::Requirement
155
203
  requirements:
156
204
  - - "~>"
@@ -173,12 +221,23 @@ files:
173
221
  - docs/index.asciidoc
174
222
  - lib/logstash-input-tcp_jars.rb
175
223
  - lib/logstash/inputs/tcp.rb
176
- - lib/logstash/inputs/tcp/compat_ssl_options.rb
177
224
  - lib/logstash/inputs/tcp/decoder_impl.rb
178
225
  - logstash-input-tcp.gemspec
226
+ - spec/fixtures/encrypted-pkcs5v15.crt
227
+ - spec/fixtures/encrypted-pkcs5v15.key
228
+ - spec/fixtures/encrypted-pkcs8.crt
229
+ - spec/fixtures/encrypted-pkcs8.key
230
+ - spec/fixtures/encrypted_aes256.crt
231
+ - spec/fixtures/encrypted_aes256.key
232
+ - spec/fixtures/encrypted_des.crt
233
+ - spec/fixtures/encrypted_des.key
234
+ - spec/fixtures/encrypted_seed.crt
235
+ - spec/fixtures/encrypted_seed.key
236
+ - spec/fixtures/small.crt
237
+ - spec/fixtures/small.key
179
238
  - spec/inputs/tcp_spec.rb
180
239
  - spec/spec_helper.rb
181
- - vendor/jar-dependencies/org/logstash/inputs/logstash-input-tcp/6.0.10/logstash-input-tcp-6.0.10.jar
240
+ - vendor/jar-dependencies/org/logstash/inputs/logstash-input-tcp/6.2.1/logstash-input-tcp-6.2.1.jar
182
241
  - version
183
242
  homepage: http://www.elastic.co/guide/en/logstash/current/index.html
184
243
  licenses:
@@ -202,11 +261,22 @@ required_rubygems_version: !ruby/object:Gem::Requirement
202
261
  - !ruby/object:Gem::Version
203
262
  version: '0'
204
263
  requirements: []
205
- rubyforge_project:
206
- rubygems_version: 2.6.13
264
+ rubygems_version: 3.0.6
207
265
  signing_key:
208
266
  specification_version: 4
209
267
  summary: Reads events from a TCP socket
210
268
  test_files:
269
+ - spec/fixtures/encrypted-pkcs5v15.crt
270
+ - spec/fixtures/encrypted-pkcs5v15.key
271
+ - spec/fixtures/encrypted-pkcs8.crt
272
+ - spec/fixtures/encrypted-pkcs8.key
273
+ - spec/fixtures/encrypted_aes256.crt
274
+ - spec/fixtures/encrypted_aes256.key
275
+ - spec/fixtures/encrypted_des.crt
276
+ - spec/fixtures/encrypted_des.key
277
+ - spec/fixtures/encrypted_seed.crt
278
+ - spec/fixtures/encrypted_seed.key
279
+ - spec/fixtures/small.crt
280
+ - spec/fixtures/small.key
211
281
  - spec/inputs/tcp_spec.rb
212
282
  - spec/spec_helper.rb
@@ -1,147 +0,0 @@
1
- require 'openssl'
2
- require "logstash/util/loggable"
3
-
4
- # Simulate a normal SslOptions builder:
5
- #
6
- # ssl_context = SslOptions.builder
7
- # .set_is_ssl_enabled(@ssl_enable)
8
- # .set_should_verify(@ssl_verify)
9
- # .set_ssl_cert(@ssl_cert)
10
- # .set_ssl_key(@ssl_key)
11
- # .set_ssl_key_passphrase(@ssl_key_passphrase.value)
12
- # .set_ssl_extra_chain_certs(@ssl_extra_chain_certs.to_java(:string))
13
- # .set_ssl_certificate_authorities(@ssl_certificate_authorities.to_java(:string))
14
- # .build.toSslContext()
15
- class SslOptions
16
- include LogStash::Util::Loggable
17
-
18
- java_import 'io.netty.handler.ssl.ClientAuth'
19
- java_import 'io.netty.handler.ssl.SslContextBuilder'
20
- java_import 'java.security.cert.X509Certificate'
21
- java_import 'javax.crypto.Cipher'
22
- java_import 'org.bouncycastle.asn1.pkcs.PrivateKeyInfo'
23
- java_import 'org.bouncycastle.jce.provider.BouncyCastleProvider'
24
- java_import 'org.bouncycastle.openssl.PEMKeyPair'
25
- java_import 'org.bouncycastle.openssl.PEMParser'
26
- java_import 'org.bouncycastle.openssl.PEMEncryptedKeyPair'
27
- java_import 'org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter'
28
- java_import 'org.bouncycastle.openssl.jcajce.JcePEMDecryptorProviderBuilder'
29
- java_import 'org.bouncycastle.openssl.jcajce.JceOpenSSLPKCS8DecryptorProviderBuilder'
30
- java_import 'org.bouncycastle.pkcs.PKCS8EncryptedPrivateKeyInfo'
31
-
32
- def self.builder
33
- new
34
- end
35
-
36
- def set_is_ssl_enabled(boolean)
37
- @ssl_enabled = boolean
38
- self
39
- end
40
-
41
- def set_should_verify(boolean)
42
- @ssl_verify = boolean
43
- self
44
- end
45
-
46
- def set_ssl_cert(path)
47
- @ssl_cert_path = path
48
- self
49
- end
50
-
51
- def set_ssl_key(path)
52
- @ssl_key_path = path
53
- self
54
- end
55
-
56
- def set_ssl_key_passphrase(passphrase)
57
- @ssl_key_passphrase = passphrase
58
- self
59
- end
60
-
61
- def set_ssl_extra_chain_certs(certs)
62
- @ssl_extra_chain_certs = certs
63
- self
64
- end
65
-
66
- def set_ssl_certificate_authorities(certs)
67
- @ssl_certificate_authorities = certs
68
- self
69
- end
70
-
71
- def build; self; end
72
-
73
- def toSslContext
74
- return nil unless @ssl_enabled
75
-
76
- # Check key strength
77
- logger.warn("JCE Unlimited Strength Jurisdiction Policy not installed - max key length is 128 bits") unless Cipher.getMaxAllowedKeyLength("AES") > 128
78
- # create certificate object
79
- cf = java.security.cert.CertificateFactory.getInstance("X.509")
80
- cert_chain = []
81
- fetch_certificates_from_file(@ssl_cert_path, cf) do |cert|
82
- cert_chain << cert
83
- end
84
-
85
- # convert key from pkcs1 to pkcs8 and get PrivateKey object
86
- pem_parser = PEMParser.new(java.io.FileReader.new(@ssl_key_path))
87
- java.security.Security.addProvider(BouncyCastleProvider.new)
88
- converter = JcaPEMKeyConverter.new
89
- case obj = pem_parser.readObject
90
- when PEMKeyPair # unencrypted pkcs#1
91
- private_key = converter.getKeyPair(obj).private
92
- when PrivateKeyInfo # unencrypted pkcs#8
93
- private_key = converter.getPrivateKey(obj)
94
- when PEMEncryptedKeyPair # encrypted pkcs#1
95
- key_char_array = @ssl_key_passphrase.to_java.toCharArray
96
- decryptor = JcePEMDecryptorProviderBuilder.new.build(key_char_array)
97
- key_pair = obj.decryptKeyPair(decryptor)
98
- private_key = converter.getKeyPair(key_pair).private
99
- when PKCS8EncryptedPrivateKeyInfo # encrypted pkcs#8
100
- key_char_array = @ssl_key_passphrase.to_java.toCharArray
101
- key = JceOpenSSLPKCS8DecryptorProviderBuilder.new.build(key_char_array)
102
- private_key = converter.getPrivateKey(obj.decryptPrivateKeyInfo(key))
103
- else
104
- raise "Could not recognize 'ssl_key' format. Class: #{obj.class}"
105
- end
106
-
107
- @ssl_extra_chain_certs.each do |file|
108
- fetch_certificates_from_file(file, cf) do |cert|
109
- cert_chain << cert
110
- end
111
- end
112
- sslContextBuilder = SslContextBuilder.forServer(private_key, @ssl_key_passphrase, cert_chain.to_java(X509Certificate))
113
-
114
- trust_certs = []
115
-
116
- @ssl_certificate_authorities.each do |file|
117
- fetch_certificates_from_file(file, cf) do |cert|
118
- trust_certs << cert
119
- end
120
- end
121
-
122
- if trust_certs.any?
123
- sslContextBuilder.trustManager(trust_certs.to_java(X509Certificate))
124
- end
125
-
126
- sslContextBuilder.clientAuth(@ssl_verify ? ClientAuth::REQUIRE : ClientAuth::NONE)
127
- sslContextBuilder.build()
128
- end
129
-
130
- private
131
- def fetch_certificates_from_file(file, cf)
132
- fis = java.io.FileInputStream.new(file)
133
-
134
- while (fis.available > 0) do
135
- cert = generate_certificate(cf, fis)
136
- yield cert if cert
137
- end
138
- ensure
139
- fis.close if fis
140
- end
141
-
142
- def generate_certificate(cf, fis)
143
- cf.generateCertificate(fis)
144
- rescue Java::JavaSecurityCert::CertificateException => e
145
- raise e unless e.cause.message == "Empty input"
146
- end
147
- end