mcp-proxy-adapter 6.1.1__py3-none-any.whl → 6.2.1__py3-none-any.whl

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 (146) hide show
  1. mcp_proxy_adapter/__main__.py +27 -7
  2. mcp_proxy_adapter/api/app.py +18 -7
  3. mcp_proxy_adapter/commands/ssl_setup_command.py +234 -351
  4. mcp_proxy_adapter/core/app_factory.py +87 -3
  5. mcp_proxy_adapter/core/app_runner.py +272 -0
  6. mcp_proxy_adapter/core/certificate_utils.py +291 -73
  7. mcp_proxy_adapter/core/client.py +574 -0
  8. mcp_proxy_adapter/core/client_manager.py +284 -0
  9. mcp_proxy_adapter/core/server_adapter.py +17 -80
  10. mcp_proxy_adapter/core/server_engine.py +5 -99
  11. mcp_proxy_adapter/core/ssl_utils.py +13 -12
  12. mcp_proxy_adapter/core/transport_manager.py +5 -5
  13. mcp_proxy_adapter/examples/__init__.py +16 -0
  14. mcp_proxy_adapter/examples/basic_framework/__init__.py +7 -0
  15. mcp_proxy_adapter/examples/basic_framework/commands/__init__.py +4 -0
  16. mcp_proxy_adapter/examples/basic_framework/hooks/__init__.py +4 -0
  17. mcp_proxy_adapter/examples/basic_framework/main.py +21 -40
  18. mcp_proxy_adapter/examples/commands/__init__.py +5 -1
  19. mcp_proxy_adapter/examples/create_certificates_simple.py +260 -75
  20. mcp_proxy_adapter/examples/debug_request_state.py +4 -36
  21. mcp_proxy_adapter/examples/debug_role_chain.py +2 -49
  22. mcp_proxy_adapter/examples/demo_client.py +0 -66
  23. mcp_proxy_adapter/examples/full_application/__init__.py +11 -0
  24. mcp_proxy_adapter/examples/full_application/commands/__init__.py +7 -0
  25. mcp_proxy_adapter/examples/full_application/commands/custom_echo_command.py +0 -19
  26. mcp_proxy_adapter/examples/full_application/commands/dynamic_calculator_command.py +0 -16
  27. mcp_proxy_adapter/examples/full_application/hooks/__init__.py +7 -0
  28. mcp_proxy_adapter/examples/full_application/hooks/application_hooks.py +0 -22
  29. mcp_proxy_adapter/examples/full_application/hooks/builtin_command_hooks.py +0 -24
  30. mcp_proxy_adapter/examples/full_application/main.py +65 -44
  31. mcp_proxy_adapter/examples/full_application/proxy_endpoints.py +154 -0
  32. mcp_proxy_adapter/examples/generate_all_certificates.py +0 -67
  33. mcp_proxy_adapter/examples/generate_certificates.py +0 -15
  34. mcp_proxy_adapter/examples/generate_certificates_and_tokens.py +369 -0
  35. mcp_proxy_adapter/examples/generate_test_configs.py +204 -0
  36. mcp_proxy_adapter/examples/proxy_registration_example.py +3 -70
  37. mcp_proxy_adapter/examples/run_example.py +1 -23
  38. mcp_proxy_adapter/examples/run_security_tests.py +2 -60
  39. mcp_proxy_adapter/examples/run_security_tests_fixed.py +0 -53
  40. mcp_proxy_adapter/examples/security_test_client.py +18 -123
  41. mcp_proxy_adapter/examples/setup_test_environment.py +179 -0
  42. mcp_proxy_adapter/examples/test_config.py +148 -0
  43. mcp_proxy_adapter/examples/test_config_generator.py +1 -25
  44. mcp_proxy_adapter/examples/test_examples.py +4 -67
  45. mcp_proxy_adapter/examples/universal_client.py +154 -162
  46. mcp_proxy_adapter/main.py +51 -161
  47. mcp_proxy_adapter/version.py +1 -1
  48. mcp_proxy_adapter-6.2.1.dist-info/METADATA +676 -0
  49. mcp_proxy_adapter-6.2.1.dist-info/RECORD +119 -0
  50. mcp_proxy_adapter/docs/EN/TROUBLESHOOTING.md +0 -285
  51. mcp_proxy_adapter/docs/RU/TROUBLESHOOTING.md +0 -285
  52. mcp_proxy_adapter/examples/README.md +0 -257
  53. mcp_proxy_adapter/examples/README_EN.md +0 -258
  54. mcp_proxy_adapter/examples/SECURITY_TESTING.md +0 -455
  55. mcp_proxy_adapter/examples/basic_framework/configs/http_auth.json +0 -37
  56. mcp_proxy_adapter/examples/basic_framework/configs/http_simple.json +0 -23
  57. mcp_proxy_adapter/examples/basic_framework/configs/https_auth.json +0 -43
  58. mcp_proxy_adapter/examples/basic_framework/configs/https_no_protocol_middleware.json +0 -36
  59. mcp_proxy_adapter/examples/basic_framework/configs/https_simple.json +0 -29
  60. mcp_proxy_adapter/examples/basic_framework/configs/mtls_no_protocol_middleware.json +0 -34
  61. mcp_proxy_adapter/examples/basic_framework/configs/mtls_no_roles.json +0 -39
  62. mcp_proxy_adapter/examples/basic_framework/configs/mtls_simple.json +0 -35
  63. mcp_proxy_adapter/examples/basic_framework/configs/mtls_with_roles.json +0 -45
  64. mcp_proxy_adapter/examples/basic_framework/roles.json +0 -21
  65. mcp_proxy_adapter/examples/cert_config.json +0 -9
  66. mcp_proxy_adapter/examples/certs/admin.crt +0 -32
  67. mcp_proxy_adapter/examples/certs/admin.key +0 -52
  68. mcp_proxy_adapter/examples/certs/admin_cert.pem +0 -21
  69. mcp_proxy_adapter/examples/certs/admin_key.pem +0 -28
  70. mcp_proxy_adapter/examples/certs/ca_cert.pem +0 -23
  71. mcp_proxy_adapter/examples/certs/ca_cert.srl +0 -1
  72. mcp_proxy_adapter/examples/certs/ca_key.pem +0 -28
  73. mcp_proxy_adapter/examples/certs/cert_config.json +0 -9
  74. mcp_proxy_adapter/examples/certs/client.crt +0 -32
  75. mcp_proxy_adapter/examples/certs/client.key +0 -52
  76. mcp_proxy_adapter/examples/certs/client_admin.crt +0 -32
  77. mcp_proxy_adapter/examples/certs/client_admin.key +0 -52
  78. mcp_proxy_adapter/examples/certs/client_user.crt +0 -32
  79. mcp_proxy_adapter/examples/certs/client_user.key +0 -52
  80. mcp_proxy_adapter/examples/certs/guest_cert.pem +0 -21
  81. mcp_proxy_adapter/examples/certs/guest_key.pem +0 -28
  82. mcp_proxy_adapter/examples/certs/mcp_proxy_adapter_ca_ca.crt +0 -23
  83. mcp_proxy_adapter/examples/certs/proxy_cert.pem +0 -21
  84. mcp_proxy_adapter/examples/certs/proxy_key.pem +0 -28
  85. mcp_proxy_adapter/examples/certs/readonly.crt +0 -32
  86. mcp_proxy_adapter/examples/certs/readonly.key +0 -52
  87. mcp_proxy_adapter/examples/certs/readonly_cert.pem +0 -21
  88. mcp_proxy_adapter/examples/certs/readonly_key.pem +0 -28
  89. mcp_proxy_adapter/examples/certs/server.crt +0 -32
  90. mcp_proxy_adapter/examples/certs/server.key +0 -52
  91. mcp_proxy_adapter/examples/certs/server_cert.pem +0 -32
  92. mcp_proxy_adapter/examples/certs/server_key.pem +0 -52
  93. mcp_proxy_adapter/examples/certs/test_ca_ca.crt +0 -20
  94. mcp_proxy_adapter/examples/certs/user.crt +0 -32
  95. mcp_proxy_adapter/examples/certs/user.key +0 -52
  96. mcp_proxy_adapter/examples/certs/user_cert.pem +0 -21
  97. mcp_proxy_adapter/examples/certs/user_key.pem +0 -28
  98. mcp_proxy_adapter/examples/client_configs/api_key_client.json +0 -13
  99. mcp_proxy_adapter/examples/client_configs/basic_auth_client.json +0 -13
  100. mcp_proxy_adapter/examples/client_configs/certificate_client.json +0 -22
  101. mcp_proxy_adapter/examples/client_configs/jwt_client.json +0 -15
  102. mcp_proxy_adapter/examples/client_configs/no_auth_client.json +0 -9
  103. mcp_proxy_adapter/examples/full_application/configs/http_auth.json +0 -37
  104. mcp_proxy_adapter/examples/full_application/configs/http_simple.json +0 -23
  105. mcp_proxy_adapter/examples/full_application/configs/https_auth.json +0 -39
  106. mcp_proxy_adapter/examples/full_application/configs/https_simple.json +0 -25
  107. mcp_proxy_adapter/examples/full_application/configs/mtls_no_roles.json +0 -39
  108. mcp_proxy_adapter/examples/full_application/configs/mtls_with_roles.json +0 -45
  109. mcp_proxy_adapter/examples/full_application/roles.json +0 -21
  110. mcp_proxy_adapter/examples/keys/ca_key.pem +0 -28
  111. mcp_proxy_adapter/examples/keys/mcp_proxy_adapter_ca_ca.key +0 -28
  112. mcp_proxy_adapter/examples/keys/test_ca_ca.key +0 -28
  113. mcp_proxy_adapter/examples/logs/mcp_proxy_adapter.log +0 -220
  114. mcp_proxy_adapter/examples/logs/mcp_proxy_adapter.log.1 +0 -1
  115. mcp_proxy_adapter/examples/logs/mcp_proxy_adapter.log.2 +0 -1
  116. mcp_proxy_adapter/examples/logs/mcp_proxy_adapter.log.3 +0 -1
  117. mcp_proxy_adapter/examples/logs/mcp_proxy_adapter.log.4 +0 -1
  118. mcp_proxy_adapter/examples/logs/mcp_proxy_adapter.log.5 +0 -1
  119. mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_access.log +0 -220
  120. mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_access.log.1 +0 -1
  121. mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_access.log.2 +0 -1
  122. mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_access.log.3 +0 -1
  123. mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_access.log.4 +0 -1
  124. mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_access.log.5 +0 -1
  125. mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_error.log +0 -2
  126. mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_error.log.1 +0 -1
  127. mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_error.log.2 +0 -1
  128. mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_error.log.3 +0 -1
  129. mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_error.log.4 +0 -1
  130. mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_error.log.5 +0 -1
  131. mcp_proxy_adapter/examples/roles.json +0 -38
  132. mcp_proxy_adapter/examples/server_configs/config_basic_http.json +0 -204
  133. mcp_proxy_adapter/examples/server_configs/config_http_token.json +0 -238
  134. mcp_proxy_adapter/examples/server_configs/config_https.json +0 -215
  135. mcp_proxy_adapter/examples/server_configs/config_https_token.json +0 -231
  136. mcp_proxy_adapter/examples/server_configs/config_mtls.json +0 -215
  137. mcp_proxy_adapter/examples/server_configs/config_proxy_registration.json +0 -250
  138. mcp_proxy_adapter/examples/server_configs/config_simple.json +0 -46
  139. mcp_proxy_adapter/examples/server_configs/roles.json +0 -38
  140. mcp_proxy_adapter/utils/config_generator.py +0 -727
  141. mcp_proxy_adapter-6.1.1.dist-info/METADATA +0 -205
  142. mcp_proxy_adapter-6.1.1.dist-info/RECORD +0 -197
  143. mcp_proxy_adapter-6.1.1.dist-info/entry_points.txt +0 -2
  144. mcp_proxy_adapter-6.1.1.dist-info/licenses/LICENSE +0 -21
  145. {mcp_proxy_adapter-6.1.1.dist-info → mcp_proxy_adapter-6.2.1.dist-info}/WHEEL +0 -0
  146. {mcp_proxy_adapter-6.1.1.dist-info → mcp_proxy_adapter-6.2.1.dist-info}/top_level.txt +0 -0
@@ -1,32 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIFiTCCA3GgAwIBAgIUPVpLYroRXKLuF9TdHA/Utkb1RPwwDQYJKoZIhvcNAQEL
3
- BQAwVDELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5
4
- MRUwEwYDVQQKDAxPcmdhbml6YXRpb24xDzANBgNVBAMMBmNsaWVudDAeFw0yNTA4
5
- MjkyMTQxMTFaFw0yNjA4MjkyMTQxMTFaMFQxCzAJBgNVBAYTAlVTMQ4wDAYDVQQI
6
- DAVTdGF0ZTENMAsGA1UEBwwEQ2l0eTEVMBMGA1UECgwMT3JnYW5pemF0aW9uMQ8w
7
- DQYDVQQDDAZjbGllbnQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC7
8
- TiO+GxCPckjjxFgSM0aFVOesQlPhp1Z8JDGWvHyIQ308DBkMwUWn/FwoLtQ1O2WP
9
- 4wNCLD1ytE4HN1CrTZWbL+D+8SglEIWU1dpDf262irffj+ILEtIAfP5GPLN+g/2x
10
- JsSGlARQKeeNVwNdNDIttqLXGoyM2s1lA0aRKqi+LshOpETl0wQLGtUfPi8A1aaN
11
- gA5OVLtuu1jW4UrPRP7o1zA3fK5gk+HCkTb6Rh7f8P1+hPo0V9+65uCq/80tY8Aw
12
- W4+VZL2vpXFPjObadb2uHSVvRl09ypbv9q6PG1pCZ5wkigTeW+nB/qquBs+HjYjR
13
- 1I9qOu46zpKCxuR1dpAP6fAW+HoJtl/eKy2PbuHSzihJjDpAek3KmqMjoFpfgP0A
14
- 6j5k9n623gK2oLZhZmyuK3DeelpoXmxX2xvNg6rxFa4fLDHzArbg9V5BMh6z14ML
15
- czqDK6QEid1d1KqZJOeSuv5imt9qjyweLxtIlwHXhb330K3zPudjinn34FDjVVUi
16
- rdq4se6nKlxIYQbBtrR1Cidl27kIx0BPK+hMGxZAa6sKVp0C3oU25Iw+xzu6ggkn
17
- FWb3mZq4wdM061nE+7SNJ/ggErwekE43x01/RRaw0gPqGgLlUmezDDAdTPYSJwp+
18
- UEyFjVO9E4iZZw3mCxWtMM4O+ne1dZy4J+Fef0YVmQIDAQABo1MwUTAdBgNVHQ4E
19
- FgQUKrCEMyTAojlwKfK/ppgDzdp3fDQwHwYDVR0jBBgwFoAUKrCEMyTAojlwKfK/
20
- ppgDzdp3fDQwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAaVAt
21
- +pTjlkInJbz+cWTbD5Dive1kTwkH1NBOMH1H/xotM37bRWrmXP8NZ7b+ez1NPplN
22
- av3ok07kXIi2ybvmrOIsRubMJnGkS0pfrmd49VzDbzE2nQ4zQ1sg7LoMR3hlzjvG
23
- jGIVcKEZ6vyiHU6yPB8IEP8Ye9HcC0IK/Q2JrYoTVxnYEGKdiZ7D8zp4R/jtOk2v
24
- q67+0R1hbPDe9KwZfuiDjhofuDjBjpPYWyg74SPjspZegQVy2z7dXKZop7AT+TXx
25
- 8P4RDVrENXqOByzj4Xboq2F8KdxQrxnhjfbeu45vwEMeZQAzuJNnmT/aAm2XEZ4M
26
- EmtUOgL8B1+bagqxcS0KK4QDIvGe/uedXzMcszkTvMqRpd7Xpwjqz189575w9Loa
27
- SnFSZElj9Koy1s2njTXgikKioMFEcnN0Ia2pJ4iCzNVOE34pCjCZhroH2luZDWB2
28
- lFcwNKi1q2C6RDCuyWi13clnC9bexw9enZYgI5Z8hQEWF2lCgCL32Dfb4qZZoFvv
29
- gBbDpkoM6nE9PShy1VMa5OY1VKIVNr+1ga/lwpjKNj6UZB0h4r6uFrecTM3dElNZ
30
- VrhHt/EOJzfJ9D2np1TdDQejT8z/P8xp0YhQ0IoZcpVI1o9Mnjh1V6sqhu4kxGj5
31
- jfCGEnYPm1kqNuHPP4Kh04E+lUHO+NgiWcw4c64=
32
- -----END CERTIFICATE-----
@@ -1,52 +0,0 @@
1
- -----BEGIN PRIVATE KEY-----
2
- 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
- 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
- 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
- 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
- 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
- jObadb2uHSVvRl09ypbv9q6PG1pCZ5wkigTeW+nB/qquBs+HjYjR1I9qOu46zpKC
8
- xuR1dpAP6fAW+HoJtl/eKy2PbuHSzihJjDpAek3KmqMjoFpfgP0A6j5k9n623gK2
9
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- OJzwqxxw2d7Tqj0FNUAoUqKo6VIcKxOFg/FQbV04DfcpXtWXdMWZQIO+TJzEb24g
28
- +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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
51
- 0CvyxEnB8U5QYN1JslvBezOToHARkA==
52
- -----END PRIVATE KEY-----
@@ -1,21 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIDZTCCAk0CFHd9bUvLEIc95/KliRyeTqeeIfRyMA0GCSqGSIb3DQEBCwUAMHYx
3
- CzAJBgNVBAYTAlVTMRMwEQYDVQQIDApUZXN0IFN0YXRlMRIwEAYDVQQHDAlUZXN0
4
- IENpdHkxGjAYBgNVBAoMEVRlc3QgT3JnYW5pemF0aW9uMSIwIAYDVQQDDBlNQ1Ag
5
- UHJveHkgQWRhcHRlciBUZXN0IENBMB4XDTI1MDgzMDAxMDUyNloXDTI3MDgzMDAx
6
- MDUyNlowaDELMAkGA1UEBhMCVVMxEzARBgNVBAgMClRlc3QgU3RhdGUxEjAQBgNV
7
- BAcMCVRlc3QgQ2l0eTEaMBgGA1UECgwRVGVzdCBPcmdhbml6YXRpb24xFDASBgNV
8
- BAMMC3VzZXItY2xpZW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
9
- 2jMuwWRw6XJcEEjVzJoPDTI9OeJ/clm+ZH9hEK7+JfHAdgi1Y5qjc0zlXV+PB7VU
10
- qHb4xaCSfJ/vXvqHphyHwi7RRvsEIhVaz4xcYpSMwKHu3suw5+ToH04NruiboQ4z
11
- d+AZB+n0mO40/rovPU80/wQkk7BDmL9Gq8KsBXzMDswXVbH4JciMAvJaqivskpqV
12
- G/WTWp184ABCgu7Jwabj729+EeqM3qwiOuiZ6QnShdzCNf9krHW1voof3RTwjIz3
13
- 5frZounQ6fM/xfJYwvvaXjpanGHJNI8I3SYmMFU2PIndi9dap6XWbXuBXMS2GuQJ
14
- /qO6S3OH8RjFBRECePcNvwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAOXsubWBLS
15
- BpLE3VvE5xz4OU0XcHXeUR8/MbHtx57vf7U2TXX94wcI3NmfqPG66svWmFKSJTeT
16
- YFkgywhAqEIDn8y4Kjg8KCqhLWhadwxwFyTmUTyuDZJ7pFmI54NR/n8fpEv88+3d
17
- 24+ECowt7R5K5zKzaqm6a+AGPaowa/lI1trm0sTG6mKEhn1LmGWWdEi9xGgnQQns
18
- gVzAUuBCPX+jrdu41Eh1w0YMV7UnNuv2a/w3FzVk6NMmhv1TJKliq0Wf3hqY8t4J
19
- W5DrDHgiT+iG5LqMn2O89JXORai+ZmM7duO2dCksFaRngad74ZH7jT8j7BSk01QA
20
- jPliFqnT2iSm
21
- -----END CERTIFICATE-----
@@ -1,28 +0,0 @@
1
- -----BEGIN PRIVATE KEY-----
2
- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDaMy7BZHDpclwQ
3
- SNXMmg8NMj054n9yWb5kf2EQrv4l8cB2CLVjmqNzTOVdX48HtVSodvjFoJJ8n+9e
4
- +oemHIfCLtFG+wQiFVrPjFxilIzAoe7ey7Dn5OgfTg2u6JuhDjN34BkH6fSY7jT+
5
- ui89TzT/BCSTsEOYv0arwqwFfMwOzBdVsfglyIwC8lqqK+ySmpUb9ZNanXzgAEKC
6
- 7snBpuPvb34R6ozerCI66JnpCdKF3MI1/2SsdbW+ih/dFPCMjPfl+tmi6dDp8z/F
7
- 8ljC+9peOlqcYck0jwjdJiYwVTY8id2L11qnpdZte4FcxLYa5An+o7pLc4fxGMUF
8
- EQJ49w2/AgMBAAECggEAPe4zAg7pAUlFGhYiII1FYmB1Aj3oIGOaZ1nECgEw/0IL
9
- dzTnjtqwM6SKoSLjLLPp0FrcJvN5QEgAn7uJzrrgSVwSaAwM00OuX6QeAJjbDj2n
10
- 17KGhnrw6xmzRoaczWyDbS28zQM5OkK55eagS810ZEEfxI9N0EfR3iRFwNT38eaz
11
- G6gKK5cxbJpS+9fXwRHI2qjveTP9oKW7+tI+BO5PrfMJKDZepZAYKJIfmFe95qRb
12
- HOZyj+r4u9E54+bIufITTw+4wtXkE6QdeeYohFm8tuh+PRGG9JCvoYfDlzleaEst
13
- /Cv13rRWtW1WXYyECLWtQT0mg4YJ7LjhpkCopinB2QKBgQD2qX9zQWhRUy2l9TJ8
14
- sTtV4dva0Z23tUrDcqu8xnmQk2ETrBTOmcwXrsX54iDiGl4HGDWSmhf3x02Sziwn
15
- KIMxRN2HLwevwqyJrBOKEfUyGFLe9NyqyJgxfjIhsE3b19ZFj1zYfBgpKM7l4Vuk
16
- Uw9M1Mr6T8Eh8RKisRIzky//CwKBgQDidditt6RhxoWG6ocE/JZXElRD+hg3DuO6
17
- +oqT4XpALz+2TzcvYrdczEP7zdTUF0qS22AocQFC8aK6tRWsBl85md/78kjllMUG
18
- FvUqgl3wgS1lQTYX1ABcxREmzANd8uPCYmDarsOe9VFglEuG1EpM5vtd1QQdfNq1
19
- KRe/YC1snQKBgQCJsftE8ulyJLXh5CxH8YRHICtkTwn1aM4Qp235lu5759oUaka/
20
- QpntSpKYOUTUE5YT7c7SRRVGK8tBPbjmLzZ1hZUJBxcKZel9fUL3G6k+StfQQO8C
21
- o7JaRrFjnxEHvciO0kYpT7UJHQ/KwnAvHnL3F/8rluQgt3wIuEKJ6gusGwKBgEEi
22
- qDn/EhbVZN6TYlZ62DsfGIGc044yiCnlmipCtkjzzh1/112XxSm5zuwEHe0K7fYj
23
- hxratgQtQCL3ps4d3xHQQm5TF8iA69J+k/GwIZjlbssq4IYmAhysyewgze8dx4jH
24
- hxgfIED+SnO+86JKOTy5Sx+H/3ED0lw8/4mZ/ja5AoGAN/QDFATGAxdFFCGsfioN
25
- qphF5Qx43ZWMAmq6TWUNWSIoFmeC2aS+9h9eNWk+qkKyCK1nyBQIUbe+GTI9XF1N
26
- L30A2DiOqKJ/AYrrIRqlFqCYdPXHKacNGhNntXjlPsr+SuupfGk89qHYsdDcUzPi
27
- IfndkXABZSwo4PG7Aidd6xU=
28
- -----END PRIVATE KEY-----
@@ -1,13 +0,0 @@
1
- {
2
- "server_url": "http://localhost:8000",
3
- "timeout": 30,
4
- "retry_attempts": 3,
5
- "retry_delay": 1,
6
- "security": {
7
- "auth_method": "api_key",
8
- "api_key": {
9
- "key": "your_api_key_here",
10
- "header": "X-API-Key"
11
- }
12
- }
13
- }
@@ -1,13 +0,0 @@
1
- {
2
- "server_url": "http://localhost:8000",
3
- "timeout": 30,
4
- "retry_attempts": 3,
5
- "retry_delay": 1,
6
- "security": {
7
- "auth_method": "basic",
8
- "basic": {
9
- "username": "demo_user",
10
- "password": "demo_password"
11
- }
12
- }
13
- }
@@ -1,22 +0,0 @@
1
- {
2
- "server_url": "https://localhost:8443",
3
- "timeout": 30,
4
- "retry_attempts": 3,
5
- "retry_delay": 1,
6
- "security": {
7
- "auth_method": "certificate",
8
- "certificate": {
9
- "enabled": true,
10
- "cert_file": "./certs/client.crt",
11
- "key_file": "./keys/client.key",
12
- "ca_cert_file": "./certs/ca.crt"
13
- },
14
- "ssl": {
15
- "enabled": true,
16
- "check_hostname": true,
17
- "ca_cert_file": "./certs/ca.crt",
18
- "verify_mode": "CERT_REQUIRED",
19
- "min_tls_version": "TLSv1.2"
20
- }
21
- }
22
- }
@@ -1,15 +0,0 @@
1
- {
2
- "server_url": "http://localhost:8000",
3
- "timeout": 30,
4
- "retry_attempts": 3,
5
- "retry_delay": 1,
6
- "security": {
7
- "auth_method": "jwt",
8
- "jwt": {
9
- "username": "demo_user",
10
- "password": "demo_password",
11
- "secret": "your_jwt_secret_here",
12
- "expiry_hours": 24
13
- }
14
- }
15
- }
@@ -1,9 +0,0 @@
1
- {
2
- "server_url": "http://localhost:8000",
3
- "timeout": 30,
4
- "retry_attempts": 3,
5
- "retry_delay": 1,
6
- "security": {
7
- "auth_method": "none"
8
- }
9
- }
@@ -1,37 +0,0 @@
1
- {
2
- "server": {
3
- "host": "0.0.0.0",
4
- "port": 8001,
5
- "debug": false,
6
- "log_level": "INFO"
7
- },
8
- "ssl": {
9
- "enabled": false
10
- },
11
- "security": {
12
- "enabled": true,
13
- "auth": {
14
- "enabled": true,
15
- "methods": ["api_key"],
16
- "api_keys": {
17
- "admin": "admin-secret-key-123",
18
- "user": "user-secret-key-456"
19
- }
20
- },
21
- "rate_limit": {
22
- "enabled": true,
23
- "requests_per_minute": 60,
24
- "requests_per_hour": 1000,
25
- "burst_limit": 10
26
- }
27
- },
28
- "logging": {
29
- "level": "INFO",
30
- "console_output": true,
31
- "file_output": false
32
- },
33
- "commands": {
34
- "auto_discovery": true,
35
- "commands_directory": "./commands"
36
- }
37
- }
@@ -1,23 +0,0 @@
1
- {
2
- "server": {
3
- "host": "0.0.0.0",
4
- "port": 8000,
5
- "debug": false,
6
- "log_level": "INFO"
7
- },
8
- "ssl": {
9
- "enabled": false
10
- },
11
- "security": {
12
- "enabled": false
13
- },
14
- "logging": {
15
- "level": "INFO",
16
- "console_output": true,
17
- "file_output": false
18
- },
19
- "commands": {
20
- "auto_discovery": true,
21
- "commands_directory": "./commands"
22
- }
23
- }
@@ -1,39 +0,0 @@
1
- {
2
- "server": {
3
- "host": "0.0.0.0",
4
- "port": 8444,
5
- "debug": false,
6
- "log_level": "INFO"
7
- },
8
- "ssl": {
9
- "enabled": true,
10
- "cert_file": "./certs/server.crt",
11
- "key_file": "./certs/server.key"
12
- },
13
- "security": {
14
- "enabled": true,
15
- "auth": {
16
- "enabled": true,
17
- "methods": ["api_key"],
18
- "api_keys": {
19
- "admin": "admin-secret-key-123",
20
- "user": "user-secret-key-456"
21
- }
22
- },
23
- "rate_limit": {
24
- "enabled": true,
25
- "requests_per_minute": 60,
26
- "requests_per_hour": 1000,
27
- "burst_limit": 10
28
- }
29
- },
30
- "logging": {
31
- "level": "INFO",
32
- "console_output": true,
33
- "file_output": false
34
- },
35
- "commands": {
36
- "auto_discovery": true,
37
- "commands_directory": "./commands"
38
- }
39
- }
@@ -1,25 +0,0 @@
1
- {
2
- "server": {
3
- "host": "0.0.0.0",
4
- "port": 8443,
5
- "debug": false,
6
- "log_level": "INFO"
7
- },
8
- "ssl": {
9
- "enabled": true,
10
- "cert_file": "./certs/server.crt",
11
- "key_file": "./certs/server.key"
12
- },
13
- "security": {
14
- "enabled": false
15
- },
16
- "logging": {
17
- "level": "INFO",
18
- "console_output": true,
19
- "file_output": false
20
- },
21
- "commands": {
22
- "auto_discovery": true,
23
- "commands_directory": "./commands"
24
- }
25
- }
@@ -1,39 +0,0 @@
1
- {
2
- "server": {
3
- "host": "0.0.0.0",
4
- "port": 9443,
5
- "debug": false,
6
- "log_level": "INFO"
7
- },
8
- "ssl": {
9
- "enabled": true,
10
- "cert_file": "./certs/server.crt",
11
- "key_file": "./certs/server.key",
12
- "ca_cert": "./certs/ca.crt",
13
- "verify_client": true,
14
- "client_cert_required": true
15
- },
16
- "security": {
17
- "enabled": true,
18
- "auth": {
19
- "enabled": true,
20
- "methods": ["certificate"],
21
- "certificate_auth": true
22
- },
23
- "rate_limit": {
24
- "enabled": true,
25
- "requests_per_minute": 60,
26
- "requests_per_hour": 1000,
27
- "burst_limit": 10
28
- }
29
- },
30
- "logging": {
31
- "level": "INFO",
32
- "console_output": true,
33
- "file_output": false
34
- },
35
- "commands": {
36
- "auto_discovery": true,
37
- "commands_directory": "./commands"
38
- }
39
- }
@@ -1,45 +0,0 @@
1
- {
2
- "server": {
3
- "host": "0.0.0.0",
4
- "port": 9444,
5
- "debug": false,
6
- "log_level": "INFO"
7
- },
8
- "ssl": {
9
- "enabled": true,
10
- "cert_file": "./certs/server.crt",
11
- "key_file": "./certs/server.key",
12
- "ca_cert": "./certs/ca.crt",
13
- "verify_client": true,
14
- "client_cert_required": true
15
- },
16
- "security": {
17
- "enabled": true,
18
- "auth": {
19
- "enabled": true,
20
- "methods": ["certificate"],
21
- "certificate_auth": true
22
- },
23
- "permissions": {
24
- "enabled": true,
25
- "roles_file": "./roles.json",
26
- "default_role": "user",
27
- "deny_by_default": true
28
- },
29
- "rate_limit": {
30
- "enabled": true,
31
- "requests_per_minute": 60,
32
- "requests_per_hour": 1000,
33
- "burst_limit": 10
34
- }
35
- },
36
- "logging": {
37
- "level": "INFO",
38
- "console_output": true,
39
- "file_output": false
40
- },
41
- "commands": {
42
- "auto_discovery": true,
43
- "commands_directory": "./commands"
44
- }
45
- }
@@ -1,21 +0,0 @@
1
- {
2
- "roles": {
3
- "admin": {
4
- "permissions": ["*"],
5
- "description": "Administrator with full access"
6
- },
7
- "user": {
8
- "permissions": ["read", "write"],
9
- "description": "Regular user with read/write access"
10
- },
11
- "readonly": {
12
- "permissions": ["read"],
13
- "description": "Read-only user"
14
- }
15
- },
16
- "user_roles": {
17
- "admin": "admin",
18
- "user": "user",
19
- "readonly": "readonly"
20
- }
21
- }
@@ -1,28 +0,0 @@
1
- -----BEGIN PRIVATE KEY-----
2
- MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDLlJMRJelqXw2E
3
- AHQf8KnxSbiqY8Ee2q5G7xjgyamBae4HdOcCoLu4GA7mvSmBZDvj6NuVjdYKhKYH
4
- TzfT1aXgwx9DZykDB9/ApbPYFO3rndu0c5xxST8iJqtLk5YJ+yM04rCv3miQhdSN
5
- ZjNlInihC5uoOXrVyUgrgxKjOxhkudW1CIaIgaIlbJcftffUzEtcfYgSMc0J3EZX
6
- E3fvX+9xqWMWfpcoftWMHZpcbV+1dke68s+i5F+98TEG2JxbmlkXgNq0xRdWpcnV
7
- osU4sYxfKiKCWN5RUlumx9Xh1Mlw4m/C38ZgM3/DWS+0dAl5r4Q0lObBF0ej54U4
8
- BVgMMOPJAgMBAAECggEAARkcj/ed4jKADqm39qIkMIZ+xgCCvqlcTkqk3jWIQgfx
9
- vj2Nr3BxgsUyc2Eq06VYQ1rysERTFrxvbtOpD+3zlppG1WS9jmQg+1eJeE1omSBB
10
- WqBTBDNqcUM3IlG5+fTOVE8yt8gh1UG7i0W1WkLM1sWKweYJeRS8XGu5EoNTltt9
11
- SDWsx5fCjHMviYhEiHOkkP62ZjdsrH7qYvoR6AeWAUWODy253cWs/Fzj6OeGk7VO
12
- qLw7i7geWpzmosevfd+fxVJW0UOKKMGngI8xPeJnpQJDL1Vrb+fUeJ0Hu9LXWR9d
13
- 6LKoP9gaKvXLA4NmkkX+B0+fBVWTR3rAuYRgxLJeAQKBgQD5N1Dw3ocayMM3RqOq
14
- l6OkGxd+kssnSJN3yZiOBXHy7923mhAMP2KKTP9z3J/CzjWxfRbLEwKWn3Ft2IzM
15
- WCbQKFTKRWGJeOg0I2k6DI68x7Wqw5kkc3NogxziWOO67UPgHNWsXFR9H9XzAB5+
16
- RY7THOrHPIjQIeT2xEHeh/UOgQKBgQDRHz3t0iRt3Qj58RxknbXbTA82FijPF2Xc
17
- ByzJQNZs2+nYlB+S4MB/XCzMfJdP+FrA8BZ5MOT90TBIqYmIo2mnY6/D9XeGaOti
18
- H8xV45x0C2RlNXCX9Nn4P+j64fZdHVp2+rirNqvyTKN7fKI/Cbd3TMipJUGe77N4
19
- 5KmPMCFBSQKBgQDPEDrcJsgyZORuJO8Pana4fxoCPI020oJUYNe0CKooo0ugpQz4
20
- YCHLrzYAWisTfKn4EmrBx8W6yDdCgU5a6lM1WI06knL7+c1UpKdlZ9Gg4H38qA+x
21
- zYryJx30os50HXbr2olecEhyveTRxiOP3tNQbRJU/+Lcq4zFy0K/Vk8yAQKBgF7J
22
- 9H46BH0v9YOlgKMywV23qiVwAetsxaToM6q9kvQg8mxTJ8Shz19rXnsJ9mQvRKOz
23
- r9wbB5DtIx+siUTAHYHcM611NEpegGMn2q0L0Lzg9Q7THEgkmjBmd6pQhiVKytin
24
- aNFipKndhzTQF5LPSrPuv/27f3UVXZpsu1bGECzRAoGBAIBAJPYmlt8Mfhhvi9Yg
25
- OXhlqPT7PjRBu+YaoineS5BNZ9V/23ib7iAOClCxdX+7doHI0VKzMyGJR2xa7Rzl
26
- /oRInNWGU2UV+mCb6FoYohfHX0OFkelKJOZsyxWUrQ93IipwBTomoQnnrEExSzLh
27
- r0FGAumOHw6zwjmbFSXRbPvs
28
- -----END PRIVATE KEY-----
@@ -1,28 +0,0 @@
1
- -----BEGIN PRIVATE KEY-----
2
- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDWjQzvziU+/Y+S
3
- wXDHXvcG5/ZV3C/R/9JhKZCAJ2g28Dg97Xjf9L8hh+Wzpkj3wDJL2Ho76nMegO5V
4
- +m/HFVabSA/dn4bxOGqL5v7AXkQrdWRATYMRmGG6lS1NZC6pHRuD/Oun76Jv9aiN
5
- QyYkLR3iFY8+pQTFhJX2MOO99gmPtAPmy3l3Zu1l2S87TB5Lv8MGuhSuPoNTWzND
6
- hKP06oX6BCpqmqgkgo0Moy7SaVWAxviyZFjv/SbxUVU1kXqXJpUFoyCHX4ocQqNT
7
- iGl+M2q0VZm9slhNuisoR7RfAx8eEBcPebOIlqzHBvq3hGgYeWWjnW34OrNwmhx1
8
- kAPu3CRhAgMBAAECggEACi6y4NAGzSuEMdyDuWKUv2Yo4cBLy1/5yxS0P/DJgw9O
9
- 4VmGNWgh3g8wuUr4sZFp5wGaI4J9U4Lzohmlo8GBKmjMH/eJ6aQvd6j53tqvyjmN
10
- uCOK8eh/0uFw6fhe4osixYEuafpMhPBtacQ4aNp0ovM6U33KG9musvrKWYygvYog
11
- /FUsR/3iUx0FK2Bpa9O7BDNpau7QdBwXyoQAv/BY+lGysdtfwuJOiQdIxg2if15v
12
- QUgryNV+x6v2mmVV/wiJ/H+3D1Els+BQG5DA3s0IjblEKYKryA6xM5WdSLUCADt4
13
- gE5V4yJ652iHPGd9X0OZ3wKEz55HJecIW6O8UORQsQKBgQD3uYdVLLMReZxV2tfk
14
- hoIJ2HEtiJjCmvjnL5fSbLGVTnkCi/S94X02UsKeHnrkzR/QCRzSBKdOkPZXinMZ
15
- cDYv4z7rNolBMc2Itqq27g5Yxu0NpJ1303QOc3m97O37X8y6r+TYj8frRJrx7iG1
16
- 9N11j99ZoP9vH2LHcdDubcDL5QKBgQDdt9RYwyFo/vmi8I1KdYBScNXXujf6spPa
17
- jgeZ3tP8Dkhuf2oABjflK7G4ySIAPl9BDBgc9paY4IcHkgw2YJd5pyYMaCrk4mPg
18
- NnYCthGIxSzpeqfaFIEavE8/zxeT9jhTh7ScFCFqaUFtzzlzjTzc54MNm5fhc9oq
19
- 2I4rl9OGzQKBgQCbjSQtl6PZlUNVpdVq6gs9o2tt7BgAGs+wW3I574aS+nOB5eAI
20
- W08EjXMnVnxUr3kKaK5wMfvcmaoVzhn4Hz3nVApuKBCHn34wGoOX2mOn20F/D57R
21
- XzXA3UHUwLGu5rjngQtx8NbYJHwm7iC84MUuzOiynyXF4S9ljVJkZQZrAQKBgGOg
22
- /DlajYPJt1FBeKvxutTQwTasBgWQAyJdWgsJdwY3QNLuTCpwoONIzBZ1wuKLJHBt
23
- R9ST9b4CfoqnVPeGVeqjclR25ndtR2Xz8vlq6NwlhfXwWMaFGjJyVcYdf8HMDSlz
24
- vHO6E/3mCDGYwX8sAyJcoaYWuZvkXC+Omev60GEtAoGAeryzTJzl8DHbDKk/3Zvv
25
- Zo6CbiPh2iBdb6PoPL4cSg/NBDNuHrnWPr/N0RZ5D/cNfA8cv20I1tWBPr+X6r3F
26
- 2QQKSVt89JqfWJ1Xpj2Nxpnfa3QGFiQFCG5/366rZgASaQsuZNTAVgpbMEpwCjzI
27
- t0rl84AcRvCvzc67//51jZg=
28
- -----END PRIVATE KEY-----
@@ -1,28 +0,0 @@
1
- -----BEGIN PRIVATE KEY-----
2
- MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDLj3pcpg4owGNK
3
- +8KT5FbXuGKYH0577+h9RE0KGC9JrJxCn8O1g62lRcpDCQ8IGwPn97wVGfbAG8ei
4
- iQUfEPNfkaILv+f2j69tZIbhwuuUjfip8Xy4qcMCYTOnoB8ruwpwiKC8VCmWOOG+
5
- ma59isHAc0WuNhM+UXmkvEh1CnW3IlmRSilkLAdAI0Z+LkJH6Olb8loFsCcIb3kS
6
- +FXrviS10eUXxntwNmyHV29svqByS+l5vxloatsMpRZWKZVRr9avYEZhtV37Ae/k
7
- JD5dqGGa4+5iJJiN9FBmxr7FRJ1/w35fFzR9TP2UyBNhMrEGTii2abITzrSS+nid
8
- jSBj01kxAgMBAAECggEAUGEvAZ+mjqvtaWIBgvGS4yrRb91I2gKxTKmoPBixr4dj
9
- yqEYoDfHXTAyPoc4sswsHjCCSdjPSSuPCJzPc2V3nKC+mqIkQAWb0Xf1FPepm6b1
10
- 7nFHfQm30dw9D+9X76YzaJ1izwrywvliFqfLsZIVkN9TwAdlUOHORWD9wY2oTvAi
11
- JS7PvTCWuqv4JkAIPZz2UIMBSv7ZajFr4Ysa2Sp9MM2kbIA7uE66HoIF7ic7eD6P
12
- a6vaFQ23oDs/ZkL73L4goD0283E0HZ/RIBXgFTVvS4bOfbU+ShgRuznX9MmTJIXP
13
- kgIbgOa3gJhvkKvmLsame9QP7nXzLQiystFqa7B6KwKBgQD1u5ztEkt2CQ1EFjMG
14
- 9A6kCMPsJHn/HFVbQcs2ZEPiZ7ioTamWZDziP0ykzrymNqkBqOcqEpAj6OUKbFpA
15
- 8Q1sxVkZZrJmlOMT73Hzv0fyS2sRVH7ee4uFjVd67lVoWjKFOu/CAooz82IkI6r0
16
- qTGaPbCsz0w4U5ka+ZQWw1RQpwKBgQDUEMi7di8YAZYEwiYNDzee+E6JcJ1z/URU
17
- 29DO+5YIhVHLft6vLWqe5law/oQlKULN6k3FO/zd977DoS0c9ALgKgDuhf46NXSk
18
- ukboc2Yplt1LtFOlE7JeYuiHacRHwh+j5ToVlcUVZywXmadDpnNLmWqmivqw9th/
19
- V/0AiOiqZwKBgQC5ORR9IfgdXY9RTgZibF4IyM6dVZVbdQjlw38gXY1Jv/LRcdCt
20
- mprF0v67j1VlV/gmVyD/doSNfMQAClIxd0EuRsb1PZKlff54DVlwaDMb8DshEfab
21
- TraJEVPqRnG8OZixEg6cx3tS01abdQMsbcgEwhFFAPAr2N+kFJHKYqtQKwKBgQCs
22
- U5dK/pb2YxONeleBdUQ1ooHvndvVTZIhgx8Dk94vvmbhfo9muvlRdswruCeaKxVm
23
- T2gzRrQNjC0wu+D1DjToBDoNmkUk+Bt5YQYODviOA1KBGmB+XKstmCJtJ72gslcT
24
- 0EqLD9G/ur9RzkLl7nTykhDglT9yXqU/lji6HoczMQKBgAYhRQeD9pjWPw1+I3Em
25
- ZwKrAWmOsQKjV4oURU2U/QHKuyzH/H5XkKXpJgpCnYU6XRmIGWvoH/SyLvFv4fhC
26
- SN8NEoT5JuuMrrJP2m0lWen52ATuuBt/PD+9CSkm9lD9zTG0V9V/he0wYXYv5yYA
27
- 52PiP265yj3oroWvGzUwJxxR
28
- -----END PRIVATE KEY-----