Source code for tropicsquare.config.uap_ecc

"""UAP ECC Key operation configuration classes"""

from tropicsquare.config.uap_base import UapMultiSlotConfig, UapPermissionField
from tropicsquare.config.constants import (
    UAP_ECCKEY_SLOT_0_7_POS,
    UAP_ECCKEY_SLOT_8_15_POS,
    UAP_ECCKEY_SLOT_16_23_POS,
    UAP_ECCKEY_SLOT_24_31_POS
)


[docs] class EccKeyConfig(UapMultiSlotConfig): """UAP ECC Key base configuration""" @property def ecckey_slot_0_7(self) -> UapPermissionField: """Permission field for ECC Key slots 0-7.""" return self._get_slot_field(UAP_ECCKEY_SLOT_0_7_POS) @ecckey_slot_0_7.setter def ecckey_slot_0_7(self, field: UapPermissionField) -> None: self._set_slot_field(UAP_ECCKEY_SLOT_0_7_POS, field) @property def ecckey_slot_8_15(self) -> UapPermissionField: """Permission field for ECC Key slots 8-15.""" return self._get_slot_field(UAP_ECCKEY_SLOT_8_15_POS) @ecckey_slot_8_15.setter def ecckey_slot_8_15(self, field: UapPermissionField) -> None: self._set_slot_field(UAP_ECCKEY_SLOT_8_15_POS, field) @property def ecckey_slot_16_23(self) -> UapPermissionField: """Permission field for ECC Key slots 16-23.""" return self._get_slot_field(UAP_ECCKEY_SLOT_16_23_POS) @ecckey_slot_16_23.setter def ecckey_slot_16_23(self, field: UapPermissionField) -> None: self._set_slot_field(UAP_ECCKEY_SLOT_16_23_POS, field) @property def ecckey_slot_24_31(self) -> UapPermissionField: """Permission field for ECC Key slots 24-31.""" return self._get_slot_field(UAP_ECCKEY_SLOT_24_31_POS) @ecckey_slot_24_31.setter def ecckey_slot_24_31(self, field: UapPermissionField) -> None: self._set_slot_field(UAP_ECCKEY_SLOT_24_31_POS, field)
[docs] def to_dict(self) -> dict: """Export fields as dictionary.""" return { 'ecckey_slot_0_7': self.ecckey_slot_0_7.to_dict(), 'ecckey_slot_8_15': self.ecckey_slot_8_15.to_dict(), 'ecckey_slot_16_23': self.ecckey_slot_16_23.to_dict(), 'ecckey_slot_24_31': self.ecckey_slot_24_31.to_dict() }
[docs] def __str__(self) -> str: """Table row with ECC Key slot specific field names.""" s0 = str(self.ecckey_slot_0_7) s1 = str(self.ecckey_slot_8_15) s2 = str(self.ecckey_slot_16_23) s3 = str(self.ecckey_slot_24_31) return "{:26s} | {} || {} || {} || {} |".format( self.__class__.__name__, s0, s1, s2, s3 )
[docs] class EccKeyGenerateConfig(EccKeyConfig): """UAP ECC Key Generate configuration (CFG_UAP_ECC_KEY_GENERATE @ 0x130). Controls which pairing key slots can generate ECC keys. Has 4 permission fields for ECC Key slot groups 0-7, 8-15, 16-23, 24-31. """
[docs] class EccKeyStoreConfig(EccKeyConfig): """UAP ECC Key Store configuration (CFG_UAP_ECC_KEY_STORE @ 0x134). Controls which pairing key slots can store ECC keys. Has 4 permission fields for ECC Key slot groups 0-7, 8-15, 16-23, 24-31. """
[docs] class EccKeyReadConfig(EccKeyConfig): """UAP ECC Key Read configuration (CFG_UAP_ECC_KEY_READ @ 0x138). Controls which pairing key slots can read ECC keys. Has 4 permission fields for ECC Key slot groups 0-7, 8-15, 16-23, 24-31. """
[docs] class EccKeyEraseConfig(EccKeyConfig): """UAP ECC Key Erase configuration (CFG_UAP_ECC_KEY_ERASE @ 0x13C). Controls which pairing key slots can erase ECC keys. Has 4 permission fields for ECC Key slot groups 0-7, 8-15, 16-23, 24-31. """
[docs] class EcdsaSignConfig(EccKeyConfig): """UAP ECDSA Sign configuration (CFG_UAP_ECDSA_SIGN @ 0x140). Controls which pairing key slots can perform ECDSA signing. Has 4 permission fields for ECC Key slot groups 0-7, 8-15, 16-23, 24-31. """
[docs] class EddsaSignConfig(EccKeyConfig): """UAP EdDSA Sign configuration (CFG_UAP_EDDSA_SIGN @ 0x144). Controls which pairing key slots can perform EdDSA signing. Has 4 permission fields for ECC Key slot groups 0-7, 8-15, 16-23, 24-31. """