
New
See attached code files there is a newly added support for public-key cryptography to the client. Each client has a randomly generated public key (Client.public_key) and a PublicKeySignature object that can be used to generate signatures. Clients can use verify_sign() to check these signatures. There are also new several functions to support adding and revoking multiple devices using per-device keys: • invite_device(device_public_key) allows inviting a new device to join a user's account. • accept_invite(inviter_public_key) is called by an invited device with the public key of the device that invited them • revoke_device(device_public_key) is called when one device on a user's account would like to revoke the access of some other device (specified by public key) on the user's account. There are also new methods to support adding "friends" and viewing their photos: • add_friend(friend_username, friend_public_key) is called when one user would like to add another user as a friend. A starter implementation of this function is provided to you. For simplicity, you are not required to synchronize the friend list between the different devices belonging to the same user---that is, if Alice wants to view Bob's photos on her two devices, she must call add_friend () to add Bob on each of her devices separately. • get_friend_photos(friend_username) returns the current list of photos in the given friend's album. A starter implementation of a helper function _synchronize_friend is provided to you to help get started---feel free to use it or even delete it. Note that all of these functions involve manually entering a device's public key. In a real system, this might be done through, for example, QR codes. Systems like Keybase and Signal use a strategy like this. There is also a generic Client.push_log_entry method that allows client to push a log entry of arbitrary bytes to the server. This allows you to add new log entries if you wish. The LogEntry class has also been moved into its own file, client/log_entry-py which you are allowed to edit.
Posted 17 days ago
Develop risk analysis skills, Monitor account activity, Contact account holders for verification,
hance quantitative skills, Support reporting and
Posted 58 days ago
Define and validate node scaling strategy | Create data-driven success metrics | Lead strategic
sions impacting reliability | Foster collaboration and coherence | Advocate for Node