logstash-integration-logstash 0.0.3-java → 0.0.5-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -1
- data/VERSION +1 -1
- data/docs/index.asciidoc +6 -5
- data/docs/input-logstash.asciidoc +6 -8
- data/docs/output-logstash.asciidoc +38 -25
- data/lib/logstash/inputs/logstash.rb +1 -1
- data/lib/logstash/outputs/logstash.rb +29 -4
- data/logstash-integration-logstash.gemspec +1 -0
- data/spec/fixtures/certs/generated/client_from_root.jks +0 -0
- data/spec/fixtures/certs/generated/client_from_root.key.pem +50 -50
- data/spec/fixtures/certs/generated/client_from_root.key.pkcs8.pem +52 -52
- data/spec/fixtures/certs/generated/client_from_root.p12 +0 -0
- data/spec/fixtures/certs/generated/client_from_root.pem +28 -28
- data/spec/fixtures/certs/generated/client_from_untrusted.jks +0 -0
- data/spec/fixtures/certs/generated/client_from_untrusted.key.pem +50 -50
- data/spec/fixtures/certs/generated/client_from_untrusted.key.pkcs8.pem +52 -52
- data/spec/fixtures/certs/generated/client_from_untrusted.p12 +0 -0
- data/spec/fixtures/certs/generated/client_from_untrusted.pem +28 -28
- data/spec/fixtures/certs/generated/client_self_signed.jks +0 -0
- data/spec/fixtures/certs/generated/client_self_signed.key.pem +50 -50
- data/spec/fixtures/certs/generated/client_self_signed.key.pkcs8.pem +52 -52
- data/spec/fixtures/certs/generated/client_self_signed.p12 +0 -0
- data/spec/fixtures/certs/generated/client_self_signed.pem +28 -28
- data/spec/fixtures/certs/generated/root.key.pem +50 -50
- data/spec/fixtures/certs/generated/root.pem +28 -28
- data/spec/fixtures/certs/generated/server_from_root-key-pkcs8.pem +50 -50
- data/spec/fixtures/certs/generated/server_from_root.jks +0 -0
- data/spec/fixtures/certs/generated/server_from_root.key.pem +50 -50
- data/spec/fixtures/certs/generated/server_from_root.key.pkcs8.pem +52 -52
- data/spec/fixtures/certs/generated/server_from_root.p12 +0 -0
- data/spec/fixtures/certs/generated/server_from_root.pem +28 -28
- data/spec/fixtures/certs/generated/untrusted.key.pem +50 -50
- data/spec/fixtures/certs/generated/untrusted.pem +28 -28
- data/spec/unit/full_transmission_spec.rb +7 -7
- data/spec/unit/logstash_input_spec.rb +31 -2
- data/spec/unit/logstash_output_spec.rb +25 -2
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d2356a1818605024fd59bb87dc1a39e885baa0c1d094856439bf847089caf578
|
4
|
+
data.tar.gz: 4dfb606fe58d91b7eb6ffec86e2b7c7dafeb6d6cbadde4a33a33977d276595ac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a50d9995c7860240d7797c791c4b182e8fba72823114ebf353adb7c8d84ca47e4ad4ae681383c125dbd5f633f3aa4b95674c209c9b30b7183273ef7dcb053b3e
|
7
|
+
data.tar.gz: 86fb9974fa179341535ba91ad68dca33124c0bb3c990d62984fccd778ff8b40cca6b6261f9bffb4847c18abc5747d974c2e725373176abab70069934b0bc9a8d
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
|
+
## 0.0.5
|
2
|
+
- [DOC] Fixes to link formatting [#15](https://github.com/logstash-plugins/logstash-integration-logstash/pull/15)
|
3
|
+
|
4
|
+
## 0.0.4
|
5
|
+
- Simplify configuration [#13](https://github.com/logstash-plugins/logstash-integration-logstash/pull/13)
|
6
|
+
- Introduce a default `port` of `9800` for both input and output plugins
|
7
|
+
- BREAKING: Introduce `hosts` config to output plugin, _replacing_ its separate `host` and `port` configurations
|
8
|
+
|
1
9
|
## 0.0.3
|
2
|
-
-
|
10
|
+
- [DOC] Minor doc changes and version bump to facilitate adding integration files to doc build [#14](https://github.com/logstash-plugins/logstash-integration-logstash/pull/14)
|
3
11
|
|
4
12
|
## 0.0.2
|
5
13
|
- Enable data compression [#10](https://github.com/logstash-plugins/logstash-integration-logstash/pull/10)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.5
|
data/docs/index.asciidoc
CHANGED
@@ -23,8 +23,8 @@ include::{include_path}/plugin_header.asciidoc[]
|
|
23
23
|
|
24
24
|
The Logstash Integration Plugin provides integrated plugins for sending events from one Logstash to another:
|
25
25
|
|
26
|
-
* {logstash-ref}/plugins-outputs-logstash.html[Logstash
|
27
|
-
* {logstash-ref}/plugins-inputs-logstash.html[Logstash
|
26
|
+
* {logstash-ref}/plugins-outputs-logstash.html[Logstash output plugin]
|
27
|
+
* {logstash-ref}/plugins-inputs-logstash.html[Logstash input plugin]
|
28
28
|
|
29
29
|
[id="plugins-{type}s-{plugin}-concepts"]
|
30
30
|
===== High-level concepts
|
@@ -40,7 +40,7 @@ NOTE: You will need a TCP route from the upstream pipeline to the interface that
|
|
40
40
|
----
|
41
41
|
input {
|
42
42
|
logstash {
|
43
|
-
port =>
|
43
|
+
port => 9800
|
44
44
|
|
45
45
|
# SSL IDENTITY <1>
|
46
46
|
ssl_keystore_path => "/path/to/identity.p12"
|
@@ -53,12 +53,13 @@ input {
|
|
53
53
|
Once the downstream pipeline is configured and running, you may send events from any number of upstream pipelines by adding a `logstash` output plugin that points to the downstream input.
|
54
54
|
You may need to configure SSL to trust the certificates presented by the downstream input plugin.
|
55
55
|
|
56
|
+
NOTE: Single host endpoint is supported for `hosts`. Multi-host support is coming soon.
|
57
|
+
|
56
58
|
[source]
|
57
59
|
----
|
58
60
|
output {
|
59
61
|
logstash {
|
60
|
-
|
61
|
-
port => 8080
|
62
|
+
hosts => "10.0.0.123:9800"
|
62
63
|
|
63
64
|
# SSL TRUST <1>
|
64
65
|
ssl_truststore_path => "/path/to/truststore.p12"
|
@@ -22,8 +22,8 @@ include::{include_path}/plugin_header-integration.asciidoc[]
|
|
22
22
|
|
23
23
|
==== Description
|
24
24
|
|
25
|
-
Listen for events that are sent by a
|
26
|
-
The upstream output must have a TCP route to the port on an interface that this plugin is bound to.
|
25
|
+
Listen for events that are sent by a {logstash-ref}/plugins-outputs-logstash.html[Logstash output plugin] in a pipeline that may be in another process or on another host.
|
26
|
+
The upstream output must have a TCP route to the port (defaults to 9800) on an interface that this plugin is bound to.
|
27
27
|
|
28
28
|
NOTE: Sending events to this input by _any_ means other than `plugins-outputs-logstash` is neither advised nor supported.
|
29
29
|
We will maintain cross-compatibility with any two supported versions of output/input pair and reserve the right to change details such as protocol and encoding.
|
@@ -40,7 +40,6 @@ We will maintain cross-compatibility with any two supported versions of output/i
|
|
40
40
|
----
|
41
41
|
input {
|
42
42
|
logstash {
|
43
|
-
port => 8080
|
44
43
|
ssl_keystore_path
|
45
44
|
=> "/path/to/logstash.p12"
|
46
45
|
ssl_keystore_password
|
@@ -55,7 +54,6 @@ input {
|
|
55
54
|
----
|
56
55
|
input {
|
57
56
|
logstash {
|
58
|
-
port => 8080
|
59
57
|
ssl_enabled => false
|
60
58
|
}
|
61
59
|
}
|
@@ -93,7 +91,7 @@ NOTE: Client-certificate verification does _not_ verify identity claims on the p
|
|
93
91
|
===== Security: Credentials
|
94
92
|
|
95
93
|
You can also configure this plugin to require a specific username/password be provided by configuring <<plugins-{type}s-{plugin}-username>> and <<plugins-{type}s-{plugin}-password>>.
|
96
|
-
Doing so requires connecting
|
94
|
+
Doing so requires connecting `logstash-output` plugin clients to provide matching `username` and `password`.
|
97
95
|
|
98
96
|
NOTE: when SSL is disabled, data and credentials will be received in clear-text.
|
99
97
|
|
@@ -107,7 +105,7 @@ This plugin supports the following configuration options plus the <<plugins-{typ
|
|
107
105
|
|Setting |Input type |Required
|
108
106
|
| <<plugins-{type}s-{plugin}-host>> |<<string,string>> |No
|
109
107
|
| <<plugins-{type}s-{plugin}-password>> |<<password,password>>|No
|
110
|
-
| <<plugins-{type}s-{plugin}-port>> |<<number,number>> |
|
108
|
+
| <<plugins-{type}s-{plugin}-port>> |<<number,number>> |No
|
111
109
|
| <<plugins-{type}s-{plugin}-ssl_certificate>> | <<path,path>>|No
|
112
110
|
| <<plugins-{type}s-{plugin}-ssl_certificate_authorities>> |<<array,array>>|No
|
113
111
|
| <<plugins-{type}s-{plugin}-ssl_client_authentication>> | <<string,string>>, one of `["none", "optional", "required"]`|No
|
@@ -146,7 +144,7 @@ Requires <<plugins-{type}s-{plugin}-username>>.
|
|
146
144
|
===== `port`
|
147
145
|
|
148
146
|
* Value type is a <<number,number>> port
|
149
|
-
*
|
147
|
+
* Default value is 9800
|
150
148
|
|
151
149
|
Specify which port to listen on.
|
152
150
|
|
@@ -242,7 +240,7 @@ A password or passphrase of the <<plugins-{type}s-{plugin}-ssl_key>>.
|
|
242
240
|
* There is no default value for this setting.
|
243
241
|
|
244
242
|
Username for password-based authentication.
|
245
|
-
When this input plugin is configured with a `username`, it also requires a
|
243
|
+
When this input plugin is configured with a `username`, it also requires a `password`, and any upstream `logstash-output` plugin must also be configured with a matching `username`/`password` pair.
|
246
244
|
|
247
245
|
NOTE: when SSL is disabled, credentials will be transmitted in clear-text.
|
248
246
|
|
@@ -22,10 +22,10 @@ include::{include_path}/plugin_header-integration.asciidoc[]
|
|
22
22
|
|
23
23
|
==== Description
|
24
24
|
|
25
|
-
Send events to a
|
26
|
-
You must have a TCP route to the port on an interface that the downstream input is bound to.
|
25
|
+
Send events to a {logstash-ref}/plugins-inputs-logstash.html[Logstash input plugin] in a pipeline that may be in another process or on another host.
|
26
|
+
You must have a TCP route to the port (defaults to 9800) on an interface that the downstream input is bound to.
|
27
27
|
|
28
|
-
NOTE: Sending events to _any_ destination other than
|
28
|
+
NOTE: Sending events to _any_ destination other than a `logstash-input` plugin is neither advised nor supported.
|
29
29
|
We will maintain cross-compatibility with any two supported versions of output/input pair and reserve the right to change details such as protocol and encoding.
|
30
30
|
|
31
31
|
[id="plugins-{type}s-{plugin}-minimum-config"]
|
@@ -40,8 +40,7 @@ NOTE: Sending events to _any_ destination other than <<plugins-inputs-logstash>>
|
|
40
40
|
----
|
41
41
|
output {
|
42
42
|
logstash {
|
43
|
-
|
44
|
-
port => 8080
|
43
|
+
hosts => "10.0.0.123:9801"
|
45
44
|
}
|
46
45
|
}
|
47
46
|
----
|
@@ -52,8 +51,7 @@ output {
|
|
52
51
|
----
|
53
52
|
output {
|
54
53
|
logstash {
|
55
|
-
|
56
|
-
port => 8080
|
54
|
+
hosts => "10.0.0.123:9801"
|
57
55
|
ssl_enabled
|
58
56
|
=> false
|
59
57
|
}
|
@@ -65,15 +63,15 @@ output {
|
|
65
63
|
[id="plugins-{type}s-{plugin}-config-connecting"]
|
66
64
|
===== Configuration Concepts
|
67
65
|
|
68
|
-
|
69
|
-
Depending on the downstream plugin's configuration, you may need to also configure SSL and/or credentials.
|
66
|
+
Configure this output plugin to connect to a {logstash-ref}/plugins-inputs-logstash.html[Logstash input plugin] by specifying its `hosts`.
|
67
|
+
Depending on the downstream plugin's configuration, you may need to also configure the target port, SSL, and/or credentials.
|
70
68
|
|
71
69
|
[id="plugins-{type}s-{plugin}-config-ssl-trust"]
|
72
70
|
===== Security: SSL Trust
|
73
71
|
|
74
72
|
When communicating over SSL, this plugin establishes trust of the server it connects to before transmitting credentials or events.
|
75
73
|
|
76
|
-
It does so by ensuring that the server presents a currently-valid certificate with identity claims matching
|
74
|
+
It does so by ensuring that the responding server presents a currently-valid certificate with identity claims matching host it is connecting to, signed by a trusted signing authority, along with proof-of-possession of the associated private key material.
|
77
75
|
|
78
76
|
The system trust store is used by default.
|
79
77
|
You can provide an _alternate_ source of trust with _ONE OF_:
|
@@ -92,7 +90,7 @@ If the downstream input plugin is configured to request or require client authen
|
|
92
90
|
[id="plugins-{type}s-{plugin}-config-credentials"]
|
93
91
|
===== Security: Credentials
|
94
92
|
|
95
|
-
If the downstream
|
93
|
+
If the downstream `logstash-input` plugin is configured to require `username` and `password`,
|
96
94
|
you will need to configure this output with a matching <<plugins-{type}s-{plugin}-username>> and <<plugins-{type}s-{plugin}-password>>.
|
97
95
|
|
98
96
|
NOTE: when SSL is disabled, data and credentials will be transmitted in clear-text.
|
@@ -105,9 +103,8 @@ This plugin supports the following configuration options plus the <<plugins-{typ
|
|
105
103
|
[cols="<,<,<",options="header",]
|
106
104
|
|=======================================================================
|
107
105
|
|Setting |Input type |Required
|
108
|
-
| <<plugins-{type}s-{plugin}-
|
106
|
+
| <<plugins-{type}s-{plugin}-hosts>> |<<string,string>> |Yes
|
109
107
|
| <<plugins-{type}s-{plugin}-password>> |<<password,password>>|No
|
110
|
-
| <<plugins-{type}s-{plugin}-port>> |<<number,number>> |Yes
|
111
108
|
| <<plugins-{type}s-{plugin}-ssl_enabled>> |<<boolean,boolean>>|No
|
112
109
|
| <<plugins-{type}s-{plugin}-ssl_certificate>> | <<path,path>>|No
|
113
110
|
| <<plugins-{type}s-{plugin}-ssl_certificate_authorities>> |list of <<path,path>>|No
|
@@ -125,23 +122,39 @@ output plugins.
|
|
125
122
|
|
126
123
|
|
127
124
|
|
128
|
-
[id="plugins-{type}s-{plugin}-
|
129
|
-
===== `
|
125
|
+
[id="plugins-{type}s-{plugin}-hosts"]
|
126
|
+
===== `hosts`
|
130
127
|
|
131
|
-
* Value type is
|
132
|
-
* There is no default value
|
128
|
+
* Value type is <<string,string>>
|
129
|
+
* There is no default value for this setting.
|
130
|
+
* Constraints:
|
131
|
+
** When using IPv6, IP address must be in an enclosed in brackets.
|
132
|
+
** When a port is not provided, the default `9800` is used.
|
133
133
|
|
134
|
-
|
134
|
+
A downstream input {ls} host or IP address to connect.
|
135
135
|
|
136
|
-
NOTE:
|
136
|
+
NOTE: Single host endpoint is supported for `hosts`. Multi-host support is coming soon.
|
137
137
|
|
138
|
-
|
139
|
-
===== `port`
|
138
|
+
Host can be any of IPv4, IPv6 (in enclosed bracket) or host name, examples:
|
140
139
|
|
141
|
-
*
|
142
|
-
*
|
140
|
+
* `"127.0.0.1"`
|
141
|
+
* `"127.0.0.1:9801"`
|
142
|
+
* `"ds.example.com"`
|
143
|
+
* `"ds.example:9802"`
|
144
|
+
* `"[::1]"`
|
145
|
+
* `"[::1]:9803"`
|
146
|
+
* `"[2001:0db8:85a3:0000:0000:8a2e:0370:7334]"`
|
147
|
+
* `"[2001:0db8:85a3:0000:0000:8a2e:0370:7334]:9804"`
|
143
148
|
|
144
|
-
|
149
|
+
When connecting, communication to downstream input {ls} is secured with SSL unless configured otherwise.
|
150
|
+
|
151
|
+
[WARNING]
|
152
|
+
.Disabling SSL is dangerous
|
153
|
+
============
|
154
|
+
The security of this plugin relies on SSL to avoid leaking credentials and to avoid running illegitimate ingest pipeline definitions.
|
155
|
+
============
|
156
|
+
|
157
|
+
NOTE: when using SSL, the server that responds must present a certificated with identity claim matching this host name or ip address.
|
145
158
|
|
146
159
|
[id="plugins-{type}s-{plugin}-password"]
|
147
160
|
===== `password`
|
@@ -244,7 +257,7 @@ Password for the <<plugins-{type}s-{plugin}-ssl_truststore_path>>
|
|
244
257
|
|
245
258
|
* Value type is <<string,string>>
|
246
259
|
* The supported modes are:
|
247
|
-
** `full`: verifies that a certificate provided by the client has an identity claim matching <<plugins-{type}s-{plugin}-
|
260
|
+
** `full`: verifies that a certificate provided by the client has an identity claim matching <<plugins-{type}s-{plugin}-hosts>>, is signed by a trusted authority (CA), is within its valid date range, and that the client has possession of the associated key.
|
248
261
|
** `none`: performs no validation of the presented certificate
|
249
262
|
|
250
263
|
* The default value is `full`.
|
@@ -13,7 +13,7 @@ class LogStash::Inputs::Logstash < LogStash::Inputs::Base
|
|
13
13
|
config_name "logstash"
|
14
14
|
|
15
15
|
config :host, :validate => :string, :default => "0.0.0.0"
|
16
|
-
config :port, :validate => :number, :
|
16
|
+
config :port, :validate => :number, :default => 9800
|
17
17
|
|
18
18
|
# optional username/password credentials
|
19
19
|
config :username, :validate => :string, :required => false
|
@@ -4,14 +4,28 @@ require 'logstash/outputs/base'
|
|
4
4
|
require 'logstash/namespace'
|
5
5
|
|
6
6
|
require "logstash/plugin_mixins/plugin_factory_support"
|
7
|
+
require "logstash/plugin_mixins/validator_support/required_host_optional_port_validation_adapter"
|
7
8
|
|
8
9
|
class LogStash::Outputs::Logstash < LogStash::Outputs::Base
|
10
|
+
extend LogStash::PluginMixins::ValidatorSupport::RequiredHostOptionalPortValidationAdapter
|
11
|
+
|
9
12
|
include LogStash::PluginMixins::PluginFactorySupport
|
10
13
|
|
11
14
|
config_name "logstash"
|
12
15
|
|
13
|
-
|
14
|
-
|
16
|
+
# Sets the host of the downstream Logstash instance.
|
17
|
+
# Host can be any of IPv4, IPv6 (requires to be in enclosed bracket) or host name, the forms:
|
18
|
+
# `"127.0.0.1"`
|
19
|
+
# `"127.0.0.1:9800"`
|
20
|
+
# `"foo-bar.com"`
|
21
|
+
# `"foo-bar.com:9800"`
|
22
|
+
# `"[::1]"`
|
23
|
+
# `"[::1]:9000"`
|
24
|
+
# `"[2001:0db8:85a3:0000:0000:8a2e:0370:7334]"`
|
25
|
+
#
|
26
|
+
# NOTE: `hosts` naming is intentional and multi-host support is planned.
|
27
|
+
#
|
28
|
+
config :hosts, :validate => :required_host_optional_port, :required => true
|
15
29
|
|
16
30
|
# optional username/password credentials
|
17
31
|
config :username, :validate => :string, :required => false
|
@@ -31,7 +45,7 @@ class LogStash::Outputs::Logstash < LogStash::Outputs::Base
|
|
31
45
|
config :ssl_verification_mode, :validate => %w(full none), :default => 'full'
|
32
46
|
|
33
47
|
# SSL:TRUST:SOURCE ca file
|
34
|
-
config :ssl_certificate_authorities, :validate => :path,
|
48
|
+
config :ssl_certificate_authorities, :validate => :path, :list => true
|
35
49
|
|
36
50
|
# SSL:TRUST:SOURCE truststore
|
37
51
|
config :ssl_truststore_path, :validate => :path
|
@@ -83,10 +97,12 @@ class LogStash::Outputs::Logstash < LogStash::Outputs::Base
|
|
83
97
|
logger.debug('inner HTTP output plugin has been closed')
|
84
98
|
end
|
85
99
|
|
100
|
+
DEFAULT_PORT = 9800.freeze
|
101
|
+
|
86
102
|
def inner_http_output_options
|
87
103
|
@_inner_http_output_options ||= begin
|
88
104
|
http_options = {
|
89
|
-
'url'
|
105
|
+
'url' => construct_host_uri.to_s,
|
90
106
|
'http_method' => 'post',
|
91
107
|
'retry_non_idempotent' => 'true',
|
92
108
|
|
@@ -119,6 +135,15 @@ class LogStash::Outputs::Logstash < LogStash::Outputs::Base
|
|
119
135
|
end
|
120
136
|
end
|
121
137
|
|
138
|
+
def construct_host_uri
|
139
|
+
scheme = @ssl_enabled ? 'https'.freeze : 'http'.freeze
|
140
|
+
host_port_pair = @hosts # Struct(:host, :port)
|
141
|
+
uri = LogStash::Util::SafeURI.new(host_port_pair[:host])
|
142
|
+
uri.port = host_port_pair[:port].nil? ? DEFAULT_PORT : host_port_pair[:port]
|
143
|
+
uri.update(:scheme, scheme)
|
144
|
+
uri.freeze
|
145
|
+
end
|
146
|
+
|
122
147
|
def ssl_identity_options
|
123
148
|
if @ssl_certificate && @ssl_keystore_path
|
124
149
|
fail(LogStash::ConfigurationError, 'SSL identity can be configured with EITHER `ssl_certificate` OR `ssl_keystore_*`, but not both')
|
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
|
|
25
25
|
|
26
26
|
s.add_runtime_dependency "logstash-core-plugin-api", ">= 2.1.12", "<= 2.99"
|
27
27
|
s.add_runtime_dependency "logstash-mixin-plugin_factory_support", "~> 1.0"
|
28
|
+
s.add_runtime_dependency "logstash-mixin-validator_support", "~> 1.1"
|
28
29
|
s.add_runtime_dependency "logstash-codec-json_lines", "~> 3.1"
|
29
30
|
|
30
31
|
s.add_runtime_dependency "logstash-input-http", ">= 3.7.0" # some params not available in older versions because they are renamed, such as `cacert` to `ssl_certificate_authorities`
|
Binary file
|
@@ -1,52 +1,52 @@
|
|
1
1
|
-----BEGIN PRIVATE KEY-----
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
2
|
+
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
|
51
|
+
iVHqvHuLE1aHdMHMcqvtmq1K3uKG
|
52
52
|
-----END PRIVATE KEY-----
|
@@ -1,54 +1,54 @@
|
|
1
1
|
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
+
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
/
|
52
|
-
|
53
|
-
|
2
|
+
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
|
54
54
|
-----END ENCRYPTED PRIVATE KEY-----
|
Binary file
|