epics 1.0.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.
Files changed (82) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +6 -0
  5. data/CONTRIBUTING.md +5 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +165 -0
  8. data/README.md +197 -0
  9. data/Rakefile +7 -0
  10. data/epics.gemspec +50 -0
  11. data/lib/epics.rb +35 -0
  12. data/lib/epics/cct.rb +42 -0
  13. data/lib/epics/cd1.rb +42 -0
  14. data/lib/epics/cdd.rb +42 -0
  15. data/lib/epics/client.rb +216 -0
  16. data/lib/epics/error.rb +324 -0
  17. data/lib/epics/generic_request.rb +99 -0
  18. data/lib/epics/generic_upload_request.rb +89 -0
  19. data/lib/epics/haa.rb +40 -0
  20. data/lib/epics/hia.rb +78 -0
  21. data/lib/epics/hpb.rb +29 -0
  22. data/lib/epics/hpd.rb +40 -0
  23. data/lib/epics/htd.rb +40 -0
  24. data/lib/epics/ini.rb +69 -0
  25. data/lib/epics/key.rb +79 -0
  26. data/lib/epics/mgf.rb +41 -0
  27. data/lib/epics/middleware/parse_ebics.rb +15 -0
  28. data/lib/epics/middleware/xmlsig.rb +18 -0
  29. data/lib/epics/ptk.rb +52 -0
  30. data/lib/epics/response.rb +93 -0
  31. data/lib/epics/signer.rb +40 -0
  32. data/lib/epics/sta.rb +52 -0
  33. data/lib/epics/version.rb +3 -0
  34. data/lib/letter/ini.erb +231 -0
  35. data/spec/client_spec.rb +98 -0
  36. data/spec/fixtures/a006.pem +28 -0
  37. data/spec/fixtures/bank_e.pem +6 -0
  38. data/spec/fixtures/e002.pem +28 -0
  39. data/spec/fixtures/x002.pem +28 -0
  40. data/spec/fixtures/xml/cd1.xml +87 -0
  41. data/spec/fixtures/xml/ebics_business_nok.xml +21 -0
  42. data/spec/fixtures/xml/ebics_technical_nok.xml +12 -0
  43. data/spec/fixtures/xml/hia.xml +2 -0
  44. data/spec/fixtures/xml/hia_request_order_data.xml +2 -0
  45. data/spec/fixtures/xml/hpb.xml +34 -0
  46. data/spec/fixtures/xml/hpb_request.xml +34 -0
  47. data/spec/fixtures/xml/hpb_response.xml +21 -0
  48. data/spec/fixtures/xml/hpb_response_order.xml +22 -0
  49. data/spec/fixtures/xml/htd_order_data.xml +153 -0
  50. data/spec/fixtures/xml/ini.xml +2 -0
  51. data/spec/fixtures/xml/signature_pub_key_order_data.xml +2 -0
  52. data/spec/fixtures/xml/upload_init_response.xml +31 -0
  53. data/spec/hpb_spec.rb +15 -0
  54. data/spec/key_spec.rb +35 -0
  55. data/spec/mgf_spec.rb +36 -0
  56. data/spec/middleware/parse_ebics_spec.rb +18 -0
  57. data/spec/orders/cct_spec.rb +17 -0
  58. data/spec/orders/cd1_spec.rb +17 -0
  59. data/spec/orders/cdd_spec.rb +17 -0
  60. data/spec/orders/haa_spec.rb +11 -0
  61. data/spec/orders/hia_spec.rb +34 -0
  62. data/spec/orders/hpb_spec.rb +11 -0
  63. data/spec/orders/hpd_spec.rb +11 -0
  64. data/spec/orders/htd_spec.rb +11 -0
  65. data/spec/orders/ini_spec.rb +36 -0
  66. data/spec/orders/ptk_spec.rb +11 -0
  67. data/spec/orders/sta_spec.rb +11 -0
  68. data/spec/response_spec.rb +34 -0
  69. data/spec/signer_spec.rb +34 -0
  70. data/spec/spec_helper.rb +43 -0
  71. data/spec/support/ebics_matcher.rb +22 -0
  72. data/spec/xsd/ebics_H004.xsd +11 -0
  73. data/spec/xsd/ebics_hev.xsd +135 -0
  74. data/spec/xsd/ebics_keymgmt_request_H004.xsd +543 -0
  75. data/spec/xsd/ebics_keymgmt_response_H004.xsd +137 -0
  76. data/spec/xsd/ebics_orders_H004.xsd +1892 -0
  77. data/spec/xsd/ebics_request_H004.xsd +355 -0
  78. data/spec/xsd/ebics_response_H004.xsd +166 -0
  79. data/spec/xsd/ebics_signature.xsd +217 -0
  80. data/spec/xsd/ebics_types_H004.xsd +2426 -0
  81. data/spec/xsd/xmldsig-core-schema.xsd +318 -0
  82. metadata +319 -0
@@ -0,0 +1,98 @@
1
+ RSpec.describe Epics::Client do
2
+
3
+ subject { described_class.new( File.read(File.join( File.dirname(__FILE__), 'fixtures', 'SIZBN001.key')), 'secret' , 'https://194.180.18.30/ebicsweb/ebicsweb', 'SIZBN001', 'EBIX', 'EBICS') }
4
+
5
+ describe 'attributes' do
6
+ it { expect(subject.host_id).to eq('SIZBN001') }
7
+ it { expect(subject.keys_content).to match(/SIZBN001.E002/) }
8
+ it { expect(subject.passphrase).to eq('secret') }
9
+ it { expect(subject.partner_id).to eq('EBICS') }
10
+ it { expect(subject.url).to eq('https://194.180.18.30/ebicsweb/ebicsweb') }
11
+ it { expect(subject.user_id).to eq('EBIX') }
12
+
13
+ it 'holds all keys, user and bank' do
14
+ expect(subject.keys).to match(a_hash_including(
15
+ "E002" => be_a(Epics::Key),
16
+ "X002" => be_a(Epics::Key),
17
+ "A006" => be_a(Epics::Key),
18
+ "SIZBN001.E002" => be_a(Epics::Key),
19
+ "SIZBN001.X002" => be_a(Epics::Key)
20
+ ))
21
+ end
22
+
23
+ end
24
+
25
+ describe '#e' do
26
+ it 'the encryption key' do
27
+ expect(subject.e.public_digest).to eq("rwIxSUJAVEFDQ0sdYe+CybdspMllDG6ArNtdCzUbT1E=")
28
+ end
29
+ end
30
+
31
+ describe '#x' do
32
+ it 'the signing key' do
33
+ expect(subject.x.public_digest).to eq("Jjcu97qg595PPn+0OvqBOBIskMIiStNYYXyjgWHeBhE=")
34
+ end
35
+ end
36
+
37
+ describe '#a' do
38
+ it 'the authentication key' do
39
+ expect(subject.a.public_digest).to eq("9ay3tc+I3MgJBaroeD7XJfOtHcq7IR23fljWefl0dzk=")
40
+ end
41
+ end
42
+
43
+ describe '#bank_e' do
44
+ it 'the banks encryption key' do
45
+ expect(subject.bank_e.public_digest).to eq("dFAYe281vj9NB7w+VoWIdfHnjY9hNbZLbHsDOu76QAE=")
46
+ end
47
+ end
48
+
49
+ describe '#bank_x' do
50
+ it 'the banks signing key' do
51
+ expect(subject.bank_x.public_digest).to eq("dFAYe281vj9NB7w+VoWIdfHnjY9hNbZLbHsDOu76QAE=")
52
+ end
53
+ end
54
+
55
+ describe '#HPB' do
56
+ before do
57
+ stub_request(:post, "https://194.180.18.30/ebicsweb/ebicsweb")
58
+ .with(:body => %r[<?xml(.*)ebicsNoPubKeyDigestsRequest>])
59
+ .to_return(status: 200, body: File.read(File.join(File.dirname(__FILE__), 'fixtures', 'xml', 'hpb_response.xml')))
60
+ end
61
+
62
+ it { expect(subject.HPB).to match([be_a(Epics::Key), be_a(Epics::Key)]) }
63
+
64
+ it 'changes the SIZBN001.(E|X)002 keys' do
65
+ expect { subject.HPB }.to change { subject.keys["SIZBN001.E002"] }
66
+ expect { subject.HPB }.to change { subject.keys["SIZBN001.X002"] }
67
+ end
68
+
69
+ describe 'crypto' do
70
+ let(:e_key) do
71
+ Epics::Key.new(OpenSSL::PKey::RSA.new(File.read(File.join(File.dirname(__FILE__), 'fixtures', 'bank_e.pem'))))
72
+ end
73
+
74
+ before { subject.HPB }
75
+
76
+ it { expect(subject.keys["SIZBN001.E002"].public_digest).to eq(e_key.public_digest) }
77
+ it { expect(subject.keys["SIZBN001.X002"].public_digest).to eq(e_key.public_digest) }
78
+ end
79
+ end
80
+
81
+ describe '#HTD' do
82
+ before do
83
+ allow(subject).to receive(:download).and_return( File.read(File.join(File.dirname(__FILE__), 'fixtures', 'xml', 'htd_order_data.xml')))
84
+ end
85
+
86
+ it 'sets @iban' do
87
+ expect { subject.HTD }.to change { subject.instance_variable_get("@iban") }
88
+ end
89
+
90
+ it 'sets @bic' do
91
+ expect { subject.HTD }.to change { subject.instance_variable_get("@bic") }
92
+ end
93
+
94
+ it 'sets @name' do
95
+ expect { subject.HTD }.to change { subject.instance_variable_get("@name") }
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,28 @@
1
+ -----BEGIN PRIVATE KEY-----
2
+ MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDXjmjtnx5eemu2
3
+ 3EuBQJ308rxoom5osnnfScdcInwqI7s8y6Z0lVp2w5tsMgdf2FytVf3JZSviwq2r
4
+ +PMTJ6IGtGkXFca0graQFvjwelp9YSpDVtpv8CLj9VYPiwdhALAFbwojKwqchilF
5
+ BjUOcdD4fdd8WFIGeNUavwjSdsOALbgoG6+Sr0U8LyhL+CRCeaspnnat2MtZLere
6
+ R20JC8zKTDgbTC81AYmVL9bEwKRLSt/QnQiPBgBLGXVuXj0na++8tKrAO0Ak8VpY
7
+ i6TQwceATrmCc/SHXo6rTU+MwA+7EAemGoueC8ydJaR5gN22it/2N4ASasQt1h0g
8
+ X+vMeuonAgMBAAECggEAKXjTxUwE6saA7Nirij2lZlhBWZxOw8P64LPwMFDONMlV
9
+ H9hKuUl28zylLYbellkpU4wk3NejPuiXw2uNUNUiPkn9ohxlc5tmhoh08seHm3HT
10
+ UMtoEXtRKyyrlyf3jnk0ZIc9mxCP5ReG3ynXkWTigLytddYESgx7a77vcpa4/HL0
11
+ 9QEkrZCG92m4ga4/rvwSR/V/UcwNarf96/W4leKlmgfXuz0V7Md6tfoubc3pnfI8
12
+ I9D7Xp9eRRxWLqLNhpJ5R5JJOsC8qIwuvN/2qjtT8ClAzg85DSu7hUxv8cVqxcWe
13
+ jy+hYpnnolDaTt29Htg5Qo0+K6DMaBA/oisPsz2t4QKBgQDzimHfoaNo8LcXPkr7
14
+ eQt/HQvvkkrppfoktMQes142YtaM1e2lWNgtVXG9mwFKI/GrSJ6yJVCC4CGa3zX7
15
+ euWEUVuWxmpEpH8Tvi0G3389MIECWLxgkWNN4knmC2IwBM6oD4ihd819wWzwsPpn
16
+ a+5Df3yL4/FflhttJCNCUoJR0QKBgQDilYV6ShIVL1XgyP8YPDU8t5vm7n6RoTnP
17
+ tJ2gu2lW4fqeHO30jgcPBw8UG6FGYalcCixxGVrrrGmgJe1lHYLUOOdn4x5JqZAn
18
+ 7I/hm7QSK1C1+qJMWCaQxzo+2DclJOs4oXgES35RiKb3ErDlQW2GyOgNZoLQFFCx
19
+ HSJKiJ9CdwKBgFFSmDQQyXw1RS4hwvAOD2S20lGBTDqRDeJL6mFGC+OlRXdpyB06
20
+ eZVJvt1NcTTMo9pKOZPLGgNZzF7mwiPjedihQjAquTmKpFR3YJm278oC9FFQSDcG
21
+ 1V4gfgSvMG5QbKF57mnck2W2vSXyMutuAvXPEEu2JdeBTE85jfyLiLDBAoGARcse
22
+ yVNljIb/IfVntjRdha1c5V5TOFJ8N0GASFFSGkQTaX6pwWm6POPEvkHghIhynXo4
23
+ xEG2IuABzSXBoSLc+Lfqd7Ka0r/bOqEAlNLcPbh/7P4d3fxNLM1hYJhDLDraBaCf
24
+ EluatkyseXCVcpibvyfFatNHugZ38IZz2JeKzvMCgYBdz52dlr4TSMigbI93B6Ox
25
+ 4bBsu/kue+eL1kcOBEBa/uMQLEWgQLWpHkskVpRzpbyu2drSozW6wOx6EBt7HlRV
26
+ eG8rYi6P6SOiUoaLWcRqnaFCL5JgzGMlgmcIhwA9ABCdo6gMWJFXkkrIyKBm2FsQ
27
+ KfJIQL6xXtLW1h+56l93XA==
28
+ -----END PRIVATE KEY-----
@@ -0,0 +1,6 @@
1
+ -----BEGIN PUBLIC KEY-----
2
+ MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCdv9DqCGcnW/bICm4sKg3MANDb
3
+ XFDCGIuhiuz6qEbM7tbsrRp8SY0IRretpDLJVry4Hm1EsHav092MhrGtykHiBmlF
4
+ J/YqsrtwaDTjHaNgyzeDXRjGNVkfx22ESkdyR8lEYUwSsNuyknEUXShpeo2PlXF3
5
+ EyiS/D41zEB+XA+hswIDAQAB
6
+ -----END PUBLIC KEY-----
@@ -0,0 +1,28 @@
1
+ -----BEGIN PRIVATE KEY-----
2
+ MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDWuSNkXpPgLrr3
3
+ gKaI5unAj3yTieBqoN4GkhBXyafb9EQCsSOeDBqcklt03nWkLL9KfXRmK2o+yziY
4
+ +nKRxMnI0PE7N1mTXbB3MiihOLLIwmgjw36xNYFaUa9PwRHZkQc5tkkAZaoHqw5G
5
+ NMRE+qqxDz6xQ1xKhJd9ycxWtuCltVL8uyBDCWeramaxGrfkORV/7TdSFizdCSm3
6
+ OFpBcYWZsMNviilPGnVmAmrOXof4YMOEUDn7HPULk9rg4vaM04LK5G7rTDKYfWBz
7
+ pw6Ze9hMrIJJVj6Tz/A92rqsXXKVpxMRYWFuL7VkDxFUk+pDM57qBfExcUWgpN6f
8
+ VO2SBebpAgMBAAECggEBAJb7Q1mV7yDZevoBahglVgPiYNRVRIl1Z+jy168Cypcs
9
+ 4I2MBOFi3WtutgQtUEcKd89m+2vD50cUGk3m/Jxm5QPhd14OA1xNqoGFsW/7sCre
10
+ F9/d3L26Q6RAf6byuRxkj9ISzK4MzkvqCXVwMPnX0CID+C8okEKNjQAT3yyyFrAs
11
+ z99pAoPD7xfGyZDbpSpdzmm62z69znCZjej1QrknVNmi27/8blat+wHIzTBiyiav
12
+ jhcCbZ2YQFghE/Lb1B8dCJvj7eihwTiNWdc61u9U3zCN/AyxV4rl97/NG/bT5jeK
13
+ fwkd3yCFSMLBTi0+3GyCv9gN7kokBdFEbkd1oyl43SECgYEA62RFlP2DdAZZMxn6
14
+ Q/O8yAncIgLZ+2RlSLn4BWdBHM+O4DGAdXSMjb4BG30UxLZyEwHodSKfolMJdMS/
15
+ UNQXffOTJmNRgbT75iCi+3QYHa+ZXPKUs0YUyWTxH6IlX0soHtAXQBz6TZgj1Alx
16
+ hRZ33xdAfOt+yrjebIySWxW6hd0CgYEA6YWiAlnaa8v3VvJCshpx68HEeyyKukvg
17
+ HiwyxGO9BoK8sgou/8cQgxhj45foTBwuGspgiyXl5Y6Lr/C+C9s81kskkGzIRZHF
18
+ 1t9iQjiIxNaqb5k7+2LmR5ScV/ckkgWd/nfFY94iMCSovLUGJIleB3infKZ2pwHl
19
+ F1sI/8CdEn0CgYEAiZTc+p1GVO1U+4JGfasbfwwMRzDFeaMPc/eGWJomO5GxH6av
20
+ P3d0o3AXs5pjJirA+A0YckZfaYABOee5LqQYavyP2FMak6ZVyQbwW+paIhe9ms8K
21
+ TNI8Wg4OxP9/unfyJjhYLpgBUJMI9ejjGfes7o7nmVwHirONBYMQE/7aO10CgYEA
22
+ pkfbhqUInL2OD8FNsJiYCfHdwH+FAQbKPXHnbGRA0wQA7R3HPaY3ocGaTxN5+8gN
23
+ JFJ60FpaC02nNc7M5JBmD4lOLfDn4nHcWBaUVub+rHrWvcR1K5nOs6WkdharWbba
24
+ O7p5OZWQ7osMA+M6zoVqCRPm3yGBV4ZH5IuUKtiyf9kCgYEAqvbm6V0fu/sphEqj
25
+ TxoAG6c/Q7aFu7TD3a6znnnml7gTyuWG88Kt8xwUILKhUJpdf3cpeu+FJ0MTn45q
26
+ cbjkhO/fZMVaGzO9IIuu0L3T61fyVhUGB/MNjFGAs8iL0trcrw6/sKFSXm/wuax5
27
+ 7YFHryPYM/JT+Ob4xvB6F+1FD6Q=
28
+ -----END PRIVATE KEY-----
@@ -0,0 +1,28 @@
1
+ -----BEGIN PRIVATE KEY-----
2
+ MIIEuwIBADANBgkqhkiG9w0BAQEFAASCBKUwggShAgEAAoIBAQCmF+Dka//jCuwa
3
+ 07aajfdTFyIL8NKbDRF1sGELm9U+yqCa+UOBnVumwZbCxc6IFTkHGlsI2+0EtLuN
4
+ H/i1KA2IOtaYk8szTnKAUrOHKH/w13aq1kK38lpC6exJ82kgub5v2HVmK5BGcI6y
5
+ +wmrt5QKuomdTkt/8BZYTmD0+Vo5xTTU1GoloxHA4jgj7m7TUvUl0n3rytcCSGCU
6
+ gtLDDTK4p2jmpP8KQ48Dq7h7iLM/G8c8Ynnp13rWtF88q92u9K67qAQ7OiVLozq5
7
+ 6sYPqsgyKQyG5B/tHUIblwsKMZAoMMOnY1qp7NYDWsPfRHFshgvbertUs5XSfrve
8
+ +OIOVqtdAgMBAAECggEAL4QzTYXsLcsJIt+gpPSqZfX/QoVB6yPA8/divAx35D/Z
9
+ 1JwtCN64wqstc0ldvaa8quCKXK12UFtYMJaN812jCW8zx3C4uFPgBAAk5iza9U7e
10
+ 3x7u9Wr7EZuUgs+FKtyYs6ysYW9jFhPLbz7MVHjvfGZDSmKEzPQloFvD9zGC83WV
11
+ /ns+UYnwVTXRvSe68idMhuyzRdl/T//FiAPVr0oq6BIAJ+YfBcGX4NA9Whcnij6Y
12
+ /qHyEL3kPJGl6u8O9NwyVIPIX50/060dJabV9g28R3BRmldlKARYZtOto/PMp0eB
13
+ D1a/4F/Ak18IX+XUUF796AInCtQ/mA5vM2gyrLJXbQKBgQDkax3FLFT9frmDMujK
14
+ 4IzmrAfm1qM+mgNj1kRYpJVcmRr4AMGBYkDfmw5pRrMa76Ms8KaqujhNQVLqxIxb
15
+ rrXRK3vjiMnb6b7Sm8fqr4us5q3jUq/u7L0KjhvUXWv6rvnc03htIviTalkC8TsA
16
+ WK2dy1Es56mF+YcDt38aP22OuwKBgQC6JinfsHUCNKquNdwB/8Tb/l6D/JuZGM07
17
+ 4edJSlczVhWNUD//iQ/dyTOja42MKqFs0x1Nrnf2wZSYr32ZdbIaaNxcun/qHngh
18
+ 5eiyJ8Z8ulSL9GmA9DsEguz1jNC3ooeNNGZfC5vBVT9BR2ngoONA+jgt3VqIfZui
19
+ Am1CNGaoxwKBgQC+W8qmnMiDrg26mj3JfZPPVYUMSsonDMFQfavd1+OmFO6VykN5
20
+ qUF5WEaNU99FznpFpJSxaZosQAlzH7P9YD+j/0IzILdhb46ZBDx6iCu2P1ShQzLd
21
+ wivVVRM6S1UGyLXw48fT5DYW3KUrv5A1PLIL8/pFmxb7UTXE0jK51CxgqwKBgGWn
22
+ Y6SZSzyaID8kgHHDB/EPVvQC5cHUTneOJOzcIQSS1RAnq9tTMQvvzThICrNpsF+q
23
+ Zk0+opppGknLQ+6i3FEZxIUK/8GNRBNW5x0rJXSFmJgZL+hQ902+ZcKuVGiD5DxT
24
+ SjhLMZKBiBqQ8hvOIGwieL1rLP5ugagWZS4LSaiPAn9v//cCKLmAJT31VP1vqTOE
25
+ 5b0/dFiWil+mpWifk6DpPiuNr1XpCuAK1MpBqPZpBlsDglL8lo57MklIvPixJAtg
26
+ NfGFBDi5tQEOm0WpAQ9NAlxpbDKGaY+jdW+gEQOsHzO5Fj/IiCKOhMkljMbX7PYi
27
+ 5wdINkqx9+DJp1dQg7cg
28
+ -----END PRIVATE KEY-----
@@ -0,0 +1,87 @@
1
+ <?xml version='1.0' encoding='utf-8'?>
2
+ <Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.003.02">
3
+ <CstmrDrctDbtInitn>
4
+ <GrpHdr>
5
+ <MsgId>3BUCAQDZPOQEYFB4</MsgId>
6
+ <CreDtTm>2014-10-07T16:10:25Z</CreDtTm>
7
+ <NbOfTxs>1</NbOfTxs>
8
+ <CtrlSum>10.00</CtrlSum>
9
+ <InitgPty>
10
+ <Nm>Max Mustermann</Nm>
11
+ </InitgPty>
12
+ </GrpHdr>
13
+ <PmtInf>
14
+ <PmtInfId>3BUCAQDZPOQEYFB4-FRJ5-CORE-FRST</PmtInfId>
15
+ <PmtMtd>DD</PmtMtd>
16
+ <BtchBookg>true</BtchBookg>
17
+ <NbOfTxs>1</NbOfTxs>
18
+ <CtrlSum>10.00</CtrlSum>
19
+ <PmtTpInf>
20
+ <SvcLvl>
21
+ <Cd>SEPA</Cd>
22
+ </SvcLvl>
23
+ <LclInstrm>
24
+ <Cd>CORE</Cd>
25
+ </LclInstrm>
26
+ <SeqTp>FRST</SeqTp>
27
+ </PmtTpInf>
28
+ <ReqdColltnDt>2014-10-15</ReqdColltnDt>
29
+ <Cdtr>
30
+ <Nm>Max Mustermann</Nm>
31
+ </Cdtr>
32
+ <CdtrAcct>
33
+ <Id>
34
+ <IBAN>DE89370400440532013000</IBAN>
35
+ </Id>
36
+ </CdtrAcct>
37
+ <CdtrAgt>
38
+ <FinInstnId>
39
+ <BIC>COBADEFFXXX</BIC>
40
+ </FinInstnId>
41
+ </CdtrAgt>
42
+ <ChrgBr>SLEV</ChrgBr>
43
+ <CdtrSchmeId>
44
+ <Id>
45
+ <PrvtId>
46
+ <Othr>
47
+ <Id>DE98ZZZ09999999999</Id>
48
+ <SchmeNm>
49
+ <Prtry>SEPA</Prtry>
50
+ </SchmeNm>
51
+ </Othr>
52
+ </PrvtId>
53
+ </Id>
54
+ </CdtrSchmeId>
55
+ <DrctDbtTxInf>
56
+ <PmtId>
57
+ <InstrId>95853B700796473D88F1009A40B4DC18</InstrId>
58
+ <EndToEndId>NOTPROVIDED</EndToEndId>
59
+ </PmtId>
60
+ <InstdAmt Ccy="EUR">10.00</InstdAmt>
61
+ <DrctDbtTx>
62
+ <MndtRltdInf>
63
+ <MndtId>M00123456</MndtId>
64
+ <DtOfSgntr>2014-02-01</DtOfSgntr>
65
+ <AmdmntInd>false</AmdmntInd>
66
+ </MndtRltdInf>
67
+ </DrctDbtTx>
68
+ <DbtrAgt>
69
+ <FinInstnId>
70
+ <BIC>BKAUATWW</BIC>
71
+ </FinInstnId>
72
+ </DbtrAgt>
73
+ <Dbtr>
74
+ <Nm>Maria Musterfrau</Nm>
75
+ </Dbtr>
76
+ <DbtrAcct>
77
+ <Id>
78
+ <IBAN>AT611904300234573201</IBAN>
79
+ </Id>
80
+ </DbtrAcct>
81
+ <RmtInf>
82
+ <Ustrd>Purpose</Ustrd>
83
+ </RmtInf>
84
+ </DrctDbtTxInf>
85
+ </PmtInf>
86
+ </CstmrDrctDbtInitn>
87
+ </Document>
@@ -0,0 +1,21 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ebicsKeyManagementResponse xmlns="http://www.ebics.org/H003" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Revision="1" Version="H003" xsi:schemaLocation="http://www.ebics.org/H003 http://www.ebics.org/H003/ebics_keymgmt_response.xsd">
3
+ <header authenticate="true">
4
+ <static/>
5
+ <mutable>
6
+ <ReturnCode>000000</ReturnCode>
7
+ <ReportText>[EBICS_OK] OK</ReportText>
8
+ </mutable>
9
+ </header>
10
+ <body>
11
+ <DataTransfer>
12
+ <DataEncryptionInfo authenticate="true">
13
+ <EncryptionPubKeyDigest Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" Version="E002">rwIxSUJAVEFDQ0sdYe+CybdspMllDG6ArNtdCzUbT1E=</EncryptionPubKeyDigest>
14
+ <TransactionKey>CPdd6ODXrCxHWpYrwS/5a3NIZ1R2SDscHHJSONc2I7g8ara7qv5Ra7H03W+336DPQLZQxH+EBRWdE2FQ1vrVTcypK6fkFarmO1dEtQt6Ka89AozC7aQMyp4yGl+zlF+XvFkJXZbRXgoEOPsgcG0xM6nKLXnr1ThYRFOoAasigLDGwqxliyhoR94F9dL7YB8Le/uZeRj78mNp4smkE5ZKKyPhwVx+0IW78YuVCSC2c2qbsMmm4evAvycdpLfuuoG4KVlNMIlvkKeBfMZFELcmeKKm85D2zPYkZ7cqG2IfAAp5qdS6K8P7RY4gtjUhOtP5mi8bZt/ZcjioUmIR9dAMnA==</TransactionKey>
15
+ </DataEncryptionInfo>
16
+ <OrderData>lJ/v1HvOYAZKTPkxULH4mOcUy01+EaAsxLzCPhtieAo9m5AtU5URdyBVfmclHbtWe3ELb02lR37bChynq0Esqpljxx7CiB+kl/bVs7XkNQQmtGPlh08O7ApJ7AHdKPFFvE+SM2OWpSwUrqJGtmyaU6s+RM66o/3Q0wvKi4y3+Q2jm8nkiWZpPfNt52g4ReE9Ge86o+L+EBOBgZm634L5Z/i6pq908mXBAklPdk1ERdEgWONaOeYYmB70FToplR1gINJEF2CnfAtD/wV+DuQFPDth+EWHqhe3a4xO0d9eJ55ou2QCYOPUC2g/qz1sp7GR74W7P5IWJdmnUEuPFsKJ6OvM+1V8S06jZGDa/QhUGDK8F3G/TMP09W1MsrlQTRr3YQ5H43+pMY7I6Jysze+X9OKZZTTpv4GmYm1USjmraGyMuPF3j9hrlmpttK+1gg2WzytCJO44YsZp9ckls8JNK4bT5uwTuomKZoRgmiIOTcMh4VP7V28TWj2XdF+T6rBFILTvQyXMOzvbe1kLwg2O31JDBdJ8X1fHCYJxKsIrYCSDPz4sha8h7QmHrCSFmjoXb+LUElnbLXZVRkY5/Dc73EM6Es3wAgjwSJK2asRqdqU0PhbS5qpIlgYKsNcb+Wes</OrderData>
17
+ </DataTransfer>
18
+ <ReturnCode authenticate="true">091116</ReturnCode>
19
+ <TimestampBankParameter authenticate="true">2009-06-16T17:56:05.698+02:00</TimestampBankParameter>
20
+ </body>
21
+ </ebicsKeyManagementResponse>
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ebicsKeyManagementResponse xmlns="http://www.ebics.org/H003" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Revision="1" Version="H003" xsi:schemaLocation="http://www.ebics.org/H003 http://www.ebics.org/H003/ebics_keymgmt_response.xsd">
3
+ <header authenticate="true">
4
+ <static/>
5
+ <mutable>
6
+ <ReturnCode>061001</ReturnCode>
7
+ <ReportText>[EBICS_AUTHENTICATION_FAILED] Authentication signature error</ReportText>
8
+ </mutable>
9
+ </header>
10
+ <body>
11
+ </body>
12
+ </ebicsKeyManagementResponse>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <ebicsUnsecuredRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns="urn:org:ebics:H004" Version="H004" Revision="1"><header authenticate="true"><static><HostID>SIZBN001</HostID><PartnerID>EBICS</PartnerID><UserID>EBIX</UserID><Product Language="de">EPICS - a ruby ebics kernel</Product><OrderDetails><OrderType>HIA</OrderType><OrderAttribute>DZNNN</OrderAttribute></OrderDetails><SecurityMedium>0000</SecurityMedium></static><mutable/></header><body><DataTransfer><OrderData>eJytlEmTo0YQhe/+FR3tQx8UbhYBWkLSBAKEQIhdiNaNTYCAAqpY9etH7vaMu+05OXyrfC+rIiPfF7X6NhT5UxdBlJZg/UK84i9PEQjKMAXx+qVtrn/MX75tflvtJdaM6jZCjQbDCPJe4z09bgK0DNH6OWmaaolhfd+/9tPXEsYYieM4hi+wR0+I0vj354/u9XMLwfLRsIz8NEDLPY5Tz5sV2zZJBJo08JrHGHrrH6JRAtdys/o4O17eRptViJamxX6pj2XY5i3aVMk1psUOo3qIxEYji3I6PQ1BymG8VfS4GfrbhKM7R0d1XHQ5H18Iv0LiuUeulm5P9HaofE7tmq1izW4mRjVWrKY8PBeyrhxxeox3h3syJthcDcm6uXANJntGC5B1VStJKSb+IiEuaWuYgNNQh+R6Fp04WMvgRCtXjD2fBTpe6LmnBSecUM1a9o5mr0mUNKFbnFAIOZQXzBy6bJbEuaRYfY+P7SEs6drGuEzTWaalIiq960O310WZZsKQIaB51Q9dCDurbZlY0O5lbjFHpo2gyDNQOqbZMWmN68wkOJEOFO4mGgee5ytS9erofmYJyE9xc/ClN4Wc1jNH0RwcMLNpd0v53IOusV6vsE9L/nPhwlCV4JHVhjXY7bv7U3mvvgSEfYnva8rOB3MbF8fJFfZr75/6ZzIEEMCx+q+8EDC7XXaMTXEMs6C4ItX8qpcW84wCsVfz0baSDGdeABIzBRYKNxD3HpBlP1RpouJGzAIEfkmbWkeIKvRqzAJbHlV+0O7hJSPIPrxLZWmn43iUS2muTpB93p5zsbPngklehL3mX2RWPNdbBmnmzRZMva6RMZ+gkxpYpeVeA3B0oB9XvmNhCoqNPgc1WRXIrKc0nznXCT49JW9oamRVc088wxV3hc/zPlVW9lARl1iu7zmzn4g8n+xYejLcCY7WPUpTyJuqcWNrtgzej8WeiAMm0Aq3e7MPI2c5b5NsjvV6WDNwR4y5F9jCeZf46YS4sHPTkfXauGsRE7vD0d3tyoMdAcJustgtmP+Zl78T/sGD8M7Kv/XP2hcaPNiACEr8RthKnPV4/6ewOqEfhrvC/ipW2C/+uc13G17GFA==</OrderData></DataTransfer></body></ebicsUnsecuredRequest>
@@ -0,0 +1,2 @@
1
+ <?xml version='1.0' encoding='utf-8'?>
2
+ <HIARequestOrderData xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns="urn:org:ebics:H004"><AuthenticationPubKeyInfo><PubKeyValue><ds:RSAKeyValue><ds:Modulus>phfg5Gv/4wrsGtO2mo33UxciC/DSmw0RdbBhC5vVPsqgmvlDgZ1bpsGWwsXOiBU5BxpbCNvtBLS7jR/4tSgNiDrWmJPLM05ygFKzhyh/8Nd2qtZCt/JaQunsSfNpILm+b9h1ZiuQRnCOsvsJq7eUCrqJnU5Lf/AWWE5g9PlaOcU01NRqJaMRwOI4I+5u01L1JdJ968rXAkhglILSww0yuKdo5qT/CkOPA6u4e4izPxvHPGJ56dd61rRfPKvdrvSuu6gEOzolS6M6uerGD6rIMikMhuQf7R1CG5cLCjGQKDDDp2NaqezWA1rD30RxbIYL23q7VLOV0n673vjiDlarXQ==</ds:Modulus><ds:Exponent>AQAB</ds:Exponent></ds:RSAKeyValue></PubKeyValue><AuthenticationVersion>X002</AuthenticationVersion></AuthenticationPubKeyInfo><EncryptionPubKeyInfo><PubKeyValue><ds:RSAKeyValue><ds:Modulus>1rkjZF6T4C6694CmiObpwI98k4ngaqDeBpIQV8mn2/REArEjngwanJJbdN51pCy/Sn10ZitqPss4mPpykcTJyNDxOzdZk12wdzIooTiyyMJoI8N+sTWBWlGvT8ER2ZEHObZJAGWqB6sORjTERPqqsQ8+sUNcSoSXfcnMVrbgpbVS/LsgQwlnq2pmsRq35DkVf+03UhYs3QkptzhaQXGFmbDDb4opTxp1ZgJqzl6H+GDDhFA5+xz1C5Pa4OL2jNOCyuRu60wymH1gc6cOmXvYTKyCSVY+k8/wPdq6rF1ylacTEWFhbi+1ZA8RVJPqQzOe6gXxMXFFoKTen1TtkgXm6Q==</ds:Modulus><ds:Exponent>AQAB</ds:Exponent></ds:RSAKeyValue></PubKeyValue><EncryptionVersion>E002</EncryptionVersion></EncryptionPubKeyInfo><PartnerID>EBICS</PartnerID><UserID>EBIX</UserID></HIARequestOrderData>
@@ -0,0 +1,34 @@
1
+ <?xml version='1.0' encoding='utf-8'?>
2
+ <ebicsNoPubKeyDigestsRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns="urn:org:ebics:H004" Version="H004" Revision="1">
3
+ <header authenticate="true">
4
+ <static>
5
+ <HostID>HOST</HostID>
6
+ <Nonce></Nonce>
7
+ <Timestamp></Timestamp>
8
+ <PartnerID>PARTNER</PartnerID>
9
+ <UserID>USER</UserID>
10
+ <Product Language="de">EPICS - a ruby ebics kernel</Product>
11
+ <OrderDetails>
12
+ <OrderType>HPB</OrderType>
13
+ <OrderAttribute>DZHNN</OrderAttribute>
14
+ </OrderDetails>
15
+ <SecurityMedium>0000</SecurityMedium>
16
+ </static>
17
+ <mutable/>
18
+ </header>
19
+ <AuthSignature>
20
+ <ds:SignedInfo>
21
+ <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
22
+ <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
23
+ <ds:Reference URI="#xpointer(//*[@authenticate='true'])">
24
+ <ds:Transforms>
25
+ <ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
26
+ </ds:Transforms>
27
+ <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
28
+ <ds:DigestValue></ds:DigestValue>
29
+ </ds:Reference>
30
+ </ds:SignedInfo>
31
+ <ds:SignatureValue/>
32
+ </AuthSignature>
33
+ <body/>
34
+ </ebicsNoPubKeyDigestsRequest>
@@ -0,0 +1,34 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <ebicsNoPubKeyDigestsRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns="urn:org:ebics:H004" Version="H004" Revision="1">
3
+ <header authenticate="true">
4
+ <static>
5
+ <HostID>HOST</HostID>
6
+ <Nonce>014a82626a51ee1cab547bbaf18a13a0</Nonce>
7
+ <Timestamp>2014-09-09T09:33:12Z</Timestamp>
8
+ <PartnerID>PARTNER</PartnerID>
9
+ <UserID>USER</UserID>
10
+ <Product Language="de">EPICS - a ruby ebics kernel</Product>
11
+ <OrderDetails>
12
+ <OrderType>HPB</OrderType>
13
+ <OrderAttribute>DZHNN</OrderAttribute>
14
+ </OrderDetails>
15
+ <SecurityMedium>0000</SecurityMedium>
16
+ </static>
17
+ <mutable/>
18
+ </header>
19
+ <AuthSignature>
20
+ <ds:SignedInfo>
21
+ <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
22
+ <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
23
+ <ds:Reference URI="#xpointer(//*[@authenticate='true'])">
24
+ <ds:Transforms>
25
+ <ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
26
+ </ds:Transforms>
27
+ <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
28
+ <ds:DigestValue>5PL08o8acS8kewViTEeVqSiWZshzNG3QgZehRk1EJgg=</ds:DigestValue>
29
+ </ds:Reference>
30
+ </ds:SignedInfo>
31
+ <ds:SignatureValue>d+qgWNti7uCsB/CWreyw9AGQOJiqU+CPPrpgdcisauUvJhFszEJasBeky9TsJXgxVsT27fZaHGnV2pO1YwlBmSuJSGRg5ijHCxbG+XyisIwVAVXY7mlkaO5Ms4eznaW2GCPhiwmIJZOcvzYZwzxtrCbAQFoKA+QgBaAytBtWJiOe8nErnb5s7OEg2D0NvWG4hV+NdcXPlUEKiY5Rw4qCukGXnpZmwMw/L+TB1v47eOLpQa/Dl2oJCjZgV4og3Q2o88adpErnKtIdKic8mb5FLXa2gFK63fmpCcwvs8FPb3kR7/QLWSs4WYycKcXDmgDKnVwYYcBfANEq1yFgReRjzQ==</ds:SignatureValue>
32
+ </AuthSignature>
33
+ <body/>
34
+ </ebicsNoPubKeyDigestsRequest>
@@ -0,0 +1,21 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ebicsKeyManagementResponse xmlns="http://www.ebics.org/H003" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Revision="1" Version="H003" xsi:schemaLocation="http://www.ebics.org/H003 http://www.ebics.org/H003/ebics_keymgmt_response.xsd">
3
+ <header authenticate="true">
4
+ <static/>
5
+ <mutable>
6
+ <ReturnCode>000000</ReturnCode>
7
+ <ReportText>[EBICS_OK] OK</ReportText>
8
+ </mutable>
9
+ </header>
10
+ <body>
11
+ <DataTransfer>
12
+ <DataEncryptionInfo authenticate="true">
13
+ <EncryptionPubKeyDigest Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" Version="E002">rwIxSUJAVEFDQ0sdYe+CybdspMllDG6ArNtdCzUbT1E=</EncryptionPubKeyDigest>
14
+ <TransactionKey>CPdd6ODXrCxHWpYrwS/5a3NIZ1R2SDscHHJSONc2I7g8ara7qv5Ra7H03W+336DPQLZQxH+EBRWdE2FQ1vrVTcypK6fkFarmO1dEtQt6Ka89AozC7aQMyp4yGl+zlF+XvFkJXZbRXgoEOPsgcG0xM6nKLXnr1ThYRFOoAasigLDGwqxliyhoR94F9dL7YB8Le/uZeRj78mNp4smkE5ZKKyPhwVx+0IW78YuVCSC2c2qbsMmm4evAvycdpLfuuoG4KVlNMIlvkKeBfMZFELcmeKKm85D2zPYkZ7cqG2IfAAp5qdS6K8P7RY4gtjUhOtP5mi8bZt/ZcjioUmIR9dAMnA==</TransactionKey>
15
+ </DataEncryptionInfo>
16
+ <OrderData>lJ/v1HvOYAZKTPkxULH4mOcUy01+EaAsxLzCPhtieAo9m5AtU5URdyBVfmclHbtWe3ELb02lR37bChynq0Esqpljxx7CiB+kl/bVs7XkNQQmtGPlh08O7ApJ7AHdKPFFvE+SM2OWpSwUrqJGtmyaU6s+RM66o/3Q0wvKi4y3+Q2jm8nkiWZpPfNt52g4ReE9Ge86o+L+EBOBgZm634L5Z/i6pq908mXBAklPdk1ERdEgWONaOeYYmB70FToplR1gINJEF2CnfAtD/wV+DuQFPDth+EWHqhe3a4xO0d9eJ55ou2QCYOPUC2g/qz1sp7GR74W7P5IWJdmnUEuPFsKJ6OvM+1V8S06jZGDa/QhUGDK8F3G/TMP09W1MsrlQTRr3YQ5H43+pMY7I6Jysze+X9OKZZTTpv4GmYm1USjmraGyMuPF3j9hrlmpttK+1gg2WzytCJO44YsZp9ckls8JNK4bT5uwTuomKZoRgmiIOTcMh4VP7V28TWj2XdF+T6rBFILTvQyXMOzvbe1kLwg2O31JDBdJ8X1fHCYJxKsIrYCSDPz4sha8h7QmHrCSFmjoXb+LUElnbLXZVRkY5/Dc73EM6Es3wAgjwSJK2asRqdqU0PhbS5qpIlgYKsNcb+Wes</OrderData>
17
+ </DataTransfer>
18
+ <ReturnCode authenticate="true">000000</ReturnCode>
19
+ <TimestampBankParameter authenticate="true">2009-06-16T17:56:05.698+02:00</TimestampBankParameter>
20
+ </body>
21
+ </ebicsKeyManagementResponse>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <HPBResponseOrderData xmlns="http://www.ebics.org/H003" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="http://www.ebics.org/H003 http://www.ebics.org/H003/ebics_orders.xsd">
3
+ <AuthenticationPubKeyInfo>
4
+ <PubKeyValue>
5
+ <ds:RSAKeyValue>
6
+ <ds:Modulus>AJ2/0OoIZydb9sgKbiwqDcwA0NtcUMIYi6GK7PqoRszu1uytGnxJjQhGt62kMslWvLgebUSwdq/T3YyGsa3KQeIGaUUn9iqyu3BoNOMdo2DLN4NdGMY1WR/HbYRKR3JHyURhTBKw27KScRRdKGl6jY+VcXcTKJL8PjXMQH5cD6Gz</ds:Modulus>
7
+ <ds:Exponent>AQAB</ds:Exponent>
8
+ </ds:RSAKeyValue>
9
+ </PubKeyValue>
10
+ <AuthenticationVersion>X002</AuthenticationVersion>
11
+ </AuthenticationPubKeyInfo>
12
+ <EncryptionPubKeyInfo>
13
+ <PubKeyValue>
14
+ <ds:RSAKeyValue>
15
+ <ds:Modulus>AJ2/0OoIZydb9sgKbiwqDcwA0NtcUMIYi6GK7PqoRszu1uytGnxJjQhGt62kMslWvLgebUSwdq/T3YyGsa3KQeIGaUUn9iqyu3BoNOMdo2DLN4NdGMY1WR/HbYRKR3JHyURhTBKw27KScRRdKGl6jY+VcXcTKJL8PjXMQH5cD6Gz</ds:Modulus>
16
+ <ds:Exponent>AQAB</ds:Exponent>
17
+ </ds:RSAKeyValue>
18
+ </PubKeyValue>
19
+ <EncryptionVersion>E002</EncryptionVersion>
20
+ </EncryptionPubKeyInfo>
21
+ <HostID>SIZBN001</HostID>
22
+ </HPBResponseOrderData>