Skip to content

Commit

Permalink
keys: Add name getter/setter to accessories and keypairs
Browse files Browse the repository at this point in the history
  • Loading branch information
malmeloo committed Sep 18, 2024
1 parent 4e75e73 commit 8a09623
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 2 deletions.
4 changes: 4 additions & 0 deletions findmy/accessory.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,10 @@ def name(self) -> str | None:
"""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."""
Expand Down
19 changes: 17 additions & 2 deletions findmy/keys.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,12 @@ def hashed_adv_key_bytes(self) -> bytes:
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(
Expand All @@ -90,12 +95,22 @@ def __init__(self, private_key: bytes, key_type: KeyType = KeyType.UNKNOWN) -> N
)

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`."""
Expand Down Expand Up @@ -138,7 +153,7 @@ def dh_exchange(self, other_pub_key: ec.EllipticCurvePublicKey) -> bytes:

@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")
Expand Down

0 comments on commit 8a09623

Please sign in to comment.