status-go/protocol
Patryk Osmaczko 30da8390bd feat: introduce CommunitiesKeyDistributor
This component decouples key distribution from the Messenger, enhancing
code maintainability, extensibility and testability.
It also alleviates the need to impact all methods potentially affecting
encryption keys.
Moreover, it allows key distribution inspection for integration tests.

part of: status-im/status-desktop#10998
2023-07-27 11:35:59 +02:00
..
anonmetrics feat: register new community member role ROLE_TOKEN_MASTER and grant him admin permissions (#3810) 2023-07-26 18:01:19 +02:00
audio
common refactor to remove rekeyedAt and use group current key 2023-07-24 17:18:42 +01:00
communities feat: introduce CommunitiesKeyDistributor 2023-07-27 11:35:59 +02:00
datasync
discord
encryption feat: register new community member role ROLE_TOKEN_MASTER and grant him admin permissions (#3810) 2023-07-26 18:01:19 +02:00
ens Add permission checks for ENS token permissions 2023-06-05 13:10:48 +02:00
identity Updates ring width and palette to match the designs (#3671) 2023-06-26 13:17:59 +01:00
internal/sqlite
linkpreview Support unfurling more websites (#3530) 2023-06-05 07:46:17 -03:00
migrations feat: register new community member role ROLE_TOKEN_MASTER and grant him admin permissions (#3810) 2023-07-26 18:01:19 +02:00
protobuf feat: register new community member role ROLE_TOKEN_MASTER and grant him admin permissions (#3810) 2023-07-26 18:01:19 +02:00
pushnotificationclient feat: register new community member role ROLE_TOKEN_MASTER and grant him admin permissions (#3810) 2023-07-26 18:01:19 +02:00
pushnotificationserver feat: register new community member role ROLE_TOKEN_MASTER and grant him admin permissions (#3810) 2023-07-26 18:01:19 +02:00
requests feat(communities): add airdropAddress param to SharedAccounts (#3756) 2023-07-14 13:33:47 -04:00
sqlite chore(upgradeSQLCipher): Upgrading SQLCipher to version 5.4.5 (#3559) 2023-06-07 08:58:01 +03:00
subscription
transport feat: register new community member role ROLE_TOKEN_MASTER and grant him admin permissions (#3810) 2023-07-26 18:01:19 +02:00
tt
urls feat: add parsing for new links format (#3665) 2023-07-04 17:48:52 +04:00
v1 fix: wallet accounts ordering improvements 2023-07-20 14:32:41 +02:00
verification
wakusync chore: synchronization improvements applied to keypairs/accounts 2023-07-05 14:41:26 +02:00
zaputil
LICENSE
README.md
activity_center.go Feat/sync activity center notification (#3535) 2023-06-10 10:00:17 +08:00
activity_center_persistence.go Feat/sync activity center notification (#3535) 2023-06-10 10:00:17 +08:00
activity_center_persistence_test.go Mute and Unmute community 2023-07-19 15:14:42 +03:00
chat.go feat(categories): Add muted type to category muting shortcut (#3534) 2023-06-02 14:25:32 +03:00
chat_group_proxy.go
chat_test.go URL unfurling (initial implementation) (#3471) 2023-05-18 15:43:06 -03:00
communities_events_owner_without_community_key_test.go chore: make the owner without the community private key behave like a… (#3788) 2023-07-26 14:16:50 +02:00
communities_events_token_master_test.go feat: register new community member role ROLE_TOKEN_MASTER and grant him admin permissions (#3810) 2023-07-26 18:01:19 +02:00
communities_events_utils_test.go feat: register new community member role ROLE_TOKEN_MASTER and grant him admin permissions (#3810) 2023-07-26 18:01:19 +02:00
communities_key_distributor.go feat: introduce CommunitiesKeyDistributor 2023-07-27 11:35:59 +02:00
communities_messenger_admin_test.go feat: register new community member role ROLE_TOKEN_MASTER and grant him admin permissions (#3810) 2023-07-26 18:01:19 +02:00
communities_messenger_helpers_test.go chore: make the owner without the community private key behave like a… (#3788) 2023-07-26 14:16:50 +02:00
communities_messenger_test.go feat: introduce CommunitiesKeyDistributor 2023-07-27 11:35:59 +02:00
communities_messenger_token_permissions_test.go feat: introduce CommunitiesKeyDistributor 2023-07-27 11:35:59 +02:00
contact.go Add system message for mutual contact state updates (#3519) 2023-06-08 16:00:19 +04:00
contact_test.go
delete_message.go sync message for `delete for me` should not be sent to someone else (#3462) 2023-05-09 20:54:56 +08:00
edit_message.go
emoji_reaction.go Return compressed key with emojis (#3410) 2023-05-10 13:45:42 +03:00
errors.go feat: add parsing for new links format (#3665) 2023-07-04 17:48:52 +04:00
group_chat_invitation.go
group_chat_system_messages.go
identity_images.go
local_notifications.go
message_builder.go
message_persistence.go feat: add images count to reply (#3574) 2023-06-06 15:52:07 +04:00
message_validator.go Fix: mutual state messages behaviour (#3640) 2023-07-12 11:12:58 -04:00
message_validator_test.go
messenger.go feat: introduce CommunitiesKeyDistributor 2023-07-27 11:35:59 +02:00
messenger_activity_center.go Feat/sync activity center notification (#3535) 2023-06-10 10:00:17 +08:00
messenger_activity_center_test.go Run tests separately, make sure messenger is shutdown, fix torrent test 2023-06-23 11:30:04 +01:00
messenger_auto_message.go
messenger_backup.go fix: function name change 2023-07-26 08:23:55 +02:00
messenger_backup_handler.go chore: synchronization improvements applied to keypairs/accounts 2023-07-05 14:41:26 +02:00
messenger_backup_test.go fix: function name change 2023-07-26 08:23:55 +02:00
messenger_base_test.go fix: discard backed up messages if `ProcessBackedupMessages` is not set to `true` 2023-07-25 07:50:43 +02:00
messenger_bookmarks.go
messenger_browsers.go
messenger_browsers_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
messenger_chats.go Make chat muting only works on one chat and not to completely block PNs from a user (#3647) 2023-06-22 08:06:32 +03:00
messenger_collapsed_community_categories.go
messenger_collapsed_community_categories_test.go
messenger_communities.go feat: introduce CommunitiesKeyDistributor 2023-07-27 11:35:59 +02:00
messenger_config.go chore: synchronization improvements applied to keypairs/accounts 2023-07-05 14:41:26 +02:00
messenger_contact_requests_test.go fix: ignore contact requests from mutual and dismissed contacts (#3754) 2023-07-14 17:37:38 +04:00
messenger_contact_update_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
messenger_contact_verification.go Feat/sync activity center notification (#3535) 2023-06-10 10:00:17 +08:00
messenger_contact_verification_test.go Run tests separately, make sure messenger is shutdown, fix torrent test 2023-06-23 11:30:04 +01:00
messenger_contacts.go fix: Mutual state update messages are always seen (#3778) 2023-07-25 12:35:05 +04:00
messenger_delete_message_for_everyone_test.go Run tests separately, make sure messenger is shutdown, fix torrent test 2023-06-23 11:30:04 +01:00
messenger_delete_message_for_me_test.go [status-mobile-16467] Fix delete for me on receiver side using wrong chatID (#3732) 2023-07-10 22:26:32 +03:00
messenger_delete_message_test.go Make sure image URL are preserved when deleting a message for me 2023-06-30 11:12:26 +01:00
messenger_discv5.go
messenger_edit_message_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
messenger_emoji_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
messenger_ens.go
messenger_group_chat.go Feat/sync activity center notification (#3535) 2023-06-10 10:00:17 +08:00
messenger_group_chat_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
messenger_handler.go chore: wallet accounts improvements - soft delete 2023-07-25 18:11:05 +02:00
messenger_handler_test.go
messenger_identity.go Set installation name on account creation and pairing 2023-06-29 10:14:12 +02:00
messenger_identity_display_name_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
messenger_identity_image_test.go
messenger_identity_social_links_test.go fix: profile social links updated 2023-06-06 09:59:12 +02:00
messenger_installations_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
messenger_keycard.go chore: synchronization improvements applied to keycards 2023-07-11 15:14:49 +02:00
messenger_mailserver.go chore: `forceFetchingBackup` param added to `RequestAllHistoricMessages` and `RequestAllHistoricMessagesWithRetries` functions 2023-06-09 17:42:11 +02:00
messenger_mailserver_cycle.go chore: `forceFetchingBackup` param added to `RequestAllHistoricMessages` and `RequestAllHistoricMessagesWithRetries` functions 2023-06-09 17:42:11 +02:00
messenger_mailserver_processMailserverBatch_test.go test: processMailserverBatch 2023-04-30 10:04:04 -04:00
messenger_maps.go fix: don't store ourselves as a contact (#3627) 2023-07-12 12:46:56 +03:00
messenger_mention.go [mention] fix relate issues to input segments (#3766) 2023-07-25 16:47:24 +08:00
messenger_mention_test.go [mention] fix relate issues to input segments (#3766) 2023-07-25 16:47:24 +08:00
messenger_messages.go [status-mobile-16467] Fix delete for me on receiver side using wrong chatID (#3732) 2023-07-10 22:26:32 +03:00
messenger_mute_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
messenger_peers.go
messenger_pin_message_test.go Run tests separately, make sure messenger is shutdown, fix torrent test 2023-06-23 11:30:04 +01:00
messenger_pin_messages.go feat: community admin permission functionality (#3569) 2023-06-14 10:15:46 -04:00
messenger_reply_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
messenger_response.go fix: wallet accounts ordering improvements 2023-07-20 14:32:41 +02:00
messenger_response_test.go
messenger_saved_address.go
messenger_send_images_album_test.go Run tests separately, make sure messenger is shutdown, fix torrent test 2023-06-23 11:30:04 +01:00
messenger_share_image_test.go Run tests separately, make sure messenger is shutdown, fix torrent test 2023-06-23 11:30:04 +01:00
messenger_share_urls.go feat(new-urls-format): Usage the chat key instead of signature (#3779) 2023-07-26 15:14:06 +03:00
messenger_share_urls_test.go feat(new-urls-format): Usage the chat key instead of signature (#3779) 2023-07-26 15:14:06 +03:00
messenger_status_updates.go
messenger_status_updates_test.go
messenger_switcher_cards.go
messenger_sync_activity_notification_test.go Feat/sync activity center notification (#3535) 2023-06-10 10:00:17 +08:00
messenger_sync_bookmark_test.go
messenger_sync_chat_test.go
messenger_sync_clear_history_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
messenger_sync_customization_color_test.go Feat/sync customization color (#3702) 2023-07-18 21:35:06 +08:00
messenger_sync_keycard_change_test.go fix: review comments applied 2023-07-25 18:11:05 +02:00
messenger_sync_keycards_state_test.go fix: review comments applied 2023-07-25 18:11:05 +02:00
messenger_sync_profile_picture_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
messenger_sync_raw_messages.go fix: wallet accounts ordering improvements 2023-07-20 14:32:41 +02:00
messenger_sync_saved_addresses_test.go
messenger_sync_settings.go feat: backup display name improvements 2023-03-31 16:20:50 +02:00
messenger_sync_settings_test.go Changes necessary to restore wallet on mobile app 2023-05-25 21:08:34 +02:00
messenger_sync_verification_test.go
messenger_sync_wallets_test.go fix: function name change 2023-07-26 08:23:55 +02:00
messenger_test.go fix: don't store ourselves as a contact (#3627) 2023-07-12 12:46:56 +03:00
messenger_testing_utils.go fix: don't store ourselves as a contact (#3627) 2023-07-12 12:46:56 +03:00
messenger_wallet.go fix: review comments applied 2023-07-25 18:11:05 +02:00
messenger_walletconnect.go
messenger_walletconnect_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
persistence.go fix: profile social links updated 2023-06-06 09:59:12 +02:00
persistence_collapsed_community_categories.go Feat/sync activity center notification (#3535) 2023-06-10 10:00:17 +08:00
persistence_test.go Handle async raw message confirmations 2023-06-26 13:36:20 +01:00
push_notification_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
status_update.go
switcher_card.go
transaction_validator.go
transaction_validator_test.go

README.md

status-go/protocol

This is an implementation of the secure transport and payloads which are a part of the Status Client specification.

This implementation uses SQLite and SQLCipher for persistent storage.

The payloads are encoded using protocol-buffers.

Content

  • messenger.go is the main file which exports Messenger struct. This is a public API to interact with this implementation of the Status Chat Protocol.
  • protobuf/ contains protobuf files implementing payloads described in the Payloads spec.
  • encryption/ implements the Secure Transport spec.
  • transport/ connects the Status Chat Protocol with a wire-protocol which in our case is either Whisper or Waku.
  • datasync/ is an adapter for MVDS.
  • applicationmetadata/ is an outer layer wrapping a payload with an app-specific metadata like a signature.
  • identity/ implements details related to creating a three-word name and identicon.
  • migrations/ contains implementation specific migrations for the sqlite database which is used by Messenger as a persistent data store.

History

Originally this package was a dedicated repo called status-protocol-go and was migrated into status-go. The new status-go/protocol package maintained its own dependencies until sub modules were removed and the root go.mod file managed all dependencies for the entire status-go repo.