httpi-adapter-openssl_gost 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -4
- data/lib/httpi/adapter/openssl_gost.rb +5 -2
- data/lib/httpi/adapter/openssl_gost/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ce75bfeccc88a1035be5077c09baded7bf6979c
|
4
|
+
data.tar.gz: 93b21175c1924df78e7be94504a0e458330d2690
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55c9e08aa87f67e54ba858bb0482b0238a8662a660f83dd0f0080a5158583135bc75910ecb5c4774508dea8a52d2eb95514d9e3ce6cd1c6b7e769f01904c5031
|
7
|
+
data.tar.gz: 19ec0fcee9cb4379600585d179d13cd82e397176f2945601b1410c454a1b354b4409cf5a1a1cc9c499d52abe6a49c05a39ce6944be40bac2de96f22d140bbbf8
|
data/README.md
CHANGED
@@ -77,6 +77,8 @@ request.auth.ssl.cert_file = '/full/path/to/client.crt'
|
|
77
77
|
request.auth.ssl.cert_key_file = '/full/path/to/client.pem'
|
78
78
|
```
|
79
79
|
|
80
|
+
Similarly, you can pass certificate authority certificate filepath to `ca_cert_file=` method. `openssl s_client` doesn't recognize system CA certificates automatically, this is a [known bug](https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/396818) (please hit «This bug affects me» link there).
|
81
|
+
|
80
82
|
### Usage with savon
|
81
83
|
|
82
84
|
You need to use custom branches of [savon] and [wasabi] until next pull requests are not merged in:
|
@@ -95,10 +97,11 @@ Specify `:adapter` in savon client global options:
|
|
95
97
|
```ruby
|
96
98
|
require 'httpi/adapter/openssl_gost'
|
97
99
|
soap_client = Savon.client(
|
98
|
-
wsdl:
|
99
|
-
ssl_cert_file:
|
100
|
-
ssl_cert_key_file:
|
101
|
-
|
100
|
+
wsdl: 'https://service-requiring-gost.ru/service?wsdl',
|
101
|
+
ssl_cert_file: '/full/path/to/client.crt',
|
102
|
+
ssl_cert_key_file: '/full/path/to/client.pem',
|
103
|
+
ssl_ca_cert_key_file: '/full/path/to/ca.crt',
|
104
|
+
adapter: :openssl_gost,
|
102
105
|
)
|
103
106
|
```
|
104
107
|
|
@@ -12,17 +12,20 @@ module HTTPI
|
|
12
12
|
@request = request
|
13
13
|
@pubkey_path = request.auth.ssl.cert_file
|
14
14
|
@privkey_path = request.auth.ssl.cert_key_file
|
15
|
+
@cacert_path = request.auth.ssl.ca_cert_file
|
15
16
|
end
|
16
17
|
|
17
18
|
attr_reader :client
|
18
19
|
attr_accessor :pubkey_path
|
19
20
|
attr_accessor :privkey_path
|
21
|
+
attr_accessor :cacert_path
|
20
22
|
|
21
23
|
def request(method)
|
22
24
|
uri = @request.url
|
23
25
|
cmd = "openssl s_client -engine gost -connect '#{uri.host}:#{uri.port}' -quiet"
|
24
|
-
cmd += " -cert '#{pubkey_path}'"
|
25
|
-
cmd += " -key '#{privkey_path}'"
|
26
|
+
cmd += " -cert '#{pubkey_path}'" if pubkey_path
|
27
|
+
cmd += " -key '#{privkey_path}'" if privkey_path
|
28
|
+
cmd += " -CAfile '#{cacert_path}'" if cacert_path
|
26
29
|
|
27
30
|
# Prepare request
|
28
31
|
req = "#{method.upcase} #{uri.request_uri} HTTP/1.1\r\n"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: httpi-adapter-openssl_gost
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrey Novikov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
11
|
+
date: 2014-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httpi
|