epics 2.10.0 → 3.0.0.rc1

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 (245) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/.semaphore/semaphore.yml +17 -8
  4. data/CHANGELOG.md +97 -0
  5. data/EBICS_REFERENCES.md +169 -0
  6. data/README.md +219 -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 +491 -123
  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 +6 -0
  69. data/lib/epics/generic_request.rb +31 -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 +34 -29
  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 +1 -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 +69 -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 +63 -0
  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_validation_spec.rb +23 -0
  202. data/spec/{key_spec.rb → signature_algorithm/rsa_pss_spec.rb} +4 -13
  203. data/spec/support/ebics_matcher.rb +17 -9
  204. data/spec/support/ebics_shared_examples.rb +642 -0
  205. data/spec/support/h005_client_helper.rb +23 -0
  206. data/spec/upload_digest_spec.rb +69 -0
  207. data/spec/user_signature_handler_spec.rb +25 -0
  208. data/spec/version_support_error_spec.rb +76 -0
  209. data/spec/xsd/{ebics_hev.xsd → H000/ebics_hev.xsd} +0 -0
  210. data/spec/xsd/H003/ebics.xsd +11 -0
  211. data/spec/xsd/H003/ebics_keymgmt_request.xsd +555 -0
  212. data/spec/xsd/H003/ebics_keymgmt_response.xsd +131 -0
  213. data/spec/xsd/H003/ebics_orders.xsd +1811 -0
  214. data/spec/xsd/H003/ebics_request.xsd +354 -0
  215. data/spec/xsd/H003/ebics_response.xsd +161 -0
  216. data/spec/xsd/{ebics_signature.xsd → H003/ebics_signature.xsd} +0 -0
  217. data/spec/xsd/H003/ebics_types.xsd +2361 -0
  218. data/spec/xsd/H003/xmldsig-core-schema.xsd +318 -0
  219. data/spec/xsd/H004/ebics_signature.xsd +217 -0
  220. data/spec/xsd/H005/ebics_H005.xsd +11 -0
  221. data/spec/xsd/H005/ebics_keymgmt_request_H005.xsd +523 -0
  222. data/spec/xsd/H005/ebics_keymgmt_response_H005.xsd +137 -0
  223. data/spec/xsd/H005/ebics_orders_H005.xsd +2094 -0
  224. data/spec/xsd/H005/ebics_request_H005.xsd +349 -0
  225. data/spec/xsd/H005/ebics_response_H005.xsd +167 -0
  226. data/spec/xsd/H005/ebics_signature_S002.xsd +177 -0
  227. data/spec/xsd/H005/ebics_types_H005.xsd +1885 -0
  228. data/spec/xsd/H005/xmldsig-core-schema.xsd +318 -0
  229. metadata +200 -36
  230. data/lib/epics/header_request.rb +0 -58
  231. data/lib/epics/middleware/xmlsig.rb +0 -16
  232. data/lib/epics/signer.rb +0 -40
  233. data/lib/epics/x_509_certificate.rb +0 -15
  234. data/lib/letter/ini_with_certs.erb +0 -335
  235. data/spec/generic_upload_spec.rb +0 -58
  236. data/spec/hpb_spec.rb +0 -15
  237. data/spec/signer_spec.rb +0 -34
  238. /data/spec/xsd/{ebics_H004.xsd → H004/ebics_H004.xsd} +0 -0
  239. /data/spec/xsd/{ebics_keymgmt_request_H004.xsd → H004/ebics_keymgmt_request_H004.xsd} +0 -0
  240. /data/spec/xsd/{ebics_keymgmt_response_H004.xsd → H004/ebics_keymgmt_response_H004.xsd} +0 -0
  241. /data/spec/xsd/{ebics_orders_H004.xsd → H004/ebics_orders_H004.xsd} +0 -0
  242. /data/spec/xsd/{ebics_request_H004.xsd → H004/ebics_request_H004.xsd} +0 -0
  243. /data/spec/xsd/{ebics_response_H004.xsd → H004/ebics_response_H004.xsd} +0 -0
  244. /data/spec/xsd/{ebics_types_H004.xsd → H004/ebics_types_H004.xsd} +0 -0
  245. /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.10.0
4
+ version: 3.0.0.rc1
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,14 +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
289
+ - lib/epics/ful.rb
246
290
  - lib/epics/generic_request.rb
247
291
  - lib/epics/generic_upload_request.rb
248
292
  - lib/epics/haa.rb
249
293
  - lib/epics/hac.rb
250
- - 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
251
306
  - lib/epics/hev.rb
252
307
  - lib/epics/hia.rb
253
308
  - lib/epics/hkd.rb
@@ -255,37 +310,57 @@ files:
255
310
  - lib/epics/hpd.rb
256
311
  - lib/epics/htd.rb
257
312
  - lib/epics/ini.rb
258
- - lib/epics/key.rb
313
+ - lib/epics/keyring.rb
259
314
  - lib/epics/letter_renderer.rb
260
315
  - lib/epics/middleware/parse_ebics.rb
261
- - lib/epics/middleware/xmlsig.rb
262
316
  - lib/epics/ptk.rb
263
317
  - lib/epics/response.rb
264
- - 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
265
330
  - lib/epics/sta.rb
266
331
  - lib/epics/version.rb
267
332
  - lib/epics/vmk.rb
268
333
  - lib/epics/wss.rb
269
- - lib/epics/x_509_certificate.rb
270
334
  - lib/epics/xct.rb
271
335
  - lib/epics/xds.rb
272
336
  - lib/epics/xe2.rb
273
337
  - lib/epics/xe3.rb
338
+ - lib/epics/xek.rb
339
+ - lib/epics/yct.rb
274
340
  - lib/epics/z01.rb
275
341
  - lib/epics/z52.rb
276
342
  - lib/epics/z53.rb
277
343
  - lib/epics/z54.rb
344
+ - lib/epics/zsr.rb
278
345
  - lib/letter/ini.erb
279
- - lib/letter/ini_with_certs.erb
280
346
  - lib/letter/locales/de.yml
281
347
  - lib/letter/locales/en.yml
282
348
  - lib/letter/locales/fr.yml
283
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
284
355
  - spec/client_spec.rb
356
+ - spec/crypt_service_spec.rb
357
+ - spec/date_range_spec.rb
358
+ - spec/digest_resolver_spec.rb
285
359
  - spec/error_spec.rb
286
360
  - spec/fixtures/SIZBN001.key
287
361
  - spec/fixtures/a006.pem
288
362
  - spec/fixtures/bank_e.pem
363
+ - spec/fixtures/bank_x509.pem
289
364
  - spec/fixtures/e002.pem
290
365
  - spec/fixtures/test.zip
291
366
  - spec/fixtures/test_with_general_purpose_bit_3.zip
@@ -301,13 +376,17 @@ files:
301
376
  - spec/fixtures/xml/ebics_technical_nok.xml
302
377
  - spec/fixtures/xml/haa.xml
303
378
  - spec/fixtures/xml/haa_receipt.xml
379
+ - spec/fixtures/xml/haa_response_h004.xml
380
+ - spec/fixtures/xml/haa_response_h005.xml
304
381
  - spec/fixtures/xml/hia_request_order_data.xml
305
382
  - spec/fixtures/xml/hpb.xml
306
383
  - spec/fixtures/xml/hpb_request.xml
307
384
  - spec/fixtures/xml/hpb_response_ebics_ns.xml
308
385
  - spec/fixtures/xml/hpb_response_order.xml
309
386
  - spec/fixtures/xml/hpb_response_order_without_ns.xml
387
+ - spec/fixtures/xml/hpb_response_x509.xml
310
388
  - spec/fixtures/xml/htd_order_data.xml
389
+ - spec/fixtures/xml/htd_order_data_h005.xml
311
390
  - spec/fixtures/xml/htd_order_data_without_names.xml
312
391
  - spec/fixtures/xml/ini_response_h004_ns.xml
313
392
  - spec/fixtures/xml/jruby/hia.xml
@@ -320,10 +399,13 @@ files:
320
399
  - spec/fixtures/xml/swiss_credit_transfer.xml
321
400
  - spec/fixtures/xml/swiss_direct_debit.xml
322
401
  - spec/fixtures/xml/upload_init_response.xml
323
- - spec/generic_upload_spec.rb
324
- - spec/hpb_spec.rb
325
- - 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
326
407
  - spec/middleware/parse_ebics_spec.rb
408
+ - spec/order_id_spec.rb
327
409
  - spec/orders/azv_spec.rb
328
410
  - spec/orders/b2b_spec.rb
329
411
  - spec/orders/bka_spec.rb
@@ -332,15 +414,18 @@ files:
332
414
  - spec/orders/c53_spec.rb
333
415
  - spec/orders/c54_spec.rb
334
416
  - spec/orders/c5n_spec.rb
417
+ - spec/orders/camt_parity_spec.rb
335
418
  - spec/orders/ccs_spec.rb
336
419
  - spec/orders/cct_spec.rb
337
420
  - spec/orders/cd1_spec.rb
338
421
  - spec/orders/cdb_spec.rb
339
422
  - spec/orders/cdd_spec.rb
423
+ - spec/orders/cds_spec.rb
340
424
  - spec/orders/cdz_spec.rb
341
425
  - spec/orders/cip_spec.rb
342
426
  - spec/orders/crz_spec.rb
343
427
  - spec/orders/fdl_spec.rb
428
+ - spec/orders/ful_spec.rb
344
429
  - spec/orders/haa_spec.rb
345
430
  - spec/orders/hac_spec.rb
346
431
  - spec/orders/hev_spec.rb
@@ -355,28 +440,58 @@ files:
355
440
  - spec/orders/vmk_spec.rb
356
441
  - spec/orders/wss_spec.rb
357
442
  - spec/orders/x_509_certificate_spec.rb
443
+ - spec/orders/xct_spec.rb
358
444
  - spec/orders/xds_spec.rb
359
445
  - spec/orders/xe2_spec.rb
360
446
  - spec/orders/xe3_spec.rb
447
+ - spec/orders/xek_spec.rb
448
+ - spec/orders/yct_spec.rb
361
449
  - spec/orders/z01_spec.rb
362
450
  - spec/orders/z52_spec.rb
363
451
  - spec/orders/z53_spec.rb
364
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
365
456
  - spec/response_spec.rb
366
- - spec/signer_spec.rb
457
+ - spec/response_validation_spec.rb
458
+ - spec/signature_algorithm/rsa_pss_spec.rb
367
459
  - spec/spec_helper.rb
368
460
  - spec/support/ebics_matcher.rb
461
+ - spec/support/ebics_shared_examples.rb
462
+ - spec/support/h005_client_helper.rb
369
463
  - spec/support/x_509_crt_generator.rb
370
- - spec/xsd/ebics_H004.xsd
371
- - spec/xsd/ebics_hev.xsd
372
- - spec/xsd/ebics_keymgmt_request_H004.xsd
373
- - spec/xsd/ebics_keymgmt_response_H004.xsd
374
- - spec/xsd/ebics_orders_H004.xsd
375
- - spec/xsd/ebics_request_H004.xsd
376
- - spec/xsd/ebics_response_H004.xsd
377
- - spec/xsd/ebics_signature.xsd
378
- - spec/xsd/ebics_types_H004.xsd
379
- - spec/xsd/xmldsig-core-schema.xsd
464
+ - spec/upload_digest_spec.rb
465
+ - spec/user_signature_handler_spec.rb
466
+ - spec/version_support_error_spec.rb
467
+ - spec/xsd/H000/ebics_hev.xsd
468
+ - spec/xsd/H003/ebics.xsd
469
+ - spec/xsd/H003/ebics_keymgmt_request.xsd
470
+ - spec/xsd/H003/ebics_keymgmt_response.xsd
471
+ - spec/xsd/H003/ebics_orders.xsd
472
+ - spec/xsd/H003/ebics_request.xsd
473
+ - spec/xsd/H003/ebics_response.xsd
474
+ - spec/xsd/H003/ebics_signature.xsd
475
+ - spec/xsd/H003/ebics_types.xsd
476
+ - spec/xsd/H003/xmldsig-core-schema.xsd
477
+ - spec/xsd/H004/ebics_H004.xsd
478
+ - spec/xsd/H004/ebics_keymgmt_request_H004.xsd
479
+ - spec/xsd/H004/ebics_keymgmt_response_H004.xsd
480
+ - spec/xsd/H004/ebics_orders_H004.xsd
481
+ - spec/xsd/H004/ebics_request_H004.xsd
482
+ - spec/xsd/H004/ebics_response_H004.xsd
483
+ - spec/xsd/H004/ebics_signature.xsd
484
+ - spec/xsd/H004/ebics_types_H004.xsd
485
+ - spec/xsd/H004/xmldsig-core-schema.xsd
486
+ - spec/xsd/H005/ebics_H005.xsd
487
+ - spec/xsd/H005/ebics_keymgmt_request_H005.xsd
488
+ - spec/xsd/H005/ebics_keymgmt_response_H005.xsd
489
+ - spec/xsd/H005/ebics_orders_H005.xsd
490
+ - spec/xsd/H005/ebics_request_H005.xsd
491
+ - spec/xsd/H005/ebics_response_H005.xsd
492
+ - spec/xsd/H005/ebics_signature_S002.xsd
493
+ - spec/xsd/H005/ebics_types_H005.xsd
494
+ - spec/xsd/H005/xmldsig-core-schema.xsd
380
495
  homepage: https://github.com/railslove/epics
381
496
  licenses:
382
497
  - LGPL-3.0
@@ -405,16 +520,25 @@ required_rubygems_version: !ruby/object:Gem::Requirement
405
520
  - !ruby/object:Gem::Version
406
521
  version: '0'
407
522
  requirements: []
408
- rubygems_version: 3.6.8
523
+ rubygems_version: 4.0.16
409
524
  specification_version: 4
410
525
  summary: a ruby implementation of the EBICS protocol
411
526
  test_files:
412
527
  - spec/.DS_Store
528
+ - spec/aes_spec.rb
529
+ - spec/auth_signature_handler_spec.rb
530
+ - spec/builders_spec.rb
531
+ - spec/certificate_handling_spec.rb
532
+ - spec/client_setup_block_spec.rb
413
533
  - spec/client_spec.rb
534
+ - spec/crypt_service_spec.rb
535
+ - spec/date_range_spec.rb
536
+ - spec/digest_resolver_spec.rb
414
537
  - spec/error_spec.rb
415
538
  - spec/fixtures/SIZBN001.key
416
539
  - spec/fixtures/a006.pem
417
540
  - spec/fixtures/bank_e.pem
541
+ - spec/fixtures/bank_x509.pem
418
542
  - spec/fixtures/e002.pem
419
543
  - spec/fixtures/test.zip
420
544
  - spec/fixtures/test_with_general_purpose_bit_3.zip
@@ -430,13 +554,17 @@ test_files:
430
554
  - spec/fixtures/xml/ebics_technical_nok.xml
431
555
  - spec/fixtures/xml/haa.xml
432
556
  - spec/fixtures/xml/haa_receipt.xml
557
+ - spec/fixtures/xml/haa_response_h004.xml
558
+ - spec/fixtures/xml/haa_response_h005.xml
433
559
  - spec/fixtures/xml/hia_request_order_data.xml
434
560
  - spec/fixtures/xml/hpb.xml
435
561
  - spec/fixtures/xml/hpb_request.xml
436
562
  - spec/fixtures/xml/hpb_response_ebics_ns.xml
437
563
  - spec/fixtures/xml/hpb_response_order.xml
438
564
  - spec/fixtures/xml/hpb_response_order_without_ns.xml
565
+ - spec/fixtures/xml/hpb_response_x509.xml
439
566
  - spec/fixtures/xml/htd_order_data.xml
567
+ - spec/fixtures/xml/htd_order_data_h005.xml
440
568
  - spec/fixtures/xml/htd_order_data_without_names.xml
441
569
  - spec/fixtures/xml/ini_response_h004_ns.xml
442
570
  - spec/fixtures/xml/jruby/hia.xml
@@ -449,10 +577,13 @@ test_files:
449
577
  - spec/fixtures/xml/swiss_credit_transfer.xml
450
578
  - spec/fixtures/xml/swiss_direct_debit.xml
451
579
  - spec/fixtures/xml/upload_init_response.xml
452
- - spec/generic_upload_spec.rb
453
- - spec/hpb_spec.rb
454
- - spec/key_spec.rb
580
+ - spec/handlers_spec.rb
581
+ - spec/hpb_malformed_certificate_spec.rb
582
+ - spec/key_file_decryption_spec.rb
583
+ - spec/key_file_preservation_spec.rb
584
+ - spec/keyring_spec.rb
455
585
  - spec/middleware/parse_ebics_spec.rb
586
+ - spec/order_id_spec.rb
456
587
  - spec/orders/azv_spec.rb
457
588
  - spec/orders/b2b_spec.rb
458
589
  - spec/orders/bka_spec.rb
@@ -461,15 +592,18 @@ test_files:
461
592
  - spec/orders/c53_spec.rb
462
593
  - spec/orders/c54_spec.rb
463
594
  - spec/orders/c5n_spec.rb
595
+ - spec/orders/camt_parity_spec.rb
464
596
  - spec/orders/ccs_spec.rb
465
597
  - spec/orders/cct_spec.rb
466
598
  - spec/orders/cd1_spec.rb
467
599
  - spec/orders/cdb_spec.rb
468
600
  - spec/orders/cdd_spec.rb
601
+ - spec/orders/cds_spec.rb
469
602
  - spec/orders/cdz_spec.rb
470
603
  - spec/orders/cip_spec.rb
471
604
  - spec/orders/crz_spec.rb
472
605
  - spec/orders/fdl_spec.rb
606
+ - spec/orders/ful_spec.rb
473
607
  - spec/orders/haa_spec.rb
474
608
  - spec/orders/hac_spec.rb
475
609
  - spec/orders/hev_spec.rb
@@ -484,25 +618,55 @@ test_files:
484
618
  - spec/orders/vmk_spec.rb
485
619
  - spec/orders/wss_spec.rb
486
620
  - spec/orders/x_509_certificate_spec.rb
621
+ - spec/orders/xct_spec.rb
487
622
  - spec/orders/xds_spec.rb
488
623
  - spec/orders/xe2_spec.rb
489
624
  - spec/orders/xe3_spec.rb
625
+ - spec/orders/xek_spec.rb
626
+ - spec/orders/yct_spec.rb
490
627
  - spec/orders/z01_spec.rb
491
628
  - spec/orders/z52_spec.rb
492
629
  - spec/orders/z53_spec.rb
493
630
  - spec/orders/z54_spec.rb
631
+ - spec/orders/zsr_spec.rb
632
+ - spec/request_factory_spec.rb
633
+ - spec/response_business_error_spec.rb
494
634
  - spec/response_spec.rb
495
- - spec/signer_spec.rb
635
+ - spec/response_validation_spec.rb
636
+ - spec/signature_algorithm/rsa_pss_spec.rb
496
637
  - spec/spec_helper.rb
497
638
  - spec/support/ebics_matcher.rb
639
+ - spec/support/ebics_shared_examples.rb
640
+ - spec/support/h005_client_helper.rb
498
641
  - spec/support/x_509_crt_generator.rb
499
- - spec/xsd/ebics_H004.xsd
500
- - spec/xsd/ebics_hev.xsd
501
- - spec/xsd/ebics_keymgmt_request_H004.xsd
502
- - spec/xsd/ebics_keymgmt_response_H004.xsd
503
- - spec/xsd/ebics_orders_H004.xsd
504
- - spec/xsd/ebics_request_H004.xsd
505
- - spec/xsd/ebics_response_H004.xsd
506
- - spec/xsd/ebics_signature.xsd
507
- - spec/xsd/ebics_types_H004.xsd
508
- - spec/xsd/xmldsig-core-schema.xsd
642
+ - spec/upload_digest_spec.rb
643
+ - spec/user_signature_handler_spec.rb
644
+ - spec/version_support_error_spec.rb
645
+ - spec/xsd/H000/ebics_hev.xsd
646
+ - spec/xsd/H003/ebics.xsd
647
+ - spec/xsd/H003/ebics_keymgmt_request.xsd
648
+ - spec/xsd/H003/ebics_keymgmt_response.xsd
649
+ - spec/xsd/H003/ebics_orders.xsd
650
+ - spec/xsd/H003/ebics_request.xsd
651
+ - spec/xsd/H003/ebics_response.xsd
652
+ - spec/xsd/H003/ebics_signature.xsd
653
+ - spec/xsd/H003/ebics_types.xsd
654
+ - spec/xsd/H003/xmldsig-core-schema.xsd
655
+ - spec/xsd/H004/ebics_H004.xsd
656
+ - spec/xsd/H004/ebics_keymgmt_request_H004.xsd
657
+ - spec/xsd/H004/ebics_keymgmt_response_H004.xsd
658
+ - spec/xsd/H004/ebics_orders_H004.xsd
659
+ - spec/xsd/H004/ebics_request_H004.xsd
660
+ - spec/xsd/H004/ebics_response_H004.xsd
661
+ - spec/xsd/H004/ebics_signature.xsd
662
+ - spec/xsd/H004/ebics_types_H004.xsd
663
+ - spec/xsd/H004/xmldsig-core-schema.xsd
664
+ - spec/xsd/H005/ebics_H005.xsd
665
+ - spec/xsd/H005/ebics_keymgmt_request_H005.xsd
666
+ - spec/xsd/H005/ebics_keymgmt_response_H005.xsd
667
+ - spec/xsd/H005/ebics_orders_H005.xsd
668
+ - spec/xsd/H005/ebics_request_H005.xsd
669
+ - spec/xsd/H005/ebics_response_H005.xsd
670
+ - spec/xsd/H005/ebics_signature_S002.xsd
671
+ - spec/xsd/H005/ebics_types_H005.xsd
672
+ - 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