ipizza 0.7.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +3 -1
  3. data/CHANGELOG.md +9 -0
  4. data/Gemfile +1 -1
  5. data/Gemfile.lock +28 -24
  6. data/Guardfile +2 -2
  7. data/README.markdown +15 -7
  8. data/Rakefile +1 -1
  9. data/ipizza.gemspec +12 -11
  10. data/lib/ipizza/authentication.rb +15 -0
  11. data/lib/ipizza/authentication_request.rb +1 -1
  12. data/lib/ipizza/authentication_response.rb +22 -9
  13. data/lib/ipizza/config.rb +13 -13
  14. data/lib/ipizza/payment.rb +4 -4
  15. data/lib/ipizza/payment_request.rb +1 -1
  16. data/lib/ipizza/payment_response.rb +15 -7
  17. data/lib/ipizza/provider/base.rb +90 -0
  18. data/lib/ipizza/provider/krediidipank.rb +1 -47
  19. data/lib/ipizza/provider/lhv.rb +4 -0
  20. data/lib/ipizza/provider/luminor.rb +4 -0
  21. data/lib/ipizza/provider/nordea/authentication_request.rb +2 -2
  22. data/lib/ipizza/provider/nordea/authentication_response.rb +7 -3
  23. data/lib/ipizza/provider/nordea/payment_request.rb +2 -2
  24. data/lib/ipizza/provider/nordea/payment_response.rb +4 -4
  25. data/lib/ipizza/provider/nordea.rb +1 -74
  26. data/lib/ipizza/provider/sampo.rb +1 -46
  27. data/lib/ipizza/provider/seb.rb +1 -78
  28. data/lib/ipizza/provider/swedbank.rb +1 -66
  29. data/lib/ipizza/provider.rb +9 -15
  30. data/lib/ipizza/request.rb +9 -2
  31. data/lib/ipizza/response.rb +7 -9
  32. data/lib/ipizza/util.rb +18 -11
  33. data/lib/ipizza/version.rb +2 -2
  34. data/lib/ipizza.rb +4 -0
  35. data/spec/certificates/pangalink_danske_bank_cert.pem +22 -0
  36. data/spec/certificates/pangalink_danske_bank_key.pem +27 -0
  37. data/spec/certificates/pangalink_danske_user_key.pem +27 -0
  38. data/spec/certificates/pangalink_krediidipank_bank_cert.pem +22 -0
  39. data/spec/certificates/pangalink_krediidipank_bank_key.pem +27 -0
  40. data/spec/certificates/pangalink_krediidipank_user_key.pem +27 -0
  41. data/spec/certificates/pangalink_lhv_bank_cert.pem +22 -0
  42. data/spec/certificates/pangalink_lhv_bank_key.pem +27 -0
  43. data/spec/certificates/pangalink_lhv_user_key.pem +27 -0
  44. data/spec/certificates/pangalink_luminor_bank.cert.pem +18 -0
  45. data/spec/certificates/pangalink_luminor_bank_cert.pem +17 -0
  46. data/spec/certificates/pangalink_seb_bank_cert.pem +16 -0
  47. data/spec/certificates/pangalink_seb_bank_key.pem +15 -0
  48. data/spec/certificates/pangalink_seb_user_key.pem +15 -0
  49. data/spec/certificates/pangalink_swedbank_bank_cert.pem +22 -0
  50. data/spec/certificates/pangalink_swedbank_bank_key.pem +27 -0
  51. data/spec/certificates/pangalink_swedbank_user_key.pem +27 -0
  52. data/spec/config/config.yml +50 -6
  53. data/spec/config/plain_config.yml +3 -3
  54. data/spec/ipizza/authentication_response_spec.rb +11 -9
  55. data/spec/ipizza/config_spec.rb +9 -10
  56. data/spec/ipizza/provider/krediidipank_spec.rb +89 -0
  57. data/spec/ipizza/provider/lhv_spec.rb +89 -0
  58. data/spec/ipizza/provider/luminor_spec.rb +89 -0
  59. data/spec/ipizza/provider/nordea/authentication_response_spec.rb +3 -3
  60. data/spec/ipizza/provider/sampo_spec.rb +85 -0
  61. data/spec/ipizza/provider/seb_spec.rb +60 -30
  62. data/spec/ipizza/provider/swedbank_spec.rb +63 -34
  63. data/spec/ipizza/provider_spec.rb +25 -5
  64. data/spec/ipizza/util_spec.rb +5 -1
  65. data/spec/spec_helper.rb +1 -1
  66. data/spec/support/pizza.rb +1 -1
  67. metadata +121 -104
  68. data/spec/certificates/bank.crt +0 -21
  69. data/spec/certificates/bank.csr +0 -17
  70. data/spec/certificates/bank.key +0 -27
  71. data/spec/certificates/bank.pub +0 -1
  72. data/spec/certificates/dealer.key +0 -30
  73. data/spec/certificates/dealer.pub +0 -1
  74. data/spec/certificates/seb_test_priv.pem +0 -16
  75. data/spec/certificates/seb_test_pub.crt +0 -20
  76. data/spec/certificates/seb_test_pub.pem +0 -20
  77. data/spec/certificates/swedbank_production.pem +0 -48
@@ -4,7 +4,14 @@ module Ipizza
4
4
  attr_accessor :extra_params
5
5
  attr_accessor :sign_params
6
6
  attr_accessor :service_url
7
-
7
+
8
+ PARAM_ORDER = {
9
+ '1011' => %w(VK_SERVICE VK_VERSION VK_SND_ID VK_STAMP VK_AMOUNT VK_CURR VK_ACC VK_NAME VK_REF VK_MSG VK_RETURN VK_CANCEL VK_DATETIME),
10
+ '1012' => %w(VK_SERVICE VK_VERSION VK_SND_ID VK_STAMP VK_AMOUNT VK_CURR VK_REF VK_MSG VK_RETURN VK_CANCEL VK_DATETIME),
11
+ '4011' => %w(VK_SERVICE VK_VERSION VK_SND_ID VK_REPLY VK_RETURN VK_DATETIME VK_RID),
12
+ '4012' => %w(VK_SERVICE VK_VERSION VK_SND_ID VK_REC_ID VK_NONCE VK_RETURN VK_DATETIME VK_RID)
13
+ }
14
+
8
15
  def sign(privkey_path, privkey_secret, order, mac_param = 'VK_MAC')
9
16
  signature = Ipizza::Util.sign(privkey_path, privkey_secret, Ipizza::Util.mac_data_string(sign_params, order))
10
17
  self.sign_params[mac_param] = signature
@@ -14,4 +21,4 @@ module Ipizza
14
21
  sign_params.merge(extra_params)
15
22
  end
16
23
  end
17
- end
24
+ end
@@ -3,21 +3,19 @@ class Ipizza::Response
3
3
  attr_accessor :verify_params
4
4
  attr_accessor :verify_params_order
5
5
 
6
- @@response_param_order = {
7
- '1101' => ['VK_SERVICE', 'VK_VERSION', 'VK_SND_ID', 'VK_REC_ID', 'VK_STAMP', 'VK_T_NO', 'VK_AMOUNT', 'VK_CURR', 'VK_REC_ACC', 'VK_REC_NAME', 'VK_SND_ACC', 'VK_SND_NAME', 'VK_REF', 'VK_MSG', 'VK_T_DATE'],
8
- '3002' => ['VK_SERVICE', 'VK_VERSION', 'VK_USER', 'VK_DATE', 'VK_TIME', 'VK_SND_ID', 'VK_INFO'],
9
- '1901' => ['VK_SERVICE', 'VK_VERSION', 'VK_SND_ID', 'VK_REC_ID', 'VK_STAMP', 'VK_REF', 'VK_MSG'],
10
- '1902' => ['VK_SERVICE', 'VK_VERSION', 'VK_SND_ID', 'VK_REC_ID', 'VK_STAMP', 'VK_REF', 'VK_MSG', 'VK_ERROR_CODE']
6
+ PARAM_ORDER = {
7
+ '1111' => %w(VK_SERVICE VK_VERSION VK_SND_ID VK_REC_ID VK_STAMP VK_T_NO VK_AMOUNT VK_CURR VK_REC_ACC VK_REC_NAME VK_SND_ACC VK_SND_NAME VK_REF VK_MSG VK_T_DATETIME),
8
+ '3012' => %w(VK_SERVICE VK_VERSION VK_USER VK_DATETIME VK_SND_ID VK_REC_ID VK_USER_NAME VK_USER_ID VK_COUNTRY VK_OTHER VK_TOKEN VK_RID),
9
+ '3013' => %w(VK_SERVICE VK_VERSION VK_DATETIME VK_SND_ID VK_REC_ID VK_NONCE VK_USER_NAME VK_USER_ID VK_COUNTRY VK_OTHER VK_TOKEN VK_RID),
10
+ '1911' => %w(VK_SERVICE VK_VERSION VK_SND_ID VK_REC_ID VK_STAMP VK_REF VK_MSG)
11
11
  }
12
12
 
13
13
  def initialize(params)
14
14
  @params = params
15
15
  end
16
16
 
17
- def verify(certificate_path, charset = 'UTF-8')
18
- param_order = @@response_param_order[@params['VK_SERVICE']]
19
- verify_params = param_order.inject(Hash.new) { |h, p| h[p] = @params[p]; h }
20
- mac_string = Ipizza::Util.mac_data_string(verify_params, param_order)
17
+ def verify(certificate_path)
18
+ mac_string = Ipizza::Util.mac_data_string(@params, PARAM_ORDER[@params['VK_SERVICE']])
21
19
 
22
20
  @valid = Ipizza::Util.verify_signature(certificate_path, @params['VK_MAC'], mac_string)
23
21
  end
data/lib/ipizza/util.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require 'base64'
2
- require 'iconv'
3
2
  require 'openssl'
4
3
 
5
4
  module Ipizza
@@ -8,8 +7,12 @@ module Ipizza
8
7
  class << self
9
8
 
10
9
  def verify_signature(certificate_path, signature, data)
11
- certificate = OpenSSL::X509::Certificate.new(File.read(certificate_path).gsub(/ /, '')).public_key
12
- @valid = certificate.verify(OpenSSL::Digest::SHA1.new, Base64.decode64(signature), data)
10
+ if !certificate_path.to_s.empty? && !signature.to_s.empty? && File.file?(certificate_path)
11
+ certificate = OpenSSL::X509::Certificate.new(File.read(certificate_path).gsub(/ /, '')).public_key
12
+ certificate.verify(OpenSSL::Digest::SHA1.new, Base64.decode64(signature), data)
13
+ else
14
+ false
15
+ end
13
16
  end
14
17
 
15
18
  def sign(privkey_path, privkey_secret, data)
@@ -46,25 +49,29 @@ module Ipizza
46
49
  #
47
50
  # p(x1)||x1||p(x2)||x2||...||p(xn)||xn
48
51
  #
49
- # Where || is string concatenation, p(x) is length of the field x represented by three digits.
52
+ # Where || is string concatenation, p(x) is length of the (stripped) field x represented by three digits.
50
53
  #
51
54
  # Parameters val1, val2, value3 would be turned into "003val1003val2006value3".
52
55
  def mac_data_string(params, sign_param_order)
53
- sign_param_order.inject('') do |memo, param|
54
- val = params[param].to_s
56
+ (sign_param_order || []).inject('') do |memo, param|
57
+ val = params[param].to_s.strip
55
58
  memo << func_p(val) << val
56
59
  memo
57
60
  end
58
61
  end
59
62
 
63
+ def time_to_iso8601(time)
64
+ time.strftime('%Y-%m-%dT%H:%M:%S%z')
65
+ end
66
+
60
67
  private
61
68
 
62
- # p(x) is length of the field x represented by three digits
69
+ # p(x) is length of the field x represented by three digits. When request encoding is in UTF-8 then characters count is calculated otherwise characters byte size is used.
63
70
  def func_p(val)
64
- if RUBY_VERSION < '1.9'
65
- sprintf("%03i", val.size)
66
- else
67
- sprintf("%03i", val.bytesize)
71
+ if RUBY_VERSION < '1.9' || val.encoding.name == 'UTF-8'
72
+ sprintf('%03i', val.size)
73
+ else
74
+ sprintf('%03i', val.bytesize)
68
75
  end
69
76
  end
70
77
  end
@@ -1,3 +1,3 @@
1
1
  module Ipizza
2
- VERSION = '0.7.1'
3
- end
2
+ VERSION = '2.1.0'
3
+ end
data/lib/ipizza.rb CHANGED
@@ -5,11 +5,15 @@ require 'ipizza/request'
5
5
  require 'ipizza/response'
6
6
  require 'ipizza/payment_request'
7
7
  require 'ipizza/payment_response'
8
+ require 'ipizza/authentication'
8
9
  require 'ipizza/authentication_request'
9
10
  require 'ipizza/authentication_response'
10
11
  require 'ipizza/provider'
12
+ require 'ipizza/provider/base'
13
+ require 'ipizza/provider/lhv'
11
14
  require 'ipizza/provider/swedbank'
12
15
  require 'ipizza/provider/seb'
13
16
  require 'ipizza/provider/sampo'
14
17
  require 'ipizza/provider/krediidipank'
15
18
  require 'ipizza/provider/nordea'
19
+ require 'ipizza/provider/luminor'
@@ -0,0 +1,22 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDnjCCAoYCCQClrBEsOVn1vzANBgkqhkiG9w0BAQUFADCBkDELMAkGA1UEBhMC
3
+ RUUxETAPBgNVBAgMCEhhcmp1bWFhMRAwDgYDVQQHDAdUYWxsaW5uMREwDwYDVQQK
4
+ DAhFZGljeSBPVTERMA8GA1UECwwIYmFua2xpbmsxFjAUBgNVBAMMDXBhbmdhbGlu
5
+ ay5uZXQxHjAcBgkqhkiG9w0BCQEWD3RhbmVsQGVkaWN5LmNvbTAeFw0xNTAyMDIx
6
+ MDI3NTBaFw0zNTAxMjgxMDI3NTBaMIGQMQswCQYDVQQGEwJFRTERMA8GA1UECAwI
7
+ SGFyanVtYWExEDAOBgNVBAcMB1RhbGxpbm4xETAPBgNVBAoMCEVkaWN5IE9VMREw
8
+ DwYDVQQLDAhiYW5rbGluazEWMBQGA1UEAwwNcGFuZ2FsaW5rLm5ldDEeMBwGCSqG
9
+ SIb3DQEJARYPdGFuZWxAZWRpY3kuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
10
+ MIIBCgKCAQEAuxA7bXTG7uOub63Z/BHMNnD5QtMgEZLBsiARrdHaLCq0zmuk3lF8
11
+ 0jkihPrmuuNGKDBirsfxIX2cLpPgxChNb+F2NaOKc09eb4kb+Kgb6rXsHUCnhzHY
12
+ 4A1/YJ7r542aEGN/zdE2vj2Ci/H3ylOhGjmKaclSao3Je8tmiWgftEBO5ogWrHl6
13
+ Hdn4WoOuytog2NoPsI+EdzjEqRs0s9DO4n6RwSKNa0GrRjySWe2HZ977Mm8+3yc0
14
+ jZGsIHLHsqG+oMiFxpZ5PHovT/ZOEUp6uMB9N3MIUT0u1oSCduPYKWtRbky0MyUL
15
+ cx4mhBXzKaCmoQzZu3w952oyYqjIk4YquwIDAQABMA0GCSqGSIb3DQEBBQUAA4IB
16
+ AQCaoWTP6l6JVIiyLka5KHygz1Y5ICxa1XRz0tkSpfOpTRE9oxmJ/lnynOuJ21xA
17
+ cunc2ObLOX5FAQrt2STUtl7NNQ4GRRA5Y7+PUaqFr8r4SfB5B6/ZQoiBfE9h2dHm
18
+ DI5QlpaR2Z2MgiRCb4H4avBBKpXU6hvy5v6DBNV7w13KvRhz9whhcjANvterdyMp
19
+ gR24mgsTvbb9oE/s7AqjlJfAu+LPUPNRKDA/N/ZYeYUxLvRVJUdW5/3CZ6dXniH/
20
+ FpdVJmOX9l9mq7vHchLdGbRnLzUK1TFDZA1g8ubei0hEVHQJxhLx3IWVvGHF1tXB
21
+ 6m9i9JQpHu9zLWhzmWQWVLFe
22
+ -----END CERTIFICATE-----
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEpAIBAAKCAQEAuxA7bXTG7uOub63Z/BHMNnD5QtMgEZLBsiARrdHaLCq0zmuk
3
+ 3lF80jkihPrmuuNGKDBirsfxIX2cLpPgxChNb+F2NaOKc09eb4kb+Kgb6rXsHUCn
4
+ hzHY4A1/YJ7r542aEGN/zdE2vj2Ci/H3ylOhGjmKaclSao3Je8tmiWgftEBO5ogW
5
+ rHl6Hdn4WoOuytog2NoPsI+EdzjEqRs0s9DO4n6RwSKNa0GrRjySWe2HZ977Mm8+
6
+ 3yc0jZGsIHLHsqG+oMiFxpZ5PHovT/ZOEUp6uMB9N3MIUT0u1oSCduPYKWtRbky0
7
+ MyULcx4mhBXzKaCmoQzZu3w952oyYqjIk4YquwIDAQABAoIBAGmUydYHuViQTZ5f
8
+ I8/wQ7DepvGetFT23jipfRD8hwWyvQZdH1sT5z3IXcFs09nb+XcpiClaVLEwcnyf
9
+ npdYoAxr1wqDWdunioetfYolaExbjf8cxPG7ossjEyf3yvKQq8pgPnxuf1V05kAS
10
+ vGcIOL/Shlsa9FeL25LxxNf9Wxei1F5evQ/p9VjZkj6RxZJ9gAsbyGkE7RgtN2ai
11
+ 05xgL8SXEn3zUIjmu+qYfnCif3uPlFix5F6fsODPxoGkfK7bNs/7cabLgVBweqnW
12
+ e66h2zD9GcaSnYbeJukJ6OwBmaLpWhQkGCUBmiLFfZvIcBN0FRLzWsfy9NeilGRG
13
+ que2MQECgYEA72t9CJuL4lKV0Ou/VQv/bTwsXMaSSJ/S6LNHFqTnGFS1H/iTbEoW
14
+ sbOcPJXt7xjBOcrTdub2jXsdcmjU5RRhXKgSmFtlKkA/F+Qn7B/QvdRcOXWPRDvJ
15
+ Nun+R6XluR/CoKN4loKkmfhTJLTsLQMwEa9UlvLVHbYWlUESBUyTNHsCgYEAyASN
16
+ NhPeidYK3rjONG1Dvd1KzdunZr4e+rsqmQ9fAXH8uFOuoSYZvIk5nAgQl3NRhgzV
17
+ c52G/GpwvfpBzwz8HkqxSwOJ8wIkghwcvjsvZV2yffMbj4fpRwGnnaxrarTC/yAT
18
+ 4dSy/6hjxiEebMadCY1oKVkJQc9N91vJEZqgrsECgYAZZpUAWchQfaSJYsmM01YJ
19
+ F845FZQlgldU+tg67cnayfnhZ3T0kzOvLLgRsXJp4H13jS48OirEPeCU58xWdYAS
20
+ 3X4DjgbAocpP1ZPquEFkMmiKbA+EFLe3TMH+hfpGVrlGY7GCfl/KOg9QIKXB7Mmn
21
+ xqs5zI+RtGTW9u1bhJFFiwKBgQCFdpQLK4Lokkw6hTICxY3YGNsbNaAj7GSbhVxN
22
+ OXZ5bmflTuFNYjD2HtK0DKWViTsyqUmcldZGg3erLFvRHqb0R365wSjBYAKgVsXP
23
+ IYrkpnq9lAQl59h+qtn/WddrIiajOfJKVDUEZoX85Ih6qKSMhTCltmV45izuCu7F
24
+ slnZgQKBgQDb+iYhrVezk8L3ud0Uxd5zTEdaWA2iypF7CugnRu566e4+FZWWLqQG
25
+ ajj2eLQFhPiKH9fdALAQVg9mZi0b/g5nnfB9B5odqGdJmeqzlqWu+moOy0Kfg2uh
26
+ HtsE2wCtO0dP0xI6ryRk0plGG0FbExII2VsQ/eCOH4A49I31OvBPtg==
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEowIBAAKCAQEA3cxjNcAN+z6usC6SZ7p9bZCuCdThxDZHY3MARavycmXVCFXR
3
+ nXYeqzqnNYr7/F5wFZOkyLT6lK3+cmQQo/NXuwS0QUkBMBb1qiw5cJvnyQ+NvTGX
4
+ OqD0PiVuPZ84s76+PY03S5McSqyLLg/lusk0pkC2cC2wWh9DW1Y+nd9YXlYob8B4
5
+ 51aLuebACpK6ISMvOe/A1Em+7FJsShcUnKkHS0EKh+GP4rDn0kKgjzlu5oRo9ic8
6
+ RVTrOvX9lZBF5XyJ/hSxK7ZxwAwBMOLq0QXU+Lcr109bgx1UpX77EZJum6OD/VSD
7
+ hnd0O+K6dZTNAGUIKRS+63YqLvMDY3iN7itciQIDAQABAoIBAE1Wq3FemoF1Beyh
8
+ EKPiv0GpJUaAWIjWdGYU/49LuapyH6pcYk8JlQAX354n7F2/gE3FwbvKf2XAlezF
9
+ P5grjffEWCY7kpJ2Lws7iHvfoR7WsZG67QSggwn4e0w5bMggRq2nxBQyI7dWGuHg
10
+ 4TYUWqtt/S94fvmt1QrQM91Qt7uMoTJ8SC3XZsifghWamvaMej1cJSz8n75Cdrj2
11
+ aG22JDO1c6WSSNVZsKiuAmlp/TsoqZR5PMktgXkyE94PTxfosi7Wycy3xpPNzmS2
12
+ PaT2wk0Xkps53IykvqHytH79v2cbg3Oh1Qpnr3zpGYb2tJ4trsijvwvDvQEQKkMi
13
+ aGLgZRECgYEA8e/BB1kWjbgTGrfzWJ0GpniGFPr5Ho4wlvXfg46/3qUbhMG9lsAv
14
+ lcyidkgRHaY/jcUwTGMacWOArRtp4F+B1OhkgBGXhoz3ijthg/303Hc0hTfOVU6F
15
+ HUW2qadUJ6+qdcdnwwA/E+FZ+2sgJLinEy2thfQCJlaOvEGEVsKCFBMCgYEA6rD1
16
+ a8vS32bNkOv0eAroDYHYadS5YlzxP4kJFT4kd0UdPWqpWIofY0rIUz2nPBZ8GUkK
17
+ dctCjo716ErLgkFgoHovttIjXOMt5GbeLUwYA57XCBkz9BL4+ClpslH500HizRD8
18
+ pu9hoBEg8FTLAtTeNZ3yIyZLGEULBhOEgmRtSHMCgYABFOZTBxXvukPzmaDv43vV
19
+ ILLQwzJ77XzQH/dI2kmHUEuoM0mKs/9CdzC+wKG69TRRiPEnVkYW/a/kljvJ8gNd
20
+ lVBlti5sPpMYvh04ftkqZyoH8nDstrYnpFkltwbMSp/DeQnAuG6PwzEoy5jQMTcm
21
+ Ac1FzQp5a2el9dEGpkX4mwKBgQCvI22SiyGLm8EuNBdU+fagFdT1bU0HDYrvOglw
22
+ M9astwQSECXeL/0qcOU70VearMDhcbN/ojbCAgea2S4zvywntecjjH/dUp+tweJt
23
+ dUq6cO/RWFWAACSRtP3ul+RSdemV1OZmgV+ePwoQr4ZsT4SgCIVpG6uQqf2HBEuv
24
+ rtgq5wKBgF0CXnuUMFkYCDwxq/fveL9U+8SoqNWn3NMhBhga3XADyIsSGkLfdIKj
25
+ Bve3snSYFbWG3g59TEHW2Uhv5EVs0o4PdHuOFNvaxO/s8QUfE3LwN4mEE2uu+0j3
26
+ XvTK7d57ky5Q3gcjCOFDILZlW5iHCyU7H+fh9QVOPv2nUfLZrx5+
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,22 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDnjCCAoYCCQDTDRxr3iqShzANBgkqhkiG9w0BAQUFADCBkDELMAkGA1UEBhMC
3
+ RUUxETAPBgNVBAgMCEhhcmp1bWFhMRAwDgYDVQQHDAdUYWxsaW5uMREwDwYDVQQK
4
+ DAhFZGljeSBPVTERMA8GA1UECwwIYmFua2xpbmsxFjAUBgNVBAMMDXBhbmdhbGlu
5
+ ay5uZXQxHjAcBgkqhkiG9w0BCQEWD3RhbmVsQGVkaWN5LmNvbTAeFw0xNTAyMDIx
6
+ MDM3MjJaFw0zNTAxMjgxMDM3MjJaMIGQMQswCQYDVQQGEwJFRTERMA8GA1UECAwI
7
+ SGFyanVtYWExEDAOBgNVBAcMB1RhbGxpbm4xETAPBgNVBAoMCEVkaWN5IE9VMREw
8
+ DwYDVQQLDAhiYW5rbGluazEWMBQGA1UEAwwNcGFuZ2FsaW5rLm5ldDEeMBwGCSqG
9
+ SIb3DQEJARYPdGFuZWxAZWRpY3kuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
10
+ MIIBCgKCAQEAw8ptqyqXM3xoNU64pjv3tC0eUFq25FJOnxMDjCCcnd5Zq2Wtp4wr
11
+ o8c2oVZBfaDpJvtzvK1pkaZRX5L3jbH6MVjk9B3qAO6F5VNa7HJaa2wWfkWX8nt5
12
+ cU94AUzryUkUZy6tEJlFewvcesHwG0GIQR7n4i4YzPMK4A9YdL6EdJIsid68isQf
13
+ O2VNkz1mZtbQ0Tj1TX6v0GTu+Sylg7X6aSVtM0uoY7LhQ4h92wIcCYhJloNSNTkD
14
+ fgEbISEuuy1dtIIFkb51/FWXZca6blzD2JzI2tFA0/Lhx54AS8vDi+y44ajaLzwd
15
+ iObPiF6Cp7zCR0G8iOP/zFJ1W9jMZ6bbJQIDAQABMA0GCSqGSIb3DQEBBQUAA4IB
16
+ AQA/xi4boCnyX1hZp51mmxoDdQ9+SlFUOJJDrRDKP9JyM6hHZBrQ6O3nJ8ZDltXo
17
+ LfsIEzfpQA8DPQH5szsjIp/3Hd1Md46xaydoklgLX9ADsCgbxR5tyBcJtm0ZXDvK
18
+ szaC89vZatqxsztKoHn9WaHPlNV/BPUwDTP6IJDOhxQZobZ/lpsVu1wQzIgWw+sw
19
+ cMEpmCgsnpiiFI+sc13bbgSZZAxv94nshcUBGy0ZpMJlyYS5TnvmUxL4NOOHRfLf
20
+ OJxCC48mWLorbTbfi+m+/OMkGasCzh9nb7SxXlyZz3XmGpIuticLLPfOeLqOE70M
21
+ KGTIeN7WlKcze0A4SsfYbNoO
22
+ -----END CERTIFICATE-----
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEogIBAAKCAQEAw8ptqyqXM3xoNU64pjv3tC0eUFq25FJOnxMDjCCcnd5Zq2Wt
3
+ p4wro8c2oVZBfaDpJvtzvK1pkaZRX5L3jbH6MVjk9B3qAO6F5VNa7HJaa2wWfkWX
4
+ 8nt5cU94AUzryUkUZy6tEJlFewvcesHwG0GIQR7n4i4YzPMK4A9YdL6EdJIsid68
5
+ isQfO2VNkz1mZtbQ0Tj1TX6v0GTu+Sylg7X6aSVtM0uoY7LhQ4h92wIcCYhJloNS
6
+ NTkDfgEbISEuuy1dtIIFkb51/FWXZca6blzD2JzI2tFA0/Lhx54AS8vDi+y44aja
7
+ LzwdiObPiF6Cp7zCR0G8iOP/zFJ1W9jMZ6bbJQIDAQABAoIBABAOA1wry+Y+51Sn
8
+ teB7vl4Z7Qhtx92FGklVB89vxSf02amCVvEMP2/YoBQuvIQOs8+sgtsP5T46QyXx
9
+ KTeHRprRTUTvRwb4iCY75ZLJ9bwlStrj3gfWNCkkeRSyOAtzYKbtXuejid0DJfsy
10
+ 9/tkLkYYwK79VK9JprSkzX4VOUtNpGt6FaBMqkFWCw64mMYWbCEn1ZVksv27hgel
11
+ dsjny2O6dzU3gJQxmHB2I32zZ7PlohU+0QRRf8nJPs+lyrx/AXODoBxQAwIsfMas
12
+ OTLOOeni2T25jQdDx0xHQWo0aDA+jyHOov9da44lxoI/PaqJ6MzgBnJfqwVIYr3Z
13
+ qOqqjakCgYEA7lHGz49XXotQBYkkeFOEPnXdKC/H7xcG04cNNgVzpSpOSkLHN7qd
14
+ QgpxmGpnT/js8dr1ZNu3GCn4E9O5bHZzv7dlmjbHDSJ/w2u0RCZjwn3gCoWJSqlo
15
+ ccpWPd1f5lKK+twYR+VpIkH8K05aYRPr//MY5Vf6hKA+Fs8S1d8TM1MCgYEA0lDv
16
+ koybmdDwM4Tr48DanKqgvnsRh7reEiYF+hk911ELZaVocHwDA3Kz0GRd8hy8+afi
17
+ nOJ8e8wH21a2oIcknKFPscPzuet8IWED5C2DmBJjayHLsGMYReAyDT8slXO/tjEd
18
+ ohqMb2+hWErkN/oo0sYRPrwBhNhEYtNyd4SyIKcCgYAVS3lYUpab/BbKZ9a6abwH
19
+ WMDKNnrHAme5vvePPC15NK6KNC1Y7XPf0s8Tr25L1xJVChujR360ygtAukp3Rp5R
20
+ IzIQ9ZQTuGFyNM2GyWdgmZ7LUeNSqJCMmmfaX02SZw3EHKaOxhD+3qaJuBabVgxg
21
+ cnhnBdV8xFTH9PjZ43TzwQKBgFT4mjJNWLhmcAWAmIVl720IivUqZ8S8vOf8MMIA
22
+ 3LlXZxFkKLP5hoYoG3oAcuxUrAz5xVa5Mq4ZmrsFZ7enoiUeD0K09o2RFI+v0JCp
23
+ ytbv5vbrqo3TG4VvtQkhEvQ21afYZC6QJ1kGcttnNplfGos9ts3vy3VOoyKCZ2be
24
+ V9FVAoGAIB7yq/oY+eCulCpsdBonPvjlw6QZ9sKZNVz8WjjiQZPqAye46KjxEf3W
25
+ QS+/7jKphjmoJzfQLdOVdt28uBpYGwaMDRJlku2cQWgaiOVeNK0+hkN4ImOpcPtJ
26
+ F5bS9HhCCKMY5zJ8ixiUBP1aQboQcWfbx6R9V/MoQ13MqUMhneQ=
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEowIBAAKCAQEAvx8BI+WuJuIJdT/TT0prjrd54WfZQ92IwHQ19U5+1Li7TZgA
3
+ mSWy6S9G7sVw/TolLPpgMHGpZ94QVBvaTOqwfs9d2vqprtnlox7s5nRwV/HTp58q
4
+ qeu3nKMrt5onU7mQMlcNNPr05xSiYFm6i4vpkfzzPt2/0Eaav93Qge8n6T7EHnLW
5
+ zH9ngFaJmi0V5p34NqGITixSa2l6Ih5E5pspBWxRjvsdqBJe4orZzBIQxEVaNE83
6
+ Ttcykij2Z4w2v33+jBd/Uio/gfO+U3Ryfuri9+2+zwdlsb0BH5C4f3Qt0pYIvuIA
7
+ BLffdtxq1kI653kVkzis0AR3aq/ZUyhgunq38QIDAQABAoIBACMp9zG9no8043yZ
8
+ I63hCW0WwOwCCW19Ix4Vw5/As4E8A+pA30tOLl7M/gYMeb99pT1jS7NeFkcwCl0P
9
+ StkADT0ntiMGH5Y2LRQYKoo0Pj9QFRswI89juUKumuqLCFVVPPymG5311n11xHJp
10
+ z/LA6Vac7bxRXGtbsjk+/JALipJVUlPfiB/rmFuWbljcjR/StAJvUSNVbpd5WzmE
11
+ 64Yew9RiPCiqOmV4mmyvhvHFRqC1lZJu30e8yftFu8iFpSaHhQVU7YU3cTCJYKt1
12
+ skQeuA+slgzpd6UEkiWsTpgGZYPpNJB118UVD1HKIV/AYmU8KFlWw005LVJlMNEV
13
+ VNrgWoECgYEA8dnkavux8or1EPgQ7DZCokkHQuAcRtsMNh3GJKqYvHEHpbOlYCs/
14
+ 2Xeieq1TwIYrd81Y0NTUMG5G5VaVmeUCKoxjKzo7qnhlZoXRlk5fFLsRH0M8/QeN
15
+ DsQpJhsTOPEHqJuD8syfWjaDQZqTTIQyNWXhhJ4PSjWNP+w1HNlkCHkCgYEAyk1Z
16
+ TUwos1oKQb7hOgdSS4A8e6Ot6xqpjda80oIFsdoyz2C9lA02ZIZsehkXY5r1s4Y/
17
+ RSyEpiraUPcdz8LRhlx71jE38mkVDCljN1u1XxuZy3Y7ATfrQwdSQCMjDrvK6ltz
18
+ RwgugctAVsEaL4gfI/+rugINEiBRc2+RGHqwPTkCgYARvjKLxrtfV+JyxEA5lCF/
19
+ Vmw588cfS6Kxta17syhRatlsxqkzTPj6M1SwO1cRoMY/m8kQSQzoIK8C1D9Vcv+d
20
+ r373BOarsvl9dAPUSxueobq32G75ATzQAIQkT4gxfT1amU4s2eY28BjhDz4PNwOX
21
+ 90l8OTxV7WfXcLTU0P4NwQKBgDun/5OZx87L2IZ2wXgZPJ1jHXLgW6Me460eC+SP
22
+ zxoZXC5nOsBz/Pw737VJvOn0gkwEZJgDfsJ5lJOXq8TekGbs0t/g97yWXEyPz+A9
23
+ PQjk3L9xCAld8hR8Djc3pVjs6/OcMCxcL0q7IyfyHcSygWxeMsfRXwVfXmWKGuF7
24
+ HImRAoGBAK7kClOSQOp57J6fOYvV+emBfhClAS9pvnPVMBPptE2L8Qg5LaUn/qh3
25
+ /UenrgLJgdh+9zPxCdlvSGE6eWsJPKcj70QICYqXX537nXNJs36DuBs7KrqD1KsY
26
+ qqPUi62jzsVIeS1HZV2hmISNvzHLU4eBAOJrwc0VCIPvX/VvErli
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,22 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDnjCCAoYCCQCss3Sji1IF/jANBgkqhkiG9w0BAQUFADCBkDELMAkGA1UEBhMC
3
+ RUUxETAPBgNVBAgMCEhhcmp1bWFhMRAwDgYDVQQHDAdUYWxsaW5uMREwDwYDVQQK
4
+ DAhFZGljeSBPVTERMA8GA1UECwwIYmFua2xpbmsxFjAUBgNVBAMMDXBhbmdhbGlu
5
+ ay5uZXQxHjAcBgkqhkiG9w0BCQEWD3RhbmVsQGVkaWN5LmNvbTAeFw0xNTAyMDIx
6
+ MDUzMjRaFw0zNTAxMjgxMDUzMjRaMIGQMQswCQYDVQQGEwJFRTERMA8GA1UECAwI
7
+ SGFyanVtYWExEDAOBgNVBAcMB1RhbGxpbm4xETAPBgNVBAoMCEVkaWN5IE9VMREw
8
+ DwYDVQQLDAhiYW5rbGluazEWMBQGA1UEAwwNcGFuZ2FsaW5rLm5ldDEeMBwGCSqG
9
+ SIb3DQEJARYPdGFuZWxAZWRpY3kuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
10
+ MIIBCgKCAQEAv53zXL+XRiQ4hB/WTWQzZgydHmEMUExdCKxhZnCEHbyudqMJYsT1
11
+ xBhJP9w9WDSx/JlrZv82I5vXN4Xusnzc9gDWOweMmwg0x2FXO/FBjcFWMLoD8tlh
12
+ XrCjwwh2ysTm1IKWxeo93+Hn194noBZzKYtXl0+lmgtR5XWZ1FwZ/CkMpP7K9rOc
13
+ UcAMXIz20YqcST3oiUh0PN3t+mSfVDyXIK/PfmTZXoY+OptErmfT8QLPh8bi2LKE
14
+ w0hJUurYpsYs+g96ZTw5McYXcP79maNoVrwGgRiebb8TqwOF1GEIT8sHA7cGaWpf
15
+ hvAQ1IJIM+LwxhVkaYeGg9h5wALSYWV6EwIDAQABMA0GCSqGSIb3DQEBBQUAA4IB
16
+ AQCBE8uA8qbJlpUrGj9NSa0E4xOiJWt6HNyYEc6pU+h0BALZ28Ji31V3WLgbOkxW
17
+ 2QbIRWSliaSX/F1VtqNdX6ZTRqpjXhfJhQsXUxhH+ZELaXUcqZhSH6r88bYwxUjP
18
+ N/WpuaZK5uUfdffd5jAB2qS4cHskEMV7O+kOvW0QIlTl0wOA2W1kEnensLU5qGsl
19
+ +no4TlTtfqAKWgVuDvy/z8GRbZMkZJvhN6TikJawHMZ6SBKHO3rcqoGqdzbqN2VA
20
+ 5+dlNo4xFF4PaxXj1/5T/ivOBoQXjywDiUthqEuTH/pM642s2lvqyc6MhD/7fzsa
21
+ NvxoJEE9jDCF9N9Ga5TvBO2B
22
+ -----END CERTIFICATE-----
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEogIBAAKCAQEAv53zXL+XRiQ4hB/WTWQzZgydHmEMUExdCKxhZnCEHbyudqMJ
3
+ YsT1xBhJP9w9WDSx/JlrZv82I5vXN4Xusnzc9gDWOweMmwg0x2FXO/FBjcFWMLoD
4
+ 8tlhXrCjwwh2ysTm1IKWxeo93+Hn194noBZzKYtXl0+lmgtR5XWZ1FwZ/CkMpP7K
5
+ 9rOcUcAMXIz20YqcST3oiUh0PN3t+mSfVDyXIK/PfmTZXoY+OptErmfT8QLPh8bi
6
+ 2LKEw0hJUurYpsYs+g96ZTw5McYXcP79maNoVrwGgRiebb8TqwOF1GEIT8sHA7cG
7
+ aWpfhvAQ1IJIM+LwxhVkaYeGg9h5wALSYWV6EwIDAQABAoIBABv7Eqh+ibaCX4Zb
8
+ p82RTjgeq2rePRAUtpknoul0kLZO8SL918cGf+TsrvWWUZbpyvvZ42cc6Wj1vs2q
9
+ zxpdRV7e7GmeRpf08NAUlMp6BlqO2ukuoJj7yU4seR1nxQEDE7oAf8fS1so0kMhi
10
+ 9mJYJOTyJg5AYSxHbuQU8iuib2D01NkepCVqTAr6D+VlPpC1+cMMuxaF+cVk1NJa
11
+ 2PqTmIIdctunaFL3wYUUvhy4k0AsJUcAgOXPXT/4qwB2+NMBKfHqrTV+AmffzvMd
12
+ nMj6kbNL/JByIJ6D/hDC9VdVbWkO93CXk1PmWlxhHeUrdvbC0RYnGoCgm1BxX5oS
13
+ JJks64ECgYEA5p/l3x3n86t2l3lBVevk0kFIRqlSgMm9ZjD5PbAUt9qnd5fdW6Po
14
+ P4C04cgd26lC4xwrnVx9CwN+Z1hIVZCuV+Otfb/oFdfix5KgA0zr2P3xYKLSWALf
15
+ ZV+Di1Tu+QkrcPkGFDmbcSrVD3D0JkkLOQJP8eANg2UI31ygRTBTZ+ECgYEA1LNP
16
+ B6pmE2cL6FtEPxlr8UXmYYiek6WrQGKnX5HzQIuVnLnnGN7VusIUGOw1iI0aP0MP
17
+ Gk1ILCM/js8WCeiCzto7RqHs8DUuTDS0sC+F5K8K9ZKNgl/WFrUwhwkwV1P9CcZz
18
+ bC6WG0fXv3f0vi+0JOE+ty91hQuISSLDXpxn0HMCgYBgq5/AkZmb00Cnp8USTgoh
19
+ dAnmzKzvnSDOCDNBf2B/3KCcCcVY13DPxZSMm8SgQefuqO1DTfSAPFus2B2h+D6M
20
+ Srx7XIjdNxwxSa3XFFQ8Jd4bAsUm7TVVGd9a9SQisYxLE6dPrQISQsECcvd0YOPa
21
+ ZrS6D4+6hwxcDEiGGAauIQKBgB6FTEXRUaxfEPpafkR/pVmNqi08qWSOVTB794Bj
22
+ NQCCBwniMyMCdrDBwJiC7HuXo7iIKtafWEfdFvWrCYKKdpqv/el4usMNHoOY3ISb
23
+ jR7vbyclzGB02AeSIFCAJQui5aBNdaqEVM29VVwIHnpb5gGUwKcQjFB3AytbbaVZ
24
+ 1Bu5AoGAaOnAe4RyRlnEFmni0gEiatuxEHQumBzVuRNO7/1giNE2IUu2MmmNkSZp
25
+ DgZCvdJrYRLIcFMMPMM/NpHwssMhkwOZuaUYKfgWZa3mqEwRTyCczKyPMWBXODId
26
+ lGzT5CTYJdnAoqO6CA/k0oQb7dmtG5rC9fybviOjTHTTUPaLRpc=
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEpAIBAAKCAQEA1SEAsIEYD5UtbLgHOI7c3EUbc/lSQsWxidHznJr4V0B1OBeE
3
+ iplroDyy54dWHbceGvjpgkUV7ZSYtG86g21lE+kI2R2xUcpQY9RC/IYYAnBaDXvH
4
+ +Gip1sxv6yltuDYEZEQovxPUi4Xnq/3hf3COq2kswWQ6flMR6JjxGUKndqsxU/IP
5
+ xe67owD48zI5R9vhMammEr6ZYIFl1JwPHNF+VwXv+EAGq3TsXd4KMcw1HJUj75pg
6
+ P+IfqnaQ5PW5tzKX+Dj78z8KNeI0fdPeere8tfU4VahBMA4KBvGWS463MBwaQrDT
7
+ skXlNDDgBjwPteHkaHf94nOhIoLNku9kGXYX8wIDAQABAoIBAGgMi6Sf8Zox7xJD
8
+ qarP/D1BM8zjrGhS0YECUddjxNf77P4sZRWxHt0EpSbpaH5rVrQ+Tum9Rp5NTFvS
9
+ bZOaRZ15yEsO9vGCPsrt5qIX6QLPzPcGNjMtDbWC6yS4fgtPu8cji2z1hm9zOQ47
10
+ jOpFjjFa0HG9t9zSO0z91b7KTq1cs5vzY99jwPeRauOQX1C4iGp+lkiltjuDt8wy
11
+ 47kVvPItxLrN42h4TxtXkEcuPk2F76SOix8GFNjL01FkcZkKc1tjWZHb8FzPh2NQ
12
+ HN8VGW8C3boXE/2WHcMKX/l7quB8zdqHRAf1wOeuRPCOS93DQ2xszTLAAtCy3wna
13
+ LSZxQCECgYEA/JcSMeJRNafVn3rKzbzyCjLT//dWaW+P9R9mdiH8AVOh9P60/gvs
14
+ rBgKmhAjyTUpr8lBp2olS4QbDHTQa8WR6vq8cGyRu5fvCRsRHUZ9xL/qwkJMcHAt
15
+ NtmY8BO/KKUic03Ev7bNkVbz4LaoYmdeQHuDiqB100J9Hgookh2w8jECgYEA2AGO
16
+ pcENi8eKzP4WN2PFxONuJX46/0aYztPExcduIszAlmshxH1aaEQLVnk4KwgecscS
17
+ /mKfO63SPzm7Kv+fFpukPVQEWdY1IVRYtGR3WZ2PhiyrDRj+y3h+MOeiEyeDo5Xl
18
+ /BCUPK5dlNj9CsTR1cagiT+xgfxNF0fcXA5cn2MCgYEAjign4VNSCTSQEdV11hyE
19
+ zCCXF/QH+gcDqh0l+U5fGhALkmrXSjND3Acb0GFNAqyc7YYDIUmn+7w5zOTheAYV
20
+ fX3oGA3CZyW3LhTBqQxHNDge032kr5MynzAP1u4GI8XsgaA/Hvau8yFQ2CN02Qz8
21
+ CqZ4/cgZB/Dfocxt0O5M68ECgYEArnbLhVthGoYHuLx8qy49vWHIRCYpdqfJojvv
22
+ EaObdCYWYyeSdYadr9tNoQF1eWQsW54o3ChB3kztpL13TCp8jyEUzaf/f6QA87OR
23
+ ldoTf+E/3CpV2dVXbnYazls4T+o5a7YVtLqbUEuxMBj2gG0p4lV0soYsVAW5KlWT
24
+ SRMcgmsCgYAqPa7imVwC3F1Xy5x9kaTUzGqbg2tNxfzYO5Gf22MQNnRggsdoslh7
25
+ hn2llYvVSacyy0gFqzqw3lLCoyRGsoYAz66xm6Or2YUvLkPzOopNEfCTLGUkHCOY
26
+ VkzKlyO6RIpVuwhk4v0wJstB3lHcKq6b6aCOjwjGqko2ORpRp4f+pw==
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,18 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIC+jCCAeICCQDuCELf8TcV7DANBgkqhkiG9w0BAQsFADA/MQswCQYDVQQGEwJF
3
+ RTEOMAwGA1UECAwFVGFydHUxDjAMBgNVBAcMBVRhcnR1MRAwDgYDVQQKDAdNaWxl
4
+ ZWRpMB4XDTIwMTIwMzA5NDkxMloXDTI1MTIwMTA5NDkxMlowPzELMAkGA1UEBhMC
5
+ RUUxDjAMBgNVBAgMBVRhcnR1MQ4wDAYDVQQHDAVUYXJ0dTEQMA4GA1UECgwHTWls
6
+ ZWVkaTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALmozE2DIZyCddrW
7
+ AVoVkNWYRYDytAi5lefa5+PEAQLGFzzfTBRnClla/Qerfe4NBGjyiwu8W6VeLGQ9
8
+ +GGDw5uEQumII2t0f1vpKWiauyfM+MlSOB6cobf9bwlgs9gBss/PEAa8E4MhpS60
9
+ p7KNfR1qcq3AWgxpjE9ns7KheARW1q0vNZFzPkONyleZ4HJIC8rlta38/VMvbPnp
10
+ PLbMnVOvrOsxeDMCgGpD9hupxVsFnhsv/Y4F14W7f4XHl36FhDjP8dkrgrkQE4E1
11
+ dRnxx6GC4Lv71rQDu+gmgyKtZWmsym1b1Tzw3aCF27J1EReHvCxtkDfMH1VzQSad
12
+ FGF4yXsCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAQfs7p7MLZqtm9QxBkGcYALDw
13
+ q/f+5b+n1uPdFcXu8K26hG6RiVZTXUJrIqR71kGLG0mBJ3V6+vAM9gjsUJs20uiZ
14
+ qvdV2xQglTpJlNTG4Je3Sq4Lbyz4w+8e9VVrE3atfARHxA5FIewCviJNdXS+xeuh
15
+ GqKaGqLSf4sJlbe3hE69hzlDXmzUE+/OhoaSPS3zFAzcp9m50o7InhYy80eKDRFS
16
+ hBIDbLnyzb+97If9BMOhqQ/nfCrsX6TiTiqhIFB+qNSIZt733fx9AD3AwSxM51RC
17
+ V232swdtXx9d39S/DskhMkXkOiqpr+0P87Qyy8Y0/FoWO57i/jXb0uCccPatdw==
18
+ -----END CERTIFICATE-----
@@ -0,0 +1,17 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIICnzCCAYegAwIBAgIBATANBgkqhkiG9w0BAQUFADATMREwDwYDVQQDDAhCYW5r
3
+ bGluazAeFw0yMDEyMDMxMDUwNDJaFw0yMjEyMDMxMDUwNDJaMBMxETAPBgNVBAMM
4
+ CEJhbmtsaW5rMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgI7m13+Z
5
+ 2B3aBtXE4/2YmsG9koPpD7RHj5B7uEozBCNM1MhfYoE7R7vP1tPm7lD/oJxKk0G3
6
+ gpODtGDqo+kMfI+TlJ/w2KzwS5YPEop7aliEQ1bbwjjjY2tXYwsBYa0uRvkbwizH
7
+ lp3PHmr4DBl+JxyETIWGX623nZxZcHAvwcM6VpTtd9+KEpgToQ2gPHHj4/svQfwm
8
+ mzhdEwFZjwjCaOEHssaUcLsyvKVoJ5OJqBWS1e0mVqWsuJJJnkeG7NVXY2LWDDfP
9
+ iGogVz9hqqxfNKhCTLGMCG8k8VDQdLTaR+vvmXSUBLh+4TbFA7ZPLSvgbRu3995F
10
+ CCY/wADRophRVQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQAcTtcH4m//FyGrNC2h
11
+ rcry6wt843xclEkLQSSNGz9wVCQW/D8I0VNjFPk4PgoUh4bTr+mKrZ6UrrIwBuO6
12
+ oFj2Nh+Y1wgkpd3LMKae5DvWLE4taZ4ylBGSUXOpQ062+pOtUldZQxBiczaUJWm4
13
+ 4Ns+27Zi5oGyTNnlZXfguEnt54KA+63S4aiHWUSaaXkRN62LeNuyrX0ZdITEfTaz
14
+ 0ZvVcn6FbL6OnsqoZn2MF9+xZfMqlu/K5HfGl928v0fzY8/jQygxUoGFIBfxhn46
15
+ NniPM9xtnPSu11ut1n0PQPP8K94+MUJz7GDw9o9z3X0zgy8SOFSpY8HNp0MEjN7l
16
+ MT8n
17
+ -----END CERTIFICATE-----
@@ -0,0 +1,16 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIICmTCCAgICCQC9Iax+je2Q9DANBgkqhkiG9w0BAQUFADCBkDELMAkGA1UEBhMC
3
+ RUUxETAPBgNVBAgMCEhhcmp1bWFhMRAwDgYDVQQHDAdUYWxsaW5uMREwDwYDVQQK
4
+ DAhFZGljeSBPVTERMA8GA1UECwwIYmFua2xpbmsxFjAUBgNVBAMMDXBhbmdhbGlu
5
+ ay5uZXQxHjAcBgkqhkiG9w0BCQEWD3RhbmVsQGVkaWN5LmNvbTAeFw0xNTAyMDIw
6
+ OTAyMzZaFw0zNTAxMjgwOTAyMzZaMIGQMQswCQYDVQQGEwJFRTERMA8GA1UECAwI
7
+ SGFyanVtYWExEDAOBgNVBAcMB1RhbGxpbm4xETAPBgNVBAoMCEVkaWN5IE9VMREw
8
+ DwYDVQQLDAhiYW5rbGluazEWMBQGA1UEAwwNcGFuZ2FsaW5rLm5ldDEeMBwGCSqG
9
+ SIb3DQEJARYPdGFuZWxAZWRpY3kuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
10
+ iQKBgQDTwWcJvpfFkPmSYXVCUJLoCya2YPeuzBcQww19KG+ErKLr+lAjhoER5ViW
11
+ UD7KMDhViBzWpJZ0LqvAkamWyyjM5e0a2aUe71qI8yU8W2oZXRrmKQ4H1UxhaOGt
12
+ aSGLIycY31y+aaKrRM8teMDvRSyBq08Lvk0e0cC/nbVIVvaS7QIDAQABMA0GCSqG
13
+ SIb3DQEBBQUAA4GBAKhMeT9HhdOvmWy17kQjVYg4I0b/9bO/0DI6MqTiyziaSvcz
14
+ DXTRwWKCa+dqx9yQ4aM7YBBK3d2y+aRnfdxxAQ1ThnIHuzoYSTlmFYhfpp6KroTz
15
+ /01tSFqMZ9dZemSspCWgkXkEiBiUA45AEmOFSRSzWv7H8IOmFhe5ijmGmdna
16
+ -----END CERTIFICATE-----
@@ -0,0 +1,15 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIICXQIBAAKBgQDTwWcJvpfFkPmSYXVCUJLoCya2YPeuzBcQww19KG+ErKLr+lAj
3
+ hoER5ViWUD7KMDhViBzWpJZ0LqvAkamWyyjM5e0a2aUe71qI8yU8W2oZXRrmKQ4H
4
+ 1UxhaOGtaSGLIycY31y+aaKrRM8teMDvRSyBq08Lvk0e0cC/nbVIVvaS7QIDAQAB
5
+ AoGBAMh9GvOM8uHpy4IeqAjrhMwSksqmsJtdPJFwO/s+J6f0VCUc0HdySA4LmX5n
6
+ 56tDUHMa9kL7fj/uWEtxHqJZI/xy4kuh5CEqG8R5A06AwT1ff3OHKgx/FFB+vEY3
7
+ SrytynDms5hIv0loTj5yUdMCj3NVMCL2167CgAhqfmjIvAtBAkEA65ehhuH1lcqL
8
+ x/C18g7AZiuhQKGPq9f7c6sYWWv82agldnK2CcGemgWaEaKKxoA0e1b1cp7E+XgR
9
+ kbmbZb/ZpQJBAOYZLcGQMkscQrEifU0+ziw+XOq+fWOAAGMNhPK57/tK7D4tl1hl
10
+ l1vIFmIkWlPWjJatNHVwU6W1LqBZKsFJQakCQHVG1jG+6fHXEh5FxUzp6vzxWyRB
11
+ SLPSoGnEEirxhr0S5xM/pz7UE4+4mimNMGgACiAb+bNFNei5zIUuUB0mk8ECQEUv
12
+ AuP1MDoHOEI8RYKJRMJmyddHCTp2jSc7NGMq5u4eu+OCH8RTX2wYQCqoFYSpuMHB
13
+ OEmrSWtEi81oogNVvGkCQQCfh7OKOmfbKxqVOFwZOkei3qIMbKQhv2nvGKY+mRFZ
14
+ ACrjStZ2sR7ZXJuqdyAk0GS7Ci4nlZUcYOpT6ZCCO6F7
15
+ -----END RSA PRIVATE KEY-----