[docs]
class TropicSquareError(Exception):
"""Base exception for all TropicSquare errors"""
[docs]
def __init__(self, message: str = "", error_code=None):
super().__init__(message)
self.error_code = error_code
[docs]
class TropicSquareCRCError(TropicSquareError):
"""CRC validation failed"""
pass
[docs]
class TropicSquareNoSession(TropicSquareError):
"""No secure session established"""
pass
# Communication and protocol errors
[docs]
class TropicSquareTimeoutError(TropicSquareError):
"""Chip communication timeout"""
pass
[docs]
class TropicSquareAlarmError(TropicSquareError):
"""Chip is in alarm state"""
pass
# Command result errors
[docs]
class TropicSquareCommandError(TropicSquareError):
"""Base class for command execution errors"""
pass
[docs]
class TropicSquareUnauthorizedError(TropicSquareCommandError):
"""Command not authorized"""
pass
[docs]
class TropicSquareInvalidCommandError(TropicSquareCommandError):
"""Invalid command"""
pass
# Memory operation errors
[docs]
class TropicSquareMemoryError(TropicSquareCommandError):
"""Memory operation error"""
pass
[docs]
class TropicSquareMemoryWriteError(TropicSquareMemoryError):
"""Memory write failed"""
pass
[docs]
class TropicSquareMemorySlotExpiredError(TropicSquareMemoryError):
"""Memory slot expired"""
pass
# ECC operation errors
[docs]
class TropicSquareECCError(TropicSquareCommandError):
"""ECC operation error"""
pass
[docs]
class TropicSquareECCInvalidKeyError(TropicSquareECCError):
"""Invalid ECC key"""
pass
# Counter operation errors
[docs]
class TropicSquareCounterError(TropicSquareCommandError):
"""Counter operation error"""
pass
[docs]
class TropicSquareCounterUpdateError(TropicSquareCounterError):
"""Counter update failed"""
pass
[docs]
class TropicSquareCounterInvalidError(TropicSquareCounterError):
"""Invalid counter"""
pass
# Pairing keys errors
[docs]
class TropicSquarePairingKeyEmptyError(TropicSquareCommandError):
"""Pairing key empty error"""
pass
[docs]
class TropicSquarePairingKeyInvalidError(TropicSquareCommandError):
"""Pairing key invalid error"""
pass
# Session and handshake errors
[docs]
class TropicSquareSessionError(TropicSquareError):
"""Session management error"""
pass
[docs]
class TropicSquareHandshakeError(TropicSquareSessionError):
"""Handshake failed"""
pass
[docs]
class TropicSquareTagError(TropicSquareSessionError):
"""Authentication tag error"""
pass
[docs]
class TropicSquareResponseError(TropicSquareError):
"""Response processing error"""
pass