ipizza 0.7.1 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
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-----