epics 2.11.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 +93 -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 +489 -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 +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 +68 -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_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 +197 -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.11.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,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,58 @@ 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/signature_algorithm/rsa_pss_spec.rb
369
459
  - spec/spec_helper.rb
370
460
  - spec/support/ebics_matcher.rb
461
+ - spec/support/ebics_shared_examples.rb
462
+ - spec/support/h005_client_helper.rb
371
463
  - 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
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
382
495
  homepage: https://github.com/railslove/epics
383
496
  licenses:
384
497
  - LGPL-3.0
@@ -407,16 +520,25 @@ required_rubygems_version: !ruby/object:Gem::Requirement
407
520
  - !ruby/object:Gem::Version
408
521
  version: '0'
409
522
  requirements: []
410
- rubygems_version: 3.7.1
523
+ rubygems_version: 4.0.16
411
524
  specification_version: 4
412
525
  summary: a ruby implementation of the EBICS protocol
413
526
  test_files:
414
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
415
533
  - spec/client_spec.rb
534
+ - spec/crypt_service_spec.rb
535
+ - spec/date_range_spec.rb
536
+ - spec/digest_resolver_spec.rb
416
537
  - spec/error_spec.rb
417
538
  - spec/fixtures/SIZBN001.key
418
539
  - spec/fixtures/a006.pem
419
540
  - spec/fixtures/bank_e.pem
541
+ - spec/fixtures/bank_x509.pem
420
542
  - spec/fixtures/e002.pem
421
543
  - spec/fixtures/test.zip
422
544
  - spec/fixtures/test_with_general_purpose_bit_3.zip
@@ -432,13 +554,17 @@ test_files:
432
554
  - spec/fixtures/xml/ebics_technical_nok.xml
433
555
  - spec/fixtures/xml/haa.xml
434
556
  - spec/fixtures/xml/haa_receipt.xml
557
+ - spec/fixtures/xml/haa_response_h004.xml
558
+ - spec/fixtures/xml/haa_response_h005.xml
435
559
  - spec/fixtures/xml/hia_request_order_data.xml
436
560
  - spec/fixtures/xml/hpb.xml
437
561
  - spec/fixtures/xml/hpb_request.xml
438
562
  - spec/fixtures/xml/hpb_response_ebics_ns.xml
439
563
  - spec/fixtures/xml/hpb_response_order.xml
440
564
  - spec/fixtures/xml/hpb_response_order_without_ns.xml
565
+ - spec/fixtures/xml/hpb_response_x509.xml
441
566
  - spec/fixtures/xml/htd_order_data.xml
567
+ - spec/fixtures/xml/htd_order_data_h005.xml
442
568
  - spec/fixtures/xml/htd_order_data_without_names.xml
443
569
  - spec/fixtures/xml/ini_response_h004_ns.xml
444
570
  - spec/fixtures/xml/jruby/hia.xml
@@ -451,10 +577,13 @@ test_files:
451
577
  - spec/fixtures/xml/swiss_credit_transfer.xml
452
578
  - spec/fixtures/xml/swiss_direct_debit.xml
453
579
  - spec/fixtures/xml/upload_init_response.xml
454
- - spec/generic_upload_spec.rb
455
- - spec/hpb_spec.rb
456
- - 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
457
585
  - spec/middleware/parse_ebics_spec.rb
586
+ - spec/order_id_spec.rb
458
587
  - spec/orders/azv_spec.rb
459
588
  - spec/orders/b2b_spec.rb
460
589
  - spec/orders/bka_spec.rb
@@ -463,11 +592,13 @@ test_files:
463
592
  - spec/orders/c53_spec.rb
464
593
  - spec/orders/c54_spec.rb
465
594
  - spec/orders/c5n_spec.rb
595
+ - spec/orders/camt_parity_spec.rb
466
596
  - spec/orders/ccs_spec.rb
467
597
  - spec/orders/cct_spec.rb
468
598
  - spec/orders/cd1_spec.rb
469
599
  - spec/orders/cdb_spec.rb
470
600
  - spec/orders/cdd_spec.rb
601
+ - spec/orders/cds_spec.rb
471
602
  - spec/orders/cdz_spec.rb
472
603
  - spec/orders/cip_spec.rb
473
604
  - spec/orders/crz_spec.rb
@@ -487,25 +618,55 @@ test_files:
487
618
  - spec/orders/vmk_spec.rb
488
619
  - spec/orders/wss_spec.rb
489
620
  - spec/orders/x_509_certificate_spec.rb
621
+ - spec/orders/xct_spec.rb
490
622
  - spec/orders/xds_spec.rb
491
623
  - spec/orders/xe2_spec.rb
492
624
  - spec/orders/xe3_spec.rb
625
+ - spec/orders/xek_spec.rb
626
+ - spec/orders/yct_spec.rb
493
627
  - spec/orders/z01_spec.rb
494
628
  - spec/orders/z52_spec.rb
495
629
  - spec/orders/z53_spec.rb
496
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
497
634
  - spec/response_spec.rb
498
- - spec/signer_spec.rb
635
+ - spec/response_validation_spec.rb
636
+ - spec/signature_algorithm/rsa_pss_spec.rb
499
637
  - spec/spec_helper.rb
500
638
  - spec/support/ebics_matcher.rb
639
+ - spec/support/ebics_shared_examples.rb
640
+ - spec/support/h005_client_helper.rb
501
641
  - 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
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