mcp-security-framework 1.2.1__tar.gz → 1.2.3__tar.gz
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_security_framework-1.2.1 → mcp_security_framework-1.2.3}/PKG-INFO +1 -1
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/__init__.py +1 -1
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/core/cert_manager.py +5 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/schemas/config.py +14 -4
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework.egg-info/PKG-INFO +1 -1
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/pyproject.toml +1 -1
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_core/test_cert_manager.py +44 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_schemas/test_config.py +50 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/README.md +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/cli/__init__.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/cli/cert_cli.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/cli/security_cli.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/constants.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/core/__init__.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/core/auth_manager.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/core/permission_manager.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/core/rate_limiter.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/core/security_manager.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/core/ssl_manager.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/examples/__init__.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/examples/comprehensive_example.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/examples/django_example.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/examples/fastapi_example.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/examples/flask_example.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/examples/gateway_example.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/examples/microservice_example.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/examples/standalone_example.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/examples/test_all_examples.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/middleware/__init__.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/middleware/auth_middleware.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/middleware/fastapi_auth_middleware.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/middleware/fastapi_middleware.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/middleware/flask_auth_middleware.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/middleware/flask_middleware.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/middleware/mtls_middleware.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/middleware/rate_limit_middleware.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/middleware/security_middleware.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/schemas/__init__.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/schemas/models.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/schemas/responses.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/tests/__init__.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/utils/__init__.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/utils/cert_utils.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/utils/crypto_utils.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/utils/datetime_compat.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/utils/validation_utils.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework.egg-info/SOURCES.txt +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework.egg-info/dependency_links.txt +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework.egg-info/entry_points.txt +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework.egg-info/requires.txt +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework.egg-info/top_level.txt +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/setup.cfg +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/__init__.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/conftest.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_cli/__init__.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_cli/test_cert_cli.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_cli/test_security_cli.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_core/__init__.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_core/test_auth_manager.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_core/test_permission_manager.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_core/test_rate_limiter.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_core/test_security_manager.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_core/test_ssl_manager.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_examples/__init__.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_examples/test_comprehensive_example.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_examples/test_fastapi_example.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_examples/test_flask_example.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_examples/test_standalone_example.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_integration/__init__.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_integration/test_auth_flow.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_integration/test_certificate_flow.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_integration/test_fastapi_integration.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_integration/test_flask_integration.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_integration/test_standalone_integration.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_middleware/__init__.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_middleware/test_fastapi_auth_middleware.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_middleware/test_fastapi_middleware.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_middleware/test_flask_auth_middleware.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_middleware/test_flask_middleware.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_middleware/test_security_middleware.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_schemas/__init__.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_schemas/test_models.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_schemas/test_responses.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_schemas/test_serialization.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_utils/__init__.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_utils/test_cert_utils.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_utils/test_crypto_utils.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_utils/test_datetime_compat.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_utils/test_unitid_compat.py +0 -0
- {mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_utils/test_validation_utils.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: mcp-security-framework
|
3
|
-
Version: 1.2.
|
3
|
+
Version: 1.2.3
|
4
4
|
Summary: Universal security framework for microservices with SSL/TLS, authentication, authorization, and rate limiting. Requires cryptography>=42.0.0 for certificate operations.
|
5
5
|
Author-email: Vasiliy Zdanovskiy <vasilyvz@gmail.com>
|
6
6
|
Maintainer-email: Vasiliy Zdanovskiy <vasilyvz@gmail.com>
|
@@ -1953,6 +1953,11 @@ WvWwM6xqxW0Sf6s5AxJmTn3amZ0G+aP4Y2AEojlbQR7g5aigKbFQqGDFW07egp6
|
|
1953
1953
|
if not self.config.enabled:
|
1954
1954
|
return
|
1955
1955
|
|
1956
|
+
# BUGFIX: Skip CA path validation if in CA creation mode
|
1957
|
+
if self.config.ca_creation_mode:
|
1958
|
+
self.logger.info("CA creation mode enabled, skipping CA path validation")
|
1959
|
+
return
|
1960
|
+
|
1956
1961
|
if not self.config.ca_cert_path:
|
1957
1962
|
raise CertificateConfigurationError("CA certificate path is required")
|
1958
1963
|
|
@@ -247,8 +247,12 @@ class CertificateConfig(BaseModel):
|
|
247
247
|
This model defines certificate management configuration settings
|
248
248
|
including CA settings, certificate storage, and validation options.
|
249
249
|
|
250
|
+
BUGFIX: Added ca_creation_mode to allow CA certificate creation
|
251
|
+
without requiring existing CA paths.
|
252
|
+
|
250
253
|
Attributes:
|
251
254
|
enabled: Whether certificate management is enabled
|
255
|
+
ca_creation_mode: Whether we are in CA creation mode (bypasses CA path validation)
|
252
256
|
ca_cert_path: Path to CA certificate
|
253
257
|
ca_key_path: Path to CA private key
|
254
258
|
cert_storage_path: Path for certificate storage
|
@@ -266,6 +270,9 @@ class CertificateConfig(BaseModel):
|
|
266
270
|
enabled: bool = Field(
|
267
271
|
default=False, description="Whether certificate management is enabled"
|
268
272
|
)
|
273
|
+
ca_creation_mode: bool = Field(
|
274
|
+
default=False, description="Whether we are in CA creation mode (bypasses CA path validation)"
|
275
|
+
)
|
269
276
|
ca_cert_path: Optional[str] = Field(
|
270
277
|
default=None, description="Path to CA certificate"
|
271
278
|
)
|
@@ -317,10 +324,13 @@ class CertificateConfig(BaseModel):
|
|
317
324
|
def validate_certificate_configuration(self):
|
318
325
|
"""Validate certificate configuration consistency."""
|
319
326
|
if self.enabled:
|
320
|
-
if not
|
321
|
-
|
322
|
-
|
323
|
-
|
327
|
+
# BUGFIX: Only require CA paths if not in CA creation mode
|
328
|
+
if not self.ca_creation_mode:
|
329
|
+
if not self.ca_cert_path or not self.ca_key_path:
|
330
|
+
raise ValueError(
|
331
|
+
"Certificate management enabled but CA certificate and key paths are required. "
|
332
|
+
"Set ca_creation_mode=True if you are creating a CA certificate."
|
333
|
+
)
|
324
334
|
|
325
335
|
if self.crl_enabled and not self.crl_path:
|
326
336
|
raise ValueError("CRL enabled but CRL path is required")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: mcp-security-framework
|
3
|
-
Version: 1.2.
|
3
|
+
Version: 1.2.3
|
4
4
|
Summary: Universal security framework for microservices with SSL/TLS, authentication, authorization, and rate limiting. Requires cryptography>=42.0.0 for certificate operations.
|
5
5
|
Author-email: Vasiliy Zdanovskiy <vasilyvz@gmail.com>
|
6
6
|
Maintainer-email: Vasiliy Zdanovskiy <vasilyvz@gmail.com>
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "mcp-security-framework"
|
7
|
-
version = "1.2.
|
7
|
+
version = "1.2.3"
|
8
8
|
description = "Universal security framework for microservices with SSL/TLS, authentication, authorization, and rate limiting. Requires cryptography>=42.0.0 for certificate operations."
|
9
9
|
readme = "README.md"
|
10
10
|
license = {text = "MIT"}
|
{mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_core/test_cert_manager.py
RENAMED
@@ -676,6 +676,50 @@ class TestCertificateManager:
|
|
676
676
|
|
677
677
|
assert "CA certificate and key paths are required" in str(exc_info.value)
|
678
678
|
|
679
|
+
def test_ca_creation_mode_bypasses_validation(self):
|
680
|
+
"""Test that CA creation mode bypasses CA path validation in CertificateManager."""
|
681
|
+
config = CertificateConfig(
|
682
|
+
enabled=True,
|
683
|
+
ca_creation_mode=True,
|
684
|
+
cert_storage_path=self.temp_dir,
|
685
|
+
key_storage_path=self.temp_dir
|
686
|
+
)
|
687
|
+
|
688
|
+
# This should not raise an exception
|
689
|
+
cert_manager = CertificateManager(config)
|
690
|
+
assert cert_manager is not None
|
691
|
+
assert cert_manager.config.ca_creation_mode is True
|
692
|
+
|
693
|
+
def test_ca_creation_mode_with_ca_paths(self):
|
694
|
+
"""Test that CA creation mode works even with CA paths provided."""
|
695
|
+
config = CertificateConfig(
|
696
|
+
enabled=True,
|
697
|
+
ca_creation_mode=True,
|
698
|
+
ca_cert_path=self.ca_cert_path,
|
699
|
+
ca_key_path=self.ca_key_path,
|
700
|
+
cert_storage_path=self.temp_dir,
|
701
|
+
key_storage_path=self.temp_dir
|
702
|
+
)
|
703
|
+
|
704
|
+
# This should not raise an exception
|
705
|
+
cert_manager = CertificateManager(config)
|
706
|
+
assert cert_manager is not None
|
707
|
+
assert cert_manager.config.ca_creation_mode is True
|
708
|
+
assert cert_manager.config.ca_cert_path == self.ca_cert_path
|
709
|
+
assert cert_manager.config.ca_key_path == self.ca_key_path
|
710
|
+
|
711
|
+
def test_normal_mode_requires_ca_paths(self):
|
712
|
+
"""Test that normal mode requires CA paths."""
|
713
|
+
with pytest.raises(ValidationError) as exc_info:
|
714
|
+
CertificateConfig(
|
715
|
+
enabled=True,
|
716
|
+
ca_creation_mode=False,
|
717
|
+
cert_storage_path=self.temp_dir,
|
718
|
+
key_storage_path=self.temp_dir
|
719
|
+
)
|
720
|
+
|
721
|
+
assert "ca_creation_mode=True" in str(exc_info.value)
|
722
|
+
|
679
723
|
def test_create_output_directory(self):
|
680
724
|
"""Test automatic output directory creation."""
|
681
725
|
# Create new temp directory
|
{mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_schemas/test_config.py
RENAMED
@@ -195,6 +195,7 @@ class TestCertificateConfig:
|
|
195
195
|
config = CertificateConfig()
|
196
196
|
|
197
197
|
assert config.enabled is False
|
198
|
+
assert config.ca_creation_mode is False
|
198
199
|
assert config.ca_cert_path is None
|
199
200
|
assert config.ca_key_path is None
|
200
201
|
assert config.cert_storage_path == "./certs"
|
@@ -217,6 +218,7 @@ class TestCertificateConfig:
|
|
217
218
|
"Certificate management enabled but CA certificate and key paths are required"
|
218
219
|
in str(exc_info.value)
|
219
220
|
)
|
221
|
+
assert "ca_creation_mode=True" in str(exc_info.value)
|
220
222
|
|
221
223
|
def test_certificate_config_crl_enabled_without_path(self):
|
222
224
|
"""Test CertificateConfig validation when CRL enabled without path."""
|
@@ -272,6 +274,54 @@ class TestCertificateConfig:
|
|
272
274
|
with pytest.raises(ValidationError):
|
273
275
|
CertificateConfig(default_validity_days=3651)
|
274
276
|
|
277
|
+
def test_certificate_config_ca_creation_mode(self):
|
278
|
+
"""Test CertificateConfig with CA creation mode enabled."""
|
279
|
+
config = CertificateConfig(
|
280
|
+
enabled=True,
|
281
|
+
ca_creation_mode=True,
|
282
|
+
cert_storage_path="./certs",
|
283
|
+
key_storage_path="./keys"
|
284
|
+
)
|
285
|
+
|
286
|
+
assert config.enabled is True
|
287
|
+
assert config.ca_creation_mode is True
|
288
|
+
assert config.ca_cert_path is None
|
289
|
+
assert config.ca_key_path is None
|
290
|
+
assert config.cert_storage_path == "./certs"
|
291
|
+
assert config.key_storage_path == "./keys"
|
292
|
+
|
293
|
+
def test_certificate_config_ca_creation_mode_with_ca_paths(self):
|
294
|
+
"""Test CertificateConfig with CA creation mode and CA paths (should work)."""
|
295
|
+
config = CertificateConfig(
|
296
|
+
enabled=True,
|
297
|
+
ca_creation_mode=True,
|
298
|
+
ca_cert_path="./certs/ca.crt",
|
299
|
+
ca_key_path="./keys/ca.key",
|
300
|
+
cert_storage_path="./certs",
|
301
|
+
key_storage_path="./keys"
|
302
|
+
)
|
303
|
+
|
304
|
+
assert config.enabled is True
|
305
|
+
assert config.ca_creation_mode is True
|
306
|
+
assert config.ca_cert_path == "./certs/ca.crt"
|
307
|
+
assert config.ca_key_path == "./keys/ca.key"
|
308
|
+
|
309
|
+
def test_certificate_config_normal_mode_with_ca_paths(self):
|
310
|
+
"""Test CertificateConfig in normal mode with CA paths."""
|
311
|
+
config = CertificateConfig(
|
312
|
+
enabled=True,
|
313
|
+
ca_creation_mode=False,
|
314
|
+
ca_cert_path="./certs/ca.crt",
|
315
|
+
ca_key_path="./keys/ca.key",
|
316
|
+
cert_storage_path="./certs",
|
317
|
+
key_storage_path="./keys"
|
318
|
+
)
|
319
|
+
|
320
|
+
assert config.enabled is True
|
321
|
+
assert config.ca_creation_mode is False
|
322
|
+
assert config.ca_cert_path == "./certs/ca.crt"
|
323
|
+
assert config.ca_key_path == "./keys/ca.key"
|
324
|
+
|
275
325
|
|
276
326
|
class TestPermissionConfig:
|
277
327
|
"""Test suite for PermissionConfig class."""
|
File without changes
|
{mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/cli/__init__.py
RENAMED
File without changes
|
{mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/cli/cert_cli.py
RENAMED
File without changes
|
File without changes
|
{mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/mcp_security_framework/constants.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_cli/test_cert_cli.py
RENAMED
File without changes
|
{mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_cli/test_security_cli.py
RENAMED
File without changes
|
File without changes
|
{mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_core/test_auth_manager.py
RENAMED
File without changes
|
File without changes
|
{mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_core/test_rate_limiter.py
RENAMED
File without changes
|
File without changes
|
{mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_core/test_ssl_manager.py
RENAMED
File without changes
|
{mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_examples/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_integration/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_middleware/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_schemas/__init__.py
RENAMED
File without changes
|
{mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_schemas/test_models.py
RENAMED
File without changes
|
{mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_schemas/test_responses.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_utils/test_cert_utils.py
RENAMED
File without changes
|
{mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_utils/test_crypto_utils.py
RENAMED
File without changes
|
File without changes
|
{mcp_security_framework-1.2.1 → mcp_security_framework-1.2.3}/tests/test_utils/test_unitid_compat.py
RENAMED
File without changes
|
File without changes
|