@ethora/chat-component-rn 26.8.6 → 26.8.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/README.md +40 -0
- package/lib/commonjs/assets/icons.js +4 -2
- package/lib/commonjs/assets/icons.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatHeader.js +28 -6
- package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatRoom.js +9 -1
- package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/commonjs/components/MainComponents/EncryptedSendNotice.js +47 -0
- package/lib/commonjs/components/MainComponents/EncryptedSendNotice.js.map +1 -0
- package/lib/commonjs/components/MainComponents/EncryptionCard.js +286 -0
- package/lib/commonjs/components/MainComponents/EncryptionCard.js.map +1 -0
- package/lib/commonjs/components/MainComponents/MediaMessage.js +7 -0
- package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ReduxWrapper.js +5 -0
- package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/SealedAttachment.js +231 -0
- package/lib/commonjs/components/MainComponents/SealedAttachment.js.map +1 -0
- package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js +2 -1
- package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/Message.js +66 -6
- package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/MessageInteractions.js +2 -1
- package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +7 -4
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +159 -16
- package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
- package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +4 -0
- package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
- package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +29 -6
- package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
- package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js +5 -1
- package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +32 -9
- package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/LastMessageItem.js +6 -0
- package/lib/commonjs/components/RoomComponents/LastMessageItem.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js +2 -2
- package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js +4 -6
- package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js +2 -2
- package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/styled/LastMessageSealed.js +41 -0
- package/lib/commonjs/components/RoomComponents/styled/LastMessageSealed.js.map +1 -0
- package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js +2 -2
- package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
- package/lib/commonjs/components/Thread/ThreadWrapper.js +53 -45
- package/lib/commonjs/components/Thread/ThreadWrapper.js.map +1 -1
- package/lib/commonjs/components/UsersList/UsersList.js +2 -1
- package/lib/commonjs/components/UsersList/UsersList.js.map +1 -1
- package/lib/commonjs/components/styled/SendInput.js +4 -2
- package/lib/commonjs/components/styled/SendInput.js.map +1 -1
- package/lib/commonjs/e2ee/crypto.js +207 -0
- package/lib/commonjs/e2ee/crypto.js.map +1 -0
- package/lib/commonjs/e2ee/deviceStore.js +84 -0
- package/lib/commonjs/e2ee/deviceStore.js.map +1 -0
- package/lib/commonjs/e2ee/fileCipher.js +95 -0
- package/lib/commonjs/e2ee/fileCipher.js.map +1 -0
- package/lib/commonjs/e2ee/fileEnvelope.js +79 -0
- package/lib/commonjs/e2ee/fileEnvelope.js.map +1 -0
- package/lib/commonjs/e2ee/index.js +210 -0
- package/lib/commonjs/e2ee/index.js.map +1 -0
- package/lib/commonjs/e2ee/limits.js +9 -0
- package/lib/commonjs/e2ee/limits.js.map +1 -0
- package/lib/commonjs/e2ee/ns.js +8 -0
- package/lib/commonjs/e2ee/ns.js.map +1 -0
- package/lib/commonjs/e2ee/omemo.js +622 -0
- package/lib/commonjs/e2ee/omemo.js.map +1 -0
- package/lib/commonjs/e2ee/protobuf.js +149 -0
- package/lib/commonjs/e2ee/protobuf.js.map +1 -0
- package/lib/commonjs/e2ee/ratchet.js +238 -0
- package/lib/commonjs/e2ee/ratchet.js.map +1 -0
- package/lib/commonjs/e2ee/sealedBody.js +23 -0
- package/lib/commonjs/e2ee/sealedBody.js.map +1 -0
- package/lib/commonjs/e2ee/sealedFiles.js +174 -0
- package/lib/commonjs/e2ee/sealedFiles.js.map +1 -0
- package/lib/commonjs/e2ee/send.js +54 -0
- package/lib/commonjs/e2ee/send.js.map +1 -0
- package/lib/commonjs/e2ee/stanza.js +114 -0
- package/lib/commonjs/e2ee/stanza.js.map +1 -0
- package/lib/commonjs/e2ee/store.js +43 -0
- package/lib/commonjs/e2ee/store.js.map +1 -0
- package/lib/commonjs/helpers/accountName.js +23 -0
- package/lib/commonjs/helpers/accountName.js.map +1 -0
- package/lib/commonjs/helpers/createMessageFromXml.js +19 -4
- package/lib/commonjs/helpers/createMessageFromXml.js.map +1 -1
- package/lib/commonjs/helpers/createUserNameFromSetUser.js +2 -1
- package/lib/commonjs/helpers/createUserNameFromSetUser.js.map +1 -1
- package/lib/commonjs/helpers/displayName.js +16 -0
- package/lib/commonjs/helpers/displayName.js.map +1 -0
- package/lib/commonjs/helpers/persistCrypto.js +5 -0
- package/lib/commonjs/helpers/persistCrypto.js.map +1 -1
- package/lib/commonjs/helpers/secureKeyValue.js +20 -0
- package/lib/commonjs/helpers/secureKeyValue.js.map +1 -1
- package/lib/commonjs/helpers/videoCache.js +136 -0
- package/lib/commonjs/helpers/videoCache.js.map +1 -0
- package/lib/commonjs/hooks/useLogout.js +8 -0
- package/lib/commonjs/hooks/useLogout.js.map +1 -1
- package/lib/commonjs/hooks/useSendMessage.js +71 -7
- package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
- package/lib/commonjs/i18n/strings.js +180 -0
- package/lib/commonjs/i18n/strings.js.map +1 -1
- package/lib/commonjs/main.js +13 -0
- package/lib/commonjs/main.js.map +1 -1
- package/lib/commonjs/networking/api-requests/auth.api.js +4 -1
- package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
- package/lib/commonjs/networking/api-requests/rooms.api.js +111 -17
- package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
- package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js +40 -0
- package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js +16 -3
- package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js +13 -6
- package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +14 -6
- package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmppClient.js +6 -0
- package/lib/commonjs/networking/xmppClient.js.map +1 -1
- package/lib/commonjs/roomStore/persistBackend.js +9 -12
- package/lib/commonjs/roomStore/persistBackend.js.map +1 -1
- package/lib/commonjs/roomStore/persistence.js +8 -1
- package/lib/commonjs/roomStore/persistence.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/module/assets/icons.js +3 -1
- package/lib/module/assets/icons.js.map +1 -1
- package/lib/module/components/MainComponents/ChatHeader.js +29 -7
- package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/module/components/MainComponents/ChatRoom.js +9 -1
- package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/module/components/MainComponents/EncryptedSendNotice.js +42 -0
- package/lib/module/components/MainComponents/EncryptedSendNotice.js.map +1 -0
- package/lib/module/components/MainComponents/EncryptionCard.js +281 -0
- package/lib/module/components/MainComponents/EncryptionCard.js.map +1 -0
- package/lib/module/components/MainComponents/MediaMessage.js +7 -0
- package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
- package/lib/module/components/MainComponents/ReduxWrapper.js +5 -0
- package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/SealedAttachment.js +224 -0
- package/lib/module/components/MainComponents/SealedAttachment.js.map +1 -0
- package/lib/module/components/MessageBubble/BottomReplyContainer.js +2 -1
- package/lib/module/components/MessageBubble/BottomReplyContainer.js.map +1 -1
- package/lib/module/components/MessageBubble/Message.js +69 -9
- package/lib/module/components/MessageBubble/Message.js.map +1 -1
- package/lib/module/components/MessageBubble/MessageInteractions.js +2 -1
- package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +7 -4
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +161 -18
- package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
- package/lib/module/components/Modals/FilePreviewModal/PdfView.js +4 -0
- package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
- package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +32 -8
- package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
- package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +4 -0
- package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
- package/lib/module/components/RoomComponents/ChatRoomItem.js +32 -9
- package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
- package/lib/module/components/RoomComponents/LastMessageItem.js +6 -0
- package/lib/module/components/RoomComponents/LastMessageItem.js.map +1 -1
- package/lib/module/components/RoomComponents/styled/LastAudioMessage.js +2 -2
- package/lib/module/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
- package/lib/module/components/RoomComponents/styled/LastMessageFile.js +4 -6
- package/lib/module/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
- package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js +2 -2
- package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
- package/lib/module/components/RoomComponents/styled/LastMessageSealed.js +36 -0
- package/lib/module/components/RoomComponents/styled/LastMessageSealed.js.map +1 -0
- package/lib/module/components/RoomComponents/styled/LastMessageVideo.js +2 -2
- package/lib/module/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
- package/lib/module/components/Thread/ThreadWrapper.js +54 -46
- package/lib/module/components/Thread/ThreadWrapper.js.map +1 -1
- package/lib/module/components/UsersList/UsersList.js +2 -1
- package/lib/module/components/UsersList/UsersList.js.map +1 -1
- package/lib/module/components/styled/SendInput.js +4 -2
- package/lib/module/components/styled/SendInput.js.map +1 -1
- package/lib/module/e2ee/crypto.js +170 -0
- package/lib/module/e2ee/crypto.js.map +1 -0
- package/lib/module/e2ee/deviceStore.js +77 -0
- package/lib/module/e2ee/deviceStore.js.map +1 -0
- package/lib/module/e2ee/fileCipher.js +90 -0
- package/lib/module/e2ee/fileCipher.js.map +1 -0
- package/lib/module/e2ee/fileEnvelope.js +66 -0
- package/lib/module/e2ee/fileEnvelope.js.map +1 -0
- package/lib/module/e2ee/index.js +185 -0
- package/lib/module/e2ee/index.js.map +1 -0
- package/lib/module/e2ee/limits.js +5 -0
- package/lib/module/e2ee/limits.js.map +1 -0
- package/lib/module/e2ee/ns.js +4 -0
- package/lib/module/e2ee/ns.js.map +1 -0
- package/lib/module/e2ee/omemo.js +610 -0
- package/lib/module/e2ee/omemo.js.map +1 -0
- package/lib/module/e2ee/protobuf.js +140 -0
- package/lib/module/e2ee/protobuf.js.map +1 -0
- package/lib/module/e2ee/ratchet.js +228 -0
- package/lib/module/e2ee/ratchet.js.map +1 -0
- package/lib/module/e2ee/sealedBody.js +19 -0
- package/lib/module/e2ee/sealedBody.js.map +1 -0
- package/lib/module/e2ee/sealedFiles.js +154 -0
- package/lib/module/e2ee/sealedFiles.js.map +1 -0
- package/lib/module/e2ee/send.js +48 -0
- package/lib/module/e2ee/send.js.map +1 -0
- package/lib/module/e2ee/stanza.js +107 -0
- package/lib/module/e2ee/stanza.js.map +1 -0
- package/lib/module/e2ee/store.js +35 -0
- package/lib/module/e2ee/store.js.map +1 -0
- package/lib/module/helpers/accountName.js +18 -0
- package/lib/module/helpers/accountName.js.map +1 -0
- package/lib/module/helpers/createMessageFromXml.js +19 -4
- package/lib/module/helpers/createMessageFromXml.js.map +1 -1
- package/lib/module/helpers/createUserNameFromSetUser.js +3 -1
- package/lib/module/helpers/createUserNameFromSetUser.js.map +1 -1
- package/lib/module/helpers/displayName.js +11 -0
- package/lib/module/helpers/displayName.js.map +1 -0
- package/lib/module/helpers/persistCrypto.js +4 -0
- package/lib/module/helpers/persistCrypto.js.map +1 -1
- package/lib/module/helpers/secureKeyValue.js +19 -0
- package/lib/module/helpers/secureKeyValue.js.map +1 -1
- package/lib/module/helpers/videoCache.js +125 -0
- package/lib/module/helpers/videoCache.js.map +1 -0
- package/lib/module/hooks/useLogout.js +8 -0
- package/lib/module/hooks/useLogout.js.map +1 -1
- package/lib/module/hooks/useSendMessage.js +71 -7
- package/lib/module/hooks/useSendMessage.js.map +1 -1
- package/lib/module/i18n/strings.js +180 -0
- package/lib/module/i18n/strings.js.map +1 -1
- package/lib/module/main.js +1 -0
- package/lib/module/main.js.map +1 -1
- package/lib/module/networking/api-requests/auth.api.js +4 -1
- package/lib/module/networking/api-requests/auth.api.js.map +1 -1
- package/lib/module/networking/api-requests/rooms.api.js +109 -18
- package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
- package/lib/module/networking/xmpp/handleStanzas.xmpp.js +38 -0
- package/lib/module/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js +16 -3
- package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/sendTextMessage.xmpp.js +13 -6
- package/lib/module/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +14 -6
- package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
- package/lib/module/networking/xmppClient.js +6 -0
- package/lib/module/networking/xmppClient.js.map +1 -1
- package/lib/module/roomStore/persistBackend.js +10 -13
- package/lib/module/roomStore/persistBackend.js.map +1 -1
- package/lib/module/roomStore/persistence.js +8 -1
- package/lib/module/roomStore/persistence.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/typescript/assets/icons.d.ts +8 -0
- package/lib/typescript/assets/icons.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/EncryptedSendNotice.d.ts +4 -0
- package/lib/typescript/components/MainComponents/EncryptedSendNotice.d.ts.map +1 -0
- package/lib/typescript/components/MainComponents/EncryptionCard.d.ts +10 -0
- package/lib/typescript/components/MainComponents/EncryptionCard.d.ts.map +1 -0
- package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/SealedAttachment.d.ts +13 -0
- package/lib/typescript/components/MainComponents/SealedAttachment.d.ts.map +1 -0
- package/lib/typescript/components/MessageBubble/BottomReplyContainer.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
- package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/FilePreviewModal/PdfView.d.ts.map +1 -1
- package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/LastMessageItem.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/styled/LastAudioMessage.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/styled/LastMessageSealed.d.ts +7 -0
- package/lib/typescript/components/RoomComponents/styled/LastMessageSealed.d.ts.map +1 -0
- package/lib/typescript/components/Thread/ThreadWrapper.d.ts.map +1 -1
- package/lib/typescript/components/UsersList/UsersList.d.ts.map +1 -1
- package/lib/typescript/components/styled/SendInput.d.ts +1 -0
- package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
- package/lib/typescript/e2ee/crypto.d.ts +28 -0
- package/lib/typescript/e2ee/crypto.d.ts.map +1 -0
- package/lib/typescript/e2ee/deviceStore.d.ts +4 -0
- package/lib/typescript/e2ee/deviceStore.d.ts.map +1 -0
- package/lib/typescript/e2ee/fileCipher.d.ts +7 -0
- package/lib/typescript/e2ee/fileCipher.d.ts.map +1 -0
- package/lib/typescript/e2ee/fileEnvelope.d.ts +27 -0
- package/lib/typescript/e2ee/fileEnvelope.d.ts.map +1 -0
- package/lib/typescript/e2ee/index.d.ts +23 -0
- package/lib/typescript/e2ee/index.d.ts.map +1 -0
- package/lib/typescript/e2ee/limits.d.ts +3 -0
- package/lib/typescript/e2ee/limits.d.ts.map +1 -0
- package/lib/typescript/e2ee/ns.d.ts +2 -0
- package/lib/typescript/e2ee/ns.d.ts.map +1 -0
- package/lib/typescript/e2ee/omemo.d.ts +64 -0
- package/lib/typescript/e2ee/omemo.d.ts.map +1 -0
- package/lib/typescript/e2ee/protobuf.d.ts +25 -0
- package/lib/typescript/e2ee/protobuf.d.ts.map +1 -0
- package/lib/typescript/e2ee/ratchet.d.ts +39 -0
- package/lib/typescript/e2ee/ratchet.d.ts.map +1 -0
- package/lib/typescript/e2ee/sealedBody.d.ts +2 -0
- package/lib/typescript/e2ee/sealedBody.d.ts.map +1 -0
- package/lib/typescript/e2ee/sealedFiles.d.ts +31 -0
- package/lib/typescript/e2ee/sealedFiles.d.ts.map +1 -0
- package/lib/typescript/e2ee/send.d.ts +6 -0
- package/lib/typescript/e2ee/send.d.ts.map +1 -0
- package/lib/typescript/e2ee/stanza.d.ts +8 -0
- package/lib/typescript/e2ee/stanza.d.ts.map +1 -0
- package/lib/typescript/e2ee/store.d.ts +16 -0
- package/lib/typescript/e2ee/store.d.ts.map +1 -0
- package/lib/typescript/helpers/accountName.d.ts +7 -0
- package/lib/typescript/helpers/accountName.d.ts.map +1 -0
- package/lib/typescript/helpers/createMessageFromXml.d.ts.map +1 -1
- package/lib/typescript/helpers/createUserNameFromSetUser.d.ts.map +1 -1
- package/lib/typescript/helpers/displayName.d.ts +2 -0
- package/lib/typescript/helpers/displayName.d.ts.map +1 -0
- package/lib/typescript/helpers/persistCrypto.d.ts +1 -0
- package/lib/typescript/helpers/persistCrypto.d.ts.map +1 -1
- package/lib/typescript/helpers/secureKeyValue.d.ts +4 -0
- package/lib/typescript/helpers/secureKeyValue.d.ts.map +1 -1
- package/lib/typescript/helpers/videoCache.d.ts +19 -0
- package/lib/typescript/helpers/videoCache.d.ts.map +1 -0
- package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
- package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
- package/lib/typescript/i18n/strings.d.ts.map +1 -1
- package/lib/typescript/main.d.ts +2 -0
- package/lib/typescript/main.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/auth.api.d.ts +4 -1
- package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/rooms.api.d.ts +22 -1
- package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts +1 -0
- package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/sendMediaMessage.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
- package/lib/typescript/roomStore/persistBackend.d.ts.map +1 -1
- package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
- package/lib/typescript/types/models/message.model.d.ts +5 -0
- package/lib/typescript/types/models/message.model.d.ts.map +1 -1
- package/lib/typescript/types/models/room.model.d.ts +5 -0
- package/lib/typescript/types/models/room.model.d.ts.map +1 -1
- package/lib/typescript/types/types.d.ts +4 -0
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/lib/typescript/version.d.ts +1 -1
- package/package.json +8 -4
- package/src/assets/icons.tsx +27 -0
- package/src/components/MainComponents/ChatHeader.tsx +30 -9
- package/src/components/MainComponents/ChatRoom.tsx +11 -1
- package/src/components/MainComponents/EncryptedSendNotice.tsx +35 -0
- package/src/components/MainComponents/EncryptionCard.tsx +287 -0
- package/src/components/MainComponents/MediaMessage.tsx +5 -0
- package/src/components/MainComponents/ReduxWrapper.tsx +5 -0
- package/src/components/MainComponents/SealedAttachment.tsx +251 -0
- package/src/components/MessageBubble/BottomReplyContainer.tsx +2 -1
- package/src/components/MessageBubble/Message.tsx +96 -6
- package/src/components/MessageBubble/MessageInteractions.tsx +2 -3
- package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +7 -4
- package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +181 -35
- package/src/components/Modals/FilePreviewModal/PdfView.tsx +4 -0
- package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +53 -8
- package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +5 -0
- package/src/components/RoomComponents/ChatRoomItem.tsx +23 -11
- package/src/components/RoomComponents/LastMessageItem.tsx +5 -0
- package/src/components/RoomComponents/styled/LastAudioMessage.tsx +3 -1
- package/src/components/RoomComponents/styled/LastMessageFile.tsx +2 -2
- package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +1 -1
- package/src/components/RoomComponents/styled/LastMessageSealed.tsx +31 -0
- package/src/components/RoomComponents/styled/LastMessageVideo.tsx +1 -1
- package/src/components/Thread/ThreadWrapper.tsx +13 -0
- package/src/components/UsersList/UsersList.tsx +2 -1
- package/src/components/styled/SendInput.tsx +5 -2
- package/src/e2ee/crypto.ts +194 -0
- package/src/e2ee/deviceStore.ts +80 -0
- package/src/e2ee/fileCipher.ts +86 -0
- package/src/e2ee/fileEnvelope.ts +115 -0
- package/src/e2ee/index.ts +192 -0
- package/src/e2ee/limits.ts +2 -0
- package/src/e2ee/ns.ts +1 -0
- package/src/e2ee/omemo.ts +802 -0
- package/src/e2ee/protobuf.ts +188 -0
- package/src/e2ee/ratchet.ts +271 -0
- package/src/e2ee/sealedBody.ts +17 -0
- package/src/e2ee/sealedFiles.ts +181 -0
- package/src/e2ee/send.ts +70 -0
- package/src/e2ee/stanza.ts +133 -0
- package/src/e2ee/store.ts +54 -0
- package/src/helpers/accountName.ts +15 -0
- package/src/helpers/createMessageFromXml.ts +31 -6
- package/src/helpers/createUserNameFromSetUser.ts +2 -1
- package/src/helpers/displayName.ts +9 -0
- package/src/helpers/persistCrypto.ts +5 -0
- package/src/helpers/secureKeyValue.ts +15 -0
- package/src/helpers/videoCache.ts +138 -0
- package/src/hooks/useLogout.tsx +9 -0
- package/src/hooks/useSendMessage.tsx +71 -5
- package/src/i18n/strings.ts +180 -0
- package/src/main.ts +2 -0
- package/src/networking/api-requests/auth.api.ts +9 -1
- package/src/networking/api-requests/rooms.api.ts +121 -18
- package/src/networking/xmpp/handleStanzas.xmpp.ts +49 -0
- package/src/networking/xmpp/sendMediaMessage.xmpp.ts +19 -1
- package/src/networking/xmpp/sendTextMessage.xmpp.ts +17 -10
- package/src/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts +23 -10
- package/src/networking/xmppClient.ts +6 -0
- package/src/roomStore/persistBackend.ts +8 -11
- package/src/roomStore/persistence.ts +15 -0
- package/src/types/models/message.model.ts +5 -0
- package/src/types/models/room.model.ts +5 -0
- package/src/types/types.ts +4 -0
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_StyledInputComponents","_Button","_interopRequireDefault","_icons","_reactNative","_AttachSheet","_MediaFilePreview","_getIconColor","_getElementFont","_useTheme","_useT","_mediaLibraryRuntime","ImagePicker","DocumentPicker","ImageManipulator","FileSystem","_expoAudio","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MAX_MEDIA_BYTES","formatBytes","bytes","toFixed","normalizeImageAsset","asset","mime","mimeType","toLowerCase","looksLikeHeic","includes","uri","endsWith","name","fileName","split","pop","Date","now","result","manipulateAsync","compress","format","SaveFormat","JPEG","baseName","replace","SendInput","sendMessage","sendMedia","config","onFocus","onBlur","editMessage","isLoading","isMessageProcessing","useT","theme","useTheme","message","setMessage","useState","isRecording","setIsRecording","recordingDuration","setRecordingDuration","isFocused","setIsFocused","filePreviews","setFilePreviews","showMediaMenu","setShowMediaMenu","audioRecorder","useAudioRecorder","RecordingPresets","HIGH_QUALITY","isRecordingRef","useRef","recordingTimerRef","messageRef","filePreviewsRef","sendingRef","pickingDocRef","handleFileSelect","files","oversize","find","size","Alert","alert","Math","round","current","promptOpenSettings","text","style","onPress","Linking","openSettings","handleCameraSelection","perm","requestCameraPermissionsAsync","granted","launchCameraAsync","mediaTypes","quality","videoQuality","UIImagePickerControllerQualityType","Medium","canceled","assets","type","fileSize","normalized","error","console","handleGallerySelection","requestMediaLibraryPermissionsAsync","launchImageLibraryAsync","allowsEditing","preferredAssetRepresentationMode","UIImagePickerPreferredAssetRepresentationMode","Compatible","handleRecentMediaSelection","media","info","getInfoAsync","exists","isVideo","handleFileSelection","getDocumentAsync","multiple","copyToCacheDirectory","undefined","err","ensureLibraryPermission","MediaLibrary","getMediaLibrary","getPermissionsAsync","canAskAgain","requestPermissionsAsync","warn","libraryPermissionCheckedRef","handleAttachPress","finally","stopRecordingTimer","clearInterval","restoreAudioMode","setAudioModeAsync","allowsRecording","playsInSilentMode","handleStartRecording","requestRecordingPermissionsAsync","prepareToRecordAsync","record","startedAt","setInterval","floor","handleCancelRecording","wasRecording","stop","handleStopAndSendRecording","seconds","ts","file","useEffect","catch","handleRemoveImage","index","next","filter","_","handleSendClick","useCallback","messageToSend","filesToSend","length","inputFontSize","typography","input","fontSize","elements","inputText","inputMinHeight","minHeight","estimatedLineHeight","inputVerticalPadding","max","jsxs","InputContainer","isText","children","jsx","MediaFilePreview","MessageInputContainer","Fragment","disableMedia","TouchableOpacity","width","height","justifyContent","alignItems","backgroundColor","activeOpacity","AttachIcon","color","getIconColor","MessageInput","testID","accessibilityLabel","colors","primary","fontWeight","placeholder","placeholderTextColor","textMuted","keyboardAppearance","dark","value","onChangeText","editable","multiline","maxHeight","paddingTop","paddingBottom","flex","getElementFont","borderRadius","surfaceSecondary","Text","danger","View","flexDirection","gap","paddingHorizontal","toString","padStart","textSecondary","hasContent","showMic","enableAudio","disabled","filled","EndIcon","RecordIcon","textOnPrimary","SendIcon","sendButtonSize","marginLeft","marginRight","opacity","visible","onClose","onCamera","onGallery","onDocument","onPickMedia","primaryColor","_default","exports"],"sourceRoot":"../../../../src","sources":["components/styled/SendInput.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_StyledInputComponents","_Button","_interopRequireDefault","_icons","_reactNative","_AttachSheet","_MediaFilePreview","_getIconColor","_getElementFont","_useTheme","_useT","_mediaLibraryRuntime","ImagePicker","DocumentPicker","ImageManipulator","FileSystem","_expoAudio","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MAX_MEDIA_BYTES","formatBytes","bytes","toFixed","normalizeImageAsset","asset","mime","mimeType","toLowerCase","looksLikeHeic","includes","uri","endsWith","name","fileName","split","pop","Date","now","result","manipulateAsync","compress","format","SaveFormat","JPEG","baseName","replace","SendInput","sendMessage","sendMedia","config","maxMediaBytes","onFocus","onBlur","editMessage","isLoading","isMessageProcessing","useT","theme","useTheme","message","setMessage","useState","isRecording","setIsRecording","recordingDuration","setRecordingDuration","isFocused","setIsFocused","filePreviews","setFilePreviews","showMediaMenu","setShowMediaMenu","audioRecorder","useAudioRecorder","RecordingPresets","HIGH_QUALITY","isRecordingRef","useRef","recordingTimerRef","messageRef","filePreviewsRef","sendingRef","pickingDocRef","handleFileSelect","files","limit","oversize","find","size","Alert","alert","Math","round","current","promptOpenSettings","text","style","onPress","Linking","openSettings","handleCameraSelection","perm","requestCameraPermissionsAsync","granted","launchCameraAsync","mediaTypes","quality","videoQuality","UIImagePickerControllerQualityType","Medium","canceled","assets","type","fileSize","normalized","error","console","handleGallerySelection","requestMediaLibraryPermissionsAsync","launchImageLibraryAsync","allowsEditing","preferredAssetRepresentationMode","UIImagePickerPreferredAssetRepresentationMode","Compatible","handleRecentMediaSelection","media","info","getInfoAsync","exists","isVideo","handleFileSelection","getDocumentAsync","multiple","copyToCacheDirectory","undefined","err","ensureLibraryPermission","MediaLibrary","getMediaLibrary","getPermissionsAsync","canAskAgain","requestPermissionsAsync","warn","libraryPermissionCheckedRef","handleAttachPress","finally","stopRecordingTimer","clearInterval","restoreAudioMode","setAudioModeAsync","allowsRecording","playsInSilentMode","handleStartRecording","requestRecordingPermissionsAsync","prepareToRecordAsync","record","startedAt","setInterval","floor","handleCancelRecording","wasRecording","stop","handleStopAndSendRecording","seconds","ts","file","useEffect","catch","handleRemoveImage","index","next","filter","_","handleSendClick","useCallback","messageToSend","filesToSend","length","inputFontSize","typography","input","fontSize","elements","inputText","inputMinHeight","minHeight","estimatedLineHeight","inputVerticalPadding","max","jsxs","InputContainer","isText","children","jsx","MediaFilePreview","MessageInputContainer","Fragment","disableMedia","TouchableOpacity","width","height","justifyContent","alignItems","backgroundColor","activeOpacity","AttachIcon","color","getIconColor","MessageInput","testID","accessibilityLabel","colors","primary","fontWeight","placeholder","placeholderTextColor","textMuted","keyboardAppearance","dark","value","onChangeText","editable","multiline","maxHeight","paddingTop","paddingBottom","flex","getElementFont","borderRadius","surfaceSecondary","Text","danger","View","flexDirection","gap","paddingHorizontal","toString","padStart","textSecondary","hasContent","showMic","enableAudio","disabled","filled","EndIcon","RecordIcon","textOnPrimary","SendIcon","sendButtonSize","marginLeft","marginRight","opacity","visible","onClose","onCamera","onGallery","onDocument","onPickMedia","primaryColor","_default","exports"],"sourceRoot":"../../../../src","sources":["components/styled/SendInput.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.aesDecrypt = aesDecrypt;
|
|
7
|
+
exports.aesEncrypt = aesEncrypt;
|
|
8
|
+
exports.bytesEqual = bytesEqual;
|
|
9
|
+
exports.bytesToUtf8 = bytesToUtf8;
|
|
10
|
+
Object.defineProperty(exports, "concatBytes", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _utils.concatBytes;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
exports.dh = dh;
|
|
17
|
+
exports.fromBase64 = fromBase64;
|
|
18
|
+
exports.generateIdentity = generateIdentity;
|
|
19
|
+
exports.generateKeyPair = generateKeyPair;
|
|
20
|
+
exports.hkdfSha256 = hkdfSha256;
|
|
21
|
+
exports.hmacSha256 = hmacSha256;
|
|
22
|
+
exports.identityDhPrivate = identityDhPrivate;
|
|
23
|
+
exports.identityDhPublic = identityDhPublic;
|
|
24
|
+
Object.defineProperty(exports, "randomBytes", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _utils.randomBytes;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
exports.randomInt = randomInt;
|
|
31
|
+
exports.sign = sign;
|
|
32
|
+
exports.toBase64 = toBase64;
|
|
33
|
+
exports.toHex = toHex;
|
|
34
|
+
Object.defineProperty(exports, "utf8ToBytes", {
|
|
35
|
+
enumerable: true,
|
|
36
|
+
get: function () {
|
|
37
|
+
return _utils.utf8ToBytes;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
exports.verify = verify;
|
|
41
|
+
var _aes = require("@noble/ciphers/aes.js");
|
|
42
|
+
var _ed = require("@noble/curves/ed25519.js");
|
|
43
|
+
var _hkdf = require("@noble/hashes/hkdf.js");
|
|
44
|
+
var _hmac = require("@noble/hashes/hmac.js");
|
|
45
|
+
var _sha = require("@noble/hashes/sha2.js");
|
|
46
|
+
var _utils = require("@noble/hashes/utils.js");
|
|
47
|
+
const ZERO_SALT = new Uint8Array(32);
|
|
48
|
+
function hkdfSha256(ikm, salt, info, length) {
|
|
49
|
+
return (0, _hkdf.hkdf)(_sha.sha256, ikm, salt ?? ZERO_SALT, (0, _utils.utf8ToBytes)(info), length);
|
|
50
|
+
}
|
|
51
|
+
function hmacSha256(key, data) {
|
|
52
|
+
return (0, _hmac.hmac)(_sha.sha256, key, data);
|
|
53
|
+
}
|
|
54
|
+
function aesEncrypt(key, iv, data) {
|
|
55
|
+
return (0, _aes.cbc)(key, iv).encrypt(data);
|
|
56
|
+
}
|
|
57
|
+
function aesDecrypt(key, iv, data) {
|
|
58
|
+
return (0, _aes.cbc)(key, iv).decrypt(data);
|
|
59
|
+
}
|
|
60
|
+
function generateKeyPair() {
|
|
61
|
+
const {
|
|
62
|
+
secretKey,
|
|
63
|
+
publicKey
|
|
64
|
+
} = _ed.x25519.keygen();
|
|
65
|
+
return {
|
|
66
|
+
priv: secretKey,
|
|
67
|
+
pub: publicKey
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function generateIdentity() {
|
|
71
|
+
const {
|
|
72
|
+
secretKey,
|
|
73
|
+
publicKey
|
|
74
|
+
} = _ed.ed25519.keygen();
|
|
75
|
+
return {
|
|
76
|
+
seed: secretKey,
|
|
77
|
+
pub: publicKey
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
function dh(priv, pub) {
|
|
81
|
+
return _ed.x25519.getSharedSecret(priv, pub);
|
|
82
|
+
}
|
|
83
|
+
function identityDhPrivate(identity) {
|
|
84
|
+
return _ed.ed25519.utils.toMontgomerySecret(identity.seed);
|
|
85
|
+
}
|
|
86
|
+
function identityDhPublic(identityPub) {
|
|
87
|
+
return _ed.ed25519.utils.toMontgomery(identityPub);
|
|
88
|
+
}
|
|
89
|
+
function sign(identity, message) {
|
|
90
|
+
return _ed.ed25519.sign(message, identity.seed);
|
|
91
|
+
}
|
|
92
|
+
function verify(signature, message, identityPub) {
|
|
93
|
+
try {
|
|
94
|
+
return _ed.ed25519.verify(signature, message, identityPub);
|
|
95
|
+
} catch {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
function bytesEqual(a, b) {
|
|
100
|
+
if (a.length !== b.length) {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
let diff = 0;
|
|
104
|
+
for (let i = 0; i < a.length; i++) {
|
|
105
|
+
diff |= a[i] ^ b[i];
|
|
106
|
+
}
|
|
107
|
+
return diff === 0;
|
|
108
|
+
}
|
|
109
|
+
const B64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
110
|
+
const B64_VALUE = new Int16Array(128).fill(-1);
|
|
111
|
+
for (let i = 0; i < B64.length; i++) {
|
|
112
|
+
B64_VALUE[B64.charCodeAt(i)] = i;
|
|
113
|
+
}
|
|
114
|
+
function toBase64(bytes) {
|
|
115
|
+
let out = '';
|
|
116
|
+
let i = 0;
|
|
117
|
+
for (; i + 2 < bytes.length; i += 3) {
|
|
118
|
+
const n = bytes[i] << 16 | bytes[i + 1] << 8 | bytes[i + 2];
|
|
119
|
+
out += B64[n >> 18] + B64[n >> 12 & 63] + B64[n >> 6 & 63] + B64[n & 63];
|
|
120
|
+
}
|
|
121
|
+
if (i + 1 === bytes.length) {
|
|
122
|
+
const n = bytes[i] << 16;
|
|
123
|
+
out += B64[n >> 18] + B64[n >> 12 & 63] + '==';
|
|
124
|
+
} else if (i + 2 === bytes.length) {
|
|
125
|
+
const n = bytes[i] << 16 | bytes[i + 1] << 8;
|
|
126
|
+
out += B64[n >> 18] + B64[n >> 12 & 63] + B64[n >> 6 & 63] + '=';
|
|
127
|
+
}
|
|
128
|
+
return out;
|
|
129
|
+
}
|
|
130
|
+
function fromBase64(text) {
|
|
131
|
+
const clean = text.replace(/\s+/g, '').replace(/=+$/, '');
|
|
132
|
+
if (clean.length % 4 === 1) {
|
|
133
|
+
throw new Error('Invalid base64');
|
|
134
|
+
}
|
|
135
|
+
const out = new Uint8Array(Math.floor(clean.length * 3 / 4));
|
|
136
|
+
let acc = 0;
|
|
137
|
+
let bits = 0;
|
|
138
|
+
let pos = 0;
|
|
139
|
+
for (let i = 0; i < clean.length; i++) {
|
|
140
|
+
const code = clean.charCodeAt(i);
|
|
141
|
+
const value = code < 128 ? B64_VALUE[code] : -1;
|
|
142
|
+
if (value < 0) {
|
|
143
|
+
throw new Error('Invalid base64');
|
|
144
|
+
}
|
|
145
|
+
acc = acc << 6 | value;
|
|
146
|
+
bits += 6;
|
|
147
|
+
if (bits >= 8) {
|
|
148
|
+
bits -= 8;
|
|
149
|
+
out[pos++] = acc >> bits & 0xff;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return out;
|
|
153
|
+
}
|
|
154
|
+
function toHex(bytes) {
|
|
155
|
+
return Array.from(bytes, b => b.toString(16).padStart(2, '0')).join('');
|
|
156
|
+
}
|
|
157
|
+
function randomInt(min, max) {
|
|
158
|
+
const bytes = (0, _utils.randomBytes)(4);
|
|
159
|
+
const n = new DataView(bytes.buffer, bytes.byteOffset, 4).getUint32(0);
|
|
160
|
+
return min + n % (max - min + 1);
|
|
161
|
+
}
|
|
162
|
+
function bytesToUtf8(bytes) {
|
|
163
|
+
const chunks = [];
|
|
164
|
+
let units = [];
|
|
165
|
+
const push = unit => {
|
|
166
|
+
units.push(unit);
|
|
167
|
+
if (units.length >= 8192) {
|
|
168
|
+
chunks.push(String.fromCharCode.apply(null, units));
|
|
169
|
+
units = [];
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
let i = 0;
|
|
173
|
+
while (i < bytes.length) {
|
|
174
|
+
const b = bytes[i++];
|
|
175
|
+
if (b < 0x80) {
|
|
176
|
+
push(b);
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
const extra = b >= 0xf0 && b < 0xf8 ? 3 : b >= 0xe0 ? 2 : b >= 0xc2 ? 1 : -1;
|
|
180
|
+
let code = extra === 3 ? b & 0x07 : extra === 2 ? b & 0x0f : b & 0x1f;
|
|
181
|
+
let valid = extra > 0 && b < 0xf8 && i + extra <= bytes.length;
|
|
182
|
+
for (let k = 0; valid && k < extra; k++) {
|
|
183
|
+
const next = bytes[i + k];
|
|
184
|
+
if ((next & 0xc0) !== 0x80) {
|
|
185
|
+
valid = false;
|
|
186
|
+
}
|
|
187
|
+
code = code << 6 | next & 0x3f;
|
|
188
|
+
}
|
|
189
|
+
if (!valid || extra === 2 && code < 0x800 || extra === 3 && (code < 0x10000 || code > 0x10ffff) || code >= 0xd800 && code <= 0xdfff) {
|
|
190
|
+
push(0xfffd);
|
|
191
|
+
continue;
|
|
192
|
+
}
|
|
193
|
+
i += extra;
|
|
194
|
+
if (code > 0xffff) {
|
|
195
|
+
code -= 0x10000;
|
|
196
|
+
push(0xd800 | code >> 10);
|
|
197
|
+
push(0xdc00 | code & 0x3ff);
|
|
198
|
+
} else {
|
|
199
|
+
push(code);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
if (units.length) {
|
|
203
|
+
chunks.push(String.fromCharCode.apply(null, units));
|
|
204
|
+
}
|
|
205
|
+
return chunks.join('');
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_aes","require","_ed","_hkdf","_hmac","_sha","_utils","ZERO_SALT","Uint8Array","hkdfSha256","ikm","salt","info","length","hkdf","sha256","utf8ToBytes","hmacSha256","key","data","hmac","aesEncrypt","iv","cbc","encrypt","aesDecrypt","decrypt","generateKeyPair","secretKey","publicKey","x25519","keygen","priv","pub","generateIdentity","ed25519","seed","dh","getSharedSecret","identityDhPrivate","identity","utils","toMontgomerySecret","identityDhPublic","identityPub","toMontgomery","sign","message","verify","signature","bytesEqual","a","b","diff","i","B64","B64_VALUE","Int16Array","fill","charCodeAt","toBase64","bytes","out","n","fromBase64","text","clean","replace","Error","Math","floor","acc","bits","pos","code","value","toHex","Array","from","toString","padStart","join","randomInt","min","max","randomBytes","DataView","buffer","byteOffset","getUint32","bytesToUtf8","chunks","units","push","unit","String","fromCharCode","apply","extra","valid","k","next"],"sourceRoot":"../../../src","sources":["e2ee/crypto.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.__resetDeviceStoreForTests = void 0;
|
|
7
|
+
exports.openDeviceStore = openDeviceStore;
|
|
8
|
+
var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
|
|
9
|
+
var _secureKeyValue = require("../helpers/secureKeyValue");
|
|
10
|
+
var _persistCrypto = require("../helpers/persistCrypto");
|
|
11
|
+
var _crypto = require("./crypto");
|
|
12
|
+
var _store = require("./store");
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
const MMKV_INSTANCE_ID = 'ethora-omemo';
|
|
15
|
+
const MMKV_KEY_STORE_KEY = 'ethora_omemo_store_key';
|
|
16
|
+
const ASYNC_STORAGE_PREFIX = '@ethora/omemo:';
|
|
17
|
+
const createMmkvBackend = async () => {
|
|
18
|
+
let MMKV;
|
|
19
|
+
try {
|
|
20
|
+
MMKV = require('react-native-mmkv').MMKV;
|
|
21
|
+
} catch {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
if (typeof MMKV !== 'function') {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
const key = await (0, _secureKeyValue.secureGetOrCreate)(MMKV_KEY_STORE_KEY, () => (0, _crypto.toHex)((0, _crypto.randomBytes)(8)));
|
|
28
|
+
if (!key) {
|
|
29
|
+
throw new Error('e2ee: the device store key was not kept');
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
const storage = new MMKV({
|
|
33
|
+
id: MMKV_INSTANCE_ID,
|
|
34
|
+
encryptionKey: key.value
|
|
35
|
+
});
|
|
36
|
+
if (key.created) {
|
|
37
|
+
storage.clearAll();
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
getItem: async key => storage.getString(key) ?? null,
|
|
41
|
+
setItem: async (key, value) => void storage.set(key, value),
|
|
42
|
+
removeItem: async key => void storage.delete(key)
|
|
43
|
+
};
|
|
44
|
+
} catch (e) {
|
|
45
|
+
console.warn('[e2ee] react-native-mmkv present but unusable, falling back', e);
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const asyncStorageBackend = {
|
|
50
|
+
getItem: async key => {
|
|
51
|
+
const raw = await _asyncStorage.default.getItem(ASYNC_STORAGE_PREFIX + key);
|
|
52
|
+
return raw ? (0, _persistCrypto.decryptFromPersist)(raw) : null;
|
|
53
|
+
},
|
|
54
|
+
setItem: async (key, value) => _asyncStorage.default.setItem(ASYNC_STORAGE_PREFIX + key, await (0, _persistCrypto.encryptForPersist)(value)),
|
|
55
|
+
removeItem: key => _asyncStorage.default.removeItem(ASYNC_STORAGE_PREFIX + key)
|
|
56
|
+
};
|
|
57
|
+
const createAsyncStorageBackend = async () => {
|
|
58
|
+
if (!(await (0, _persistCrypto.isPersistKeyKept)())) {
|
|
59
|
+
throw new Error('e2ee: the storage cipher key was not kept');
|
|
60
|
+
}
|
|
61
|
+
return asyncStorageBackend;
|
|
62
|
+
};
|
|
63
|
+
let backendPromise = null;
|
|
64
|
+
const getBackend = () => {
|
|
65
|
+
if (!backendPromise) {
|
|
66
|
+
const opening = createMmkvBackend().then(mmkv => mmkv ?? createAsyncStorageBackend());
|
|
67
|
+
backendPromise = opening;
|
|
68
|
+
// A refusal is not cached: the next start may find the store usable.
|
|
69
|
+
opening.catch(() => {
|
|
70
|
+
if (backendPromise === opening) {
|
|
71
|
+
backendPromise = null;
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return backendPromise;
|
|
76
|
+
};
|
|
77
|
+
async function openDeviceStore(jid) {
|
|
78
|
+
return (0, _store.createStore)(await getBackend(), jid);
|
|
79
|
+
}
|
|
80
|
+
const __resetDeviceStoreForTests = () => {
|
|
81
|
+
backendPromise = null;
|
|
82
|
+
};
|
|
83
|
+
exports.__resetDeviceStoreForTests = __resetDeviceStoreForTests;
|
|
84
|
+
//# sourceMappingURL=deviceStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_asyncStorage","_interopRequireDefault","require","_secureKeyValue","_persistCrypto","_crypto","_store","e","__esModule","default","MMKV_INSTANCE_ID","MMKV_KEY_STORE_KEY","ASYNC_STORAGE_PREFIX","createMmkvBackend","MMKV","key","secureGetOrCreate","toHex","randomBytes","Error","storage","id","encryptionKey","value","created","clearAll","getItem","getString","setItem","set","removeItem","delete","console","warn","asyncStorageBackend","raw","AsyncStorage","decryptFromPersist","encryptForPersist","createAsyncStorageBackend","isPersistKeyKept","backendPromise","getBackend","opening","then","mmkv","catch","openDeviceStore","jid","createStore","__resetDeviceStoreForTests","exports"],"sourceRoot":"../../../src","sources":["e2ee/deviceStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.decryptLargePayload = decryptLargePayload;
|
|
7
|
+
exports.encryptLargePayload = encryptLargePayload;
|
|
8
|
+
var _aes = require("@noble/ciphers/aes.js");
|
|
9
|
+
var _hmac = require("@noble/hashes/hmac.js");
|
|
10
|
+
var _sha = require("@noble/hashes/sha2.js");
|
|
11
|
+
var _crypto = require("./crypto");
|
|
12
|
+
const SLICE = 32 * 1024;
|
|
13
|
+
const BLOCK = 16;
|
|
14
|
+
const yieldToUi = () => new Promise(resolve => setTimeout(resolve, 0));
|
|
15
|
+
function payloadKeys(key) {
|
|
16
|
+
const km = (0, _crypto.hkdfSha256)(key, undefined, 'OMEMO Payload', 80);
|
|
17
|
+
return {
|
|
18
|
+
enc: km.slice(0, 32),
|
|
19
|
+
auth: km.slice(32, 64),
|
|
20
|
+
iv: km.slice(64)
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
async function encryptLargePayload(plaintext, onProgress) {
|
|
24
|
+
const key = (0, _crypto.randomBytes)(32);
|
|
25
|
+
const {
|
|
26
|
+
enc,
|
|
27
|
+
auth,
|
|
28
|
+
iv
|
|
29
|
+
} = payloadKeys(key);
|
|
30
|
+
const payload = new Uint8Array((Math.floor(plaintext.length / BLOCK) + 1) * BLOCK);
|
|
31
|
+
const mac = _hmac.hmac.create(_sha.sha256, auth);
|
|
32
|
+
let offset = 0;
|
|
33
|
+
let chain = iv;
|
|
34
|
+
while (plaintext.length - offset > SLICE) {
|
|
35
|
+
const out = payload.subarray(offset, offset + SLICE);
|
|
36
|
+
out.set((0, _aes.cbc)(enc, chain, {
|
|
37
|
+
disablePadding: true
|
|
38
|
+
}).encrypt(plaintext.subarray(offset, offset + SLICE)));
|
|
39
|
+
mac.update(out);
|
|
40
|
+
chain = out.slice(SLICE - BLOCK);
|
|
41
|
+
offset += SLICE;
|
|
42
|
+
onProgress?.(offset / plaintext.length);
|
|
43
|
+
await yieldToUi();
|
|
44
|
+
}
|
|
45
|
+
const last = (0, _aes.cbc)(enc, chain).encrypt(plaintext.subarray(offset));
|
|
46
|
+
payload.set(last, offset);
|
|
47
|
+
mac.update(last);
|
|
48
|
+
onProgress?.(1);
|
|
49
|
+
return {
|
|
50
|
+
keyMaterial: (0, _crypto.concatBytes)(key, mac.digest().slice(0, 16)),
|
|
51
|
+
payload
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
async function decryptLargePayload(keyMaterial, payload, onProgress) {
|
|
55
|
+
if (keyMaterial.length !== 48) {
|
|
56
|
+
throw new Error('Invalid key material');
|
|
57
|
+
}
|
|
58
|
+
if (payload.length === 0 || payload.length % BLOCK !== 0) {
|
|
59
|
+
throw new Error('Payload authentication failed');
|
|
60
|
+
}
|
|
61
|
+
const {
|
|
62
|
+
enc,
|
|
63
|
+
auth,
|
|
64
|
+
iv
|
|
65
|
+
} = payloadKeys(keyMaterial.slice(0, 32));
|
|
66
|
+
const mac = _hmac.hmac.create(_sha.sha256, auth);
|
|
67
|
+
for (let offset = 0; offset < payload.length; offset += SLICE) {
|
|
68
|
+
mac.update(payload.subarray(offset, offset + SLICE));
|
|
69
|
+
onProgress?.(Math.min(offset + SLICE, payload.length) / payload.length * 0.65);
|
|
70
|
+
if (offset + SLICE < payload.length) {
|
|
71
|
+
await yieldToUi();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (!(0, _crypto.bytesEqual)(mac.digest().slice(0, 16), keyMaterial.slice(32))) {
|
|
75
|
+
throw new Error('Payload authentication failed');
|
|
76
|
+
}
|
|
77
|
+
const plaintext = new Uint8Array(payload.length);
|
|
78
|
+
let offset = 0;
|
|
79
|
+
let chain = iv;
|
|
80
|
+
while (payload.length - offset > SLICE) {
|
|
81
|
+
const part = payload.subarray(offset, offset + SLICE);
|
|
82
|
+
plaintext.set((0, _aes.cbc)(enc, chain, {
|
|
83
|
+
disablePadding: true
|
|
84
|
+
}).decrypt(part), offset);
|
|
85
|
+
chain = part.slice(SLICE - BLOCK);
|
|
86
|
+
offset += SLICE;
|
|
87
|
+
onProgress?.(0.65 + offset / payload.length * 0.35);
|
|
88
|
+
await yieldToUi();
|
|
89
|
+
}
|
|
90
|
+
const last = (0, _aes.cbc)(enc, chain).decrypt(payload.subarray(offset));
|
|
91
|
+
plaintext.set(last, offset);
|
|
92
|
+
onProgress?.(1);
|
|
93
|
+
return plaintext.subarray(0, offset + last.length);
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=fileCipher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_aes","require","_hmac","_sha","_crypto","SLICE","BLOCK","yieldToUi","Promise","resolve","setTimeout","payloadKeys","key","km","hkdfSha256","undefined","enc","slice","auth","iv","encryptLargePayload","plaintext","onProgress","randomBytes","payload","Uint8Array","Math","floor","length","mac","hmac","create","sha256","offset","chain","out","subarray","set","cbc","disablePadding","encrypt","update","last","keyMaterial","concatBytes","digest","decryptLargePayload","Error","min","bytesEqual","part","decrypt"],"sourceRoot":"../../../src","sources":["e2ee/fileCipher.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.decodeFileEnvelope = decodeFileEnvelope;
|
|
7
|
+
exports.encodeFileEnvelope = encodeFileEnvelope;
|
|
8
|
+
exports.openSealedFile = openSealedFile;
|
|
9
|
+
Object.defineProperty(exports, "parseSealedMediaBody", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () {
|
|
12
|
+
return _sealedBody.parseSealedMediaBody;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
exports.sealFileForUpload = sealFileForUpload;
|
|
16
|
+
var _crypto = require("./crypto");
|
|
17
|
+
var _fileCipher = require("./fileCipher");
|
|
18
|
+
var _sealedBody = require("./sealedBody");
|
|
19
|
+
const MAGIC = Uint8Array.from([0x45, 0x54, 0x48, 0x4f, 0x46, 0x49, 0x4c, 0x45]);
|
|
20
|
+
const VERSION = 1;
|
|
21
|
+
const HEADER_OFFSET = MAGIC.length + 1 + 4;
|
|
22
|
+
function encodeFileEnvelope(meta, bytes) {
|
|
23
|
+
const header = (0, _crypto.utf8ToBytes)(JSON.stringify({
|
|
24
|
+
mimetype: meta.mimetype,
|
|
25
|
+
originalname: meta.originalname,
|
|
26
|
+
size: meta.size
|
|
27
|
+
}));
|
|
28
|
+
const out = new Uint8Array(HEADER_OFFSET + header.length + bytes.length);
|
|
29
|
+
out.set(MAGIC, 0);
|
|
30
|
+
out[MAGIC.length] = VERSION;
|
|
31
|
+
new DataView(out.buffer).setUint32(MAGIC.length + 1, header.length, false);
|
|
32
|
+
out.set(header, HEADER_OFFSET);
|
|
33
|
+
out.set(bytes, HEADER_OFFSET + header.length);
|
|
34
|
+
return out;
|
|
35
|
+
}
|
|
36
|
+
function decodeFileEnvelope(envelope) {
|
|
37
|
+
if (envelope.length < HEADER_OFFSET) {
|
|
38
|
+
throw new Error('file_envelope_truncated');
|
|
39
|
+
}
|
|
40
|
+
for (let i = 0; i < MAGIC.length; i++) {
|
|
41
|
+
if (envelope[i] !== MAGIC[i]) {
|
|
42
|
+
throw new Error('file_envelope_bad_magic');
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const version = envelope[MAGIC.length];
|
|
46
|
+
if (version !== VERSION) {
|
|
47
|
+
throw new Error(`file_envelope_unsupported_version_${version}`);
|
|
48
|
+
}
|
|
49
|
+
const headerLen = new DataView(envelope.buffer, envelope.byteOffset, envelope.byteLength).getUint32(MAGIC.length + 1, false);
|
|
50
|
+
const bodyStart = HEADER_OFFSET + headerLen;
|
|
51
|
+
if (bodyStart > envelope.length) {
|
|
52
|
+
throw new Error('file_envelope_truncated');
|
|
53
|
+
}
|
|
54
|
+
const meta = JSON.parse((0, _crypto.bytesToUtf8)(envelope.subarray(HEADER_OFFSET, bodyStart)));
|
|
55
|
+
return {
|
|
56
|
+
meta,
|
|
57
|
+
bytes: envelope.subarray(bodyStart)
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
async function sealFileForUpload(file, onProgress) {
|
|
61
|
+
const envelope = encodeFileEnvelope({
|
|
62
|
+
mimetype: file.type || 'application/octet-stream',
|
|
63
|
+
originalname: file.name || 'blob',
|
|
64
|
+
size: file.bytes.length
|
|
65
|
+
}, file.bytes);
|
|
66
|
+
const {
|
|
67
|
+
keyMaterial,
|
|
68
|
+
payload
|
|
69
|
+
} = await (0, _fileCipher.encryptLargePayload)(envelope, onProgress);
|
|
70
|
+
return {
|
|
71
|
+
ciphertext: payload,
|
|
72
|
+
keyMaterial: (0, _crypto.toBase64)(keyMaterial),
|
|
73
|
+
filename: (0, _crypto.toHex)((0, _crypto.randomBytes)(16))
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
async function openSealedFile(ciphertext, keyMaterial, onProgress) {
|
|
77
|
+
return decodeFileEnvelope(await (0, _fileCipher.decryptLargePayload)((0, _crypto.fromBase64)(keyMaterial), ciphertext, onProgress));
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=fileEnvelope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_crypto","require","_fileCipher","_sealedBody","MAGIC","Uint8Array","from","VERSION","HEADER_OFFSET","length","encodeFileEnvelope","meta","bytes","header","utf8ToBytes","JSON","stringify","mimetype","originalname","size","out","set","DataView","buffer","setUint32","decodeFileEnvelope","envelope","Error","i","version","headerLen","byteOffset","byteLength","getUint32","bodyStart","parse","bytesToUtf8","subarray","sealFileForUpload","file","onProgress","type","name","keyMaterial","payload","encryptLargePayload","ciphertext","toBase64","filename","toHex","randomBytes","openSealedFile","decryptLargePayload","fromBase64"],"sourceRoot":"../../../src","sources":["e2ee/fileEnvelope.ts"],"mappings":"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","ignoreList":[]}
|