epics 2.1.0 → 2.1.2
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.
- checksums.yaml +4 -4
- data/.semaphore/semaphore.yml +9 -9
- data/CHANGELOG.md +8 -0
- data/README.md +3 -1
- data/epics.gemspec +2 -1
- data/lib/epics/client.rb +5 -7
- data/lib/epics/generic_upload_request.rb +5 -3
- data/lib/epics/version.rb +1 -1
- data/spec/generic_upload_spec.rb +9 -0
- metadata +18 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f91eb25c88880d2a09b23003cffc9601350a5c980e618945186177108917fdcb
|
4
|
+
data.tar.gz: aea9b65df7b8773a324cc8a8e457b96036e35f5cba7bf2aebc424183d9053b43
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2559bbcbb940f957f21ec202d1fd67f766017426868c3413bba616aa438b904bbd8980e6f716274142e72707ca5166c34f8ac5ff23b4b996c4d49accc948ec07
|
7
|
+
data.tar.gz: '081d8491005d6c146b002d22c0a0f3fc90feb4c09d67cc406383ea8825c47e28d6579012d3e7b4ec754909ba60c65e5fbcdb6f7e145961a545160b89f53f84d9'
|
data/.semaphore/semaphore.yml
CHANGED
@@ -16,30 +16,30 @@ blocks:
|
|
16
16
|
- name: Spec versions
|
17
17
|
task:
|
18
18
|
jobs:
|
19
|
-
- name: "
|
19
|
+
- name: "3.0"
|
20
20
|
commands:
|
21
21
|
- checkout
|
22
|
-
- sem-version ruby
|
22
|
+
- sem-version ruby 3.0
|
23
23
|
- cache restore
|
24
|
-
- gem install bundler:2.4.
|
24
|
+
- gem install bundler:2.4.12
|
25
25
|
- bundle install
|
26
26
|
- cache store
|
27
27
|
- bundle exec rspec
|
28
|
-
- name: "3.
|
28
|
+
- name: "3.1"
|
29
29
|
commands:
|
30
30
|
- checkout
|
31
|
-
- sem-version ruby 3.
|
31
|
+
- sem-version ruby 3.1
|
32
32
|
- cache restore
|
33
|
-
- gem install bundler:2.4.
|
33
|
+
- gem install bundler:2.4.12
|
34
34
|
- bundle install
|
35
35
|
- cache store
|
36
36
|
- bundle exec rspec
|
37
|
-
- name: "3.
|
37
|
+
- name: "3.2"
|
38
38
|
commands:
|
39
39
|
- checkout
|
40
|
-
- sem-version ruby 3.
|
40
|
+
- sem-version ruby 3.2
|
41
41
|
- cache restore
|
42
|
-
- gem install bundler:2.4.
|
42
|
+
- gem install bundler:2.4.12
|
43
43
|
- bundle install
|
44
44
|
- cache store
|
45
45
|
- bundle exec rspec
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -3,9 +3,11 @@
|
|
3
3
|
|
4
4
|
# Epics
|
5
5
|
|
6
|
-
EPICS is a ruby implementation of the [EBICS](
|
6
|
+
EPICS is a ruby implementation of the [EBICS](https://www.ebics.org/) (Electronic Banking Internet
|
7
7
|
Communication Standard).
|
8
8
|
|
9
|
+
It supports EBICS 2.5.
|
10
|
+
|
9
11
|
The client supports the complete initialization process comprising INI, HIA and HPB including the
|
10
12
|
INI letter generation. It offers support for the most common download and upload order types
|
11
13
|
(STA HAA HTD HPD PTK HAC HKD C52 C53 C54 CD1 CDB CDD CCT VMK).
|
data/epics.gemspec
CHANGED
@@ -43,8 +43,9 @@ Gem::Specification.new do |spec|
|
|
43
43
|
spec.add_dependency 'faraday', '>= 1.10.0'
|
44
44
|
spec.add_dependency 'nokogiri', '>= 1.14.0'
|
45
45
|
spec.add_dependency 'rubyzip', '>= 2.3.2'
|
46
|
+
spec.add_dependency 'rexml', '>= 3.2.5'
|
46
47
|
|
47
|
-
spec.add_development_dependency 'bundler', '>= 2.4.
|
48
|
+
spec.add_development_dependency 'bundler', '>= 2.4.12'
|
48
49
|
spec.add_development_dependency 'equivalent-xml'
|
49
50
|
spec.add_development_dependency 'pry'
|
50
51
|
spec.add_development_dependency 'rake', '~> 13.0'
|
data/lib/epics/client.rb
CHANGED
@@ -105,13 +105,11 @@ class Epics::Client
|
|
105
105
|
modulus = Base64.decode64(node.at_xpath(".//*[local-name() = 'Modulus']").content)
|
106
106
|
exponent = Base64.decode64(node.at_xpath(".//*[local-name() = 'Exponent']").content)
|
107
107
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
bank.e = OpenSSL::BN.new(exponent, 2)
|
114
|
-
end
|
108
|
+
sequence = []
|
109
|
+
sequence << OpenSSL::ASN1::Integer.new(OpenSSL::BN.new(modulus, 2))
|
110
|
+
sequence << OpenSSL::ASN1::Integer.new(OpenSSL::BN.new(exponent, 2))
|
111
|
+
|
112
|
+
bank = OpenSSL::PKey::RSA.new(OpenSSL::ASN1::Sequence(sequence).to_der)
|
115
113
|
|
116
114
|
self.keys["#{host_id.upcase}.#{type}"] = Epics::Key.new(bank)
|
117
115
|
end
|
@@ -1,15 +1,17 @@
|
|
1
1
|
class Epics::GenericUploadRequest < Epics::GenericRequest
|
2
2
|
attr_accessor :key
|
3
|
+
attr_accessor :iv
|
3
4
|
attr_accessor :document
|
4
5
|
|
5
6
|
def initialize(client, document)
|
6
7
|
super(client)
|
7
8
|
self.document = document
|
8
|
-
self.key
|
9
|
+
self.key = cipher.random_key
|
10
|
+
self.iv = 0.chr * cipher.iv_len
|
9
11
|
end
|
10
12
|
|
11
13
|
def cipher
|
12
|
-
@cipher ||= OpenSSL::Cipher.new("aes-128-cbc")
|
14
|
+
@cipher ||= OpenSSL::Cipher.new("aes-128-cbc").tap { |cipher| cipher.encrypt }
|
13
15
|
end
|
14
16
|
|
15
17
|
def digester
|
@@ -49,9 +51,9 @@ class Epics::GenericUploadRequest < Epics::GenericRequest
|
|
49
51
|
|
50
52
|
def encrypt(d)
|
51
53
|
cipher.reset
|
52
|
-
cipher.encrypt
|
53
54
|
cipher.padding = 0
|
54
55
|
cipher.key = self.key
|
56
|
+
cipher.iv = self.iv
|
55
57
|
(cipher.update(pad(d)) + cipher.final)
|
56
58
|
end
|
57
59
|
|
data/lib/epics/version.rb
CHANGED
data/spec/generic_upload_spec.rb
CHANGED
@@ -46,4 +46,13 @@ RSpec.describe Epics::GenericUploadRequest do
|
|
46
46
|
end
|
47
47
|
|
48
48
|
end
|
49
|
+
|
50
|
+
describe '#encrypted_order_data' do
|
51
|
+
it 'returns the same data every time' do
|
52
|
+
data_1 = subject.encrypted_order_data
|
53
|
+
data_2 = subject.encrypted_order_data
|
54
|
+
|
55
|
+
expect(data_1).to eq(data_2)
|
56
|
+
end
|
57
|
+
end
|
49
58
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: epics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lars Brillert
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-08-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -52,20 +52,34 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 2.3.2
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rexml
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 3.2.5
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 3.2.5
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: bundler
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
73
|
- - ">="
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version: 2.4.
|
75
|
+
version: 2.4.12
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
80
|
- - ">="
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version: 2.4.
|
82
|
+
version: 2.4.12
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: equivalent-xml
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|