sepafm 1.1.8 → 1.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +8 -6
  3. data/Rakefile +1 -1
  4. data/lib/sepa/application_request.rb +12 -18
  5. data/lib/sepa/application_response.rb +0 -2
  6. data/lib/sepa/attribute_checks.rb +33 -28
  7. data/lib/sepa/banks/danske/danske_response.rb +9 -25
  8. data/lib/sepa/banks/danske/soap_danske.rb +1 -1
  9. data/lib/sepa/banks/nordea/nordea_response.rb +2 -16
  10. data/lib/sepa/banks/op/op_response.rb +5 -23
  11. data/lib/sepa/banks/samlink/samlink_response.rb +35 -0
  12. data/lib/sepa/banks/samlink/soap_samlink.rb +14 -0
  13. data/lib/sepa/certificates/samlink_certificate.pem +29 -0
  14. data/lib/sepa/certificates/samlink_root_certificate.pem +32 -0
  15. data/lib/sepa/client.rb +35 -8
  16. data/lib/sepa/error_messages.rb +16 -18
  17. data/lib/sepa/response.rb +7 -11
  18. data/lib/sepa/soap_builder.rb +7 -17
  19. data/lib/sepa/utilities.rb +4 -5
  20. data/lib/sepa/version.rb +1 -1
  21. data/lib/sepa/wsdl/wsdl_samlink_cert_production.xml +82 -0
  22. data/lib/sepa/wsdl/wsdl_samlink_cert_test.xml +82 -0
  23. data/lib/sepa/wsdl/wsdl_samlink_production.xml +160 -0
  24. data/lib/sepa/wsdl/wsdl_samlink_test.xml +160 -0
  25. data/lib/sepa/xml_schemas/samlink/CertApplicationRequest.xsd +105 -0
  26. data/lib/sepa/xml_schemas/samlink/CertApplicationResponse.xsd +88 -0
  27. data/lib/sepa/xml_templates/application_request/download_file.xml +0 -1
  28. data/lib/sepa/xml_templates/application_request/download_file_list.xml +0 -1
  29. data/lib/sepa/xml_templates/application_request/samlink/get_certificate.xml +12 -0
  30. data/lib/sepa/xml_templates/application_request/samlink/renew_certificate.xml +29 -0
  31. data/lib/sepa/xml_templates/soap/samlink/get_certificate.xml +14 -0
  32. data/lib/sepa/xml_templates/soap/samlink/renew_certificate.xml +14 -0
  33. data/lib/sepafm.rb +43 -31
  34. data/readme.md +1 -0
  35. data/sepafm.gemspec +2 -2
  36. data/test/custom_assertions.rb +30 -28
  37. data/test/sepa/banks/danske/danske_cert_response_test.rb +13 -10
  38. data/test/sepa/banks/danske/danske_generic_soap_builder_test.rb +9 -31
  39. data/test/sepa/banks/danske/danske_get_bank_cert_test.rb +4 -5
  40. data/test/sepa/banks/danske/danske_response_test.rb +2 -3
  41. data/test/sepa/banks/danske/responses/create_cert_corrupted.xml +15 -0
  42. data/test/sepa/banks/nordea/nordea_application_request_test.rb +4 -6
  43. data/test/sepa/banks/nordea/nordea_application_response_test.rb +14 -15
  44. data/test/sepa/banks/nordea/nordea_cert_request_soap_builder_test.rb +1 -3
  45. data/test/sepa/banks/nordea/nordea_generic_soap_builder_test.rb +6 -16
  46. data/test/sepa/banks/nordea/nordea_response_test.rb +11 -11
  47. data/test/sepa/banks/op/op_cert_application_request_test.rb +1 -1
  48. data/test/sepa/banks/op/op_cert_request_soap_builder_test.rb +0 -1
  49. data/test/sepa/banks/op/op_response_test.rb +2 -2
  50. data/test/sepa/banks/samlink/responses/dfl.xml +21 -0
  51. data/test/sepa/banks/samlink/responses/gc_error_30.xml +21 -0
  52. data/test/sepa/banks/samlink/responses/rc.xml +21 -0
  53. data/test/sepa/banks/samlink/samlink_application_request_test.rb +36 -0
  54. data/test/sepa/banks/samlink/samlink_cert_application_request_test.rb +13 -0
  55. data/test/sepa/banks/samlink/samlink_cert_request_soap_builder_test.rb +13 -0
  56. data/test/sepa/banks/samlink/samlink_generic_soap_builder_test.rb +34 -0
  57. data/test/sepa/banks/samlink/samlink_renew_cert_application_request_test.rb +36 -0
  58. data/test/sepa/banks/samlink/samlink_renew_cert_request_soap_builder_test.rb +26 -0
  59. data/test/sepa/banks/samlink/samlink_response_test.rb +71 -0
  60. data/test/sepa/client_test.rb +32 -6
  61. data/test/sepa/fixtures.rb +169 -7
  62. data/test/sepa/sepa_test.rb +1 -1
  63. data/test/test_helper.rb +8 -7
  64. data/test_client/data/certs_example.rb +9 -9
  65. data/test_client/data/params_example.rb +18 -19
  66. data/test_client/test_client.rb +6 -0
  67. metadata +41 -5
@@ -77,7 +77,7 @@ Sn4Uz7Zjk3UrBIbMYEv0u2mcCypwsb0nGE5/gzDPjGE9cxWW+rXARIs+sNQVClnh
77
77
  language: 'FI',
78
78
  file_type: 'TITO',
79
79
  content: encode("haisuli"),
80
- file_reference: "11111111A12006030329501800000014"
80
+ file_reference: "11111111A12006030329501800000014",
81
81
  }
82
82
  end
83
83
 
@@ -154,7 +154,7 @@ jo2ekdSDdw8qxKyxj1piv8oYzMd4fCjCpL+WDZtq7mdLErVZ92gH
154
154
  customer_id: '11111111',
155
155
  environment: 'test',
156
156
  signing_csr: signing_csr,
157
- pin: '1234567890'
157
+ pin: '1234567890',
158
158
  }
159
159
  end
160
160
 
@@ -245,16 +245,16 @@ GuNaWLWOhkOqCtAdNkSGeq/ZKbjYHolGo5FBQqdJnuz0r3I5nfLUNAHXNg==
245
245
  customer_id: '1000010583',
246
246
  environment: 'test',
247
247
  signing_csr: signing_csr,
248
- pin: '2251401483958635'
248
+ pin: '2251401483958635',
249
249
  }
250
250
  end
251
251
 
252
252
  def danske_get_bank_cert_params
253
253
  {
254
- bank: :danske,
255
- command: :get_bank_certificate,
256
- bank_root_cert_serial: '1111110002',
257
- customer_id: '360817',
254
+ bank: :danske,
255
+ command: :get_bank_certificate,
256
+ bank_root_cert_serial: '1111110002',
257
+ customer_id: '360817',
258
258
  }
259
259
  end
260
260
 
@@ -437,3 +437,165 @@ CsajqZag/Aoxv/Y=
437
437
  encryption_private_key: encryption_private_key,
438
438
  }
439
439
  end
440
+
441
+ def samlink_get_certificate_params
442
+ {
443
+ bank: :samlink,
444
+ command: :get_certificate,
445
+ environment: :production,
446
+ customer_id: 1,
447
+ pin: 1,
448
+ signing_csr: "-----BEGIN CERTIFICATE REQUEST-----
449
+ MIICmjCCAYICAQAwVTELMAkGA1UEBhMCRkkxETAPBgNVBAQTCDEyMzQ1Njc4MRAw
450
+ DgYDVQQDEwdURVNUIE9ZMSEwHwYDVQQKExhBaW5laXN0b3BhbHZlbHV0LVNhbWxp
451
+ bmswggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCt3PwhmsjYB4duHs0Q
452
+ CG0yGqesHooIwwtD4AU05G6VsSSQJJkd5L0FiU7HGUo6TPGefXEbWB/ZkY44qC6+
453
+ Elx68M0yG7LJVzpZlff2s1JOBiUw9pJtiZOkmNepToki5kUy7nnpF7xl6yK+EXCs
454
+ dmHrKTFoDZ+PTkKDbA3BQ5SK/J5LlfXLq4V8C32Eg+7lIfFm/2o94UEXUIXqJKWv
455
+ hMrx9PTB6epw9wS86yfvaCiL5Kp5A5Z1uLAHqr3nqgSHBrKagxDHPeyEjHBdgdBw
456
+ VCAwsdrtd93h8mrnyh4rToNdqm/3D42VcVZ9STnByXTnMDNdn78Z3F/Oxf+wuo2C
457
+ mEJdAgMBAAGgADANBgkqhkiG9w0BAQUFAAOCAQEAAXnqgjiMeGxhSQpz3W8BaylZ
458
+ gkwDeB/MQxz3IJe4j0wCVLAphf6/ub8ocvgpV/IZgM9miMuo9RuhxTAcibyrlB03
459
+ 6h3GHMZFZThGNTXx4yQWPXk2znNgWRnGF/Pt5DScLPfwMDwbEQktNgXQb95yt5vA
460
+ FjUzP5EiwK8JW2yoludqpYYJ3VEtzNjki3BM8Ud8W/7moMq0408u63g/mVTOtmaZ
461
+ VAyoklxOeq7ItHW2Pmm8HlCeH6VNaFBaT+7CHivO7vtRNJsjb7yrPMrnRNJ8u45X
462
+ iJCne0qYwkRCagdluvtG6Pr9zk9LS/d+kgt6b2NAQ2fQpocRgMLlDyS89qEQog==
463
+ -----END CERTIFICATE REQUEST-----",
464
+ }
465
+ end
466
+
467
+ def samlink_renew_certificate_params
468
+ signing_csr = "-----BEGIN CERTIFICATE REQUEST-----
469
+ MIICmjCCAYICAQAwVTELMAkGA1UEBhMCRkkxETAPBgNVBAQTCDEyMzQ1Njc4MRAw
470
+ DgYDVQQDEwdURVNUIE9ZMSEwHwYDVQQKExhBaW5laXN0b3BhbHZlbHV0LVNhbWxp
471
+ bmswggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCt3PwhmsjYB4duHs0Q
472
+ CG0yGqesHooIwwtD4AU05G6VsSSQJJkd5L0FiU7HGUo6TPGefXEbWB/ZkY44qC6+
473
+ Elx68M0yG7LJVzpZlff2s1JOBiUw9pJtiZOkmNepToki5kUy7nnpF7xl6yK+EXCs
474
+ dmHrKTFoDZ+PTkKDbA3BQ5SK/J5LlfXLq4V8C32Eg+7lIfFm/2o94UEXUIXqJKWv
475
+ hMrx9PTB6epw9wS86yfvaCiL5Kp5A5Z1uLAHqr3nqgSHBrKagxDHPeyEjHBdgdBw
476
+ VCAwsdrtd93h8mrnyh4rToNdqm/3D42VcVZ9STnByXTnMDNdn78Z3F/Oxf+wuo2C
477
+ mEJdAgMBAAGgADANBgkqhkiG9w0BAQUFAAOCAQEAAXnqgjiMeGxhSQpz3W8BaylZ
478
+ gkwDeB/MQxz3IJe4j0wCVLAphf6/ub8ocvgpV/IZgM9miMuo9RuhxTAcibyrlB03
479
+ 6h3GHMZFZThGNTXx4yQWPXk2znNgWRnGF/Pt5DScLPfwMDwbEQktNgXQb95yt5vA
480
+ FjUzP5EiwK8JW2yoludqpYYJ3VEtzNjki3BM8Ud8W/7moMq0408u63g/mVTOtmaZ
481
+ VAyoklxOeq7ItHW2Pmm8HlCeH6VNaFBaT+7CHivO7vtRNJsjb7yrPMrnRNJ8u45X
482
+ iJCne0qYwkRCagdluvtG6Pr9zk9LS/d+kgt6b2NAQ2fQpocRgMLlDyS89qEQog==
483
+ -----END CERTIFICATE REQUEST-----"
484
+
485
+ own_signing_certificate = "-----BEGIN CERTIFICATE-----
486
+ MIIDwTCCAqmgAwIBAgIEAX1JuTANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJT
487
+ RTEeMBwGA1UEChMVTm9yZGVhIEJhbmsgQUIgKHB1YmwpMR8wHQYDVQQDExZOb3Jk
488
+ ZWEgQ29ycG9yYXRlIENBIDAxMRQwEgYDVQQFEws1MTY0MDYtMDEyMDAeFw0xMzA1
489
+ MDIxMjI2MzRaFw0xNTA1MDIxMjI2MzRaMEQxCzAJBgNVBAYTAkZJMSAwHgYDVQQD
490
+ DBdOb3JkZWEgRGVtbyBDZXJ0aWZpY2F0ZTETMBEGA1UEBRMKNTc4MDg2MDIzODCB
491
+ nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwtFEfAtbJuGzQwwRumZkvYh2BjGY
492
+ VsAMUeiKtOne3bZSeisfCq+TXqL1gI9LofyeAQ9I/sDm6tL80yrD5iaSUqVm6A73
493
+ 9MsmpW/iyZcVf7ms8xAN51ESUgN6akwZCU9pH62ngJDj2gUsktY0fpsoVsARdrvO
494
+ Fk0fTSUXKWd6LbcCAwEAAaOCAR0wggEZMAkGA1UdEwQCMAAwEQYDVR0OBAoECEBw
495
+ 2cj7+XMAMBMGA1UdIAQMMAowCAYGKoVwRwEDMBMGA1UdIwQMMAqACEALddbbzwun
496
+ MDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3Aubm9yZGVh
497
+ LnNlL0NDQTAxMA4GA1UdDwEB/wQEAwIFoDCBhQYDVR0fBH4wfDB6oHigdoZ0bGRh
498
+ cCUzQS8vbGRhcC5uYi5zZS9jbiUzRE5vcmRlYStDb3Jwb3JhdGUrQ0ErMDElMkNv
499
+ JTNETm9yZGVhK0JhbmsrQUIrJTI4cHVibCUyOSUyQ2MlM0RTRSUzRmNlcnRpZmlj
500
+ YXRlcmV2b2NhdGlvbmxpc3QwDQYJKoZIhvcNAQEFBQADggEBACLUPB1Gmq6286/s
501
+ ROADo7N+w3eViGJ2fuOTLMy4R0UHOznKZNsuk4zAbS2KycbZsE5py4L8o+IYoaS8
502
+ 8YHtEeckr2oqHnPpz/0Eg7wItj8Ad+AFWJqzbn6Hu/LQhlnl5JEzXzl3eZj9oiiJ
503
+ 1q/2CGXvFomY7S4tgpWRmYULtCK6jode0NhgNnAgOI9uy76pSS16aDoiQWUJqQgV
504
+ ydowAnqS9h9aQ6gedwbOdtkWmwKMDVXU6aRz9Gvk+JeYJhtpuP3OPNGbbC5L7NVd
505
+ no+B6AtwxmG3ozd+mPcMeVuz6kKLAmQyIiBSrRNa5OrTkq/CUzxO9WUgTnm/Sri7
506
+ zReR6mU=
507
+ -----END CERTIFICATE-----"
508
+
509
+ signing_private_key = "-----BEGIN RSA PRIVATE KEY-----
510
+ MIIEpQIBAAKCAQEArdz8IZrI2AeHbh7NEAhtMhqnrB6KCMMLQ+AFNORulbEkkCSZ
511
+ HeS9BYlOxxlKOkzxnn1xG1gf2ZGOOKguvhJcevDNMhuyyVc6WZX39rNSTgYlMPaS
512
+ bYmTpJjXqU6JIuZFMu556Re8ZesivhFwrHZh6ykxaA2fj05Cg2wNwUOUivyeS5X1
513
+ y6uFfAt9hIPu5SHxZv9qPeFBF1CF6iSlr4TK8fT0wenqcPcEvOsn72goi+SqeQOW
514
+ dbiwB6q956oEhwaymoMQxz3shIxwXYHQcFQgMLHa7Xfd4fJq58oeK06DXapv9w+N
515
+ lXFWfUk5wcl05zAzXZ+/GdxfzsX/sLqNgphCXQIDAQABAoIBAEPTpSz69IWKkmP8
516
+ ciViFC9qxKTaGSGH7boiCAX1Y8rUG558GJvX44Hoaio0DIgoAk7BQ0HWpD49kY06
517
+ 11lhUmDH1lVJBvuTIvlWDzFYDbDQpuuuFbvT4xxgYCn1sHxD9xUCgd7UWrQsAhbC
518
+ OQGfAV47aMHeJrRCZKJeohMWaTm65GjZ3vXHMiz39NG1NmBpSq2TX+095MEjuy3/
519
+ snIPw4VqwphdeyZ9K8TKo8drdViPKVf1LdiQt66TAFszBTJuXeqmQtJbFjVLQRg3
520
+ jEcGg+oHaLXvWunW0pyZwSGHcwmszVEt1w100hElz5cwLHZpsTQzIksqdYIU4Zyh
521
+ 0mD3hqECgYEA5HGfH62ipl3oQO+4xDf/RHmEgirgwheD9D7iFulAGIgFrjHGKEjC
522
+ TMPAMspbIOP8mKXrhGnLbwCjZZNtcHnRg/SsPD1mhoPNhEEoLYDxwH9E/Rq3AM7s
523
+ wFU1ZNy5vXzoefciQM4c/8m/QS6t/SnfRtMtwPkUssHD3qTDso66YuUCgYEAwtXn
524
+ +qhudoVwgiTt2b7pZAj3CqHysDZaxOXRE7VQfH4T7Dmv/nmgr2wztpLPXN2UpJ9k
525
+ ZA4LOu06hY4q5D2N7uKtAvjdjP1G1Wgho6uZVdMs78sAsocLWV+pYhd5bAp5GNrW
526
+ awjgDbUh2XHL9W+Ix6Jh/LQFsv45sZuimLgmkhkCgYEA2i9zLYxnpsJWS38qV66s
527
+ DjiJyNEvLfHLxAIzanKJF2UDF+bOPjeP7EWiUmBXPUjDPwBpu2RYOsK/TQrMIfsX
528
+ kxKjVj3GqH9GUSTyPNPFEnf76koTs5/vG5vGjXkLpeGhIKxbeM3jgKKuGpF8+Cl/
529
+ 6WNVddPwYvMSIpn3l5keh8kCgYEAsXMy8hd/bBECtHW/74ayeLq1jYiMSbNnnlcV
530
+ wlZr9Ma7jHXJ9gJ+t+bbfphdpl3laL4HKB2mWsf/ee5O4EuzvnPTUZap6iQv5GQP
531
+ 50p9wC4yij+g5fia/I5k7gMlQqKTQnDlwtx1e+aR6sJ7GZG4yOH7TrYDTs++aiWu
532
+ xFtMPdkCgYEA3tR2oaNqQttIdf8+GNFz2VmicnZ4XsQwGkGI4Jp0ExBJFxxl/tRa
533
+ 30/Akp/bJLNDoqTRwP/lbsP/PKVS4Al+OXrG5MWhzdw3Jchnu1YtP0l2qBcLoBNb
534
+ bcK50Hen2W6AP2YgVgJqXYpdOglWjEOytaZcsRDVRDhPIFAty3dRizw=
535
+ -----END RSA PRIVATE KEY-----"
536
+
537
+ {
538
+ bank: :samlink,
539
+ command: :renew_certificate,
540
+ customer_id: '12345678',
541
+ environment: 'test',
542
+ signing_csr: signing_csr,
543
+ own_signing_certificate: own_signing_certificate,
544
+ signing_private_key: signing_private_key,
545
+ }
546
+ end
547
+
548
+ def samlink_generic_params
549
+ own_signing_certificate = "-----BEGIN CERTIFICATE-----
550
+ MIIDwTCCAqmgAwIBAgIEAX1JuTANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJT
551
+ RTEeMBwGA1UEChMVTm9yZGVhIEJhbmsgQUIgKHB1YmwpMR8wHQYDVQQDExZOb3Jk
552
+ ZWEgQ29ycG9yYXRlIENBIDAxMRQwEgYDVQQFEws1MTY0MDYtMDEyMDAeFw0xMzA1
553
+ MDIxMjI2MzRaFw0xNTA1MDIxMjI2MzRaMEQxCzAJBgNVBAYTAkZJMSAwHgYDVQQD
554
+ DBdOb3JkZWEgRGVtbyBDZXJ0aWZpY2F0ZTETMBEGA1UEBRMKNTc4MDg2MDIzODCB
555
+ nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwtFEfAtbJuGzQwwRumZkvYh2BjGY
556
+ VsAMUeiKtOne3bZSeisfCq+TXqL1gI9LofyeAQ9I/sDm6tL80yrD5iaSUqVm6A73
557
+ 9MsmpW/iyZcVf7ms8xAN51ESUgN6akwZCU9pH62ngJDj2gUsktY0fpsoVsARdrvO
558
+ Fk0fTSUXKWd6LbcCAwEAAaOCAR0wggEZMAkGA1UdEwQCMAAwEQYDVR0OBAoECEBw
559
+ 2cj7+XMAMBMGA1UdIAQMMAowCAYGKoVwRwEDMBMGA1UdIwQMMAqACEALddbbzwun
560
+ MDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3Aubm9yZGVh
561
+ LnNlL0NDQTAxMA4GA1UdDwEB/wQEAwIFoDCBhQYDVR0fBH4wfDB6oHigdoZ0bGRh
562
+ cCUzQS8vbGRhcC5uYi5zZS9jbiUzRE5vcmRlYStDb3Jwb3JhdGUrQ0ErMDElMkNv
563
+ JTNETm9yZGVhK0JhbmsrQUIrJTI4cHVibCUyOSUyQ2MlM0RTRSUzRmNlcnRpZmlj
564
+ YXRlcmV2b2NhdGlvbmxpc3QwDQYJKoZIhvcNAQEFBQADggEBACLUPB1Gmq6286/s
565
+ ROADo7N+w3eViGJ2fuOTLMy4R0UHOznKZNsuk4zAbS2KycbZsE5py4L8o+IYoaS8
566
+ 8YHtEeckr2oqHnPpz/0Eg7wItj8Ad+AFWJqzbn6Hu/LQhlnl5JEzXzl3eZj9oiiJ
567
+ 1q/2CGXvFomY7S4tgpWRmYULtCK6jode0NhgNnAgOI9uy76pSS16aDoiQWUJqQgV
568
+ ydowAnqS9h9aQ6gedwbOdtkWmwKMDVXU6aRz9Gvk+JeYJhtpuP3OPNGbbC5L7NVd
569
+ no+B6AtwxmG3ozd+mPcMeVuz6kKLAmQyIiBSrRNa5OrTkq/CUzxO9WUgTnm/Sri7
570
+ zReR6mU=
571
+ -----END CERTIFICATE-----"
572
+ signing_private_key = "-----BEGIN PRIVATE KEY-----
573
+ MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMLRRHwLWybhs0MM
574
+ EbpmZL2IdgYxmFbADFHoirTp3t22UnorHwqvk16i9YCPS6H8ngEPSP7A5urS/NMq
575
+ w+YmklKlZugO9/TLJqVv4smXFX+5rPMQDedRElIDempMGQlPaR+tp4CQ49oFLJLW
576
+ NH6bKFbAEXa7zhZNH00lFylnei23AgMBAAECgYEAqt912/7x4jaQTrxlSELLFVp9
577
+ eo1BesVTiPwXvPpsGbbyvGjZ/ztkXNs9zZbh1aCGzZMkiR2U7F5GlsiprlIif4cF
578
+ 6Xz7rCjaAs7iDRt9PjhjVuqNGR2I+VIIlbQ9XWFJ3lJFW3v7TIZ8JbLnn0XOFz+Z
579
+ BBSSGTK1zTNh4TBQtjECQQDe5M3uu9m4RwSw9R6GaDw/IFQZgr0oWSv0WIjRwvwW
580
+ nFnSX2lbkNAjulP0daGsmn7vxIpqZxPxwcrU4wFqTF5dAkEA38DnbCm3YfogzwLH
581
+ Nre2hBmGqjWarhtxqtRarrkgnmOd8W0Z1Hb1dSHrliUSVSrINbK5ZdEV15Rpu7VD
582
+ OePzIwJAPMslS+8alANyyR0iJUC65fDYX1jkZOPldDDNqIDJJxWf/hwd7WaTDpuc
583
+ mHmZDi3ZX2Y45oqUywSzYNtFoIuR1QJAZYUZuyqmSK77SdGB36K1DfSi9AFEQDC1
584
+ fwPAbTwTv6mFFPAiYxLiRZXxVPtW+QtjMXH4ymh2V4y/+GnCqbZyLwJBAJQSDAME
585
+ Sn4Uz7Zjk3UrBIbMYEv0u2mcCypwsb0nGE5/gzDPjGE9cxWW+rXARIs+sNQVClnh
586
+ 45nhdfYxOjgYff0=
587
+ -----END PRIVATE KEY-----"
588
+
589
+ {
590
+ bank: :samlink,
591
+ command: :download_file,
592
+ content: encode('kissa'),
593
+ customer_id: '1111111111',
594
+ environment: 'production',
595
+ file_reference: '11111111A12006030329501800000014',
596
+ file_type: 'TO',
597
+ own_signing_certificate: own_signing_certificate,
598
+ signing_private_key: signing_private_key,
599
+ target_id: '11111111A1',
600
+ }
601
+ end
@@ -3,6 +3,6 @@ require 'test_helper'
3
3
  class TestSepa < ActiveSupport::TestCase
4
4
  test 'version is defined correctly' do
5
5
  refute_nil Sepa::VERSION
6
- assert_equal '1.1.8', Sepa::VERSION
6
+ assert_equal '1.1.9', Sepa::VERSION
7
7
  end
8
8
  end
data/test/test_helper.rb CHANGED
@@ -6,7 +6,7 @@ Dotenv.load
6
6
  if ENV['CODECLIMATE_REPO_TOKEN']
7
7
  SimpleCov.formatters = [
8
8
  SimpleCov::Formatter::HTMLFormatter,
9
- CodeClimate::TestReporter::Formatter
9
+ CodeClimate::TestReporter::Formatter,
10
10
  ]
11
11
  else
12
12
  SimpleCov.formatter = SimpleCov::Formatter::HTMLFormatter
@@ -26,24 +26,25 @@ include Sepa::Utilities
26
26
  ActiveSupport::TestCase.test_order = :random
27
27
 
28
28
  # Test responses
29
- NORDEA_TEST_RESPONSE_PATH = "#{ROOT_PATH}/test/sepa/banks/nordea/responses"
30
- DANSKE_TEST_RESPONSE_PATH = "#{ROOT_PATH}/test/sepa/banks/danske/responses/"
29
+ DANSKE_TEST_RESPONSE_PATH = "#{ROOT_PATH}/test/sepa/banks/danske/responses/".freeze
30
+ NORDEA_TEST_RESPONSE_PATH = "#{ROOT_PATH}/test/sepa/banks/nordea/responses".freeze
31
+ SAMLINK_TEST_RESPONSE_PATH = "#{ROOT_PATH}/test/sepa/banks/samlink/responses/".freeze
31
32
 
32
33
  # Danske Test keys
33
- DANSKE_TEST_KEYS_PATH = "#{ROOT_PATH}/test/sepa/banks/danske/keys/"
34
+ DANSKE_TEST_KEYS_PATH = "#{ROOT_PATH}/test/sepa/banks/danske/keys/".freeze
34
35
  DANSKE_BANK_SIGNING_CERT = File.read "#{DANSKE_TEST_KEYS_PATH}bank_signing_cert.pem"
35
36
  DANSKE_BANK_ENCRYPTION_CERT = File.read "#{DANSKE_TEST_KEYS_PATH}bank_encryption_cert.pem"
36
37
  DANSKE_BANK_ROOT_CERT = File.read "#{DANSKE_TEST_KEYS_PATH}bank_root_cert.pem"
37
38
  DANSKE_OWN_ENCRYPTION_CERT = File.read "#{DANSKE_TEST_KEYS_PATH}own_enc_cert.pem"
38
39
 
39
40
  # Nordea test keys
40
- NORDEA_TEST_KEYS_PATH = "#{ROOT_PATH}/test/sepa/banks/nordea/keys/"
41
+ NORDEA_TEST_KEYS_PATH = "#{ROOT_PATH}/test/sepa/banks/nordea/keys/".freeze
41
42
  NORDEA_SIGNING_CERTIFICATE = File.read "#{NORDEA_TEST_KEYS_PATH}nordea.crt"
42
43
 
43
44
  I18n.enforce_available_locales = true
44
45
 
45
46
  # Create an observer to fake sending requests to bank
46
- observer = Class.new {
47
+ observer = Class.new do
47
48
  def notify(operation_name, builder, globals, locals)
48
49
  @operation_name = operation_name
49
50
  @builder = builder
@@ -51,6 +52,6 @@ observer = Class.new {
51
52
  @locals = locals
52
53
  HTTPI::Response.new(200, { "Reponse is actually" => "the request, w0000t" }, locals[:xml])
53
54
  end
54
- }.new
55
+ end.new
55
56
 
56
57
  Savon.observers << observer
@@ -1,9 +1,9 @@
1
- NORDEA_CSR = ''
2
- NORDEA_CERT = ''
3
- NORDEA_PRIVATE_KEY = ''
4
- DANSKE_BANK_ENC_CERT = ''
5
- DANSKE_SIGNING_CERT_REQUEST = ''
6
- DANSKE_ENC_CERT_REQUEST = ''
7
- OP_CSR = ''
8
- OP_PRIVATE_KEY = ''
9
- OP_CERT = ''
1
+ NORDEA_CSR = ''.freeze
2
+ NORDEA_CERT = ''.freeze
3
+ NORDEA_PRIVATE_KEY = ''.freeze
4
+ DANSKE_BANK_ENC_CERT = ''.freeze
5
+ DANSKE_SIGNING_CERT_REQUEST = ''.freeze
6
+ DANSKE_ENC_CERT_REQUEST = ''.freeze
7
+ OP_CSR = ''.freeze
8
+ OP_PRIVATE_KEY = ''.freeze
9
+ OP_CERT = ''.freeze
@@ -1,4 +1,4 @@
1
- PAYLOAD = "#{ROOT_PATH}/test_client/data/payload.xml"
1
+ PAYLOAD = "#{ROOT_PATH}/test_client/data/payload.xml".freeze
2
2
 
3
3
  NORDEA_GET_CERTIFICATE_PARAMS = {
4
4
  pin: '1234567890',
@@ -6,9 +6,8 @@ NORDEA_GET_CERTIFICATE_PARAMS = {
6
6
  command: :get_certificate,
7
7
  customer_id: '11111111',
8
8
  environment: 'test',
9
- signing_csr: NORDEA_CSR
10
- }
11
-
9
+ signing_csr: NORDEA_CSR,
10
+ }.freeze
12
11
 
13
12
  NORDEA_UPLOAD_FILE_PARAMS = {
14
13
  bank: :nordea,
@@ -19,7 +18,7 @@ NORDEA_UPLOAD_FILE_PARAMS = {
19
18
  target_id: '11111111A1',
20
19
  file_type: 'NDCORPAYS',
21
20
  content: PAYLOAD,
22
- }
21
+ }.freeze
23
22
 
24
23
  NORDEA_DOWNLOAD_FILE_PARAMS = {
25
24
  bank: :nordea,
@@ -30,8 +29,8 @@ NORDEA_DOWNLOAD_FILE_PARAMS = {
30
29
  file_type: 'TITO',
31
30
  file_reference: "11111111A12006030319503000000010",
32
31
  target_id: '11111111A1',
33
- status: 'NEW'
34
- }
32
+ status: 'NEW',
33
+ }.freeze
35
34
 
36
35
  NORDEA_DOWNLOAD_FILE_LIST_PARAMS = {
37
36
  bank: :nordea,
@@ -41,8 +40,8 @@ NORDEA_DOWNLOAD_FILE_LIST_PARAMS = {
41
40
  customer_id: '11111111',
42
41
  target_id: '11111111A1',
43
42
  status: 'NEW',
44
- file_type: 'NDCORPAYL'
45
- }
43
+ file_type: 'NDCORPAYL',
44
+ }.freeze
46
45
 
47
46
  NORDEA_GET_USER_INFO_PARAMS = {
48
47
  bank: :nordea,
@@ -50,15 +49,15 @@ NORDEA_GET_USER_INFO_PARAMS = {
50
49
  own_signing_certificate: NORDEA_CERT,
51
50
  signing_private_key: NORDEA_PRIVATE_KEY,
52
51
  customer_id: '11111111',
53
- environment: 'TEST'
54
- }
52
+ environment: 'TEST',
53
+ }.freeze
55
54
 
56
55
  DANSKE_GET_BANK_CERT_PARAMS = {
57
56
  environment: 'test',
58
57
  bank: :danske,
59
58
  command: :get_bank_certificate,
60
59
  customer_id: '',
61
- }
60
+ }.freeze
62
61
 
63
62
  DANSKE_CREATE_CERT_PARAMS = {
64
63
  bank: :danske,
@@ -68,15 +67,15 @@ DANSKE_CREATE_CERT_PARAMS = {
68
67
  environment: 'test',
69
68
  encryption_csr: DANSKE_ENC_CERT_REQUEST,
70
69
  signing_csr: DANSKE_SIGNING_CERT_REQUEST,
71
- pin: '1234'
72
- }
70
+ pin: '1234',
71
+ }.freeze
73
72
 
74
73
  OP_GET_SERVICE_CERTIFICATES_PARAMS = {
75
74
  bank: :op,
76
75
  command: :get_service_certificates,
77
76
  customer_id: '',
78
77
  environment: 'test',
79
- }
78
+ }.freeze
80
79
 
81
80
  OP_UPLOAD_FILE_PARAMS = {
82
81
  bank: :op,
@@ -87,7 +86,7 @@ OP_UPLOAD_FILE_PARAMS = {
87
86
  file_type: 'pain.001.001.02',
88
87
  own_signing_certificate: OP_CERT,
89
88
  signing_private_key: OP_PRIVATE_KEY,
90
- }
89
+ }.freeze
91
90
 
92
91
  OP_DOWNLOAD_FILE_PARAMS = {
93
92
  bank: :op,
@@ -97,7 +96,7 @@ OP_DOWNLOAD_FILE_PARAMS = {
97
96
  file_reference: '',
98
97
  own_signing_certificate: OP_CERT,
99
98
  signing_private_key: OP_PRIVATE_KEY,
100
- }
99
+ }.freeze
101
100
 
102
101
  OP_DOWNLOAD_FILE_LIST_PARAMS = {
103
102
  bank: :op,
@@ -106,5 +105,5 @@ OP_DOWNLOAD_FILE_LIST_PARAMS = {
106
105
  environment: 'test',
107
106
  own_signing_certificate: OP_CERT,
108
107
  signing_private_key: OP_PRIVATE_KEY,
109
- file_type: 'pain.002.001.02'
110
- }
108
+ file_type: 'pain.002.001.02',
109
+ }.freeze
@@ -1,3 +1,4 @@
1
+ # Client for testing the gem against banks' test environments
1
2
  module Testing
2
3
  require "base64"
3
4
  require "sepafm"
@@ -12,6 +13,9 @@ module Testing
12
13
  :op_download_file,
13
14
  :op_download_file_list,
14
15
  :op_upload_file,
16
+ :samlink_download_file_list,
17
+ :samlink_upload_file,
18
+ :samlink_download_file,
15
19
  ].each_with_object({}) do |i, a|
16
20
  a[i] = Sepa::Client.new("#{i.to_s.upcase}_PARAMS".constantize)
17
21
  end
@@ -24,6 +28,8 @@ module Testing
24
28
  :nordea_renew_certificate,
25
29
  :op_get_certificate,
26
30
  :op_get_service_certificates,
31
+ :samlink_get_certificate,
32
+ :samlink_renew_certificate,
27
33
  ].each_with_object({}) do |i, a|
28
34
  a[i] = Sepa::Client.new("#{i.to_s.upcase}_PARAMS".constantize)
29
35
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sepafm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.8
4
+ version: 1.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joni Kanerva
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-09-23 00:00:00.000000000 Z
13
+ date: 2016-10-19 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activemodel
@@ -60,14 +60,14 @@ dependencies:
60
60
  requirements:
61
61
  - - "~>"
62
62
  - !ruby/object:Gem::Version
63
- version: '1.12'
63
+ version: '1.13'
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - "~>"
69
69
  - !ruby/object:Gem::Version
70
- version: '1.12'
70
+ version: '1.13'
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: codeclimate-test-reporter
73
73
  requirement: !ruby/object:Gem::Requirement
@@ -160,9 +160,13 @@ files:
160
160
  - lib/sepa/banks/nordea/soap_nordea.rb
161
161
  - lib/sepa/banks/op/op_response.rb
162
162
  - lib/sepa/banks/op/soap_op.rb
163
+ - lib/sepa/banks/samlink/samlink_response.rb
164
+ - lib/sepa/banks/samlink/soap_samlink.rb
163
165
  - lib/sepa/certificates/danske_root_certificate.pem
164
166
  - lib/sepa/certificates/nordea_root_certificate.pem
165
167
  - lib/sepa/certificates/op_root_certificate.pem
168
+ - lib/sepa/certificates/samlink_certificate.pem
169
+ - lib/sepa/certificates/samlink_root_certificate.pem
166
170
  - lib/sepa/client.rb
167
171
  - lib/sepa/error_messages.rb
168
172
  - lib/sepa/response.rb
@@ -177,6 +181,10 @@ files:
177
181
  - lib/sepa/wsdl/wsdl_op_cert_test.xml
178
182
  - lib/sepa/wsdl/wsdl_op_production.xml
179
183
  - lib/sepa/wsdl/wsdl_op_test.xml
184
+ - lib/sepa/wsdl/wsdl_samlink_cert_production.xml
185
+ - lib/sepa/wsdl/wsdl_samlink_cert_test.xml
186
+ - lib/sepa/wsdl/wsdl_samlink_production.xml
187
+ - lib/sepa/wsdl/wsdl_samlink_test.xml
180
188
  - lib/sepa/xml_schemas/PKIFactory.xsd
181
189
  - lib/sepa/xml_schemas/application_request.xsd
182
190
  - lib/sepa/xml_schemas/application_response.xsd
@@ -189,6 +197,8 @@ files:
189
197
  - lib/sepa/xml_schemas/op/CertApplicationRequest_200812.xsd
190
198
  - lib/sepa/xml_schemas/op/CertApplicationResponse_200812.xsd
191
199
  - lib/sepa/xml_schemas/pain.001.001.02.xsd
200
+ - lib/sepa/xml_schemas/samlink/CertApplicationRequest.xsd
201
+ - lib/sepa/xml_schemas/samlink/CertApplicationResponse.xsd
192
202
  - lib/sepa/xml_schemas/soap.xsd
193
203
  - lib/sepa/xml_schemas/wsdl.xml
194
204
  - lib/sepa/xml_schemas/xml.xsd
@@ -205,6 +215,8 @@ files:
205
215
  - lib/sepa/xml_templates/application_request/nordea/renew_certificate.xml
206
216
  - lib/sepa/xml_templates/application_request/op/get_certificate.xml
207
217
  - lib/sepa/xml_templates/application_request/op/get_service_certificates.xml
218
+ - lib/sepa/xml_templates/application_request/samlink/get_certificate.xml
219
+ - lib/sepa/xml_templates/application_request/samlink/renew_certificate.xml
208
220
  - lib/sepa/xml_templates/application_request/upload_file.xml
209
221
  - lib/sepa/xml_templates/soap/danske/create_certificate.xml
210
222
  - lib/sepa/xml_templates/soap/danske/get_bank_certificate.xml
@@ -217,6 +229,8 @@ files:
217
229
  - lib/sepa/xml_templates/soap/nordea/renew_certificate.xml
218
230
  - lib/sepa/xml_templates/soap/op/get_certificate.xml
219
231
  - lib/sepa/xml_templates/soap/op/get_service_certificates.xml
232
+ - lib/sepa/xml_templates/soap/samlink/get_certificate.xml
233
+ - lib/sepa/xml_templates/soap/samlink/renew_certificate.xml
220
234
  - lib/sepa/xml_templates/soap/upload_file.xml
221
235
  - lib/sepafm.rb
222
236
  - readme.md
@@ -238,6 +252,7 @@ files:
238
252
  - test/sepa/banks/danske/keys/own_signing_cert.pem
239
253
  - test/sepa/banks/danske/keys/signing_key.pem
240
254
  - test/sepa/banks/danske/responses/create_cert.xml
255
+ - test/sepa/banks/danske/responses/create_cert_corrupted.xml
241
256
  - test/sepa/banks/danske/responses/download_file_list.xml
242
257
  - test/sepa/banks/danske/responses/get_bank_cert.xml
243
258
  - test/sepa/banks/danske/responses/get_bank_certificate_not_ok.xml
@@ -268,6 +283,16 @@ files:
268
283
  - test/sepa/banks/op/op_cert_request_soap_builder_test.rb
269
284
  - test/sepa/banks/op/op_generic_soap_builder_test.rb
270
285
  - test/sepa/banks/op/op_response_test.rb
286
+ - test/sepa/banks/samlink/responses/dfl.xml
287
+ - test/sepa/banks/samlink/responses/gc_error_30.xml
288
+ - test/sepa/banks/samlink/responses/rc.xml
289
+ - test/sepa/banks/samlink/samlink_application_request_test.rb
290
+ - test/sepa/banks/samlink/samlink_cert_application_request_test.rb
291
+ - test/sepa/banks/samlink/samlink_cert_request_soap_builder_test.rb
292
+ - test/sepa/banks/samlink/samlink_generic_soap_builder_test.rb
293
+ - test/sepa/banks/samlink/samlink_renew_cert_application_request_test.rb
294
+ - test/sepa/banks/samlink/samlink_renew_cert_request_soap_builder_test.rb
295
+ - test/sepa/banks/samlink/samlink_response_test.rb
271
296
  - test/sepa/client_test.rb
272
297
  - test/sepa/fixtures.rb
273
298
  - test/sepa/sepa_test.rb
@@ -296,7 +321,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
296
321
  version: '0'
297
322
  requirements: []
298
323
  rubyforge_project:
299
- rubygems_version: 2.6.6
324
+ rubygems_version: 2.6.7
300
325
  signing_key:
301
326
  specification_version: 4
302
327
  summary: SEPA Financial Messages
@@ -318,6 +343,7 @@ test_files:
318
343
  - test/sepa/banks/danske/keys/own_signing_cert.pem
319
344
  - test/sepa/banks/danske/keys/signing_key.pem
320
345
  - test/sepa/banks/danske/responses/create_cert.xml
346
+ - test/sepa/banks/danske/responses/create_cert_corrupted.xml
321
347
  - test/sepa/banks/danske/responses/download_file_list.xml
322
348
  - test/sepa/banks/danske/responses/get_bank_cert.xml
323
349
  - test/sepa/banks/danske/responses/get_bank_certificate_not_ok.xml
@@ -348,6 +374,16 @@ test_files:
348
374
  - test/sepa/banks/op/op_cert_request_soap_builder_test.rb
349
375
  - test/sepa/banks/op/op_generic_soap_builder_test.rb
350
376
  - test/sepa/banks/op/op_response_test.rb
377
+ - test/sepa/banks/samlink/responses/dfl.xml
378
+ - test/sepa/banks/samlink/responses/gc_error_30.xml
379
+ - test/sepa/banks/samlink/responses/rc.xml
380
+ - test/sepa/banks/samlink/samlink_application_request_test.rb
381
+ - test/sepa/banks/samlink/samlink_cert_application_request_test.rb
382
+ - test/sepa/banks/samlink/samlink_cert_request_soap_builder_test.rb
383
+ - test/sepa/banks/samlink/samlink_generic_soap_builder_test.rb
384
+ - test/sepa/banks/samlink/samlink_renew_cert_application_request_test.rb
385
+ - test/sepa/banks/samlink/samlink_renew_cert_request_soap_builder_test.rb
386
+ - test/sepa/banks/samlink/samlink_response_test.rb
351
387
  - test/sepa/client_test.rb
352
388
  - test/sepa/fixtures.rb
353
389
  - test/sepa/sepa_test.rb