epics 2.11.0 → 3.0.0.rc2

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 (247) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/.semaphore/semaphore.yml +17 -8
  4. data/CHANGELOG.md +103 -0
  5. data/EBICS_REFERENCES.md +169 -0
  6. data/README.md +223 -50
  7. data/lib/epics/azv.rb +3 -10
  8. data/lib/epics/b2b.rb +3 -10
  9. data/lib/epics/bka.rb +3 -14
  10. data/lib/epics/builders/body_builder/base.rb +26 -0
  11. data/lib/epics/builders/body_builder/v2.rb +9 -0
  12. data/lib/epics/builders/body_builder/v3.rb +9 -0
  13. data/lib/epics/builders/body_builder.rb +6 -0
  14. data/lib/epics/builders/data_encryption_info_builder.rb +29 -0
  15. data/lib/epics/builders/data_transfer_builder/base.rb +52 -0
  16. data/lib/epics/builders/data_transfer_builder/v2.rb +9 -0
  17. data/lib/epics/builders/data_transfer_builder/v3.rb +12 -0
  18. data/lib/epics/builders/data_transfer_builder.rb +6 -0
  19. data/lib/epics/builders/header_builder/base.rb +26 -0
  20. data/lib/epics/builders/header_builder/v2.rb +9 -0
  21. data/lib/epics/builders/header_builder/v3.rb +9 -0
  22. data/lib/epics/builders/header_builder.rb +6 -0
  23. data/lib/epics/builders/mutable_builder.rb +28 -0
  24. data/lib/epics/builders/order_details_builder/base.rb +100 -0
  25. data/lib/epics/builders/order_details_builder/v2.rb +21 -0
  26. data/lib/epics/builders/order_details_builder/v3.rb +51 -0
  27. data/lib/epics/builders/order_details_builder.rb +10 -0
  28. data/lib/epics/builders/request_builder.rb +25 -0
  29. data/lib/epics/builders/static_builder/base.rb +75 -0
  30. data/lib/epics/builders/static_builder/v2.rb +9 -0
  31. data/lib/epics/builders/static_builder/v3.rb +9 -0
  32. data/lib/epics/builders/static_builder.rb +9 -0
  33. data/lib/epics/builders/transfer_receipt_builder.rb +19 -0
  34. data/lib/epics/builders/xml_builder/base.rb +92 -0
  35. data/lib/epics/builders/xml_builder/v24.rb +31 -0
  36. data/lib/epics/builders/xml_builder/v25.rb +31 -0
  37. data/lib/epics/builders/xml_builder/v3.rb +31 -0
  38. data/lib/epics/builders/xml_builder.rb +7 -0
  39. data/lib/epics/builders.rb +13 -0
  40. data/lib/epics/c2s.rb +3 -10
  41. data/lib/epics/c52.rb +2 -14
  42. data/lib/epics/c53.rb +2 -14
  43. data/lib/epics/c54.rb +2 -14
  44. data/lib/epics/c5n.rb +3 -14
  45. data/lib/epics/ccs.rb +3 -10
  46. data/lib/epics/cct.rb +3 -10
  47. data/lib/epics/cd1.rb +3 -10
  48. data/lib/epics/cdb.rb +3 -10
  49. data/lib/epics/cdd.rb +3 -10
  50. data/lib/epics/cds.rb +3 -10
  51. data/lib/epics/cdz.rb +3 -14
  52. data/lib/epics/cip.rb +3 -10
  53. data/lib/epics/client.rb +511 -125
  54. data/lib/epics/crypt/aes.rb +56 -0
  55. data/lib/epics/crypt/x_509.rb +52 -0
  56. data/lib/epics/crypt.rb +5 -0
  57. data/lib/epics/crz.rb +3 -14
  58. data/lib/epics/factories/crypt/aes_factory.rb +5 -0
  59. data/lib/epics/factories/crypt.rb +4 -0
  60. data/lib/epics/factories/request_factory/base.rb +236 -0
  61. data/lib/epics/factories/request_factory/v2.rb +194 -0
  62. data/lib/epics/factories/request_factory/v24.rb +32 -0
  63. data/lib/epics/factories/request_factory/v25.rb +31 -0
  64. data/lib/epics/factories/request_factory/v3.rb +305 -0
  65. data/lib/epics/factories/request_factory.rb +8 -0
  66. data/lib/epics/factories.rb +5 -0
  67. data/lib/epics/fdl.rb +3 -18
  68. data/lib/epics/ful.rb +3 -15
  69. data/lib/epics/generic_request.rb +36 -92
  70. data/lib/epics/generic_upload_request.rb +14 -67
  71. data/lib/epics/haa.rb +3 -9
  72. data/lib/epics/hac.rb +3 -14
  73. data/lib/epics/handlers/auth_signature_handler.rb +102 -0
  74. data/lib/epics/handlers/order_data_handler/base.rb +98 -0
  75. data/lib/epics/handlers/order_data_handler/v2.rb +39 -0
  76. data/lib/epics/handlers/order_data_handler/v24.rb +11 -0
  77. data/lib/epics/handlers/order_data_handler/v25.rb +11 -0
  78. data/lib/epics/handlers/order_data_handler/v3.rb +41 -0
  79. data/lib/epics/handlers/order_data_handler.rb +8 -0
  80. data/lib/epics/handlers/user_signature_handler/base.rb +10 -0
  81. data/lib/epics/handlers/user_signature_handler/v2.rb +17 -0
  82. data/lib/epics/handlers/user_signature_handler/v3.rb +17 -0
  83. data/lib/epics/handlers/user_signature_handler.rb +6 -0
  84. data/lib/epics/handlers.rb +6 -0
  85. data/lib/epics/hev.rb +2 -15
  86. data/lib/epics/hia.rb +4 -55
  87. data/lib/epics/hkd.rb +3 -9
  88. data/lib/epics/hpb.rb +3 -13
  89. data/lib/epics/hpd.rb +3 -9
  90. data/lib/epics/htd.rb +3 -9
  91. data/lib/epics/ini.rb +4 -46
  92. data/lib/epics/keyring.rb +17 -0
  93. data/lib/epics/letter_renderer.rb +17 -22
  94. data/lib/epics/ptk.rb +3 -14
  95. data/lib/epics/response.rb +51 -31
  96. data/lib/epics/services/crypt_service.rb +62 -0
  97. data/lib/epics/services/digest_resolver/base.rb +30 -0
  98. data/lib/epics/services/digest_resolver/v2.rb +13 -0
  99. data/lib/epics/services/digest_resolver/v3.rb +19 -0
  100. data/lib/epics/services/digest_resolver.rb +6 -0
  101. data/lib/epics/services.rb +5 -0
  102. data/lib/epics/signature.rb +50 -0
  103. data/lib/epics/{key.rb → signature_algorithm/base.rb} +14 -21
  104. data/lib/epics/signature_algorithm/rsa.rb +50 -0
  105. data/lib/epics/signature_algorithm/rsapkcs1.rb +16 -0
  106. data/lib/epics/signature_algorithm/rsapss.rb +20 -0
  107. data/lib/epics/signature_algorithm.rb +2 -0
  108. data/lib/epics/sta.rb +3 -14
  109. data/lib/epics/version.rb +3 -1
  110. data/lib/epics/vmk.rb +3 -14
  111. data/lib/epics/wss.rb +3 -9
  112. data/lib/epics/xct.rb +3 -10
  113. data/lib/epics/xds.rb +3 -10
  114. data/lib/epics/xe2.rb +3 -10
  115. data/lib/epics/xe3.rb +3 -10
  116. data/lib/epics/xek.rb +5 -0
  117. data/lib/epics/yct.rb +6 -0
  118. data/lib/epics/z01.rb +2 -14
  119. data/lib/epics/z52.rb +2 -14
  120. data/lib/epics/z53.rb +2 -14
  121. data/lib/epics/z54.rb +2 -14
  122. data/lib/epics/zsr.rb +5 -0
  123. data/lib/epics.rb +94 -5
  124. data/lib/letter/ini.erb +27 -6
  125. data/spec/aes_spec.rb +46 -0
  126. data/spec/auth_signature_handler_spec.rb +58 -0
  127. data/spec/builders_spec.rb +616 -0
  128. data/spec/certificate_handling_spec.rb +189 -0
  129. data/spec/client_setup_block_spec.rb +41 -0
  130. data/spec/client_spec.rb +143 -91
  131. data/spec/crypt_service_spec.rb +132 -0
  132. data/spec/date_range_spec.rb +46 -0
  133. data/spec/digest_resolver_spec.rb +164 -0
  134. data/spec/fixtures/bank_x509.pem +3 -0
  135. data/spec/fixtures/xml/haa.xml +40 -1
  136. data/spec/fixtures/xml/haa_receipt.xml +33 -30
  137. data/spec/fixtures/xml/haa_response_h004.xml +4 -0
  138. data/spec/fixtures/xml/haa_response_h005.xml +38 -0
  139. data/spec/fixtures/xml/hia_request_order_data.xml +24 -1
  140. data/spec/fixtures/xml/hpb_request.xml +1 -1
  141. data/spec/fixtures/xml/hpb_response_x509.xml +16 -0
  142. data/spec/fixtures/xml/htd_order_data_h005.xml +55 -0
  143. data/spec/fixtures/xml/jruby/hia.xml +20 -22
  144. data/spec/fixtures/xml/jruby/ini.xml +1 -3
  145. data/spec/fixtures/xml/ruby/hia.xml +21 -1
  146. data/spec/fixtures/xml/ruby/ini.xml +21 -1
  147. data/spec/handlers_spec.rb +267 -0
  148. data/spec/hpb_malformed_certificate_spec.rb +36 -0
  149. data/spec/key_file_decryption_spec.rb +27 -0
  150. data/spec/key_file_preservation_spec.rb +78 -0
  151. data/spec/keyring_spec.rb +349 -0
  152. data/spec/middleware/parse_ebics_spec.rb +2 -1
  153. data/spec/order_id_spec.rb +65 -0
  154. data/spec/orders/azv_spec.rb +63 -7
  155. data/spec/orders/b2b_spec.rb +68 -3
  156. data/spec/orders/bka_spec.rb +34 -4
  157. data/spec/orders/c2s_spec.rb +62 -9
  158. data/spec/orders/c52_spec.rb +34 -4
  159. data/spec/orders/c53_spec.rb +34 -4
  160. data/spec/orders/c54_spec.rb +36 -4
  161. data/spec/orders/c5n_spec.rb +36 -4
  162. data/spec/orders/camt_parity_spec.rb +80 -0
  163. data/spec/orders/ccs_spec.rb +62 -9
  164. data/spec/orders/cct_spec.rb +83 -9
  165. data/spec/orders/cd1_spec.rb +50 -7
  166. data/spec/orders/cdb_spec.rb +64 -7
  167. data/spec/orders/cdd_spec.rb +64 -7
  168. data/spec/orders/cds_spec.rb +74 -0
  169. data/spec/orders/cdz_spec.rb +67 -4
  170. data/spec/orders/cip_spec.rb +61 -9
  171. data/spec/orders/crz_spec.rb +67 -4
  172. data/spec/orders/fdl_spec.rb +143 -13
  173. data/spec/orders/ful_spec.rb +51 -10
  174. data/spec/orders/haa_spec.rb +115 -9
  175. data/spec/orders/hac_spec.rb +89 -10
  176. data/spec/orders/hev_spec.rb +1 -6
  177. data/spec/orders/hia_spec.rb +25 -22
  178. data/spec/orders/hkd_spec.rb +23 -4
  179. data/spec/orders/hpb_spec.rb +7 -4
  180. data/spec/orders/hpd_spec.rb +23 -4
  181. data/spec/orders/htd_spec.rb +23 -4
  182. data/spec/orders/ini_spec.rb +23 -18
  183. data/spec/orders/ptk_spec.rb +27 -4
  184. data/spec/orders/sta_spec.rb +129 -11
  185. data/spec/orders/vmk_spec.rb +36 -4
  186. data/spec/orders/wss_spec.rb +29 -3
  187. data/spec/orders/x_509_certificate_spec.rb +9 -1
  188. data/spec/orders/xct_spec.rb +63 -0
  189. data/spec/orders/xds_spec.rb +13 -6
  190. data/spec/orders/xe2_spec.rb +64 -7
  191. data/spec/orders/xe3_spec.rb +64 -7
  192. data/spec/orders/xek_spec.rb +31 -0
  193. data/spec/orders/yct_spec.rb +43 -0
  194. data/spec/orders/z01_spec.rb +34 -4
  195. data/spec/orders/z52_spec.rb +34 -4
  196. data/spec/orders/z53_spec.rb +34 -4
  197. data/spec/orders/z54_spec.rb +36 -4
  198. data/spec/orders/zsr_spec.rb +31 -0
  199. data/spec/request_factory_spec.rb +444 -0
  200. data/spec/response_business_error_spec.rb +45 -0
  201. data/spec/response_spec.rb +31 -0
  202. data/spec/response_validation_spec.rb +23 -0
  203. data/spec/segmented_download_spec.rb +248 -0
  204. data/spec/{key_spec.rb → signature_algorithm/rsa_pss_spec.rb} +4 -13
  205. data/spec/support/ebics_matcher.rb +17 -9
  206. data/spec/support/ebics_shared_examples.rb +642 -0
  207. data/spec/support/h005_client_helper.rb +23 -0
  208. data/spec/upload_digest_spec.rb +69 -0
  209. data/spec/user_signature_handler_spec.rb +25 -0
  210. data/spec/version_support_error_spec.rb +76 -0
  211. data/spec/xsd/{ebics_hev.xsd → H000/ebics_hev.xsd} +0 -0
  212. data/spec/xsd/H003/ebics.xsd +11 -0
  213. data/spec/xsd/H003/ebics_keymgmt_request.xsd +555 -0
  214. data/spec/xsd/H003/ebics_keymgmt_response.xsd +131 -0
  215. data/spec/xsd/H003/ebics_orders.xsd +1811 -0
  216. data/spec/xsd/H003/ebics_request.xsd +354 -0
  217. data/spec/xsd/H003/ebics_response.xsd +161 -0
  218. data/spec/xsd/{ebics_signature.xsd → H003/ebics_signature.xsd} +0 -0
  219. data/spec/xsd/H003/ebics_types.xsd +2361 -0
  220. data/spec/xsd/H003/xmldsig-core-schema.xsd +318 -0
  221. data/spec/xsd/H004/ebics_signature.xsd +217 -0
  222. data/spec/xsd/H005/ebics_H005.xsd +11 -0
  223. data/spec/xsd/H005/ebics_keymgmt_request_H005.xsd +523 -0
  224. data/spec/xsd/H005/ebics_keymgmt_response_H005.xsd +137 -0
  225. data/spec/xsd/H005/ebics_orders_H005.xsd +2094 -0
  226. data/spec/xsd/H005/ebics_request_H005.xsd +349 -0
  227. data/spec/xsd/H005/ebics_response_H005.xsd +167 -0
  228. data/spec/xsd/H005/ebics_signature_S002.xsd +177 -0
  229. data/spec/xsd/H005/ebics_types_H005.xsd +1885 -0
  230. data/spec/xsd/H005/xmldsig-core-schema.xsd +318 -0
  231. metadata +199 -36
  232. data/lib/epics/header_request.rb +0 -58
  233. data/lib/epics/middleware/xmlsig.rb +0 -16
  234. data/lib/epics/signer.rb +0 -40
  235. data/lib/epics/x_509_certificate.rb +0 -15
  236. data/lib/letter/ini_with_certs.erb +0 -335
  237. data/spec/generic_upload_spec.rb +0 -58
  238. data/spec/hpb_spec.rb +0 -15
  239. data/spec/signer_spec.rb +0 -34
  240. /data/spec/xsd/{ebics_H004.xsd → H004/ebics_H004.xsd} +0 -0
  241. /data/spec/xsd/{ebics_keymgmt_request_H004.xsd → H004/ebics_keymgmt_request_H004.xsd} +0 -0
  242. /data/spec/xsd/{ebics_keymgmt_response_H004.xsd → H004/ebics_keymgmt_response_H004.xsd} +0 -0
  243. /data/spec/xsd/{ebics_orders_H004.xsd → H004/ebics_orders_H004.xsd} +0 -0
  244. /data/spec/xsd/{ebics_request_H004.xsd → H004/ebics_request_H004.xsd} +0 -0
  245. /data/spec/xsd/{ebics_response_H004.xsd → H004/ebics_response_H004.xsd} +0 -0
  246. /data/spec/xsd/{ebics_types_H004.xsd → H004/ebics_types_H004.xsd} +0 -0
  247. /data/spec/xsd/{xmldsig-core-schema.xsd → H004/xmldsig-core-schema.xsd} +0 -0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epics
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.11.0
4
+ version: 3.0.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lars Brillert
@@ -215,6 +215,7 @@ files:
215
215
  - ".semaphore/semaphore.yml"
216
216
  - CHANGELOG.md
217
217
  - CONTRIBUTING.md
218
+ - EBICS_REFERENCES.md
218
219
  - Gemfile
219
220
  - LICENSE.txt
220
221
  - README.md
@@ -226,6 +227,36 @@ files:
226
227
  - lib/epics/azv.rb
227
228
  - lib/epics/b2b.rb
228
229
  - lib/epics/bka.rb
230
+ - lib/epics/builders.rb
231
+ - lib/epics/builders/body_builder.rb
232
+ - lib/epics/builders/body_builder/base.rb
233
+ - lib/epics/builders/body_builder/v2.rb
234
+ - lib/epics/builders/body_builder/v3.rb
235
+ - lib/epics/builders/data_encryption_info_builder.rb
236
+ - lib/epics/builders/data_transfer_builder.rb
237
+ - lib/epics/builders/data_transfer_builder/base.rb
238
+ - lib/epics/builders/data_transfer_builder/v2.rb
239
+ - lib/epics/builders/data_transfer_builder/v3.rb
240
+ - lib/epics/builders/header_builder.rb
241
+ - lib/epics/builders/header_builder/base.rb
242
+ - lib/epics/builders/header_builder/v2.rb
243
+ - lib/epics/builders/header_builder/v3.rb
244
+ - lib/epics/builders/mutable_builder.rb
245
+ - lib/epics/builders/order_details_builder.rb
246
+ - lib/epics/builders/order_details_builder/base.rb
247
+ - lib/epics/builders/order_details_builder/v2.rb
248
+ - lib/epics/builders/order_details_builder/v3.rb
249
+ - lib/epics/builders/request_builder.rb
250
+ - lib/epics/builders/static_builder.rb
251
+ - lib/epics/builders/static_builder/base.rb
252
+ - lib/epics/builders/static_builder/v2.rb
253
+ - lib/epics/builders/static_builder/v3.rb
254
+ - lib/epics/builders/transfer_receipt_builder.rb
255
+ - lib/epics/builders/xml_builder.rb
256
+ - lib/epics/builders/xml_builder/base.rb
257
+ - lib/epics/builders/xml_builder/v24.rb
258
+ - lib/epics/builders/xml_builder/v25.rb
259
+ - lib/epics/builders/xml_builder/v3.rb
229
260
  - lib/epics/c2s.rb
230
261
  - lib/epics/c52.rb
231
262
  - lib/epics/c53.rb
@@ -240,15 +271,38 @@ files:
240
271
  - lib/epics/cdz.rb
241
272
  - lib/epics/cip.rb
242
273
  - lib/epics/client.rb
274
+ - lib/epics/crypt.rb
275
+ - lib/epics/crypt/aes.rb
276
+ - lib/epics/crypt/x_509.rb
243
277
  - lib/epics/crz.rb
244
278
  - lib/epics/error.rb
279
+ - lib/epics/factories.rb
280
+ - lib/epics/factories/crypt.rb
281
+ - lib/epics/factories/crypt/aes_factory.rb
282
+ - lib/epics/factories/request_factory.rb
283
+ - lib/epics/factories/request_factory/base.rb
284
+ - lib/epics/factories/request_factory/v2.rb
285
+ - lib/epics/factories/request_factory/v24.rb
286
+ - lib/epics/factories/request_factory/v25.rb
287
+ - lib/epics/factories/request_factory/v3.rb
245
288
  - lib/epics/fdl.rb
246
289
  - lib/epics/ful.rb
247
290
  - lib/epics/generic_request.rb
248
291
  - lib/epics/generic_upload_request.rb
249
292
  - lib/epics/haa.rb
250
293
  - lib/epics/hac.rb
251
- - lib/epics/header_request.rb
294
+ - lib/epics/handlers.rb
295
+ - lib/epics/handlers/auth_signature_handler.rb
296
+ - lib/epics/handlers/order_data_handler.rb
297
+ - lib/epics/handlers/order_data_handler/base.rb
298
+ - lib/epics/handlers/order_data_handler/v2.rb
299
+ - lib/epics/handlers/order_data_handler/v24.rb
300
+ - lib/epics/handlers/order_data_handler/v25.rb
301
+ - lib/epics/handlers/order_data_handler/v3.rb
302
+ - lib/epics/handlers/user_signature_handler.rb
303
+ - lib/epics/handlers/user_signature_handler/base.rb
304
+ - lib/epics/handlers/user_signature_handler/v2.rb
305
+ - lib/epics/handlers/user_signature_handler/v3.rb
252
306
  - lib/epics/hev.rb
253
307
  - lib/epics/hia.rb
254
308
  - lib/epics/hkd.rb
@@ -256,37 +310,57 @@ files:
256
310
  - lib/epics/hpd.rb
257
311
  - lib/epics/htd.rb
258
312
  - lib/epics/ini.rb
259
- - lib/epics/key.rb
313
+ - lib/epics/keyring.rb
260
314
  - lib/epics/letter_renderer.rb
261
315
  - lib/epics/middleware/parse_ebics.rb
262
- - lib/epics/middleware/xmlsig.rb
263
316
  - lib/epics/ptk.rb
264
317
  - lib/epics/response.rb
265
- - lib/epics/signer.rb
318
+ - lib/epics/services.rb
319
+ - lib/epics/services/crypt_service.rb
320
+ - lib/epics/services/digest_resolver.rb
321
+ - lib/epics/services/digest_resolver/base.rb
322
+ - lib/epics/services/digest_resolver/v2.rb
323
+ - lib/epics/services/digest_resolver/v3.rb
324
+ - lib/epics/signature.rb
325
+ - lib/epics/signature_algorithm.rb
326
+ - lib/epics/signature_algorithm/base.rb
327
+ - lib/epics/signature_algorithm/rsa.rb
328
+ - lib/epics/signature_algorithm/rsapkcs1.rb
329
+ - lib/epics/signature_algorithm/rsapss.rb
266
330
  - lib/epics/sta.rb
267
331
  - lib/epics/version.rb
268
332
  - lib/epics/vmk.rb
269
333
  - lib/epics/wss.rb
270
- - lib/epics/x_509_certificate.rb
271
334
  - lib/epics/xct.rb
272
335
  - lib/epics/xds.rb
273
336
  - lib/epics/xe2.rb
274
337
  - lib/epics/xe3.rb
338
+ - lib/epics/xek.rb
339
+ - lib/epics/yct.rb
275
340
  - lib/epics/z01.rb
276
341
  - lib/epics/z52.rb
277
342
  - lib/epics/z53.rb
278
343
  - lib/epics/z54.rb
344
+ - lib/epics/zsr.rb
279
345
  - lib/letter/ini.erb
280
- - lib/letter/ini_with_certs.erb
281
346
  - lib/letter/locales/de.yml
282
347
  - lib/letter/locales/en.yml
283
348
  - lib/letter/locales/fr.yml
284
349
  - spec/.DS_Store
350
+ - spec/aes_spec.rb
351
+ - spec/auth_signature_handler_spec.rb
352
+ - spec/builders_spec.rb
353
+ - spec/certificate_handling_spec.rb
354
+ - spec/client_setup_block_spec.rb
285
355
  - spec/client_spec.rb
356
+ - spec/crypt_service_spec.rb
357
+ - spec/date_range_spec.rb
358
+ - spec/digest_resolver_spec.rb
286
359
  - spec/error_spec.rb
287
360
  - spec/fixtures/SIZBN001.key
288
361
  - spec/fixtures/a006.pem
289
362
  - spec/fixtures/bank_e.pem
363
+ - spec/fixtures/bank_x509.pem
290
364
  - spec/fixtures/e002.pem
291
365
  - spec/fixtures/test.zip
292
366
  - spec/fixtures/test_with_general_purpose_bit_3.zip
@@ -302,13 +376,17 @@ files:
302
376
  - spec/fixtures/xml/ebics_technical_nok.xml
303
377
  - spec/fixtures/xml/haa.xml
304
378
  - spec/fixtures/xml/haa_receipt.xml
379
+ - spec/fixtures/xml/haa_response_h004.xml
380
+ - spec/fixtures/xml/haa_response_h005.xml
305
381
  - spec/fixtures/xml/hia_request_order_data.xml
306
382
  - spec/fixtures/xml/hpb.xml
307
383
  - spec/fixtures/xml/hpb_request.xml
308
384
  - spec/fixtures/xml/hpb_response_ebics_ns.xml
309
385
  - spec/fixtures/xml/hpb_response_order.xml
310
386
  - spec/fixtures/xml/hpb_response_order_without_ns.xml
387
+ - spec/fixtures/xml/hpb_response_x509.xml
311
388
  - spec/fixtures/xml/htd_order_data.xml
389
+ - spec/fixtures/xml/htd_order_data_h005.xml
312
390
  - spec/fixtures/xml/htd_order_data_without_names.xml
313
391
  - spec/fixtures/xml/ini_response_h004_ns.xml
314
392
  - spec/fixtures/xml/jruby/hia.xml
@@ -321,10 +399,13 @@ files:
321
399
  - spec/fixtures/xml/swiss_credit_transfer.xml
322
400
  - spec/fixtures/xml/swiss_direct_debit.xml
323
401
  - spec/fixtures/xml/upload_init_response.xml
324
- - spec/generic_upload_spec.rb
325
- - spec/hpb_spec.rb
326
- - spec/key_spec.rb
402
+ - spec/handlers_spec.rb
403
+ - spec/hpb_malformed_certificate_spec.rb
404
+ - spec/key_file_decryption_spec.rb
405
+ - spec/key_file_preservation_spec.rb
406
+ - spec/keyring_spec.rb
327
407
  - spec/middleware/parse_ebics_spec.rb
408
+ - spec/order_id_spec.rb
328
409
  - spec/orders/azv_spec.rb
329
410
  - spec/orders/b2b_spec.rb
330
411
  - spec/orders/bka_spec.rb
@@ -333,11 +414,13 @@ files:
333
414
  - spec/orders/c53_spec.rb
334
415
  - spec/orders/c54_spec.rb
335
416
  - spec/orders/c5n_spec.rb
417
+ - spec/orders/camt_parity_spec.rb
336
418
  - spec/orders/ccs_spec.rb
337
419
  - spec/orders/cct_spec.rb
338
420
  - spec/orders/cd1_spec.rb
339
421
  - spec/orders/cdb_spec.rb
340
422
  - spec/orders/cdd_spec.rb
423
+ - spec/orders/cds_spec.rb
341
424
  - spec/orders/cdz_spec.rb
342
425
  - spec/orders/cip_spec.rb
343
426
  - spec/orders/crz_spec.rb
@@ -357,28 +440,59 @@ files:
357
440
  - spec/orders/vmk_spec.rb
358
441
  - spec/orders/wss_spec.rb
359
442
  - spec/orders/x_509_certificate_spec.rb
443
+ - spec/orders/xct_spec.rb
360
444
  - spec/orders/xds_spec.rb
361
445
  - spec/orders/xe2_spec.rb
362
446
  - spec/orders/xe3_spec.rb
447
+ - spec/orders/xek_spec.rb
448
+ - spec/orders/yct_spec.rb
363
449
  - spec/orders/z01_spec.rb
364
450
  - spec/orders/z52_spec.rb
365
451
  - spec/orders/z53_spec.rb
366
452
  - spec/orders/z54_spec.rb
453
+ - spec/orders/zsr_spec.rb
454
+ - spec/request_factory_spec.rb
455
+ - spec/response_business_error_spec.rb
367
456
  - spec/response_spec.rb
368
- - spec/signer_spec.rb
457
+ - spec/response_validation_spec.rb
458
+ - spec/segmented_download_spec.rb
459
+ - spec/signature_algorithm/rsa_pss_spec.rb
369
460
  - spec/spec_helper.rb
370
461
  - spec/support/ebics_matcher.rb
462
+ - spec/support/ebics_shared_examples.rb
463
+ - spec/support/h005_client_helper.rb
371
464
  - spec/support/x_509_crt_generator.rb
372
- - spec/xsd/ebics_H004.xsd
373
- - spec/xsd/ebics_hev.xsd
374
- - spec/xsd/ebics_keymgmt_request_H004.xsd
375
- - spec/xsd/ebics_keymgmt_response_H004.xsd
376
- - spec/xsd/ebics_orders_H004.xsd
377
- - spec/xsd/ebics_request_H004.xsd
378
- - spec/xsd/ebics_response_H004.xsd
379
- - spec/xsd/ebics_signature.xsd
380
- - spec/xsd/ebics_types_H004.xsd
381
- - spec/xsd/xmldsig-core-schema.xsd
465
+ - spec/upload_digest_spec.rb
466
+ - spec/user_signature_handler_spec.rb
467
+ - spec/version_support_error_spec.rb
468
+ - spec/xsd/H000/ebics_hev.xsd
469
+ - spec/xsd/H003/ebics.xsd
470
+ - spec/xsd/H003/ebics_keymgmt_request.xsd
471
+ - spec/xsd/H003/ebics_keymgmt_response.xsd
472
+ - spec/xsd/H003/ebics_orders.xsd
473
+ - spec/xsd/H003/ebics_request.xsd
474
+ - spec/xsd/H003/ebics_response.xsd
475
+ - spec/xsd/H003/ebics_signature.xsd
476
+ - spec/xsd/H003/ebics_types.xsd
477
+ - spec/xsd/H003/xmldsig-core-schema.xsd
478
+ - spec/xsd/H004/ebics_H004.xsd
479
+ - spec/xsd/H004/ebics_keymgmt_request_H004.xsd
480
+ - spec/xsd/H004/ebics_keymgmt_response_H004.xsd
481
+ - spec/xsd/H004/ebics_orders_H004.xsd
482
+ - spec/xsd/H004/ebics_request_H004.xsd
483
+ - spec/xsd/H004/ebics_response_H004.xsd
484
+ - spec/xsd/H004/ebics_signature.xsd
485
+ - spec/xsd/H004/ebics_types_H004.xsd
486
+ - spec/xsd/H004/xmldsig-core-schema.xsd
487
+ - spec/xsd/H005/ebics_H005.xsd
488
+ - spec/xsd/H005/ebics_keymgmt_request_H005.xsd
489
+ - spec/xsd/H005/ebics_keymgmt_response_H005.xsd
490
+ - spec/xsd/H005/ebics_orders_H005.xsd
491
+ - spec/xsd/H005/ebics_request_H005.xsd
492
+ - spec/xsd/H005/ebics_response_H005.xsd
493
+ - spec/xsd/H005/ebics_signature_S002.xsd
494
+ - spec/xsd/H005/ebics_types_H005.xsd
495
+ - spec/xsd/H005/xmldsig-core-schema.xsd
382
496
  homepage: https://github.com/railslove/epics
383
497
  licenses:
384
498
  - LGPL-3.0
@@ -407,16 +521,25 @@ required_rubygems_version: !ruby/object:Gem::Requirement
407
521
  - !ruby/object:Gem::Version
408
522
  version: '0'
409
523
  requirements: []
410
- rubygems_version: 3.7.1
524
+ rubygems_version: 4.0.20
411
525
  specification_version: 4
412
526
  summary: a ruby implementation of the EBICS protocol
413
527
  test_files:
414
528
  - spec/.DS_Store
529
+ - spec/aes_spec.rb
530
+ - spec/auth_signature_handler_spec.rb
531
+ - spec/builders_spec.rb
532
+ - spec/certificate_handling_spec.rb
533
+ - spec/client_setup_block_spec.rb
415
534
  - spec/client_spec.rb
535
+ - spec/crypt_service_spec.rb
536
+ - spec/date_range_spec.rb
537
+ - spec/digest_resolver_spec.rb
416
538
  - spec/error_spec.rb
417
539
  - spec/fixtures/SIZBN001.key
418
540
  - spec/fixtures/a006.pem
419
541
  - spec/fixtures/bank_e.pem
542
+ - spec/fixtures/bank_x509.pem
420
543
  - spec/fixtures/e002.pem
421
544
  - spec/fixtures/test.zip
422
545
  - spec/fixtures/test_with_general_purpose_bit_3.zip
@@ -432,13 +555,17 @@ test_files:
432
555
  - spec/fixtures/xml/ebics_technical_nok.xml
433
556
  - spec/fixtures/xml/haa.xml
434
557
  - spec/fixtures/xml/haa_receipt.xml
558
+ - spec/fixtures/xml/haa_response_h004.xml
559
+ - spec/fixtures/xml/haa_response_h005.xml
435
560
  - spec/fixtures/xml/hia_request_order_data.xml
436
561
  - spec/fixtures/xml/hpb.xml
437
562
  - spec/fixtures/xml/hpb_request.xml
438
563
  - spec/fixtures/xml/hpb_response_ebics_ns.xml
439
564
  - spec/fixtures/xml/hpb_response_order.xml
440
565
  - spec/fixtures/xml/hpb_response_order_without_ns.xml
566
+ - spec/fixtures/xml/hpb_response_x509.xml
441
567
  - spec/fixtures/xml/htd_order_data.xml
568
+ - spec/fixtures/xml/htd_order_data_h005.xml
442
569
  - spec/fixtures/xml/htd_order_data_without_names.xml
443
570
  - spec/fixtures/xml/ini_response_h004_ns.xml
444
571
  - spec/fixtures/xml/jruby/hia.xml
@@ -451,10 +578,13 @@ test_files:
451
578
  - spec/fixtures/xml/swiss_credit_transfer.xml
452
579
  - spec/fixtures/xml/swiss_direct_debit.xml
453
580
  - spec/fixtures/xml/upload_init_response.xml
454
- - spec/generic_upload_spec.rb
455
- - spec/hpb_spec.rb
456
- - spec/key_spec.rb
581
+ - spec/handlers_spec.rb
582
+ - spec/hpb_malformed_certificate_spec.rb
583
+ - spec/key_file_decryption_spec.rb
584
+ - spec/key_file_preservation_spec.rb
585
+ - spec/keyring_spec.rb
457
586
  - spec/middleware/parse_ebics_spec.rb
587
+ - spec/order_id_spec.rb
458
588
  - spec/orders/azv_spec.rb
459
589
  - spec/orders/b2b_spec.rb
460
590
  - spec/orders/bka_spec.rb
@@ -463,11 +593,13 @@ test_files:
463
593
  - spec/orders/c53_spec.rb
464
594
  - spec/orders/c54_spec.rb
465
595
  - spec/orders/c5n_spec.rb
596
+ - spec/orders/camt_parity_spec.rb
466
597
  - spec/orders/ccs_spec.rb
467
598
  - spec/orders/cct_spec.rb
468
599
  - spec/orders/cd1_spec.rb
469
600
  - spec/orders/cdb_spec.rb
470
601
  - spec/orders/cdd_spec.rb
602
+ - spec/orders/cds_spec.rb
471
603
  - spec/orders/cdz_spec.rb
472
604
  - spec/orders/cip_spec.rb
473
605
  - spec/orders/crz_spec.rb
@@ -487,25 +619,56 @@ test_files:
487
619
  - spec/orders/vmk_spec.rb
488
620
  - spec/orders/wss_spec.rb
489
621
  - spec/orders/x_509_certificate_spec.rb
622
+ - spec/orders/xct_spec.rb
490
623
  - spec/orders/xds_spec.rb
491
624
  - spec/orders/xe2_spec.rb
492
625
  - spec/orders/xe3_spec.rb
626
+ - spec/orders/xek_spec.rb
627
+ - spec/orders/yct_spec.rb
493
628
  - spec/orders/z01_spec.rb
494
629
  - spec/orders/z52_spec.rb
495
630
  - spec/orders/z53_spec.rb
496
631
  - spec/orders/z54_spec.rb
632
+ - spec/orders/zsr_spec.rb
633
+ - spec/request_factory_spec.rb
634
+ - spec/response_business_error_spec.rb
497
635
  - spec/response_spec.rb
498
- - spec/signer_spec.rb
636
+ - spec/response_validation_spec.rb
637
+ - spec/segmented_download_spec.rb
638
+ - spec/signature_algorithm/rsa_pss_spec.rb
499
639
  - spec/spec_helper.rb
500
640
  - spec/support/ebics_matcher.rb
641
+ - spec/support/ebics_shared_examples.rb
642
+ - spec/support/h005_client_helper.rb
501
643
  - spec/support/x_509_crt_generator.rb
502
- - spec/xsd/ebics_H004.xsd
503
- - spec/xsd/ebics_hev.xsd
504
- - spec/xsd/ebics_keymgmt_request_H004.xsd
505
- - spec/xsd/ebics_keymgmt_response_H004.xsd
506
- - spec/xsd/ebics_orders_H004.xsd
507
- - spec/xsd/ebics_request_H004.xsd
508
- - spec/xsd/ebics_response_H004.xsd
509
- - spec/xsd/ebics_signature.xsd
510
- - spec/xsd/ebics_types_H004.xsd
511
- - spec/xsd/xmldsig-core-schema.xsd
644
+ - spec/upload_digest_spec.rb
645
+ - spec/user_signature_handler_spec.rb
646
+ - spec/version_support_error_spec.rb
647
+ - spec/xsd/H000/ebics_hev.xsd
648
+ - spec/xsd/H003/ebics.xsd
649
+ - spec/xsd/H003/ebics_keymgmt_request.xsd
650
+ - spec/xsd/H003/ebics_keymgmt_response.xsd
651
+ - spec/xsd/H003/ebics_orders.xsd
652
+ - spec/xsd/H003/ebics_request.xsd
653
+ - spec/xsd/H003/ebics_response.xsd
654
+ - spec/xsd/H003/ebics_signature.xsd
655
+ - spec/xsd/H003/ebics_types.xsd
656
+ - spec/xsd/H003/xmldsig-core-schema.xsd
657
+ - spec/xsd/H004/ebics_H004.xsd
658
+ - spec/xsd/H004/ebics_keymgmt_request_H004.xsd
659
+ - spec/xsd/H004/ebics_keymgmt_response_H004.xsd
660
+ - spec/xsd/H004/ebics_orders_H004.xsd
661
+ - spec/xsd/H004/ebics_request_H004.xsd
662
+ - spec/xsd/H004/ebics_response_H004.xsd
663
+ - spec/xsd/H004/ebics_signature.xsd
664
+ - spec/xsd/H004/ebics_types_H004.xsd
665
+ - spec/xsd/H004/xmldsig-core-schema.xsd
666
+ - spec/xsd/H005/ebics_H005.xsd
667
+ - spec/xsd/H005/ebics_keymgmt_request_H005.xsd
668
+ - spec/xsd/H005/ebics_keymgmt_response_H005.xsd
669
+ - spec/xsd/H005/ebics_orders_H005.xsd
670
+ - spec/xsd/H005/ebics_request_H005.xsd
671
+ - spec/xsd/H005/ebics_response_H005.xsd
672
+ - spec/xsd/H005/ebics_signature_S002.xsd
673
+ - spec/xsd/H005/ebics_types_H005.xsd
674
+ - spec/xsd/H005/xmldsig-core-schema.xsd
@@ -1,58 +0,0 @@
1
- class Epics::HeaderRequest
2
- extend Forwardable
3
- attr_accessor :client
4
-
5
- def initialize(client)
6
- self.client = client
7
- end
8
-
9
- def_delegators :client, :host_id, :user_id, :partner_id
10
-
11
- def build(options = {})
12
- options[:with_bank_pubkey_digests] = true if options[:with_bank_pubkey_digests].nil?
13
-
14
- Nokogiri::XML::Builder.new do |xml|
15
- xml.header(authenticate: true) {
16
- xml.static {
17
- xml.HostID host_id
18
- xml.Nonce options[:nonce] if options[:nonce]
19
- xml.Timestamp options[:timestamp] if options[:timestamp]
20
- xml.PartnerID partner_id
21
- xml.UserID user_id
22
- xml.Product(client.product_name, 'Language' => client.locale)
23
- xml.OrderDetails {
24
- xml.OrderType options[:order_type]
25
- xml.OrderAttribute options[:order_attribute]
26
- xml.StandardOrderParams {
27
- build_attributes(xml, options[:order_params])
28
- } if options[:order_params]
29
- build_attributes(xml, options[:custom_order_params]) if options[:custom_order_params]
30
- }
31
- xml.BankPubKeyDigests {
32
- xml.Authentication(client.bank_x.public_digest, Version: 'X002', Algorithm: 'http://www.w3.org/2001/04/xmlenc#sha256')
33
- xml.Encryption(client.bank_e.public_digest, Version: 'E002', Algorithm: 'http://www.w3.org/2001/04/xmlenc#sha256')
34
- } if options[:with_bank_pubkey_digests]
35
- xml.SecurityMedium '0000'
36
- xml.NumSegments options[:num_segments] if options[:num_segments]
37
- }
38
- xml.mutable {
39
- build_attributes(xml, options[:mutable])
40
- } if options[:mutable]
41
- }
42
- end.doc.root
43
- end
44
-
45
- private
46
-
47
- def build_attributes(xml, attributes)
48
- attributes.each do |key, value|
49
- if value.is_a?(Hash)
50
- xml.send(key) {
51
- build_attributes(xml, value)
52
- }
53
- else
54
- xml.send(key, value)
55
- end
56
- end
57
- end
58
- end
@@ -1,16 +0,0 @@
1
- class Epics::XMLSIG < Faraday::Middleware
2
-
3
- def initialize(app, options = {})
4
- super(app)
5
- @client = options[:client]
6
- end
7
-
8
- def call(env)
9
- @signer = Epics::Signer.new(@client, env.request_body)
10
- @signer.digest!
11
- @signer.sign!
12
-
13
- env.request_body = @signer.doc.to_xml(save_with: Nokogiri::XML::Node::SaveOptions::AS_XML)
14
- @app.call(env)
15
- end
16
- end
data/lib/epics/signer.rb DELETED
@@ -1,40 +0,0 @@
1
- class Epics::Signer
2
- attr_accessor :doc, :client
3
-
4
- def initialize(client, doc = nil)
5
- self.doc = Nokogiri::XML.parse(doc) if doc
6
- self.client = client
7
- end
8
-
9
- def digest!
10
- content_to_digest = Base64.encode64(digester.digest(doc.xpath("//*[@authenticate='true']").map(&:canonicalize).join)).strip
11
-
12
- if digest_node
13
- digest_node.content = content_to_digest
14
- end
15
-
16
- doc
17
- end
18
-
19
- def sign!
20
- signature_value_node = doc.xpath("//ds:SignatureValue", ds: "http://www.w3.org/2000/09/xmldsig#").first
21
-
22
- if signature_node
23
- signature_value_node.content = Base64.encode64(client.x.key.sign(digester, signature_node.canonicalize)).gsub(/\n/,'')
24
- end
25
-
26
- doc
27
- end
28
-
29
- def digest_node
30
- @d ||= doc.xpath("//ds:DigestValue", ds: "http://www.w3.org/2000/09/xmldsig#").first
31
- end
32
-
33
- def signature_node
34
- @s ||= doc.xpath("//ds:SignedInfo", ds: "http://www.w3.org/2000/09/xmldsig#").first
35
- end
36
-
37
- def digester
38
- OpenSSL::Digest::SHA256.new
39
- end
40
- end
@@ -1,15 +0,0 @@
1
- class Epics::X509Certificate
2
- extend Forwardable
3
-
4
- attr_reader :certificate
5
-
6
- def_delegators :certificate, :issuer, :version
7
-
8
- def initialize(crt_content)
9
- @certificate = OpenSSL::X509::Certificate.new(crt_content)
10
- end
11
-
12
- def data
13
- Base64.strict_encode64(@certificate.to_der)
14
- end
15
- end