mcp-proxy-adapter 6.0.0__py3-none-any.whl → 6.1.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.
- mcp_proxy_adapter/api/app.py +174 -80
- mcp_proxy_adapter/api/handlers.py +16 -5
- mcp_proxy_adapter/api/middleware/__init__.py +9 -4
- mcp_proxy_adapter/api/middleware/command_permission_middleware.py +148 -0
- mcp_proxy_adapter/api/middleware/factory.py +36 -12
- mcp_proxy_adapter/api/middleware/protocol_middleware.py +32 -13
- mcp_proxy_adapter/api/middleware/unified_security.py +160 -0
- mcp_proxy_adapter/api/middleware/user_info_middleware.py +83 -0
- mcp_proxy_adapter/commands/__init__.py +7 -1
- mcp_proxy_adapter/commands/base.py +7 -4
- mcp_proxy_adapter/commands/builtin_commands.py +8 -2
- mcp_proxy_adapter/commands/command_registry.py +8 -0
- mcp_proxy_adapter/commands/echo_command.py +81 -0
- mcp_proxy_adapter/commands/help_command.py +21 -14
- mcp_proxy_adapter/commands/proxy_registration_command.py +326 -185
- mcp_proxy_adapter/commands/role_test_command.py +141 -0
- mcp_proxy_adapter/commands/security_command.py +488 -0
- mcp_proxy_adapter/commands/ssl_setup_command.py +2 -2
- mcp_proxy_adapter/commands/token_management_command.py +1 -1
- mcp_proxy_adapter/config.py +81 -21
- mcp_proxy_adapter/core/app_factory.py +326 -0
- mcp_proxy_adapter/core/client_security.py +384 -0
- mcp_proxy_adapter/core/logging.py +8 -3
- mcp_proxy_adapter/core/mtls_asgi.py +156 -0
- mcp_proxy_adapter/core/mtls_asgi_app.py +187 -0
- mcp_proxy_adapter/core/protocol_manager.py +139 -8
- mcp_proxy_adapter/core/proxy_client.py +602 -0
- mcp_proxy_adapter/core/proxy_registration.py +299 -47
- mcp_proxy_adapter/core/security_adapter.py +12 -15
- mcp_proxy_adapter/core/security_integration.py +285 -0
- mcp_proxy_adapter/core/server_adapter.py +345 -0
- mcp_proxy_adapter/core/server_engine.py +364 -0
- mcp_proxy_adapter/core/unified_config_adapter.py +579 -0
- mcp_proxy_adapter/docs/EN/TROUBLESHOOTING.md +285 -0
- mcp_proxy_adapter/docs/RU/TROUBLESHOOTING.md +285 -0
- mcp_proxy_adapter/examples/README.md +230 -97
- mcp_proxy_adapter/examples/README_EN.md +258 -0
- mcp_proxy_adapter/examples/SECURITY_TESTING.md +455 -0
- mcp_proxy_adapter/examples/basic_framework/configs/http_auth.json +37 -0
- mcp_proxy_adapter/examples/basic_framework/configs/http_simple.json +23 -0
- mcp_proxy_adapter/examples/basic_framework/configs/https_auth.json +43 -0
- mcp_proxy_adapter/examples/basic_framework/configs/https_no_protocol_middleware.json +36 -0
- mcp_proxy_adapter/examples/basic_framework/configs/https_simple.json +29 -0
- mcp_proxy_adapter/examples/basic_framework/configs/mtls_no_protocol_middleware.json +34 -0
- mcp_proxy_adapter/examples/basic_framework/configs/mtls_no_roles.json +39 -0
- mcp_proxy_adapter/examples/basic_framework/configs/mtls_simple.json +35 -0
- mcp_proxy_adapter/examples/basic_framework/configs/mtls_with_roles.json +45 -0
- mcp_proxy_adapter/examples/basic_framework/main.py +63 -0
- mcp_proxy_adapter/examples/basic_framework/roles.json +21 -0
- mcp_proxy_adapter/examples/cert_config.json +9 -0
- mcp_proxy_adapter/examples/certs/admin.crt +32 -0
- mcp_proxy_adapter/examples/certs/admin.key +52 -0
- mcp_proxy_adapter/examples/certs/admin_cert.pem +21 -0
- mcp_proxy_adapter/examples/certs/admin_key.pem +28 -0
- mcp_proxy_adapter/examples/certs/ca_cert.pem +23 -0
- mcp_proxy_adapter/examples/certs/ca_cert.srl +1 -0
- mcp_proxy_adapter/examples/certs/ca_key.pem +28 -0
- mcp_proxy_adapter/examples/certs/cert_config.json +9 -0
- mcp_proxy_adapter/examples/certs/client.crt +32 -0
- mcp_proxy_adapter/examples/certs/client.key +52 -0
- mcp_proxy_adapter/examples/certs/client_admin.crt +32 -0
- mcp_proxy_adapter/examples/certs/client_admin.key +52 -0
- mcp_proxy_adapter/examples/certs/client_user.crt +32 -0
- mcp_proxy_adapter/examples/certs/client_user.key +52 -0
- mcp_proxy_adapter/examples/certs/guest_cert.pem +21 -0
- mcp_proxy_adapter/examples/certs/guest_key.pem +28 -0
- mcp_proxy_adapter/examples/certs/mcp_proxy_adapter_ca_ca.crt +23 -0
- mcp_proxy_adapter/examples/certs/proxy_cert.pem +21 -0
- mcp_proxy_adapter/examples/certs/proxy_key.pem +28 -0
- mcp_proxy_adapter/examples/certs/readonly.crt +32 -0
- mcp_proxy_adapter/examples/certs/readonly.key +52 -0
- mcp_proxy_adapter/examples/certs/readonly_cert.pem +21 -0
- mcp_proxy_adapter/examples/certs/readonly_key.pem +28 -0
- mcp_proxy_adapter/examples/certs/server.crt +32 -0
- mcp_proxy_adapter/examples/certs/server.key +52 -0
- mcp_proxy_adapter/examples/certs/server_cert.pem +32 -0
- mcp_proxy_adapter/examples/certs/server_key.pem +52 -0
- mcp_proxy_adapter/examples/certs/test_ca_ca.crt +20 -0
- mcp_proxy_adapter/examples/certs/user.crt +32 -0
- mcp_proxy_adapter/examples/certs/user.key +52 -0
- mcp_proxy_adapter/examples/certs/user_cert.pem +21 -0
- mcp_proxy_adapter/examples/certs/user_key.pem +28 -0
- mcp_proxy_adapter/examples/client_configs/api_key_client.json +13 -0
- mcp_proxy_adapter/examples/client_configs/basic_auth_client.json +13 -0
- mcp_proxy_adapter/examples/client_configs/certificate_client.json +22 -0
- mcp_proxy_adapter/examples/client_configs/jwt_client.json +15 -0
- mcp_proxy_adapter/examples/client_configs/no_auth_client.json +9 -0
- mcp_proxy_adapter/examples/commands/__init__.py +1 -0
- mcp_proxy_adapter/examples/create_certificates_simple.py +307 -0
- mcp_proxy_adapter/examples/debug_request_state.py +144 -0
- mcp_proxy_adapter/examples/debug_role_chain.py +205 -0
- mcp_proxy_adapter/examples/demo_client.py +341 -0
- mcp_proxy_adapter/examples/full_application/commands/custom_echo_command.py +99 -0
- mcp_proxy_adapter/examples/full_application/commands/dynamic_calculator_command.py +106 -0
- mcp_proxy_adapter/examples/full_application/configs/http_auth.json +37 -0
- mcp_proxy_adapter/examples/full_application/configs/http_simple.json +23 -0
- mcp_proxy_adapter/examples/full_application/configs/https_auth.json +39 -0
- mcp_proxy_adapter/examples/full_application/configs/https_simple.json +25 -0
- mcp_proxy_adapter/examples/full_application/configs/mtls_no_roles.json +39 -0
- mcp_proxy_adapter/examples/full_application/configs/mtls_with_roles.json +45 -0
- mcp_proxy_adapter/examples/full_application/hooks/application_hooks.py +97 -0
- mcp_proxy_adapter/examples/full_application/hooks/builtin_command_hooks.py +95 -0
- mcp_proxy_adapter/examples/full_application/main.py +138 -0
- mcp_proxy_adapter/examples/full_application/roles.json +21 -0
- mcp_proxy_adapter/examples/generate_all_certificates.py +429 -0
- mcp_proxy_adapter/examples/generate_certificates.py +121 -0
- mcp_proxy_adapter/examples/keys/ca_key.pem +28 -0
- mcp_proxy_adapter/examples/keys/mcp_proxy_adapter_ca_ca.key +28 -0
- mcp_proxy_adapter/examples/keys/test_ca_ca.key +28 -0
- mcp_proxy_adapter/examples/logs/mcp_proxy_adapter.log +220 -0
- mcp_proxy_adapter/examples/logs/mcp_proxy_adapter.log.1 +1 -0
- mcp_proxy_adapter/examples/logs/mcp_proxy_adapter.log.2 +1 -0
- mcp_proxy_adapter/examples/logs/mcp_proxy_adapter.log.3 +1 -0
- mcp_proxy_adapter/examples/logs/mcp_proxy_adapter.log.4 +1 -0
- mcp_proxy_adapter/examples/logs/mcp_proxy_adapter.log.5 +1 -0
- mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_access.log +220 -0
- mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_access.log.1 +1 -0
- mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_access.log.2 +1 -0
- mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_access.log.3 +1 -0
- mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_access.log.4 +1 -0
- mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_access.log.5 +1 -0
- mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_error.log +2 -0
- mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_error.log.1 +1 -0
- mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_error.log.2 +1 -0
- mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_error.log.3 +1 -0
- mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_error.log.4 +1 -0
- mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_error.log.5 +1 -0
- mcp_proxy_adapter/examples/proxy_registration_example.py +401 -0
- mcp_proxy_adapter/examples/roles.json +38 -0
- mcp_proxy_adapter/examples/run_example.py +81 -0
- mcp_proxy_adapter/examples/run_security_tests.py +326 -0
- mcp_proxy_adapter/examples/run_security_tests_fixed.py +300 -0
- mcp_proxy_adapter/examples/security_test_client.py +743 -0
- mcp_proxy_adapter/examples/server_configs/config_basic_http.json +204 -0
- mcp_proxy_adapter/examples/server_configs/config_http_token.json +238 -0
- mcp_proxy_adapter/examples/server_configs/config_https.json +215 -0
- mcp_proxy_adapter/examples/server_configs/config_https_token.json +231 -0
- mcp_proxy_adapter/examples/server_configs/config_mtls.json +215 -0
- mcp_proxy_adapter/examples/server_configs/config_proxy_registration.json +250 -0
- mcp_proxy_adapter/examples/server_configs/config_simple.json +46 -0
- mcp_proxy_adapter/examples/server_configs/roles.json +38 -0
- mcp_proxy_adapter/examples/test_config_generator.py +110 -0
- mcp_proxy_adapter/examples/test_examples.py +344 -0
- mcp_proxy_adapter/examples/universal_client.py +628 -0
- mcp_proxy_adapter/main.py +21 -10
- mcp_proxy_adapter/utils/config_generator.py +727 -0
- mcp_proxy_adapter/version.py +5 -2
- mcp_proxy_adapter-6.1.1.dist-info/METADATA +205 -0
- mcp_proxy_adapter-6.1.1.dist-info/RECORD +197 -0
- mcp_proxy_adapter-6.1.1.dist-info/entry_points.txt +2 -0
- {mcp_proxy_adapter-6.0.0.dist-info → mcp_proxy_adapter-6.1.1.dist-info}/licenses/LICENSE +2 -2
- mcp_proxy_adapter/api/middleware/auth.py +0 -146
- mcp_proxy_adapter/api/middleware/auth_adapter.py +0 -235
- mcp_proxy_adapter/api/middleware/mtls_adapter.py +0 -305
- mcp_proxy_adapter/api/middleware/mtls_middleware.py +0 -296
- mcp_proxy_adapter/api/middleware/rate_limit.py +0 -152
- mcp_proxy_adapter/api/middleware/rate_limit_adapter.py +0 -241
- mcp_proxy_adapter/api/middleware/roles_adapter.py +0 -365
- mcp_proxy_adapter/api/middleware/roles_middleware.py +0 -381
- mcp_proxy_adapter/api/middleware/security.py +0 -376
- mcp_proxy_adapter/api/middleware/token_auth_middleware.py +0 -261
- mcp_proxy_adapter/examples/__init__.py +0 -7
- mcp_proxy_adapter/examples/basic_server/README.md +0 -60
- mcp_proxy_adapter/examples/basic_server/__init__.py +0 -7
- mcp_proxy_adapter/examples/basic_server/basic_custom_settings.json +0 -39
- mcp_proxy_adapter/examples/basic_server/config.json +0 -70
- mcp_proxy_adapter/examples/basic_server/config_all_protocols.json +0 -54
- mcp_proxy_adapter/examples/basic_server/config_http.json +0 -70
- mcp_proxy_adapter/examples/basic_server/config_http_only.json +0 -52
- mcp_proxy_adapter/examples/basic_server/config_https.json +0 -58
- mcp_proxy_adapter/examples/basic_server/config_mtls.json +0 -58
- mcp_proxy_adapter/examples/basic_server/config_ssl.json +0 -46
- mcp_proxy_adapter/examples/basic_server/custom_settings_example.py +0 -238
- mcp_proxy_adapter/examples/basic_server/server.py +0 -114
- mcp_proxy_adapter/examples/custom_commands/README.md +0 -127
- mcp_proxy_adapter/examples/custom_commands/__init__.py +0 -27
- mcp_proxy_adapter/examples/custom_commands/advanced_hooks.py +0 -566
- mcp_proxy_adapter/examples/custom_commands/auto_commands/__init__.py +0 -6
- mcp_proxy_adapter/examples/custom_commands/auto_commands/auto_echo_command.py +0 -103
- mcp_proxy_adapter/examples/custom_commands/auto_commands/auto_info_command.py +0 -111
- mcp_proxy_adapter/examples/custom_commands/auto_commands/test_command.py +0 -105
- mcp_proxy_adapter/examples/custom_commands/catalog/commands/test_command.py +0 -129
- mcp_proxy_adapter/examples/custom_commands/config.json +0 -118
- mcp_proxy_adapter/examples/custom_commands/config_all_protocols.json +0 -46
- mcp_proxy_adapter/examples/custom_commands/config_https_only.json +0 -46
- mcp_proxy_adapter/examples/custom_commands/config_https_transport.json +0 -33
- mcp_proxy_adapter/examples/custom_commands/config_mtls_only.json +0 -46
- mcp_proxy_adapter/examples/custom_commands/config_mtls_transport.json +0 -33
- mcp_proxy_adapter/examples/custom_commands/config_single_transport.json +0 -33
- mcp_proxy_adapter/examples/custom_commands/custom_health_command.py +0 -169
- mcp_proxy_adapter/examples/custom_commands/custom_help_command.py +0 -215
- mcp_proxy_adapter/examples/custom_commands/custom_openapi_generator.py +0 -76
- mcp_proxy_adapter/examples/custom_commands/custom_settings.json +0 -96
- mcp_proxy_adapter/examples/custom_commands/custom_settings_manager.py +0 -241
- mcp_proxy_adapter/examples/custom_commands/data_transform_command.py +0 -135
- mcp_proxy_adapter/examples/custom_commands/echo_command.py +0 -122
- mcp_proxy_adapter/examples/custom_commands/full_help_response.json +0 -1
- mcp_proxy_adapter/examples/custom_commands/generated_openapi.json +0 -629
- mcp_proxy_adapter/examples/custom_commands/get_openapi.py +0 -103
- mcp_proxy_adapter/examples/custom_commands/hooks.py +0 -230
- mcp_proxy_adapter/examples/custom_commands/intercept_command.py +0 -123
- mcp_proxy_adapter/examples/custom_commands/loadable_commands/test_ignored.py +0 -129
- mcp_proxy_adapter/examples/custom_commands/manual_echo_command.py +0 -103
- mcp_proxy_adapter/examples/custom_commands/proxy_connection_manager.py +0 -278
- mcp_proxy_adapter/examples/custom_commands/server.py +0 -252
- mcp_proxy_adapter/examples/custom_commands/simple_openapi_server.py +0 -75
- mcp_proxy_adapter/examples/custom_commands/start_server_with_proxy_manager.py +0 -299
- mcp_proxy_adapter/examples/custom_commands/start_server_with_registration.py +0 -278
- mcp_proxy_adapter/examples/custom_commands/test_hooks.py +0 -176
- mcp_proxy_adapter/examples/custom_commands/test_openapi.py +0 -27
- mcp_proxy_adapter/examples/custom_commands/test_registry.py +0 -23
- mcp_proxy_adapter/examples/custom_commands/test_simple.py +0 -19
- mcp_proxy_adapter/examples/custom_project_example/README.md +0 -103
- mcp_proxy_adapter/examples/custom_project_example/README_EN.md +0 -103
- mcp_proxy_adapter/examples/deployment/README.md +0 -49
- mcp_proxy_adapter/examples/deployment/__init__.py +0 -7
- mcp_proxy_adapter/examples/deployment/config.development.json +0 -8
- mcp_proxy_adapter/examples/deployment/config.json +0 -29
- mcp_proxy_adapter/examples/deployment/config.production.json +0 -12
- mcp_proxy_adapter/examples/deployment/config.staging.json +0 -11
- mcp_proxy_adapter/examples/deployment/docker-compose.yml +0 -31
- mcp_proxy_adapter/examples/deployment/run.sh +0 -43
- mcp_proxy_adapter/examples/deployment/run_docker.sh +0 -84
- mcp_proxy_adapter/examples/simple_custom_commands/README.md +0 -149
- mcp_proxy_adapter/examples/simple_custom_commands/README_EN.md +0 -149
- mcp_proxy_adapter/schemas/base_schema.json +0 -114
- mcp_proxy_adapter/schemas/openapi_schema.json +0 -314
- mcp_proxy_adapter/schemas/roles_schema.json +0 -162
- mcp_proxy_adapter/tests/__init__.py +0 -0
- mcp_proxy_adapter/tests/api/__init__.py +0 -3
- mcp_proxy_adapter/tests/api/test_cmd_endpoint.py +0 -115
- mcp_proxy_adapter/tests/api/test_custom_openapi.py +0 -617
- mcp_proxy_adapter/tests/api/test_handlers.py +0 -522
- mcp_proxy_adapter/tests/api/test_middleware.py +0 -340
- mcp_proxy_adapter/tests/api/test_schemas.py +0 -546
- mcp_proxy_adapter/tests/api/test_tool_integration.py +0 -531
- mcp_proxy_adapter/tests/commands/__init__.py +0 -3
- mcp_proxy_adapter/tests/commands/test_config_command.py +0 -211
- mcp_proxy_adapter/tests/commands/test_echo_command.py +0 -127
- mcp_proxy_adapter/tests/commands/test_help_command.py +0 -136
- mcp_proxy_adapter/tests/conftest.py +0 -131
- mcp_proxy_adapter/tests/functional/__init__.py +0 -3
- mcp_proxy_adapter/tests/functional/test_api.py +0 -253
- mcp_proxy_adapter/tests/integration/__init__.py +0 -3
- mcp_proxy_adapter/tests/integration/test_cmd_integration.py +0 -129
- mcp_proxy_adapter/tests/integration/test_integration.py +0 -255
- mcp_proxy_adapter/tests/performance/__init__.py +0 -3
- mcp_proxy_adapter/tests/performance/test_performance.py +0 -189
- mcp_proxy_adapter/tests/stubs/__init__.py +0 -10
- mcp_proxy_adapter/tests/stubs/echo_command.py +0 -104
- mcp_proxy_adapter/tests/test_api_endpoints.py +0 -271
- mcp_proxy_adapter/tests/test_api_handlers.py +0 -289
- mcp_proxy_adapter/tests/test_base_command.py +0 -123
- mcp_proxy_adapter/tests/test_batch_requests.py +0 -117
- mcp_proxy_adapter/tests/test_command_registry.py +0 -281
- mcp_proxy_adapter/tests/test_config.py +0 -127
- mcp_proxy_adapter/tests/test_utils.py +0 -65
- mcp_proxy_adapter/tests/unit/__init__.py +0 -3
- mcp_proxy_adapter/tests/unit/test_base_command.py +0 -436
- mcp_proxy_adapter/tests/unit/test_config.py +0 -270
- mcp_proxy_adapter-6.0.0.dist-info/METADATA +0 -201
- mcp_proxy_adapter-6.0.0.dist-info/RECORD +0 -179
- {mcp_proxy_adapter-6.0.0.dist-info → mcp_proxy_adapter-6.1.1.dist-info}/WHEEL +0 -0
- {mcp_proxy_adapter-6.0.0.dist-info → mcp_proxy_adapter-6.1.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,35 @@
|
|
1
|
+
{
|
2
|
+
"server": {
|
3
|
+
"host": "0.0.0.0",
|
4
|
+
"port": 8446,
|
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
|
+
},
|
15
|
+
"security": {
|
16
|
+
"enabled": true,
|
17
|
+
"auth": {
|
18
|
+
"enabled": true,
|
19
|
+
"methods": ["certificate"]
|
20
|
+
}
|
21
|
+
},
|
22
|
+
"protocols": {
|
23
|
+
"enabled": true,
|
24
|
+
"allowed_protocols": ["https", "mtls"]
|
25
|
+
},
|
26
|
+
"logging": {
|
27
|
+
"level": "INFO",
|
28
|
+
"console_output": true,
|
29
|
+
"file_output": false
|
30
|
+
},
|
31
|
+
"commands": {
|
32
|
+
"auto_discovery": true,
|
33
|
+
"commands_directory": "./commands"
|
34
|
+
}
|
35
|
+
}
|
@@ -0,0 +1,45 @@
|
|
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
|
+
}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
"""
|
3
|
+
Basic Framework Example Application
|
4
|
+
|
5
|
+
This is a simple application that demonstrates the basic usage of MCP Proxy Adapter framework.
|
6
|
+
|
7
|
+
Author: Vasiliy Zdanovskiy
|
8
|
+
email: vasilyvz@gmail.com
|
9
|
+
"""
|
10
|
+
|
11
|
+
import sys
|
12
|
+
import argparse
|
13
|
+
from pathlib import Path
|
14
|
+
|
15
|
+
# Add the framework to the path
|
16
|
+
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
|
17
|
+
|
18
|
+
from mcp_proxy_adapter.api.app import create_app
|
19
|
+
from mcp_proxy_adapter.config import Config
|
20
|
+
|
21
|
+
|
22
|
+
def main():
|
23
|
+
"""Main entry point for the basic framework example."""
|
24
|
+
parser = argparse.ArgumentParser(description="Basic Framework Example")
|
25
|
+
parser.add_argument("--config", "-c", required=True, help="Path to configuration file")
|
26
|
+
parser.add_argument("--host", default="0.0.0.0", help="Server host")
|
27
|
+
parser.add_argument("--port", type=int, help="Server port (overrides config)")
|
28
|
+
parser.add_argument("--debug", action="store_true", help="Enable debug mode")
|
29
|
+
|
30
|
+
args = parser.parse_args()
|
31
|
+
|
32
|
+
# Load configuration
|
33
|
+
config = Config(args.config)
|
34
|
+
|
35
|
+
# Override port if specified
|
36
|
+
if args.port:
|
37
|
+
config.set("server.port", args.port)
|
38
|
+
|
39
|
+
# Override debug if specified
|
40
|
+
if args.debug:
|
41
|
+
config.set("server.debug", True)
|
42
|
+
|
43
|
+
# Create application
|
44
|
+
app = create_app(app_config=config)
|
45
|
+
|
46
|
+
# Get server configuration
|
47
|
+
host = config.get("server.host", "0.0.0.0")
|
48
|
+
port = config.get("server.port", 8000)
|
49
|
+
debug = config.get("server.debug", False)
|
50
|
+
|
51
|
+
print(f"🚀 Starting Basic Framework Example")
|
52
|
+
print(f"📋 Configuration: {args.config}")
|
53
|
+
print(f"🌐 Server: {host}:{port}")
|
54
|
+
print(f"🔧 Debug: {debug}")
|
55
|
+
print("=" * 50)
|
56
|
+
|
57
|
+
# Import uvicorn here to avoid dependency issues
|
58
|
+
import uvicorn
|
59
|
+
uvicorn.run(app, host=host, port=port, log_level="info")
|
60
|
+
|
61
|
+
|
62
|
+
if __name__ == "__main__":
|
63
|
+
main()
|
@@ -0,0 +1,21 @@
|
|
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
|
+
}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
{
|
2
|
+
"ca_cert_path": "./mcp_proxy_adapter/examples/certs/ca_cert.pem",
|
3
|
+
"ca_key_path": "./mcp_proxy_adapter/examples/keys/ca_key.pem",
|
4
|
+
"cert_storage_path": "./mcp_proxy_adapter/examples/certs",
|
5
|
+
"key_storage_path": "./mcp_proxy_adapter/examples/keys",
|
6
|
+
"default_validity_days": 365,
|
7
|
+
"key_size": 2048,
|
8
|
+
"hash_algorithm": "sha256"
|
9
|
+
}
|
@@ -0,0 +1,32 @@
|
|
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-----
|
@@ -0,0 +1,52 @@
|
|
1
|
+
-----BEGIN PRIVATE KEY-----
|
2
|
+
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
|
51
|
+
0CvyxEnB8U5QYN1JslvBezOToHARkA==
|
52
|
+
-----END PRIVATE KEY-----
|
@@ -0,0 +1,21 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDZjCCAk4CFHd9bUvLEIc95/KliRyeTqeeIfRxMA0GCSqGSIb3DQEBCwUAMHYx
|
3
|
+
CzAJBgNVBAYTAlVTMRMwEQYDVQQIDApUZXN0IFN0YXRlMRIwEAYDVQQHDAlUZXN0
|
4
|
+
IENpdHkxGjAYBgNVBAoMEVRlc3QgT3JnYW5pemF0aW9uMSIwIAYDVQQDDBlNQ1Ag
|
5
|
+
UHJveHkgQWRhcHRlciBUZXN0IENBMB4XDTI1MDgzMDAxMDUyNVoXDTI3MDgzMDAx
|
6
|
+
MDUyNVowaTELMAkGA1UEBhMCVVMxEzARBgNVBAgMClRlc3QgU3RhdGUxEjAQBgNV
|
7
|
+
BAcMCVRlc3QgQ2l0eTEaMBgGA1UECgwRVGVzdCBPcmdhbml6YXRpb24xFTATBgNV
|
8
|
+
BAMMDGFkbWluLWNsaWVudDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
9
|
+
ALH0MedEYl/Mv0x4Z51t/w9jK30cP87I4yXG5oLu174uTCAo/pCpukqYfLdtcPFq
|
10
|
+
dYKwr9v1GNDdLtR5dX3vzvTISXjp5d5ohpDE6BFXBylNoR4m+k5SbixIix6u46Lb
|
11
|
+
oMI7BK7pKcoY4mgNRj/cqKeGaFKp577nh7Dv30rY0I+2wZ8h8tM/TdFaHZEdyWlx
|
12
|
+
vC7gBsu2dsRaLMLUkbPKQSiOYxPnAYWM1MgH6VNqbb0Sn8FP6vxVTgXDOaGGuE6n
|
13
|
+
l8mOmDdR2NaBMjEGbLHdPdTpFOxcQ+lx/1GGSIp1WTsoSuEfctbYK4KeGhwwK3d/
|
14
|
+
BOlIYDn6S7qvxhlP139WsuECAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAf09+h1cm
|
15
|
+
ju11e8Y3mfoPWOX6kG7oWHK24tUnuwXzaRV70PwxDBFWVsI/e6Cwn7m7uTMFW1kG
|
16
|
+
sZMrZN8cAlHrvtBYIS5oBgRLUrRYc3OYBTTmuVCoEcZZnVQzjx/dEdpPwfD3c53m
|
17
|
+
nSV57hvarZgO1tRfEyjdJAu4PXPne16EydHvotN5Co4kdohPaj659h0wBiM0johN
|
18
|
+
oE4lmMkvIpbpXhKA+OqO4DcY6g3PVMAnRS/INi1bTfJnNL5ZgCLSUqtyePPLFn7c
|
19
|
+
fU4C5XPrDXfyrTmC7nXpsomIusMWr2hK3SjLpgtVMMBflCQE9Ziq/zwkKIl1E5LN
|
20
|
+
BXtRdxhSZ9h6gA==
|
21
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,28 @@
|
|
1
|
+
-----BEGIN PRIVATE KEY-----
|
2
|
+
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCx9DHnRGJfzL9M
|
3
|
+
eGedbf8PYyt9HD/OyOMlxuaC7te+LkwgKP6QqbpKmHy3bXDxanWCsK/b9RjQ3S7U
|
4
|
+
eXV97870yEl46eXeaIaQxOgRVwcpTaEeJvpOUm4sSIseruOi26DCOwSu6SnKGOJo
|
5
|
+
DUY/3KinhmhSqee+54ew799K2NCPtsGfIfLTP03RWh2RHclpcbwu4AbLtnbEWizC
|
6
|
+
1JGzykEojmMT5wGFjNTIB+lTam29Ep/BT+r8VU4FwzmhhrhOp5fJjpg3UdjWgTIx
|
7
|
+
Bmyx3T3U6RTsXEPpcf9RhkiKdVk7KErhH3LW2CuCnhocMCt3fwTpSGA5+ku6r8YZ
|
8
|
+
T9d/VrLhAgMBAAECggEABdwSoJjh3GGzkuMMFmT+1xTe47nAaCC5Sg8om/sdY4fG
|
9
|
+
vfBboYvVNIuc37Vc2LY2tFz5DXceoBIIbrqpIcJ5wBmwQakCBrbOZ4n0Uk3ZUITb
|
10
|
+
31BNQbL5KcAhxJrhqAUvX/Xti4zl8V+sZNy7CXNMomeMm9w4Y1LgZvUfFynYhELk
|
11
|
+
ITF9ZgaZ6eCogDPb3rtx5GMwwzEeA5qRK0IYCrRBwdlMbyVj+UBe5mJf/x3UIESo
|
12
|
+
avS817UDZuWdAsWpMaDclkMLPJ1DiwMJ9zkBiloqvGoJQ6VUZKK5iluSHoWzxpbn
|
13
|
+
/JBoYRTUj79tQCaHO+0VvqXH79FDZgDpYRMzgj3lmQKBgQD0r6ldWGrI+aZ594pF
|
14
|
+
S8nVHLBNuUcWZUo5SIARfmEj2pyid8kITZA7H9tSx2yKahaIibW2ttLLyc5EHgHb
|
15
|
+
wXQ20dbB7fg9b6uY9IDpPgzDVxvRCgGlHJHX58zxzts2fNeUCKyiQpddBQewMvEn
|
16
|
+
69OqfYwNxns+rZPGKyUHzouMawKBgQC6LqBfcVcEbg39Lksk5+E+o38RSUFxXkgW
|
17
|
+
2Y62NWALQqsELN1OjhHvdE0MDJsKsoGVuIhvDvU1nGZg8gA9Mwlb2hrVJAqU9or7
|
18
|
+
53fmOjIZYmz6IpSBnzCQJuxK2+PjH781IQCVFpnR+xkGE4ELUjci7ztsH110G4uV
|
19
|
+
Z1Yo9xeQ4wKBgQCIkd8jFa2MfSM5IjwPz2xYwYl56DbQPjq+XEP2/6XyYBta5ybS
|
20
|
+
tpARIAfHXT2sx+fJz6sXz1U6n2m8RU9eO8zEqDyIw2zxxXluhtHI3XQ8N0t0UnR2
|
21
|
+
lsqkSmHueTmLYQTmQC0y554aMiuHYfeOA6eBmk9ohObXJgS77+rcP6FN/wKBgEok
|
22
|
+
1WMM7N1rwpBoBi7dVRsv2yOUK8atCEJpQ2cWnHf/hcF06HEnLMdSZnh88KVy7x4j
|
23
|
+
zdmEeGxwK2lCFoxIrdpxYiwtXTVzdWfaByqdVGQ9iS6X5NI2Bg3yIjmxlfBWLTxI
|
24
|
+
N0YoKPuxZoa/760FgcWcxepKF1psucq2y14nALCHAoGBAJygJKKnqAlztAMqXtRE
|
25
|
+
t9T1ZsZ9GefqzSNmjcsfDfIaqoMOJlG/exu1Dr6uU4k9nLjywB5wKqonwONAIzlK
|
26
|
+
CGT44GLfC3lntnmGoJQBIZdfHnUnhM6dhrR0hjK83z1+7205dVxpcKue4gn90PNI
|
27
|
+
36Avt5FO+riYepF+c4BkjmVq
|
28
|
+
-----END PRIVATE KEY-----
|
@@ -0,0 +1,23 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDzTCCArWgAwIBAgIUW7pAGuHK3Txi9paH8K88gFllZUQwDQYJKoZIhvcNAQEL
|
3
|
+
BQAwdjELMAkGA1UEBhMCVVMxEzARBgNVBAgMClRlc3QgU3RhdGUxEjAQBgNVBAcM
|
4
|
+
CVRlc3QgQ2l0eTEaMBgGA1UECgwRVGVzdCBPcmdhbml6YXRpb24xIjAgBgNVBAMM
|
5
|
+
GU1DUCBQcm94eSBBZGFwdGVyIFRlc3QgQ0EwHhcNMjUwODMwMDEwNTI1WhcNMzUw
|
6
|
+
ODI4MDEwNTI1WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECAwKVGVzdCBTdGF0ZTES
|
7
|
+
MBAGA1UEBwwJVGVzdCBDaXR5MRowGAYDVQQKDBFUZXN0IE9yZ2FuaXphdGlvbjEi
|
8
|
+
MCAGA1UEAwwZTUNQIFByb3h5IEFkYXB0ZXIgVGVzdCBDQTCCASIwDQYJKoZIhvcN
|
9
|
+
AQEBBQADggEPADCCAQoCggEBAMuUkxEl6WpfDYQAdB/wqfFJuKpjwR7arkbvGODJ
|
10
|
+
qYFp7gd05wKgu7gYDua9KYFkO+Po25WN1gqEpgdPN9PVpeDDH0NnKQMH38Cls9gU
|
11
|
+
7eud27RznHFJPyImq0uTlgn7IzTisK/eaJCF1I1mM2UieKELm6g5etXJSCuDEqM7
|
12
|
+
GGS51bUIhoiBoiVslx+199TMS1x9iBIxzQncRlcTd+9f73GpYxZ+lyh+1Ywdmlxt
|
13
|
+
X7V2R7ryz6LkX73xMQbYnFuaWReA2rTFF1alydWixTixjF8qIoJY3lFSW6bH1eHU
|
14
|
+
yXDib8LfxmAzf8NZL7R0CXmvhDSU5sEXR6PnhTgFWAww48kCAwEAAaNTMFEwHQYD
|
15
|
+
VR0OBBYEFN+4HO/tMjbRNtCGRT5QcYdnq891MB8GA1UdIwQYMBaAFN+4HO/tMjbR
|
16
|
+
NtCGRT5QcYdnq891MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB
|
17
|
+
AJxk5WwynoIYKhpq0LL7gM563Xoy/Vpq5d5Vg0QUg7tpkyXtzTqIj8ArgCP3kB3Z
|
18
|
+
K3VPVtxo5V4w/T4gfSxo+y9du6XFSdVroZZixiI6qYp18L5jAx2I4Q9ZBh7mVcjd
|
19
|
+
dbS674Cg3/tyNyq9DMyV+bUwEzcq9oqbU0JPu+DABtype/bL1q5itTelOXDDTr7U
|
20
|
+
hDt2/KME3PVh6Skw9TC0d1hUCtz06MNEO24GJvcidcf26II99RR+JV0X5c+xgiFX
|
21
|
+
hZXUvr+cSrSJ3QeY1fR5Im/dU4sqdYgvtvwnvIv5RC/qh0AphdcLnY+nDcaJL4m8
|
22
|
+
uaFMSt/YXh7G00rtHWifJ7k=
|
23
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1 @@
|
|
1
|
+
777D6D4BCB10873DE7F2A5891C9E4EA79E21F475
|
@@ -0,0 +1,28 @@
|
|
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-----
|
@@ -0,0 +1,9 @@
|
|
1
|
+
{
|
2
|
+
"ca_cert_path": "/home/vasilyvz/projects/mcp_proxy_adapter/mcp_proxy_adapter/examples/certs/ca_cert.pem",
|
3
|
+
"ca_key_path": "/home/vasilyvz/projects/mcp_proxy_adapter/mcp_proxy_adapter/examples/keys/ca_key.pem",
|
4
|
+
"cert_storage_path": "/home/vasilyvz/projects/mcp_proxy_adapter/mcp_proxy_adapter/examples/certs",
|
5
|
+
"key_storage_path": "/home/vasilyvz/projects/mcp_proxy_adapter/mcp_proxy_adapter/examples/keys",
|
6
|
+
"default_validity_days": 365,
|
7
|
+
"key_size": 2048,
|
8
|
+
"hash_algorithm": "sha256"
|
9
|
+
}
|
@@ -0,0 +1,32 @@
|
|
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-----
|
@@ -0,0 +1,52 @@
|
|
1
|
+
-----BEGIN PRIVATE KEY-----
|
2
|
+
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
|
51
|
+
0CvyxEnB8U5QYN1JslvBezOToHARkA==
|
52
|
+
-----END PRIVATE KEY-----
|
@@ -0,0 +1,32 @@
|
|
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-----
|
@@ -0,0 +1,52 @@
|
|
1
|
+
-----BEGIN PRIVATE KEY-----
|
2
|
+
MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQC7TiO+GxCPckjj
|
3
|
+
xFgSM0aFVOesQlPhp1Z8JDGWvHyIQ308DBkMwUWn/FwoLtQ1O2WP4wNCLD1ytE4H
|
4
|
+
N1CrTZWbL+D+8SglEIWU1dpDf262irffj+ILEtIAfP5GPLN+g/2xJsSGlARQKeeN
|
5
|
+
VwNdNDIttqLXGoyM2s1lA0aRKqi+LshOpETl0wQLGtUfPi8A1aaNgA5OVLtuu1jW
|
6
|
+
4UrPRP7o1zA3fK5gk+HCkTb6Rh7f8P1+hPo0V9+65uCq/80tY8AwW4+VZL2vpXFP
|
7
|
+
jObadb2uHSVvRl09ypbv9q6PG1pCZ5wkigTeW+nB/qquBs+HjYjR1I9qOu46zpKC
|
8
|
+
xuR1dpAP6fAW+HoJtl/eKy2PbuHSzihJjDpAek3KmqMjoFpfgP0A6j5k9n623gK2
|
9
|
+
oLZhZmyuK3DeelpoXmxX2xvNg6rxFa4fLDHzArbg9V5BMh6z14MLczqDK6QEid1d
|
10
|
+
1KqZJOeSuv5imt9qjyweLxtIlwHXhb330K3zPudjinn34FDjVVUirdq4se6nKlxI
|
11
|
+
YQbBtrR1Cidl27kIx0BPK+hMGxZAa6sKVp0C3oU25Iw+xzu6ggknFWb3mZq4wdM0
|
12
|
+
61nE+7SNJ/ggErwekE43x01/RRaw0gPqGgLlUmezDDAdTPYSJwp+UEyFjVO9E4iZ
|
13
|
+
Zw3mCxWtMM4O+ne1dZy4J+Fef0YVmQIDAQABAoICABhJcF1boWDq8Y7wbCJmr1Zl
|
14
|
+
j9QTFlD/A49S8B0lW+5yoH/96kJFo1RovBhibhYS7r84Bo742+TjgpnxRGQEn4lW
|
15
|
+
WCcmj6KICxIlTUkNnTD35BIN1EJu/SJJaCfPrM89qn0N06jG85eOFMi2cii5NmfI
|
16
|
+
CUMOsw/ROpXGVXWdoZtmHIdZ9IG/xAPz8D4+BWvnHX1hOo78nKsl3sX0w4sEXXCa
|
17
|
+
n9VqCisFXIjVOdrnkbmkRB0OKBVLxFELU9wdvCCOZngUFJZLUESWFWRlFvVXvrHK
|
18
|
+
H2BXhYqYGiHhC3m3Pb5jiehmVG2dXxOjrm+kpsSNsnfRceEqkAO5ul9RDoQ5TJeS
|
19
|
+
YTdOatnLZHpvagNn+IqUjO97ozK0g4PN8ooCg67WvJOZ0jPe1L+43fFGztsx5/Dl
|
20
|
+
2VQus22EWcPqiLdJe/xlzP+xFJI352pwrk9cqXKi6/e7H14eobHkFMBNOvMmK4L1
|
21
|
+
qoE28c3ivlbuDlY6kTz34OC790tK2h8PS/Uu6b/UMTy2aVnOj3z1RYfI7B+gT9ie
|
22
|
+
hXDf2dc2v5l/VqVDaPwHXBYHWM68rXaz1VZQdaZDOdcc9n/WEnsknR0ij1DTV85T
|
23
|
+
JnIsaAHsA1iOmrj/tP4cqNQNii+5xRsrEB687MYeIgN2B2RznXPx1hEC0fPSo77b
|
24
|
+
t+dDhFMI1nM9uHOC4AojAoIBAQD5139k5mVnAK2BTN4LGkYCdOq8+Pd4OC2KLZ8Q
|
25
|
+
41VWoi1z36dxUpy/lS4xN8dRx0PaG45BX6tfNFTarsFQ8gFEVvEE3TnAP+2hvjpr
|
26
|
+
JzPpmS3Mzhvw3P8QooslQu1mswucGlfbA8pmi9TE12NpMoJfDHQv4h6K0ANKhwFL
|
27
|
+
OJzwqxxw2d7Tqj0FNUAoUqKo6VIcKxOFg/FQbV04DfcpXtWXdMWZQIO+TJzEb24g
|
28
|
+
+KvXHNdDN10GsXp9Xgixxw9cSdT78mthlwD/Dt39b6dqhGF/Qv9ROqCXtGM6U+uT
|
29
|
+
yT9Xg8dhjYDwXy+ByjMbbJKTSoL7H3D7JYYDRL7NLta87URTAoIBAQC/7AlBYUvI
|
30
|
+
0uv2BBh5Xam2l6YmMPZFyNMUg//U5efDxoyOMzqCWNEC4NkvFm2sTEfGepKK5uYx
|
31
|
+
6o52fkEtcoCXZxJV5ZPLZTD4X3tOzsBSNnHfv7zXPSg8IZ8ldWL040p89AMS8/od
|
32
|
+
0w2CTqbEZbjh7pW5G0N5lJrGlrMyKQcELP9BOVbpPTGsImVpHNxO4pdRW3NUi0Sq
|
33
|
+
HjSyc5TQMIcpV7snggAFxSFZXVLwBRZ74mKlL3RHBA7uwiutap8CRjFDFICvX0cR
|
34
|
+
xOOg40Cpc9LOQRBZe2pxR7Dg45YBEZ54gBBol6t/RQfwkWHD1hs4n68eYyimzNWD
|
35
|
+
PUkgQ3YXQ4DjAoIBAQDs+6/nMXN15Hqvbw4fUeieY/BVF4MFEaSAsQ10o25LIsIi
|
36
|
+
az8UitwMDaEnJlV2CKEfvYuODwUq5SSn2aOc+DCjdiRgDMe+x+TLyvj2stTW+2kq
|
37
|
+
H0b5jWaTjNqXmYg+Jg8ZHxO+tzXBV1mW7QdqvXJUXifHU6DM4sp8YtqjUyvqTSRJ
|
38
|
+
Fx/5fj0rN3uHw/puZgJwnZuCxcicFWCazwRmxYGsjCLyXvOYCmuZGGlJ9RZqkPzO
|
39
|
+
0TD4LFiXmh59Iug7Df1sjmG0y9syFBQVVVdj/fXNFOvBTO8Pdxe4N+n44Keoh2MT
|
40
|
+
8Xkgh+k0H2ui07Wk6MSdFxG/57PaXdbuIUOnKRfpAoIBADG6YgeLw0wswrEDDKhd
|
41
|
+
yXyjPIzGwPkB+RdmwGIUlAHZL1AlG/LsOnPpeLzHrfEn7q0R02ikPV8PrIwtWIwD
|
42
|
+
ECiqr0iMbMgV1yNz8gpQbeqfatAT6UVH9mXmPEtDaDmVrxZDT4yYpOUXa3epE3Lt
|
43
|
+
/IKmBCtrUgdtptDv+Ux07vl5A0aOKePTVEyKuQYMUVUrRxPwgyiT0V3W58aZRiTP
|
44
|
+
fiYLMlYhTAoystpp4PSKDPJajT7J1fIUrh3VN+X+K2c2csszw8gtAsgq4OQuHfIK
|
45
|
+
LcP9fdQBs2nYro8GyTZLr2j/ncDME8atR0phERjiIDmCvqg7/yuBBY200n7GnBGZ
|
46
|
+
DwsCggEAWfRqz96nkV2Iew+2Zuabr4MZjD6FjHqcSI+8edtMWWkCHvkj7N5rear1
|
47
|
+
vGJeM4lyUJ8wTQmd3/x6OLNoMSeIelTbZdgAdLawLWnrweroJ7Y6uqSt0o8vFFWg
|
48
|
+
Gr6BKrpMJlRu9D2tx3Vj+7Rw22HU1+vlGMxgEs341qghpVU8k+vNo1vZ2IMjsCVC
|
49
|
+
Ei1AHQFvtS2u9+YBuUnAxVNKIje3IAvHZzh8SuWBqIPWdCkxYrssLoUBPt6fkZ75
|
50
|
+
z9uJEnwKRvnwxORqHuGLTZfQrdKizk8u8KMm9gkrr7TCfzOwu+pQllE5AogtWcc/
|
51
|
+
0CvyxEnB8U5QYN1JslvBezOToHARkA==
|
52
|
+
-----END PRIVATE KEY-----
|
@@ -0,0 +1,32 @@
|
|
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-----
|
@@ -0,0 +1,52 @@
|
|
1
|
+
-----BEGIN PRIVATE KEY-----
|
2
|
+
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
|
51
|
+
0CvyxEnB8U5QYN1JslvBezOToHARkA==
|
52
|
+
-----END PRIVATE KEY-----
|