epics 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/lib/epics/cct.rb +1 -1
- data/lib/epics/generic_upload_request.rb +7 -9
- data/lib/epics/version.rb +1 -1
- data/spec/generic_upload_spec.rb +37 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 063dc49eee1a69c5da9492fe57bfebad265b6b8c
|
4
|
+
data.tar.gz: 2a4ee56062ace723a77db89e8d6d0f740e746a13
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d95094a67c27c63c46cbbc406bdb9951ed03a187b933a3feddb5378feaaeebeddac1c727344247af71cb8fe7495c18938ec0d7d288765d9a2e7a7cd7a7603f31
|
7
|
+
data.tar.gz: 12d39c6a553e7e21ccae83680f93abd8fb4c5aed789f25c15c20acbbf1806c3d58407a97ef55392b8fe7e21f3703cbe64031de0a9ab1faa4ef79852c5e942dc8
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
### 1.1.1
|
2
|
+
|
3
|
+
* [BUGFIX] CCT order was submited as CD1
|
4
|
+
* [BUGFIX] padding was calculated against the wrong block size
|
5
|
+
* [BUGFIX] double encoding of the signature
|
6
|
+
|
1
7
|
### 1.1.0
|
2
8
|
|
3
9
|
* [BUGFIX] Sending `Receipts` after downloading data, to circumvent download locks
|
data/lib/epics/cct.rb
CHANGED
@@ -52,10 +52,11 @@ class Epics::GenericUploadRequest < Epics::GenericRequest
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def signature_value
|
55
|
-
|
55
|
+
client.a.sign( digester.digest(document.gsub(/\n|\r/, "")) )
|
56
56
|
end
|
57
57
|
|
58
58
|
def encrypt(d)
|
59
|
+
cipher.reset
|
59
60
|
cipher.encrypt
|
60
61
|
cipher.padding = 0
|
61
62
|
cipher.key = self.key
|
@@ -75,14 +76,11 @@ class Epics::GenericUploadRequest < Epics::GenericRequest
|
|
75
76
|
end
|
76
77
|
|
77
78
|
def pad(d)
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
padded[-1] = ["#{len - d.size}".rjust(2, "0")].pack("*H")
|
84
|
-
padded
|
85
|
-
end
|
79
|
+
len = cipher.block_size*((d.size / cipher.block_size)+1)
|
80
|
+
padded = d.ljust(len, [0].pack("C*"))
|
81
|
+
padded[-1] = [len - d.size].pack("C*")
|
82
|
+
|
83
|
+
padded
|
86
84
|
end
|
87
85
|
|
88
86
|
end
|
data/lib/epics/version.rb
CHANGED
@@ -0,0 +1,37 @@
|
|
1
|
+
RSpec.describe Epics::GenericUploadRequest do
|
2
|
+
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') }
|
3
|
+
subject { described_class.new(client, "\x01" * 12) }
|
4
|
+
|
5
|
+
describe '#pad' do
|
6
|
+
|
7
|
+
it 'will complete the block to the next 16byte' do
|
8
|
+
expect(subject.pad("\x01" * 13).size).to eq(16)
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'will pad a complete block if the size is a multiple of 16' do
|
12
|
+
expect(subject.pad("\x01" * 16).size).to eq(32)
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'will set the last byte to the padding length' do
|
16
|
+
expect(subject.pad("\x01" * 13)[-1]).to eq([3].pack("C*"))
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe '#signature_value' do
|
21
|
+
before { allow(OpenSSL::Random).to receive(:random_bytes).and_return(Base64.strict_decode64("7wtROfiX4tyN60cygJUSsHkhzxX1RVJa8vGNYnflvKc=")) }
|
22
|
+
|
23
|
+
it 'will be the signed document' do
|
24
|
+
expect(subject.signature_value).to eq("BQBMyxGHYoAbbmbMJRFbGrvUNinY15+qeeRLF708VL+tuENnbJMO6xHLWxU1rksOnu4xDzxfua9b3IxIaxLyTTFDuVi6bbu3sBslhIt2frdigo0xBL14KUJQ/pYiMj+2pfNYhtVxzamrnvgPSLNAEn36JykK2d347chT87HlZ7CAGNBS7lJHAzRP1v7Hkc+kKttkkWCpOGk06R6FUCxxVKXmQketMEl/scsMyJ3JtBe/EcjEZdDe5WcqZYUu5ARrfEiAeyutVRZnu17c3nKwkmWl7UqFAwp16cS8IPNL4i5FGCytgKl/kyaoxaE/P1lrGOkHcCTsSR0bAbARhndfdQ==")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe '#order_signature' do
|
29
|
+
before { allow(subject).to receive(:signature_value).and_return("FOOBAR") }
|
30
|
+
let(:signature) { Nokogiri::XML(subject.order_signature) }
|
31
|
+
|
32
|
+
it 'contains the untouched signature_value ' do
|
33
|
+
expect(signature.at_xpath('//xmlns:SignatureValue').text).to eq("FOOBAR")
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
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: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lars Brillert
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -214,6 +214,7 @@ files:
|
|
214
214
|
- spec/fixtures/xml/sta_response.xml
|
215
215
|
- spec/fixtures/xml/sta_response_continued.xml
|
216
216
|
- spec/fixtures/xml/upload_init_response.xml
|
217
|
+
- spec/generic_upload_spec.rb
|
217
218
|
- spec/hpb_spec.rb
|
218
219
|
- spec/key_spec.rb
|
219
220
|
- spec/mgf_spec.rb
|
@@ -301,6 +302,7 @@ test_files:
|
|
301
302
|
- spec/fixtures/xml/sta_response.xml
|
302
303
|
- spec/fixtures/xml/sta_response_continued.xml
|
303
304
|
- spec/fixtures/xml/upload_init_response.xml
|
305
|
+
- spec/generic_upload_spec.rb
|
304
306
|
- spec/hpb_spec.rb
|
305
307
|
- spec/key_spec.rb
|
306
308
|
- spec/mgf_spec.rb
|