Rocket.Chat.ReactNative/app/views
Djorkaeff Alexandre 3c9017a62d
[NEW] E2E Encryption (#2394)
* Add E2EKey to Subscription Model

* Install react-native-simple-crypto

* Install bytebuffer

* Add translations

* CreateChannel Encrypted toggle

* Request E2E_Enabled setting

* Add some E2E API methods

* POC E2E Encryption

* Garbage remove

* Remove keys cleaner

* Android cast JWK -> PKCS1

* Initialize E2E when Login Success

* Add some translations

* Add e2e property to Message model

* Send Encrypted messages

* (iOS) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys

* (Android) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys

* Create an encrypted channel

* Fix app crashing on RoomsList

* Create room key

* Set Room E2E Key (Android)

* Edit room encrypted

* Show encrypted icon on messages

* logEvents

* Decrypt pending subscriptions & messages

* Handle user cancel e2e password entry

* E2ESavePasswordView

* Update Snapshot

* Add encrypted props to message on Send

* Thread messages encryption

* E2E -> Encryption

* Share Extension: Share encrypted text

* (POC) Search messages on Encrypted room

* Provide room key to new users

* Request roomKey on stream-notify-room-users

* Add e2eKeyId to Room Model

* (WIP) E2E Encryption Screens

* Remove encryption subscription file

* Move E2E_Enable to Server Model

* Encryption List Banner

* Move Encryption init to Sagas

* Show banner only when enabled

* Use RocketChat/react-native-simple-crypto

* Search on WM only when is an Encrypted channel

* (WIP) Encryption Banner

* Encryption banner

* Patch -> Fork

* Improve send encrypted message

* Update simple-crypto

* Not decrypt already decrypted messages

* Add comments

* Change eslint disable to inline

* Improve code

* Remove comment

* Some fixes

* (WIP) Encryption Screens

* Improve sub find

* Resend an encrypted message

* Fix comment

* Code improvements

* Hide e2e buttons on features if it is not enabled

* InApp notifications of a encrypted room

* Encryption stop logic

* Edit encrypted message

* DB batch on decryptPending

* Encryption ready client

* Comments

* Handle getRoomInstance errors

* Multiple messages decrypt

* Remove unnecessary try/catch

* Fix decrypt all messages history

* Just add a questionmark

* Fix some subscriptions missing decrypt

* Disable request key logic

* Fix unicode emojis

* Fix e2ekey request

* roomId -> subscription

* Decrypt subscription after merge

* E2ERoom -> EncryptionRoom

* Fix infinite loading

* Handle import key errors

* Handle request key errors

* Move e2eRequestRoomKey to Rocket.Chat

* WIP handshake when key should be requested

* Add search messages explanation

* Remove some TODO and update comments

* Improvements

* Dont show message hash to user

* Handle key request & prevent multiple calls

* Request E2EKey on decryptSubscription that doesn't exists on database yet

* Insert decrypted subscription

* Fix crash after login

* Decrypt sub when receive the key

* Decrypt pending messages of a room

* Encrypted as a switch

* Buffer to Base64 URI Safe

* Add a relevant comment

* Prevent import key without a privateKey

* Prevent create a new instance when client is not ready

* Update simple-crypto & remove replace trick

* More comments

* Remove useless comment

* Remove useless try/catch

* I18n all E2E screens

* E2ESavePassword -> E2ESaveYourPassword

* Prevent multiple views on message when is not encrypted

* Fix encryption toggle not working sometimes

* follow some suggestions

* dont rotate icons

* remove unnecessary condition

* remove unreachable event

* create channel comment

* disable no-bitwise rule for entire file

* loadKeys -> persistKeys

* getMasterKey -> generateMasterKey

* explicit difference between E2EKey & e2eKeyId

* roomId -> rid

* group columns

* Remove server selector

* missing log events

* remove comment

* use stored public key

* update simple-crypto & remove base64-js patch

* add some logs

* remove unreachable condition

* log errors

* handle errors on provide key directly on subscription

* Downgrade RocketChat/react-native-simple-crypto

* improve get room instance

* migration of older apps

* check encrypted status before send a message

* wait client ready

* use our own base64-js

* add more jest tests

* explain return

* remove unncessary stop

* thrown error to caller

* remove superfluous checks

* use Encryption property

* change ready state logic

* ready -> establishing

* encryption.room -> encryptionRoom

* EncryptionRoom -> Room

* add documentation

* wait establishing before provide a room key

* remove superfluous condition

* improve error handling logic

* fallback e2ekey set

* remove no longer necessary check

* remove e.g.

* improve getRoomInstance

* import from index

* use batch

* fix a comment

* decrypt tmsg

* dont show hash when message is encrypted

* Fix detox

* Apply suggestions from code review

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2020-09-11 11:31:38 -03:00
..
AdminPanelView [FIX] Admin panel not logging in automatically (#2330) 2020-07-22 16:41:36 -03:00
AutoTranslateView [NEW] Log remaining events (#2368) 2020-08-05 10:15:56 -03:00
CreateDiscussionView [NEW] Log events from RoomsList, SideDrawer and Profile (#2190) 2020-07-30 10:26:17 -03:00
DirectoryView [FIX] Apply theme on Directory description (#2428) 2020-08-26 11:10:26 -03:00
InviteUsersEditView [NEW] Log remaining events (#2368) 2020-08-05 10:15:56 -03:00
InviteUsersView [NEW] Log remaining events (#2368) 2020-08-05 10:15:56 -03:00
LanguageView [FIX] Minor i18n issues (#2335) 2020-07-31 15:30:36 -03:00
MessagesView [FIX] Verify useRealName setting on files screen (#2427) 2020-08-26 11:06:14 -03:00
NotificationPreferencesView [NEW] User notification preferences (#2403) 2020-08-21 10:30:11 -03:00
OnboardingView [NEW] Log events from RoomsList, SideDrawer and Profile (#2190) 2020-07-30 10:26:17 -03:00
ProfileView [NEW] Logout from other logged in locations (#2386) 2020-08-25 13:51:49 -03:00
ReadReceiptView [FIX] Read receipts on tablet (#2297) 2020-07-17 14:13:44 -03:00
RoomActionsView [NEW] E2E Encryption (#2394) 2020-09-11 11:31:38 -03:00
RoomInfoEditView [NEW] E2E Encryption (#2394) 2020-09-11 11:31:38 -03:00
RoomInfoView [NEW] Log remaining events (#2368) 2020-08-05 10:15:56 -03:00
RoomMembersView [FIX] Logout from custom oauth (#2377) 2020-08-25 17:04:18 -03:00
RoomView [NEW] E2E Encryption (#2394) 2020-09-11 11:31:38 -03:00
RoomsListView [NEW] E2E Encryption (#2394) 2020-09-11 11:31:38 -03:00
SearchMessagesView [NEW] E2E Encryption (#2394) 2020-09-11 11:31:38 -03:00
SettingsView [FIX] Wrong merge resolution after #2171 (#2431) 2020-08-26 11:26:19 -03:00
ShareListView [FIX] Change some icons (#2419) 2020-08-21 15:11:10 -03:00
ShareView [CHORE] Update icon names (#2318) 2020-07-27 16:53:33 -03:00
SidebarView [FIX] Fix broken StatusView on tablet (#2407) 2020-08-19 14:09:36 -03:00
ThreadMessagesView [FIX] ThreadMessagesView throwing error when subscription wasn't found (#2255) 2020-07-08 13:50:07 -03:00
UserNotificationPreferencesView [NEW] User notification preferences (#2403) 2020-08-21 10:30:11 -03:00
UserPreferencesView [FIX] User Preferences (#2418) 2020-08-21 15:14:06 -03:00
WorkspaceView [FIX] WorkspaceView not looking for the correct image path (#2376) 2020-08-05 13:46:42 -03:00
AttachmentView.js [FIX] AttachmentView crashing during title decode (#2253) 2020-07-08 13:40:51 -03:00
AuthLoadingView.js [CHORE] Update react-navigation to v5 (#2154) 2020-06-15 11:00:46 -03:00
AuthenticationWebView.js [NEW] IFrame authentication (#2184) 2020-06-17 17:12:21 -03:00
ChangePasscodeView.js [CHORE] Update icon names (#2318) 2020-07-27 16:53:33 -03:00
CreateChannelView.js [NEW] E2E Encryption (#2394) 2020-09-11 11:31:38 -03:00
DefaultBrowserView.js [NEW] Encrypt user credentials and preferences (#2247) 2020-08-19 14:14:22 -03:00
E2EEnterYourPasswordView.js [NEW] E2E Encryption (#2394) 2020-09-11 11:31:38 -03:00
E2EHowItWorksView.js [NEW] E2E Encryption (#2394) 2020-09-11 11:31:38 -03:00
E2ESaveYourPasswordView.js [NEW] E2E Encryption (#2394) 2020-09-11 11:31:38 -03:00
ForgotPasswordView.js [NEW] Log events from RoomsList, SideDrawer and Profile (#2190) 2020-07-30 10:26:17 -03:00
ForwardLivechatView.js [CHORE] Update react-navigation to v5 (#2154) 2020-06-15 11:00:46 -03:00
JitsiMeetView.js [NEW] Log remaining events (#2368) 2020-08-05 10:15:56 -03:00
LegalView.js [CHORE] Update react-navigation to v5 (#2154) 2020-06-15 11:00:46 -03:00
LivechatEditView.js [CHORE] Update icon names (#2318) 2020-07-27 16:53:33 -03:00
LoginView.js [NEW] Log events from RoomsList, SideDrawer and Profile (#2190) 2020-07-30 10:26:17 -03:00
MarkdownTableView.js [FIX] Minor i18n issues (#2335) 2020-07-31 15:30:36 -03:00
ModalBlockView.js Update dependencies (#2301) 2020-07-20 13:35:17 -03:00
NewMessageView.js [NEW] Log events from RoomsList, SideDrawer and Profile (#2190) 2020-07-30 10:26:17 -03:00
NewServerView.js [FIX] Logout from custom oauth (#2377) 2020-08-25 17:04:18 -03:00
PickerView.js [FIX] i18n being called outside render (#2334) 2020-07-24 16:23:34 -03:00
RegisterView.js [NEW] Log events from RoomsList, SideDrawer and Profile (#2190) 2020-07-30 10:26:17 -03:00
ScreenLockConfigView.js [FIX] Minor i18n issues (#2335) 2020-07-31 15:30:36 -03:00
ScreenLockedView.js [NEW] Passcode and biometric unlock (#2059) 2020-05-08 14:04:37 -03:00
SelectServerView.js [FIX] Minor i18n issues (#2335) 2020-07-31 15:30:36 -03:00
SelectedUsersView.js [NEW] Log events from Room, Settings and Edit status (#2206) 2020-07-30 16:51:13 -03:00
SetUsernameView.js [CHORE] Add wrapper to make Meteor methods calls over REST (#2104) 2020-06-29 14:57:39 -03:00
StatusView.js [NEW] Log events from Room, Settings and Edit status (#2206) 2020-07-30 16:51:13 -03:00
Styles.js [CHORE] Update react-navigation to v5 (#2154) 2020-06-15 11:00:46 -03:00
ThemeView.js [NEW] Encrypt user credentials and preferences (#2247) 2020-08-19 14:14:22 -03:00
VisitorNavigationView.js [CHORE] Update react-navigation to v5 (#2154) 2020-06-15 11:00:46 -03:00
WithoutServersView.js [FIX] Minor i18n issues (#2335) 2020-07-31 15:30:36 -03:00