matrixlib.devices
module¶
Device-related functionality
-
class
matrixlib.devices.
DeviceKeysManager
(c: Client, key: bytes)¶ -
Manages a device’s keys for end-to-end encryption
Arguments:
c
:the client object
key
:a 32-byte binary used to encrypt the objects in storage
-
property
fingerprint_key
: Ed25519PublicKey¶
-
property
identity_key
: Curve25519PublicKey¶
-
sign_json
(json_object: dict) dict ¶ -
Sign a JSON object using the device’s signing key
The input object is modified to include the signature.
-
class
matrixlib.devices.
DeviceTracker
(c: Client)¶ -
Tracks user devices to reduce the number of queries required
Arguments:
c
:the client object
-
async
get_device_keys
(users: Iterable[str], force_download=False, timeout: int | None = None) dict[str, matrixlib.devices.UserDeviceKeysResult] ¶ -
Get the device keys for the given users.
Arguments:
users
:the user IDs to fetch device keys for
force_download
:whether to ignore the cache and force downloading of all device keys from the server
timeout
:a timeout in milliseconds for the homeserver to wait for responses from remote homeservers
Returns a dict mapping the user IDs to a
UserDeviceKeysResult
.
-
class
matrixlib.devices.
UserDeviceKeysResult
(device_keys: dict[str, dict])¶ -
The return value of DeviceTracker.get_device_keys for a user
Create new instance of UserDeviceKeysResult(device_keys,)
-
device_keys
: dict[str, dict]¶ -
mapping from device ID to device keys
-
-
matrixlib.devices.
verify_json_ed25519
(signature_key: Ed25519PublicKey, user_id: str, device_id: str, json_object: dict) None ¶ -
Verify a signed JSON object using a public key
Arguments:
signature_key
: the public part of the key used to sign the objectuser_id
: the ID of the user who signed the objectdevice_id
: the ID of the device used to sign the objectjson_object
: the signed JSON object