ipizza 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/CHANGELOG.md +9 -0
  4. data/Gemfile +1 -1
  5. data/Gemfile.lock +16 -14
  6. data/Guardfile +2 -2
  7. data/README.markdown +11 -7
  8. data/Rakefile +1 -1
  9. data/ipizza.gemspec +9 -9
  10. data/lib/ipizza.rb +3 -0
  11. data/lib/ipizza/authentication.rb +15 -0
  12. data/lib/ipizza/authentication_request.rb +1 -1
  13. data/lib/ipizza/authentication_response.rb +22 -9
  14. data/lib/ipizza/config.rb +3 -3
  15. data/lib/ipizza/payment.rb +4 -4
  16. data/lib/ipizza/payment_request.rb +1 -1
  17. data/lib/ipizza/payment_response.rb +15 -7
  18. data/lib/ipizza/provider.rb +8 -12
  19. data/lib/ipizza/provider/base.rb +90 -0
  20. data/lib/ipizza/provider/krediidipank.rb +1 -47
  21. data/lib/ipizza/provider/lhv.rb +4 -0
  22. data/lib/ipizza/provider/nordea/authentication_request.rb +2 -2
  23. data/lib/ipizza/provider/nordea/authentication_response.rb +7 -3
  24. data/lib/ipizza/provider/nordea/payment_request.rb +2 -2
  25. data/lib/ipizza/provider/nordea/payment_response.rb +4 -4
  26. data/lib/ipizza/provider/sampo.rb +1 -46
  27. data/lib/ipizza/provider/seb.rb +1 -78
  28. data/lib/ipizza/provider/swedbank.rb +1 -66
  29. data/lib/ipizza/request.rb +9 -2
  30. data/lib/ipizza/response.rb +7 -9
  31. data/lib/ipizza/util.rb +9 -5
  32. data/lib/ipizza/version.rb +2 -2
  33. data/spec/certificates/pangalink_danske_bank_cert.pem +22 -0
  34. data/spec/certificates/pangalink_danske_bank_key.pem +27 -0
  35. data/spec/certificates/pangalink_danske_user_key.pem +27 -0
  36. data/spec/certificates/pangalink_krediidipank_bank_cert.pem +22 -0
  37. data/spec/certificates/pangalink_krediidipank_bank_key.pem +27 -0
  38. data/spec/certificates/pangalink_krediidipank_user_key.pem +27 -0
  39. data/spec/certificates/pangalink_lhv_bank_cert.pem +22 -0
  40. data/spec/certificates/pangalink_lhv_bank_key.pem +27 -0
  41. data/spec/certificates/pangalink_lhv_user_key.pem +27 -0
  42. data/spec/certificates/pangalink_seb_bank_cert.pem +16 -0
  43. data/spec/certificates/pangalink_seb_bank_key.pem +15 -0
  44. data/spec/certificates/pangalink_seb_user_key.pem +15 -0
  45. data/spec/certificates/pangalink_swedbank_bank_cert.pem +22 -0
  46. data/spec/certificates/pangalink_swedbank_bank_key.pem +27 -0
  47. data/spec/certificates/pangalink_swedbank_user_key.pem +27 -0
  48. data/spec/config/config.yml +39 -6
  49. data/spec/config/plain_config.yml +3 -3
  50. data/spec/ipizza/authentication_response_spec.rb +11 -9
  51. data/spec/ipizza/config_spec.rb +9 -10
  52. data/spec/ipizza/provider/krediidipank_spec.rb +89 -0
  53. data/spec/ipizza/provider/lhv_spec.rb +89 -0
  54. data/spec/ipizza/provider/nordea/authentication_response_spec.rb +3 -3
  55. data/spec/ipizza/provider/sampo_spec.rb +85 -0
  56. data/spec/ipizza/provider/seb_spec.rb +60 -30
  57. data/spec/ipizza/provider/swedbank_spec.rb +63 -34
  58. data/spec/ipizza/provider_spec.rb +9 -1
  59. data/spec/ipizza/util_spec.rb +5 -1
  60. data/spec/spec_helper.rb +1 -1
  61. data/spec/support/pizza.rb +1 -1
  62. metadata +45 -25
  63. data/spec/certificates/bank.crt +0 -21
  64. data/spec/certificates/bank.csr +0 -17
  65. data/spec/certificates/bank.key +0 -27
  66. data/spec/certificates/bank.pub +0 -1
  67. data/spec/certificates/dealer.key +0 -30
  68. data/spec/certificates/dealer.pub +0 -1
  69. data/spec/certificates/seb_test_priv.pem +0 -16
  70. data/spec/certificates/seb_test_pub.crt +0 -20
  71. data/spec/certificates/seb_test_pub.pem +0 -20
  72. data/spec/certificates/swedbank_production.pem +0 -48
@@ -2,60 +2,89 @@ require 'time'
2
2
  require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
3
3
 
4
4
  describe Ipizza::Provider::Swedbank do
5
+ let(:response_time) { Ipizza::Util.time_to_iso8601(Time.now) }
6
+ let(:bank_key) { File.expand_path('../../../certificates/pangalink_swedbank_bank_key.pem', __FILE__) }
7
+
5
8
  describe '#payment_request' do
9
+ let(:payment) { Ipizza::Payment.new(stamp: 1, amount: '123.34', refnum: 1, message: 'Payment message', currency: 'EUR') }
10
+
6
11
  before(:each) do
7
- @payment = Ipizza::Payment.new(:stamp => 1, :amount => '123.34', :refnum => 1, :message => 'Payment message', :currency => 'EUR')
12
+ req_time = Time.now
13
+ Time.stub!(:now).and_return(req_time)
8
14
  end
9
-
10
- it 'signs the request' do
11
- req = Ipizza::Provider::Swedbank.new.payment_request(@payment)
12
- req.sign_params['VK_MAC'].should == 'aVCFvsLJiczQw9VoYMdtoQKj5fXkP8OI+JfQN8bFGKZGxC/X5gVIIi/Bh9AyB6JXwbeMOfUlnvuJIukpmBpDg3dEWkv4xGwKdfacqwYkgSC17OBb7VmZ+B4d6HYaO088wxH1FBSVa87HKFJ7ScTEJfd3ZEZly9WzTPHiFWvpRGDxAYtuO5nfGMcscxOQ0B0cbrIcLKvqLho25hIgns3+lvRDWsOb9lFH//7U8OBOC9SuXCBwvC4Fng3wqmBSKRJgAqvQ40Y4XpBGt3U/ix26Vs1cP8lOGHUyqzrqKbcmvqqhgWzqpa0JoK6im/MhBePyNnHVoC8Pqw4ZwZb4YrrPXw=='
15
+
16
+ it 'should sign the request' do
17
+ req = Ipizza::Provider::Swedbank.new.payment_request(payment)
18
+ params = {
19
+ 'VK_SERVICE' => '1012',
20
+ 'VK_VERSION' => '008',
21
+ 'VK_SND_ID' => Ipizza::Provider::Swedbank.snd_id,
22
+ 'VK_STAMP' => payment.stamp,
23
+ 'VK_AMOUNT' => sprintf('%.2f', payment.amount),
24
+ 'VK_CURR' => payment.currency,
25
+ 'VK_REF' => Ipizza::Util.sign_731(payment.refnum),
26
+ 'VK_MSG' => payment.message,
27
+ 'VK_RETURN' => Ipizza::Provider::Swedbank.return_url,
28
+ 'VK_CANCEL' => Ipizza::Provider::Swedbank.cancel_url,
29
+ 'VK_DATETIME' => Ipizza::Util.time_to_iso8601(Time.now)
30
+ }
31
+ signature = Ipizza::Util.sign(Ipizza::Provider::Swedbank.file_key, Ipizza::Provider::Swedbank.key_secret, Ipizza::Util.mac_data_string(params, Ipizza::Request::PARAM_ORDER['1012']))
32
+ req.sign_params['VK_MAC'].should == signature
13
33
  end
14
34
  end
15
35
 
16
36
  describe '#payment_response' do
17
- before(:each) do
18
- @params = {
19
- 'VK_T_NO' => '587', 'encoding' => 'UTF-8', 'VK_REC_ID' => 'fraktal', 'VK_REF' => '201107010000080',
20
- 'VK_SND_NAME' => 'TÕNU RUNNEL'.encode('iso-8859-4'), 'VK_T_DATE' => '01.07.2011', 'VK_STAMP' => '20110701000008', 'VK_SND_ACC' => '1108126403',
21
- 'VK_LANG' => 'EST', 'VK_SERVICE' => '1101', 'VK_REC_NAME' => 'FRAKTAL OÜ'.encode('iso-8859-4'), 'VK_AMOUNT' => '0.17',
22
- 'VK_MSG' => 'Edicy invoice #20110701000008', 'VK_AUTO' => 'N', 'VK_SND_ID' => 'HP', 'VK_VERSION' => '008', 'VK_ENCODING' => 'ISO-8859-4',
23
- 'VK_REC_ACC' => '221038811930', 'VK_CURR' => 'EUR',
24
- 'VK_MAC' => 'geOA+gjLJlFouGMih0WhbQwTehZM1FVus1OhO34yt8shekINWOzUi6gLymq9HYSDIAx/Gw2iUOKGxzhCRsXu3fxjVVlXpS9YRQfFF8HG1zoU2OUiNBZVa+7bGGDLOy+ZIhnyaW1I3jIFXHd57xDyCVCQvB0Ot4Ya9yE3YMKHTk4='
37
+ let(:params) {
38
+ {
39
+ 'VK_SERVICE' => '1111', 'VK_VERSION' => '008', 'VK_SND_ID' => 'HP', 'VK_REC_ID' => 'sender',
40
+ 'VK_STAMP' => '20150111000004', 'VK_T_NO' => '1143', 'VK_AMOUNT' => '.17', 'VK_CURR' => 'EUR',
41
+ 'VK_REC_ACC' => 'EE411010002050618003', 'VK_REC_NAME' => 'ÕILIS OÜ',
42
+ 'VK_SND_ACC' => 'EE541010010046155012', 'VK_SND_NAME' => 'TÕÄGER Leõpäöld¸´¨¦',
43
+ 'VK_REF' => '201501110000048', 'VK_MSG' => 'Invoice #20150111000004', 'VK_T_DATETIME' => response_time,
44
+ 'VK_ENCODING' => 'UTF-8', 'VK_LANG' => 'EST', 'VK_AUTO' => 'N'
25
45
  }
26
-
27
- Ipizza::Provider::Swedbank.file_cert = File.expand_path('../../../certificates/swedbank_production.pem', __FILE__)
28
- end
29
-
30
- it 'parses and verifies the payment response from bank' do
31
- Ipizza::Provider::Swedbank.new.payment_response(@params).should be_valid
46
+ }
47
+
48
+ it 'should parse and verify the payment response from bank' do
49
+ signature = Ipizza::Util.sign(bank_key, nil, Ipizza::Util.mac_data_string(params, Ipizza::Response::PARAM_ORDER['1111']))
50
+ Ipizza::Provider::Swedbank.new.payment_response(params.merge('VK_MAC' => signature)).should be_valid
32
51
  end
33
52
  end
34
53
 
35
54
  describe '#authentication_request' do
36
55
  before(:each) do
37
- Time.stub!(:now).and_return(Time.parse("Mar 30 1981"))
38
- Date.stub!(:today).and_return(Date.parse("Mar 30 1981"))
56
+ req_time = Time.now
57
+ Time.stub!(:now).and_return(req_time)
39
58
  end
40
-
59
+
41
60
  it 'should sign the request' do
42
61
  req = Ipizza::Provider::Swedbank.new.authentication_request
43
- req.sign_params['VK_MAC'].should == 'C9HV2e9IKnHcFGKjnDjx0caBMnhBtpXeZE8GOFD9Qph/KKO3eAJbMNDGJ7bOBFulot/rZVOVaqYIgTcGEfmg+FV7QgoyVwN5TBRJXdkvYo73qY8I71ONd/7lRrU+T/9b3nI+dRM3Y/D/DeMSe07/Ge9L/IDTnoloUefoOKIEGxmfr+zc0RzJ+S9nev8M+sepyA2LvbGGJKMAiraV/DpQeb3Xf8UnC7UihAjx9NtnXI5DY15YKDupj+FtwoQ4xGgV/M1Xy57XuDajnSU4wbTSqwomTE9PugpbZwqO9zbisMFA6H6PTWXn/henL8EM/D6BnL6DjsqmZlQSckabsNtuBQ=='
62
+ params = {
63
+ 'VK_SERVICE' => '4011',
64
+ 'VK_VERSION' => '008',
65
+ 'VK_SND_ID' => Ipizza::Provider::Swedbank.snd_id,
66
+ 'VK_RETURN' => Ipizza::Provider::Swedbank.return_url,
67
+ 'VK_DATETIME' => Ipizza::Util.time_to_iso8601(Time.now),
68
+ 'VK_RID' => '',
69
+ 'VK_REPLY' => '3012'
70
+ }
71
+ signature = Ipizza::Util.sign(Ipizza::Provider::Swedbank.file_key, Ipizza::Provider::Swedbank.key_secret, Ipizza::Util.mac_data_string(params, Ipizza::Request::PARAM_ORDER['4011']))
72
+ req.sign_params['VK_MAC'].should == signature
44
73
  end
45
74
  end
46
-
75
+
47
76
  describe '#authentication_response' do
48
- before(:each) do
49
- @params = {
50
- 'VK_SERVICE' => '3002', 'VK_VERSION' => '008', 'VK_USER' => 'dealer',
51
- 'VK_DATE' => '30.03.1981', 'VK_TIME' => '00:00:00', 'VK_SND_ID' => 'SWEDBANK',
52
- 'VK_INFO' => 'ISIK:37508166516;NIMI:JAAN SAAR',
53
- 'VK_MAC' => 'ds/a+lwQhq1cs34mCqbpkNkXt/6fHwxii5+G+qA9vbhic/6TUnkIiJK+gFUZzMgRKDxOiOTD44zK7P9v58G972YbNvI3+JgZmzXXTkuHOk3wfGQFdNLat+ezMdkt8EU8j6N3TLZ/8UxNl+eKGsm/RJL4QKGpg3/Sfbza22XHERepIrMyFsQXqhnSwDZF2VT6XoRJuYI+nret0pn7Bcm22AFwz4OAv9R6fgRQ2w3m3g0bOZp/ea52fv+8UivNsyo/llbajqJAgCVdRz8Jm9fSg0A/falsVVkefEEgDQwGEElxQwJ9aSj1A/NUA40cqjIIPGhoVtA7/p+VklH88cA0pQ=='
77
+ let(:params) {
78
+ {
79
+ 'VK_SERVICE' => '3012', 'VK_VERSION' => '008', 'VK_USER' => 'dealer', 'VK_DATETIME' => response_time,
80
+ 'VK_SND_ID' => 'HP', 'VK_REC_ID' => 'sender', 'VK_USER_NAME' => 'TÕÄGER Leõpäöld¸´¨¦', 'VK_USER_ID' => '35511280268',
81
+ 'VK_COUNTRY' => 'EE', 'VK_OTHER' => '', 'VK_TOKEN' => '7', 'VK_RID' => ''
54
82
  }
55
- end
56
-
57
- it 'parses and verifies the authentication response from bank' do
58
- Ipizza::Provider::Swedbank.new.authentication_response(@params).should be_valid
83
+ }
84
+
85
+ it 'should parse and verify the authentication response from bank' do
86
+ signature = Ipizza::Util.sign(bank_key, nil, Ipizza::Util.mac_data_string(params, Ipizza::Response::PARAM_ORDER['3012']))
87
+ Ipizza::Provider::Swedbank.new.authentication_response(params.merge('VK_MAC' => signature)).should be_valid
59
88
  end
60
89
  end
61
90
  end
@@ -2,6 +2,10 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
2
 
3
3
  describe Ipizza::Provider do
4
4
  describe '.get' do
5
+ it 'returns LHV provider for "lhv" attribute' do
6
+ Ipizza::Provider.get('lhv').should be_a(Ipizza::Provider::Lhv)
7
+ end
8
+
5
9
  it 'returns swedbank provider for "swedbank" attribute' do
6
10
  Ipizza::Provider.get('swedbank').should be_a(Ipizza::Provider::Swedbank)
7
11
  end
@@ -21,7 +25,11 @@ describe Ipizza::Provider do
21
25
  it 'returns sampo provider for "sampo" attribute' do
22
26
  Ipizza::Provider.get('sampo').should be_a(Ipizza::Provider::Sampo)
23
27
  end
24
-
28
+
29
+ it 'returns sampo provider for "danske" attribute' do
30
+ Ipizza::Provider.get('danske').should be_a(Ipizza::Provider::Sampo)
31
+ end
32
+
25
33
  it 'returns krediidipank provider for "krep" attribute' do
26
34
  Ipizza::Provider.get('krep').should be_a(Ipizza::Provider::Krediidipank)
27
35
  end
@@ -15,7 +15,11 @@ describe Ipizza::Util do
15
15
 
16
16
  describe '.mac_data_string' do
17
17
  it 'should compose mac string containing the values and their respective lengths' do
18
- Ipizza::Util.mac_data_string({'A' => 'aaa', 'B' => 'bbbb'}, ['B', 'A']).should == '004bbbb003aaa'
18
+ Ipizza::Util.mac_data_string({'A' => 'aaa', 'B' => 'bbbb'}, %w(B A)).should == '004bbbb003aaa'
19
+ end
20
+
21
+ it 'should compose mac string containing the values and their respective lengths for UTF strings' do
22
+ Ipizza::Util.mac_data_string({'A' => 'õäu', 'B' => 'Žaaa'}, %w(B A)).should == '004Žaaa003õäu'
19
23
  end
20
24
  end
21
25
  end
@@ -2,7 +2,7 @@ require 'rspec'
2
2
 
3
3
  # Requires supporting files with custom matchers and macros, etc,
4
4
  # in ./support/ and its subdirectories.
5
- Dir[File.expand_path(File.join(File.dirname(__FILE__),'support','**','*.rb'))].each {|f| require f}
5
+ Dir[File.expand_path(File.join(File.dirname(__FILE__), 'support', '**', '*.rb'))].each { |f| require f }
6
6
 
7
7
  RSpec.configure do |c|
8
8
  c.mock_with :rspec
@@ -5,4 +5,4 @@ RSpec.configure do |c|
5
5
  # Load configuration for tests
6
6
  Ipizza::Config.load_from_file(File.expand_path(File.dirname(__FILE__) + '/../config/config.yml'))
7
7
  end
8
- end
8
+ end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ipizza
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Priit Haamer
8
+ - Tanel Jakobsoo
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-05-22 00:00:00.000000000 Z
12
+ date: 2015-02-03 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rspec
@@ -69,13 +70,15 @@ dependencies:
69
70
  description: Simplifies generating payment requests and parsing responses from banks
70
71
  when using iPizza protocol.
71
72
  email:
72
- - priit@fraktal.ee
73
+ - priit@voog.com
74
+ - tanel@voog.com
73
75
  executables: []
74
76
  extensions: []
75
77
  extra_rdoc_files: []
76
78
  files:
77
79
  - ".gitignore"
78
80
  - ".rspec"
81
+ - CHANGELOG.md
79
82
  - Gemfile
80
83
  - Gemfile.lock
81
84
  - Guardfile
@@ -84,6 +87,7 @@ files:
84
87
  - init.rb
85
88
  - ipizza.gemspec
86
89
  - lib/ipizza.rb
90
+ - lib/ipizza/authentication.rb
87
91
  - lib/ipizza/authentication_request.rb
88
92
  - lib/ipizza/authentication_response.rb
89
93
  - lib/ipizza/config.rb
@@ -91,7 +95,9 @@ files:
91
95
  - lib/ipizza/payment_request.rb
92
96
  - lib/ipizza/payment_response.rb
93
97
  - lib/ipizza/provider.rb
98
+ - lib/ipizza/provider/base.rb
94
99
  - lib/ipizza/provider/krediidipank.rb
100
+ - lib/ipizza/provider/lhv.rb
95
101
  - lib/ipizza/provider/nordea.rb
96
102
  - lib/ipizza/provider/nordea/authentication_request.rb
97
103
  - lib/ipizza/provider/nordea/authentication_response.rb
@@ -104,21 +110,28 @@ files:
104
110
  - lib/ipizza/response.rb
105
111
  - lib/ipizza/util.rb
106
112
  - lib/ipizza/version.rb
107
- - spec/certificates/bank.crt
108
- - spec/certificates/bank.csr
109
- - spec/certificates/bank.key
110
- - spec/certificates/bank.pub
111
- - spec/certificates/dealer.key
112
- - spec/certificates/dealer.pub
113
113
  - spec/certificates/nordea_test_priv
114
- - spec/certificates/seb_test_priv.pem
115
- - spec/certificates/seb_test_pub.crt
116
- - spec/certificates/seb_test_pub.pem
117
- - spec/certificates/swedbank_production.pem
114
+ - spec/certificates/pangalink_danske_bank_cert.pem
115
+ - spec/certificates/pangalink_danske_bank_key.pem
116
+ - spec/certificates/pangalink_danske_user_key.pem
117
+ - spec/certificates/pangalink_krediidipank_bank_cert.pem
118
+ - spec/certificates/pangalink_krediidipank_bank_key.pem
119
+ - spec/certificates/pangalink_krediidipank_user_key.pem
120
+ - spec/certificates/pangalink_lhv_bank_cert.pem
121
+ - spec/certificates/pangalink_lhv_bank_key.pem
122
+ - spec/certificates/pangalink_lhv_user_key.pem
123
+ - spec/certificates/pangalink_seb_bank_cert.pem
124
+ - spec/certificates/pangalink_seb_bank_key.pem
125
+ - spec/certificates/pangalink_seb_user_key.pem
126
+ - spec/certificates/pangalink_swedbank_bank_cert.pem
127
+ - spec/certificates/pangalink_swedbank_bank_key.pem
128
+ - spec/certificates/pangalink_swedbank_user_key.pem
118
129
  - spec/config/config.yml
119
130
  - spec/config/plain_config.yml
120
131
  - spec/ipizza/authentication_response_spec.rb
121
132
  - spec/ipizza/config_spec.rb
133
+ - spec/ipizza/provider/krediidipank_spec.rb
134
+ - spec/ipizza/provider/lhv_spec.rb
122
135
  - spec/ipizza/provider/nordea/authentication_response_spec.rb
123
136
  - spec/ipizza/provider/nordea/payment_request_spec.rb
124
137
  - spec/ipizza/provider/nordea/payment_response_spec.rb
@@ -130,7 +143,7 @@ files:
130
143
  - spec/ipizza/util_spec.rb
131
144
  - spec/spec_helper.rb
132
145
  - spec/support/pizza.rb
133
- homepage: http://github.com/priithaamer/ipizza
146
+ homepage: https://github.com/Voog/ipizza
134
147
  licenses: []
135
148
  metadata: {}
136
149
  post_install_message:
@@ -149,26 +162,33 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
162
  version: '0'
150
163
  requirements: []
151
164
  rubyforge_project:
152
- rubygems_version: 2.2.0
165
+ rubygems_version: 2.2.2
153
166
  signing_key:
154
167
  specification_version: 4
155
168
  summary: Implements iPizza protocol to communicate with Estonian Banks
156
169
  test_files:
157
- - spec/certificates/bank.crt
158
- - spec/certificates/bank.csr
159
- - spec/certificates/bank.key
160
- - spec/certificates/bank.pub
161
- - spec/certificates/dealer.key
162
- - spec/certificates/dealer.pub
163
170
  - spec/certificates/nordea_test_priv
164
- - spec/certificates/seb_test_priv.pem
165
- - spec/certificates/seb_test_pub.crt
166
- - spec/certificates/seb_test_pub.pem
167
- - spec/certificates/swedbank_production.pem
171
+ - spec/certificates/pangalink_danske_bank_cert.pem
172
+ - spec/certificates/pangalink_danske_bank_key.pem
173
+ - spec/certificates/pangalink_danske_user_key.pem
174
+ - spec/certificates/pangalink_krediidipank_bank_cert.pem
175
+ - spec/certificates/pangalink_krediidipank_bank_key.pem
176
+ - spec/certificates/pangalink_krediidipank_user_key.pem
177
+ - spec/certificates/pangalink_lhv_bank_cert.pem
178
+ - spec/certificates/pangalink_lhv_bank_key.pem
179
+ - spec/certificates/pangalink_lhv_user_key.pem
180
+ - spec/certificates/pangalink_seb_bank_cert.pem
181
+ - spec/certificates/pangalink_seb_bank_key.pem
182
+ - spec/certificates/pangalink_seb_user_key.pem
183
+ - spec/certificates/pangalink_swedbank_bank_cert.pem
184
+ - spec/certificates/pangalink_swedbank_bank_key.pem
185
+ - spec/certificates/pangalink_swedbank_user_key.pem
168
186
  - spec/config/config.yml
169
187
  - spec/config/plain_config.yml
170
188
  - spec/ipizza/authentication_response_spec.rb
171
189
  - spec/ipizza/config_spec.rb
190
+ - spec/ipizza/provider/krediidipank_spec.rb
191
+ - spec/ipizza/provider/lhv_spec.rb
172
192
  - spec/ipizza/provider/nordea/authentication_response_spec.rb
173
193
  - spec/ipizza/provider/nordea/payment_request_spec.rb
174
194
  - spec/ipizza/provider/nordea/payment_response_spec.rb
@@ -1,21 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIDYjCCAkoCCQCFffTngA2a1jANBgkqhkiG9w0BAQUFADBzMQswCQYDVQQGEwJF
3
- RTERMA8GA1UECBMIVGFydHVtYWExDjAMBgNVBAcTBVRhcnR1MQ4wDAYDVQQKEwVF
4
- ZGljeTESMBAGA1UEAxMJU3Blcm1iYW5rMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHNw
5
- ZXJtYmFuazAgFw0xMDEwMjMxMzUzMjZaGA8yMjg0MDgwNzEzNTMyNlowczELMAkG
6
- A1UEBhMCRUUxETAPBgNVBAgTCFRhcnR1bWFhMQ4wDAYDVQQHEwVUYXJ0dTEOMAwG
7
- A1UEChMFRWRpY3kxEjAQBgNVBAMTCVNwZXJtYmFuazEdMBsGCSqGSIb3DQEJARYO
8
- aW5mb0BzcGVybWJhbmswggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAwggEIAoIBAQDa
9
- qmkPniJgt51TQ9UcUeIcto06FfLuF59aDRkgJ12JhPJzV2Ec5nbydaHp3MyKtgr0
10
- zuLiSGc/LH+RLgrKwpGpVNvvJYg6NZKIOW+noHSKBuzYT1JtaNkZSasl2RK9EjT6
11
- qAJ8hzPPBaOu5amBEM4MesUStZ1KYSwElvFQysqJZfccOyjCAypOhPpUYlbsTH4W
12
- 1+7h2uIjZPsafasludipxKM1ncwG2YF82uYPW+NyIrp87x1oJwfsGQBhstMKUtUx
13
- DEQ0LwTzTYGCH/j+TLnCujSkQVsdYmNfje9PTQxGWLT92CjJ90dyePdwACDa7Qoi
14
- kN+WLuESkSRT+OjV9Sa5AgEjMA0GCSqGSIb3DQEBBQUAA4IBAQB+Eq2qbKCmuAw+
15
- pSzotW7JlhU1GW0nWbvGU2T7y4SgKuRfHBh5tujhKGxMP76pIp96MuRGYZzTrPhE
16
- rxtXqEgh4b55iZDYK4EEspOaEnZgmktZgCRBLyGS95CVTxoKV20EYNxGQprMRu6T
17
- ll1nV3YgEYpp5UdQs38fP3rY+Yx6C2Vi4p+DPD1MCDGtxfzDA5LSnHnKas82nR90
18
- eHsacbmrkLMlBOuPGRMwRyGbOHNsFa1O6hLk8IFz1HZUJJepKnCLhC6zjl0AlMi5
19
- gJ8iY0fhJKQSp50oJtb4MymTo2IZBlQL7or7kviNETpbdGfplKn8U11VTAUjRC5/
20
- Tp9Eluhh
21
- -----END CERTIFICATE-----
@@ -1,17 +0,0 @@
1
- -----BEGIN CERTIFICATE REQUEST-----
2
- MIICtjCCAZ4CAQAwczELMAkGA1UEBhMCRUUxETAPBgNVBAgTCFRhcnR1bWFhMQ4w
3
- DAYDVQQHEwVUYXJ0dTEOMAwGA1UEChMFRWRpY3kxEjAQBgNVBAMTCVNwZXJtYmFu
4
- azEdMBsGCSqGSIb3DQEJARYOaW5mb0BzcGVybWJhbmswggEgMA0GCSqGSIb3DQEB
5
- AQUAA4IBDQAwggEIAoIBAQDaqmkPniJgt51TQ9UcUeIcto06FfLuF59aDRkgJ12J
6
- hPJzV2Ec5nbydaHp3MyKtgr0zuLiSGc/LH+RLgrKwpGpVNvvJYg6NZKIOW+noHSK
7
- BuzYT1JtaNkZSasl2RK9EjT6qAJ8hzPPBaOu5amBEM4MesUStZ1KYSwElvFQysqJ
8
- ZfccOyjCAypOhPpUYlbsTH4W1+7h2uIjZPsafasludipxKM1ncwG2YF82uYPW+Ny
9
- Irp87x1oJwfsGQBhstMKUtUxDEQ0LwTzTYGCH/j+TLnCujSkQVsdYmNfje9PTQxG
10
- WLT92CjJ90dyePdwACDa7QoikN+WLuESkSRT+OjV9Sa5AgEjoAAwDQYJKoZIhvcN
11
- AQEFBQADggEBAIXdnuggh14uC9f+lReTa/XG3GK6guryVwDQ2kHhmfS+GNwc5wFp
12
- 3hNNFnbsF/4jmszKRSgwwvy5x8ebTFfp5VklHHo/l5YSggiSBp8+IIAPS26WtclU
13
- lJZAcwhr+3YG5phjqe4auJhXFrPU9HtyhC8MmALRHj2FWvkMizEGH4efLEbTETPp
14
- zVAVienF8BJSsSUx1W5kG03OGPp6d7vFR/o2xgy+NmX1jrZvIz7MwMd/3x8Xclaj
15
- /Huu1Gsnw0xELrzvftbi8LE0VEuKcSuqISiXGhLdzmCbRgEnzqU6WoJoge7kgYg+
16
- WfPSzI0aDrhvZ95FVfyuBwNSvSFCPFBfP6M=
17
- -----END CERTIFICATE REQUEST-----
@@ -1,27 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- MIIEogIBAAKCAQEA2qppD54iYLedU0PVHFHiHLaNOhXy7hefWg0ZICddiYTyc1dh
3
- HOZ28nWh6dzMirYK9M7i4khnPyx/kS4KysKRqVTb7yWIOjWSiDlvp6B0igbs2E9S
4
- bWjZGUmrJdkSvRI0+qgCfIczzwWjruWpgRDODHrFErWdSmEsBJbxUMrKiWX3HDso
5
- wgMqToT6VGJW7Ex+Ftfu4driI2T7Gn2rJbnYqcSjNZ3MBtmBfNrmD1vjciK6fO8d
6
- aCcH7BkAYbLTClLVMQxENC8E802Bgh/4/ky5wro0pEFbHWJjX43vT00MRli0/dgo
7
- yfdHcnj3cAAg2u0KIpDfli7hEpEkU/jo1fUmuQIBIwKCAQA4OnLJgG89cQsyqwrq
8
- Bm1X1yuhONgRVogP13t9S/N7Ii+3QlrM6s4hFu8e4QFlf0SlWcVQIT8e346EauzV
9
- DXXptrw2Ljj5BnYjB3R7j6jwSuxyIwaRKZbpPtQ87q0MC/7+oDsnVfdhHrUPt2YZ
10
- 37/0lJkTcIeIJ52ax7plO3Xo0JnQMtuyLI6/JMmZ5yK9Ew/L7sb7qhA9kwuDI6Ja
11
- 5SHMPVqQRqZi5YEjIQJ0PjP9M6FkEJdIdeUD/WkCVjUmsJOq2/JX7mK+xkutz4rs
12
- /GhCjw/quH1vcfjBZDswDb/vhBF1+iGj1qLmCRDycRjVWDodytI0RdqtdowfkO9u
13
- jiALAoGBAPk9eHG3dZP+iht7shF9X+Dhqn3o1Nwv9uZ/gJeI2KkduOWECSg3I6H7
14
- rZ51MTGESw2Cm/88THvl1ROBKZgC18u6Rp+/8i+q6EdEwIGy20vMxIKmA0DyTxtn
15
- Lo5V6imY3l+xTt7K37Oj4OzI15SOT1v+x11WlavPIPO7822dXL+JAoGBAOCYp5mO
16
- ivlopLJlu6Hk99GN4jJCxf+upARHq2NX1+UAALLV1zkyqyIxdAUrca7cR8eRoNHZ
17
- LIMvo1SCHYjGWpJQGPYB1qqbYhPuxpPquEpIdAJQ/t0H5key9gkFnzEmeLwP9XHX
18
- RqiI5o/b4oEO8T3o0TRX3uLZv53kYBD8b7GxAoGAQBce+KuEomYGQZTWBH9TKzK2
19
- z+tp73oMSeZFo08TJCw22+7Ahq8XypEspRbSIqz9Wz7XqAgw7KjQZBnmH8Y3fYer
20
- wq2zThYBNuXLGglrlyYGpUChwD5O2ykpOose9MDouYVdbH1Pd1YGo0mWhUkqWXwH
21
- YSTkqIW4BCkEFN9SXSMCgYEA2i3ko8xMfUEVBRJegAL/XdpJcqdD/7D3Ghm8byIi
22
- LuoPTqPYY3MMpN+VRtm+5GD1RYYnMkCu5daBaAlehN3xlXJhZAHJOASoayJ3wuQD
23
- e1xTb/bo8/kLlhuP64HN1/l8mW6WqRpEo7gwbn3Ut+KhNNOJZgw3mopiXt3ZqhnL
24
- lqsCgYEA6P5SoSj3LOaPISNqwXKgz+JZc7fHuhcUNkg5gh7kzTqo2wtT1HHB/qgu
25
- tr44JyzTRY5K2r9YYWctCA69rClYMiNds+XxhJ7TYdNzRv8/sTrWvn6t4/I+o8Ke
26
- ETd6XQEi9EUpkfrsVyq9oMTYTZeUiEybDZuYdv2vJSB45X6e6pc=
27
- -----END RSA PRIVATE KEY-----
@@ -1 +0,0 @@
1
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2qppD54iYLedU0PVHFHiHLaNOhXy7hefWg0ZICddiYTyc1dhHOZ28nWh6dzMirYK9M7i4khnPyx/kS4KysKRqVTb7yWIOjWSiDlvp6B0igbs2E9SbWjZGUmrJdkSvRI0+qgCfIczzwWjruWpgRDODHrFErWdSmEsBJbxUMrKiWX3HDsowgMqToT6VGJW7Ex+Ftfu4driI2T7Gn2rJbnYqcSjNZ3MBtmBfNrmD1vjciK6fO8daCcH7BkAYbLTClLVMQxENC8E802Bgh/4/ky5wro0pEFbHWJjX43vT00MRli0/dgoyfdHcnj3cAAg2u0KIpDfli7hEpEkU/jo1fUmuQ== priit@Priit.local
@@ -1,30 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- Proc-Type: 4,ENCRYPTED
3
- DEK-Info: DES-EDE3-CBC,DDB688B584D929BC
4
-
5
- 9bETOPI7ZZyVtbGtMkFAaVwWSVPHOcTnRJMsBMBhArjLuR5P0m4LjDfscfA+9kW0
6
- TBNL+79D9XbiSQQDtgA47KeplaZNBNV1RQJ4526XprWp9PIkzlFp6zHMU+doOEnY
7
- eUHGPorFxvYJewO9KtkxCDDurBUckO19jepxBOTrmdsbouk2uTsNYfRu60EJtFoE
8
- vGk+wlD8lI6UvNWmluBJHBYo/UR3dFaTXEpYVkIAhnOdG+mS0Bm1/aCQylH5pxRz
9
- H0KcEqEAjwLDeLmGrdphYbpmwy1dCmyxC6H4cxzxXw1AvIM3f0m7H+qCuMY6gnYp
10
- SNNerpCpujo/7/UesIW2sM9x/3db2DrrhuBka4prUvarbd1JweO5fb2yYIshEjNq
11
- C+g8b6mzQN9wDiuJdZyjg69yXAtBbOnzujRVVoRmm2w4C0jS/Vudak3+C+75DzgR
12
- n3QyrAY4wavMHvW716/gAw3oFlnmKyMX+kmxpeMu1Lh+HE3M3oFqULNxkXHkSn1f
13
- HwhVn+ypf6G5hZb+wmWKMEzwISQTti/bhzXulmW4P4wQFGeHifOCAMDURIKd8Mv8
14
- zSx5FUihVUwd8ZUKEfvt9o/voO8saIe4DA77jd3U3N8Vb8kkFbBaw6VOMVl59m6l
15
- ctjBgmtCjKLPwYvlHm4OI73RQk5pN/3BJ3u3gZXb/Px4zmB3I+ErZCH7SXbNZhO3
16
- 1JQ0XG1/10HtTDBMR1rcaP49E9xzw2nNqdjUi4zbMWxsCCSSg01oNUf3XjBBslJH
17
- fjsdUAVK7MuIsBhicKsSDZ2XFa5QJHmrLCisVo/lvD7ZoEnHfYAaMdThYA4ZAyJf
18
- J0h71N2U/vlHSZBY1S7yIGgViYKBqrXUylT3E7ESwisiblM+wkxhlCbMPOtPpzhq
19
- u6UhPhga+C190I2FQpPN439q+FiIO7qPJw9jCZn/P3b5WM5aj6XjcxCvzqCLXaRx
20
- uabx4ze+xCci7GeY4B5M7SkFEK2vYxSWTa3phjWxRMKTF02NNq4tCD45HqgphyP4
21
- 5dvQvn6+RHjGaRmoV9vnU7cciuVrnw/6G4iIllZrulvwVozbIR1an02bJawK4WYC
22
- inGFGdnY8xenEkKII8QmPmGEtJSt2XWHNd66wC0MGJH1gsgo1nbYrX3woHn4Vekz
23
- zuGIsZM/+TtMpz/qbG4CS5wHVnloFr//FoFCPNKEqt79BmnsR2Xj05xLjDA4ENey
24
- MZ0Jy2SulXP2xVauOCSnUJZvxpcue2wPXG5gzakzZ5GTrKOO3psLnA5N5M6kCLX+
25
- LQHKzA6D+i1d3b+dP0SJQBDAkFGY0GvBOCbgIRs+/SCUNPXY9/GNlx11O+lQAjn6
26
- BH6fuh2KYh1RoPdQISzCdzP3hhnwo6NEEioqtGA4yQJ6XFjsDb8VmI7O94QjloGd
27
- uWvbppa3lKgDcQhPbru+R/M7kT15CDafR7NSlPCXJKSh0WO2SAHRjxOUN1/ABeSA
28
- L484LL+d74CIiGMKJXv4nIvvtaR/gV4a7tfOdw2eJ7e2LPAD8UeBYCyxleTGPP1Y
29
- aIQOe9025vIvdjBuws+pmsnCKuAVa1p853q17y2iQ8xYORT6tvtD8Q==
30
- -----END RSA PRIVATE KEY-----
@@ -1 +0,0 @@
1
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA22gPnSfXmJIoCKiK9C5YVhRvkP1Y7z+wrHHB+X5z80MxmsL9q/dyjBoqbv0+ij4iW6ZJXWdJGeXFmjMT9fjb4mTiXNml4VEdeDKo1+nafpUngUjWMzjlyZq1noWBAOcPFbsUEas8dIBhrml+3c4Vyf372ikEknbDQFdE86+7b/sYM/OLAwLn1MzeI107c3ur6n3QgEa+cpJzSULjSUqwFZLUJ7ZasG5FlR+epmIELFubFFZFM8AID2rfBGNlGo49ge313baJHEcQkV2gEOc/bo2WLtEYq6AFsoFl0B3afj/u+Yn5xxZ2x933dIgxWjKhm3SCOWrww4V5qCCmBVywCQ== priit@Priit.local
@@ -1,16 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- MIICXAIBAAKBgQC+AROlXiRvi1T7Q9fAh0Lw73szAn26mqfKDqd6Bdplq3v+gVWC
3
- 3v0+bgtfNakRE/UVYOxEA0z0viqRpKzPuNy8OstTMe8fFKs19NW8lBYik6NzJ4Bk
4
- +B6VmovOm0nJLQJytXKiJyuHP9DqPOVmP8S+azzX7Uqzov1nxo9fvH7y2QIDAQAB
5
- AoGAFhbD9O6r57fYCloJxB01gBMnTHfWrBH8vbXUbJAvorA7+wuIKG3KHS7n7Yqs
6
- fArI7FJXRVTo5m8RPdtaJ9ADAT9rjAi3A17TaEueyJl+B/hjHYhsd8MeFhTb2fh0
7
- rY3F6diL8U/YDbiAIegnKO0zcc6ynJrsQZvzb6DlY/CLPe0CQQD3KXJzw1ZfJ1ts
8
- c370b/ZC1YrRURw41Q0I8ljYJ8EJw/ngVxrnCIsd43bRnOVp9guJrjTQRkhDC3Gn
9
- J2Y0+42LAkEAxMxmh7QY4nItBTS0fe1KCat4VDxhyxYEhZKlGDhxW75vNROrripB
10
- 1ZfBsq5xkY2MM9R7WKmL7SpStrUPIvEVqwJBAOXA4ISd61cupbytrDEbNscv7Afh
11
- pyNpYOGVLmNYqQgj5c7WCcsD1RYmkRgPCe8y6czFZJDLFHdGVxLz+/16bTsCQC9J
12
- Ob2TnYMTkhO1JUU4tdh69e+vjoPgp3d80+Rs83fq2wey0UaI6saqryUC21Dw5OYz
13
- QOv92RxEVhmGibuIl/8CQCiYrzwlZJDlsKrWPZT0E8rzNmLZkhNHzYJP9S7x+FKk
14
- m3gFeXEBgzGn9UOd6xIAp0p7A1XVBN8XzDMa09gSOks=
15
- -----END RSA PRIVATE KEY-----
16
-
@@ -1,20 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIDRTCCAq6gAwIBAgIBADANBgkqhkiG9w0BAQQFADB7MQswCQYDVQQGEwJFRTEO
3
- MAwGA1UECBMFSGFyanUxEDAOBgNVBAcTB1RhbGxpbm4xDDAKBgNVBAoTA0VZUDEL
4
- MAkGA1UECxMCSVQxDDAKBgNVBAMTA2EuYTEhMB8GCSqGSIb3DQEJARYSYWxsYXIu
5
- YWxsYXNAZXlwLmVlMB4XDTk5MTExNTA4MTAzM1oXDTk5MTIxNTA4MTAzM1owezEL
6
- MAkGA1UEBhMCRUUxDjAMBgNVBAgTBUhhcmp1MRAwDgYDVQQHEwdUYWxsaW5uMQww
7
- CgYDVQQKEwNFWVAxCzAJBgNVBAsTAklUMQwwCgYDVQQDEwNhLmExITAfBgkqhkiG
8
- 9w0BCQEWEmFsbGFyLmFsbGFzQGV5cC5lZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
9
- gYkCgYEAvgETpV4kb4tU+0PXwIdC8O97MwJ9upqnyg6negXaZat7/oFVgt79Pm4L
10
- XzWpERP1FWDsRANM9L4qkaSsz7jcvDrLUzHvHxSrNfTVvJQWIpOjcyeAZPgelZqL
11
- zptJyS0CcrVyoicrhz/Q6jzlZj/Evms81+1Ks6L9Z8aPX7x+8tkCAwEAAaOB2DCB
12
- 1TAdBgNVHQ4EFgQUFivCzZNmegEoOxYtg20YMMRB98gwgaUGA1UdIwSBnTCBmoAU
13
- FivCzZNmegEoOxYtg20YMMRB98ihf6R9MHsxCzAJBgNVBAYTAkVFMQ4wDAYDVQQI
14
- EwVIYXJqdTEQMA4GA1UEBxMHVGFsbGlubjEMMAoGA1UEChMDRVlQMQswCQYDVQQL
15
- EwJJVDEMMAoGA1UEAxMDYS5hMSEwHwYJKoZIhvcNAQkBFhJhbGxhci5hbGxhc0Bl
16
- eXAuZWWCAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBfkayuot+e
17
- fwW8QmPwpWF5AY3oMT/fTncjCljDBOg39IQv4PjnpTdDfwwl3lUIZHHTLM2i0L/c
18
- eD4D1UFM1qdp2VZzhBd1eeMjxYjCP8qL2v2MfLkCYcP30Sl6ISSkFjFc5qbGXZOc
19
- C82uR/wUZJDw9kj+R1O46/byG8yA+S9FVw==
20
- -----END CERTIFICATE-----