Source code for wFabricSecurity.fabric_security.core.exceptions

"""Security exceptions for wFabricSecurity."""

from typing import Optional


[docs] class SecurityError(Exception): """Base security exception."""
[docs] def __init__(self, message: str, details: Optional[dict] = None): super().__init__(message) self.message = message self.details = details or {}
[docs] class CodeIntegrityError(SecurityError): """Raised when code integrity verification fails."""
[docs] def __init__( self, message: str = "Code integrity verification failed. The code may have been tampered with.", details: Optional[dict] = None, ): super().__init__(message, details)
[docs] class PermissionDeniedError(SecurityError): """Raised when communication permission is denied."""
[docs] def __init__( self, message: str = "Permission denied. The sender is not authorized to communicate with the recipient.", details: Optional[dict] = None, ): super().__init__(message, details)
[docs] class MessageIntegrityError(SecurityError): """Raised when message integrity verification fails."""
[docs] def __init__( self, message: str = "Message integrity verification failed. The message may have been altered.", details: Optional[dict] = None, ): super().__init__(message, details)
[docs] class SignatureError(SecurityError): """Raised when signature verification fails."""
[docs] def __init__( self, message: str = "Signature verification failed. The signature is invalid.", details: Optional[dict] = None, ): super().__init__(message, details)
[docs] class RateLimitError(SecurityError): """Raised when rate limit is exceeded."""
[docs] def __init__( self, message: str = "Rate limit exceeded. Too many requests.", details: Optional[dict] = None, ): super().__init__(message, details)
[docs] class RevocationError(SecurityError): """Raised when a revoked participant is detected."""
[docs] def __init__( self, message: str = "Participant has been revoked.", details: Optional[dict] = None, ): super().__init__(message, details)
[docs] class ConfigurationError(SecurityError): """Raised when there is a configuration error."""
[docs] def __init__( self, message: str = "Configuration error.", details: Optional[dict] = None, ): super().__init__(message, details)