epics 2.1.1 → 2.2.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.
- checksums.yaml +4 -4
- data/.semaphore/semaphore.yml +19 -10
- data/CHANGELOG.md +13 -0
- data/epics.gemspec +3 -2
- data/lib/epics/c2s.rb +9 -0
- data/lib/epics/cdb.rb +10 -2
- data/lib/epics/client.rb +4 -0
- data/lib/epics/generic_upload_request.rb +5 -3
- data/lib/epics/version.rb +1 -1
- data/lib/epics.rb +1 -0
- data/spec/generic_upload_spec.rb +9 -0
- data/spec/orders/c2s_spec.rb +21 -0
- metadata +24 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 196537be2328e1c2445eafddb04840616446d599e8f2c887b8d6e5884acd1107
|
4
|
+
data.tar.gz: 7d0fc17a578fcae3e3827d56375c20449961b40f581fdd2a192f7addf1ac3c6e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d8b5b8538c6c6100f1e6f9cf225999ec1d9bed0fa152bfb0aa5ff8f02cdfd545254eb9a348f03e868fa7544e67424b1fbd4277ba1185bc820fa68792ed23bb9b
|
7
|
+
data.tar.gz: e490b632b8f018aff18c8461780875190af6a287807c7baaaa579060eca89961b83bd3404291b31f98a54859a6a8eca9df2b7053c9de080a9043a7b1ae0a84f6
|
data/.semaphore/semaphore.yml
CHANGED
@@ -3,7 +3,7 @@ name: Test
|
|
3
3
|
agent:
|
4
4
|
machine:
|
5
5
|
type: e1-standard-2
|
6
|
-
os_image:
|
6
|
+
os_image: ubuntu2004
|
7
7
|
blocks:
|
8
8
|
- name: Setup
|
9
9
|
task:
|
@@ -16,30 +16,39 @@ 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.22
|
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.22
|
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
|
+
- cache restore
|
42
|
+
- gem install bundler:2.4.22
|
43
|
+
- bundle install
|
44
|
+
- cache store
|
45
|
+
- bundle exec rspec
|
46
|
+
- name: "3.3"
|
47
|
+
commands:
|
48
|
+
- checkout
|
49
|
+
- sem-version ruby 3.3
|
41
50
|
- cache restore
|
42
|
-
- gem install bundler:2.4.
|
51
|
+
- gem install bundler:2.4.22
|
43
52
|
- bundle install
|
44
53
|
- cache store
|
45
54
|
- bundle exec rspec
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
### Unreleased
|
2
|
+
|
3
|
+
### 2.2.0
|
4
|
+
|
5
|
+
- [ENHANCEMENT] Adds C2S order tyoe
|
6
|
+
- [HOUSEKEEPING] updates nokogiri dependency
|
7
|
+
- [HOUSEKEEPING] updates rexml dependency
|
8
|
+
- [HOUSEKEEPING] adds Ruby 3.3 to CI
|
9
|
+
|
10
|
+
### 2.1.2
|
11
|
+
|
12
|
+
- [BUGFIX] Fix order data encryption for OpenSSL 3
|
13
|
+
|
1
14
|
### 2.1.1
|
2
15
|
|
3
16
|
- [HOUSEKEEPING] update Bank public key initialization for OpenSSL 3
|
data/epics.gemspec
CHANGED
@@ -41,10 +41,11 @@ Gem::Specification.new do |spec|
|
|
41
41
|
spec.post_install_message += "\e[32m" + ('*' * 60) + "\n\e[0m"
|
42
42
|
|
43
43
|
spec.add_dependency 'faraday', '>= 1.10.0'
|
44
|
-
spec.add_dependency 'nokogiri', '>= 1.
|
44
|
+
spec.add_dependency 'nokogiri', '>= 1.16.5'
|
45
45
|
spec.add_dependency 'rubyzip', '>= 2.3.2'
|
46
|
+
spec.add_dependency 'rexml', '>= 3.2.8'
|
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/c2s.rb
ADDED
data/lib/epics/cdb.rb
CHANGED
@@ -1,4 +1,12 @@
|
|
1
1
|
class Epics::CDB < Epics::GenericUploadRequest
|
2
|
+
def order_attribute
|
3
|
+
'OZHNN'
|
4
|
+
end
|
5
|
+
|
6
|
+
def order_type
|
7
|
+
'CDB'
|
8
|
+
end
|
9
|
+
|
2
10
|
def header
|
3
11
|
Nokogiri::XML::Builder.new do |xml|
|
4
12
|
xml.header(authenticate: true) {
|
@@ -10,8 +18,8 @@ class Epics::CDB < Epics::GenericUploadRequest
|
|
10
18
|
xml.UserID user_id
|
11
19
|
xml.Product("EPICS - a ruby ebics kernel", 'Language' => 'de')
|
12
20
|
xml.OrderDetails {
|
13
|
-
xml.OrderType
|
14
|
-
xml.OrderAttribute
|
21
|
+
xml.OrderType order_type
|
22
|
+
xml.OrderAttribute order_attribute
|
15
23
|
xml.StandardOrderParams
|
16
24
|
}
|
17
25
|
xml.BankPubKeyDigests {
|
data/lib/epics/client.rb
CHANGED
@@ -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/lib/epics.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
|
@@ -0,0 +1,21 @@
|
|
1
|
+
RSpec.describe Epics::C2S do
|
2
|
+
|
3
|
+
let(:client) { Epics::Client.new( File.open(File.join( File.dirname(__FILE__), '..', 'fixtures', 'SIZBN001.key')), 'secret' , 'https://194.180.18.30/ebicsweb/ebicsweb', 'SIZBN001', 'EBIX', 'EBICS') }
|
4
|
+
let(:document) { File.read( File.join( File.dirname(__FILE__), '..', 'fixtures', 'xml', 'cdb.xml') ) }
|
5
|
+
subject { described_class.new(client, document) }
|
6
|
+
|
7
|
+
describe 'order attributes' do
|
8
|
+
it { expect(subject.header.to_s).to include('<OrderAttribute>DZHNN</OrderAttribute>') }
|
9
|
+
it { expect(subject.header.to_s).to include('<OrderType>C2S</OrderType>') }
|
10
|
+
end
|
11
|
+
|
12
|
+
describe '#to_xml' do
|
13
|
+
specify { expect(subject.to_xml).to be_a_valid_ebics_doc }
|
14
|
+
end
|
15
|
+
|
16
|
+
describe '#to_transfer_xml' do
|
17
|
+
before { subject.transaction_id = SecureRandom.hex(16) }
|
18
|
+
|
19
|
+
specify { expect(subject.to_transfer_xml).to be_a_valid_ebics_doc }
|
20
|
+
end
|
21
|
+
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.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lars Brillert
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.
|
33
|
+
version: 1.16.5
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.
|
40
|
+
version: 1.16.5
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rubyzip
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -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.8
|
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.8
|
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
|
@@ -166,6 +180,7 @@ files:
|
|
166
180
|
- lib/epics.rb
|
167
181
|
- lib/epics/azv.rb
|
168
182
|
- lib/epics/b2b.rb
|
183
|
+
- lib/epics/c2s.rb
|
169
184
|
- lib/epics/c52.rb
|
170
185
|
- lib/epics/c53.rb
|
171
186
|
- lib/epics/c54.rb
|
@@ -244,6 +259,7 @@ files:
|
|
244
259
|
- spec/middleware/parse_ebics_spec.rb
|
245
260
|
- spec/orders/azv_spec.rb
|
246
261
|
- spec/orders/b2b_spec.rb
|
262
|
+
- spec/orders/c2s_spec.rb
|
247
263
|
- spec/orders/c52_spec.rb
|
248
264
|
- spec/orders/c53_spec.rb
|
249
265
|
- spec/orders/c54_spec.rb
|
@@ -305,7 +321,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
305
321
|
- !ruby/object:Gem::Version
|
306
322
|
version: '0'
|
307
323
|
requirements: []
|
308
|
-
rubygems_version: 3.
|
324
|
+
rubygems_version: 3.5.11
|
309
325
|
signing_key:
|
310
326
|
specification_version: 4
|
311
327
|
summary: a ruby implementation of the EBICS protocol
|
@@ -353,6 +369,7 @@ test_files:
|
|
353
369
|
- spec/middleware/parse_ebics_spec.rb
|
354
370
|
- spec/orders/azv_spec.rb
|
355
371
|
- spec/orders/b2b_spec.rb
|
372
|
+
- spec/orders/c2s_spec.rb
|
356
373
|
- spec/orders/c52_spec.rb
|
357
374
|
- spec/orders/c53_spec.rb
|
358
375
|
- spec/orders/c54_spec.rb
|