From 8a096230a201731f0c0769a188025e8874575c3d Mon Sep 17 00:00:00 2001 From: "Mike A." Date: Wed, 18 Sep 2024 16:38:59 +0200 Subject: [PATCH] keys: Add name getter/setter to accessories and keypairs --- findmy/accessory.py | 4 ++++ findmy/keys.py | 19 +++++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/findmy/accessory.py b/findmy/accessory.py index f704d7e..1d7708f 100644 --- a/findmy/accessory.py +++ b/findmy/accessory.py @@ -106,6 +106,10 @@ class FindMyAccessory(RollingKeyPairSource): """Name of this accessory.""" return self._name + @name.setter + def name(self, name: str | None) -> None: + self._name = name + @property def model(self) -> str | None: """Model string of this accessory, as provided by the manufacturer.""" diff --git a/findmy/keys.py b/findmy/keys.py index a5c8932..e0febc1 100644 --- a/findmy/keys.py +++ b/findmy/keys.py @@ -81,7 +81,12 @@ class HasPublicKey(HasHashedPublicKey, ABC): class KeyPair(HasPublicKey): """A private-public keypair for a trackable FindMy accessory.""" - def __init__(self, private_key: bytes, key_type: KeyType = KeyType.UNKNOWN) -> None: + def __init__( + self, + private_key: bytes, + key_type: KeyType = KeyType.UNKNOWN, + name: str | None = None, + ) -> None: """Initialize the `KeyPair` with the private key bytes.""" priv_int = crypto.bytes_to_int(private_key) self._priv_key = ec.derive_private_key( @@ -90,12 +95,22 @@ class KeyPair(HasPublicKey): ) self._key_type = key_type + self._name = name @property def key_type(self) -> KeyType: """Type of this key.""" return self._key_type + @property + def name(self) -> str | None: + """Name of this KeyPair.""" + return self._name + + @name.setter + def name(self, name: str | None) -> None: + self._name = name + @classmethod def new(cls) -> KeyPair: """Generate a new random `KeyPair`.""" @@ -138,7 +153,7 @@ class KeyPair(HasPublicKey): @override def __repr__(self) -> str: - return f'KeyPair(public_key="{self.adv_key_b64}", type={self.key_type})' + return f'KeyPair(name="{self.name}", public_key="{self.adv_key_b64}", type={self.key_type})' K = TypeVar("K")