@ethora/chat-component-rn 26.10.6 → 26.10.8
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 +7 -1
- package/README.md +6 -3
- package/lib/commonjs/components/MessageBubble/Message.js +16 -6
- package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js +16 -2
- package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/callActions.js +32 -2
- package/lib/commonjs/components/VideoCalls/callActions.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/systemCall.js +83 -0
- package/lib/commonjs/components/VideoCalls/systemCall.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/useCallKeep.js +83 -66
- package/lib/commonjs/components/VideoCalls/useCallKeep.js.map +1 -1
- package/lib/commonjs/helpers/incomingCallFromPush.js +95 -21
- package/lib/commonjs/helpers/incomingCallFromPush.js.map +1 -1
- package/lib/commonjs/helpers/secureStoreRuntime.js +10 -1
- package/lib/commonjs/helpers/secureStoreRuntime.js.map +1 -1
- package/lib/commonjs/main.js +114 -0
- package/lib/commonjs/main.js.map +1 -1
- package/lib/commonjs/networking/api-requests/push.api.js +22 -7
- package/lib/commonjs/networking/api-requests/push.api.js.map +1 -1
- package/lib/commonjs/networking/callTokenStanza.js +6 -0
- package/lib/commonjs/networking/callTokenStanza.js.map +1 -1
- package/lib/commonjs/networking/xmpp/sendMessageReaction.xmpp.js +22 -6
- package/lib/commonjs/networking/xmpp/sendMessageReaction.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmppClient.js.map +1 -1
- package/lib/commonjs/push/pushKeyStore.js +169 -0
- package/lib/commonjs/push/pushKeyStore.js.map +1 -0
- package/lib/commonjs/push/sealedBox.js +106 -0
- package/lib/commonjs/push/sealedBox.js.map +1 -0
- package/lib/commonjs/push/sealedPush.js +135 -0
- package/lib/commonjs/push/sealedPush.js.map +1 -0
- package/lib/commonjs/push/sealedPushTask.js +221 -0
- package/lib/commonjs/push/sealedPushTask.js.map +1 -0
- package/lib/commonjs/services/pushRegistration.js +12 -7
- package/lib/commonjs/services/pushRegistration.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/module/components/MessageBubble/Message.js +16 -6
- package/lib/module/components/MessageBubble/Message.js.map +1 -1
- package/lib/module/components/VideoCalls/VideoCallOverlay.js +17 -3
- package/lib/module/components/VideoCalls/VideoCallOverlay.js.map +1 -1
- package/lib/module/components/VideoCalls/callActions.js +29 -0
- package/lib/module/components/VideoCalls/callActions.js.map +1 -1
- package/lib/module/components/VideoCalls/systemCall.js +73 -0
- package/lib/module/components/VideoCalls/systemCall.js.map +1 -0
- package/lib/module/components/VideoCalls/useCallKeep.js +77 -64
- package/lib/module/components/VideoCalls/useCallKeep.js.map +1 -1
- package/lib/module/helpers/incomingCallFromPush.js +92 -22
- package/lib/module/helpers/incomingCallFromPush.js.map +1 -1
- package/lib/module/helpers/secureStoreRuntime.js +10 -1
- package/lib/module/helpers/secureStoreRuntime.js.map +1 -1
- package/lib/module/main.js +9 -0
- package/lib/module/main.js.map +1 -1
- package/lib/module/networking/api-requests/push.api.js +21 -6
- package/lib/module/networking/api-requests/push.api.js.map +1 -1
- package/lib/module/networking/callTokenStanza.js +6 -0
- package/lib/module/networking/callTokenStanza.js.map +1 -1
- package/lib/module/networking/xmpp/sendMessageReaction.xmpp.js +21 -6
- package/lib/module/networking/xmpp/sendMessageReaction.xmpp.js.map +1 -1
- package/lib/module/networking/xmppClient.js.map +1 -1
- package/lib/module/push/pushKeyStore.js +159 -0
- package/lib/module/push/pushKeyStore.js.map +1 -0
- package/lib/module/push/sealedBox.js +97 -0
- package/lib/module/push/sealedBox.js.map +1 -0
- package/lib/module/push/sealedPush.js +127 -0
- package/lib/module/push/sealedPush.js.map +1 -0
- package/lib/module/push/sealedPushTask.js +212 -0
- package/lib/module/push/sealedPushTask.js.map +1 -0
- package/lib/module/services/pushRegistration.js +12 -7
- package/lib/module/services/pushRegistration.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/VideoCallOverlay.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/callActions.d.ts +6 -0
- package/lib/typescript/components/VideoCalls/callActions.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/systemCall.d.ts +25 -0
- package/lib/typescript/components/VideoCalls/systemCall.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/useCallKeep.d.ts +8 -23
- package/lib/typescript/components/VideoCalls/useCallKeep.d.ts.map +1 -1
- package/lib/typescript/helpers/incomingCallFromPush.d.ts +5 -13
- package/lib/typescript/helpers/incomingCallFromPush.d.ts.map +1 -1
- package/lib/typescript/helpers/secureStoreRuntime.d.ts +17 -3
- package/lib/typescript/helpers/secureStoreRuntime.d.ts.map +1 -1
- package/lib/typescript/main.d.ts +11 -0
- package/lib/typescript/main.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/push.api.d.ts +14 -2
- package/lib/typescript/networking/api-requests/push.api.d.ts.map +1 -1
- package/lib/typescript/networking/callTokenStanza.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/sendMessageReaction.xmpp.d.ts +13 -1
- package/lib/typescript/networking/xmpp/sendMessageReaction.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmppClient.d.ts +2 -4
- package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
- package/lib/typescript/push/pushKeyStore.d.ts +35 -0
- package/lib/typescript/push/pushKeyStore.d.ts.map +1 -0
- package/lib/typescript/push/sealedBox.d.ts +24 -0
- package/lib/typescript/push/sealedBox.d.ts.map +1 -0
- package/lib/typescript/push/sealedPush.d.ts +67 -0
- package/lib/typescript/push/sealedPush.d.ts.map +1 -0
- package/lib/typescript/push/sealedPushTask.d.ts +44 -0
- package/lib/typescript/push/sealedPushTask.d.ts.map +1 -0
- package/lib/typescript/services/pushRegistration.d.ts +8 -0
- package/lib/typescript/services/pushRegistration.d.ts.map +1 -1
- package/lib/typescript/types/models/xmpp.model.d.ts +2 -4
- package/lib/typescript/types/models/xmpp.model.d.ts.map +1 -1
- package/lib/typescript/types/types.d.ts +6 -0
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/lib/typescript/version.d.ts +1 -1
- package/package.json +11 -1
- package/plugins/notification-service/NotificationService.swift +113 -0
- package/plugins/notification-service/SealedBox.swift +355 -0
- package/plugins/notification-service/check/gen-vectors.mjs +24 -0
- package/plugins/notification-service/check/main.swift +37 -0
- package/plugins/notification-service/check/run.sh +12 -0
- package/plugins/notification-service/check/vectors.json +1 -0
- package/plugins/withNotificationServiceExtension.js +70 -18
- package/src/components/MessageBubble/Message.tsx +16 -5
- package/src/components/VideoCalls/VideoCallOverlay.tsx +18 -2
- package/src/components/VideoCalls/callActions.ts +28 -0
- package/src/components/VideoCalls/systemCall.ts +109 -0
- package/src/components/VideoCalls/useCallKeep.ts +89 -97
- package/src/helpers/incomingCallFromPush.ts +97 -26
- package/src/helpers/secureStoreRuntime.ts +21 -3
- package/src/main.ts +38 -0
- package/src/networking/api-requests/push.api.ts +29 -4
- package/src/networking/callTokenStanza.ts +10 -0
- package/src/networking/xmpp/sendMessageReaction.xmpp.ts +38 -6
- package/src/networking/xmppClient.ts +2 -2
- package/src/push/pushKeyStore.ts +163 -0
- package/src/push/sealedBox.ts +104 -0
- package/src/push/sealedPush.ts +138 -0
- package/src/push/sealedPushTask.ts +221 -0
- package/src/services/pushRegistration.ts +25 -5
- package/src/types/models/xmpp.model.ts +2 -1
- package/src/types/types.ts +6 -0
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_client","_interopRequireWildcard","require","_walletUsername","_sendMediaMessage","_getChatsPrivateStoreRequest","_actionSetTimestampToPrivateStore","_flushLastViewedToPrivateStore","_sendTypingRequest","_sendPing","_getHistory","_sendTextMessage","_sendMessageReaction","_sendReceivedReceipt","_sendDisplayedMarker","_sendTextMessageWithTranslateTag","_deleteMessage","_roomJoinSweep","_getLastMessageArchive","_createRoom","_setRoomImage","_getRoomMembers","_getRoomInfo","_leaveTheRoom","_editMessage","_inviteRoomRequest","_getRooms","_handleStanzas","_e2ee","_devLogger","_normalizeRoomJid","_roomStore","_roomsSlice","_chatSettingsSlice","_outboundQueue","_getServerReadTimestamp","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_DEV_SERVER","RECEIPT_ACKED_CAP","STOP_TIMEOUT_MS","withTimeout","promise","ms","Promise","resolve","settled","done","clearTimeout","timer","setTimeout","then","AUTH_RECOVERY_MAX_FAILURES","AUTH_REJECTIONS_LIMIT","isNotAuthorizedError","err","condition","name","type","error","includes","message","text","toString","test","HISTORY_WATCHDOG_MS","exports","CREDENTIALS_REFRESH_MIN_INTERVAL_MS","XmppClient","host","service","conference","_status","status","next","changed","reported","suppressReconnect","store","getState","chatSettingStore","connection","dispatch","setConnectionState","password","reconnectAttempts","maxReconnectAttempts","reconnectDelay","maxReconnectDelay","lastReconnectAt","reconnectTimer","reconnecting","lastAuthError","credentialsRefreshedAt","credentialsProvider","credentialsRefreshInFlight","onOnlineCallback","connectionEpoch","joins","RoomJoinManager","getClient","client","getConnectionEpoch","isOnline","waitForOnline","timeoutMs","getConference","getHistoryQoS","xmppSettings","historyQoS","presencesReady","value","priorityPresencesReady","disableLastRead","activeRoomJID","receiptAckedIds","Set","lastWatermarkSentByRoom","Map","activeRoomBoostUntil","softPauseUntil","mamInFlightByRoom","maxInFlightHistory","softPauseAfterSendMs","activeRoomBoostTtlMs","alwaysPrioritizeActiveRoom","checkOnline","authLostHandler","authRecoveryFailures","authLostFired","authRejectionsSinceOnline","setAuthLostHandler","handler","markAuthRecoveryFailed","reason","console","warn","setCredentialsProvider","provider","setOnOnline","cb","updateCredentials","username","constructor","devServer","qos","initializeClient","setActiveRoomJid","roomJID","promoteRoomHistory","_roomJID","Date","now","isActiveRoomGateOpen","size","onCriticalSend","_messageId","prioritizeRoomPresence","ensureRoomPresence","normalizeRoomJid","waitForJoin","source","options","sendAllPresencesAndMarkReady","bumpConnectionEpoch","reset","enqueueHistoryTask","params","reissued","chatJID","max","before","existing","existingIsTeaser","Math","min","sourceRank","ctl","aborted","guarded","releaseMamEntry","String","catch","undefined","runHistoryTask","messages","self","entry","cur","delete","id","selfApplied","wait","startedAt","getHistory","s","clientAlreadyStopped","url","match","detachEventListeners","xmpp","walletToUsername","reconnect","stop","setMaxListeners","origSend","send","bind","wrapped","stanza","isDevLogActive","tag","attrs","to","devPushLog","split","result","writable","configurable","attachEventListeners","start","scheduleReconnect","onDisconnect","log","onOnline","xml","e2eeOnOnline","flushPendingSends","onError","onStanza","from","handleStanza","on","c","removeListener","reject","tick","Error","ensureConnected","timeout","exp","delay","pow","forceReconnect","streamAliveProbe","verifyStreamAlive","underlying","alive","sendPing","finally","ensureStreamAlive","authFailed","staleCreds","rejectedPassword","refreshCredentialsOnce","old","suspendedForBackground","stopClientQuietly","fresh","sock","socket","end","suspend","resume","isSuspended","disconnect","close","clearOutboundSends","getRoomsStanza","getRooms","createRoomStanza","title","description","createRoom","inviteRoomRequestStanza","roomJid","inviteRoomRequest","leaveTheRoomStanza","leaveTheRoom","presenceInRoomStanza","getHistoryStanza","coalesceRoom","getHistoryPage","cursor","ok","complete","first","last","count","received","finSeen","getHistoryWindow","failed","page","fetchHistoryPage","window","getLastMessageArchiveStanza","getLastMessage","setRoomImageStanza","roomThumbnail","roomBackground","setRoomImage","getRoomInfoStanza","getRoomInfo","getRoomMembersStanza","getRoomMembers","isStreamReady","flushOutboundSends","joinForSend","sendMessage","firstName","lastName","photo","walletAddress","userMessage","notDisplayedValue","isReply","showInChannel","mainMessage","customId","enqueueOutboundSend","optimisticId","enqueuedAt","sendTextMessage","deleteMessageStanza","room","msgId","deleteMessage","editMessageStanza","editMessage","sendTypingRequestStanza","chatId","fullName","sendTypingRequest","getChatsPrivateStoreRequestStanza","markers","getChatsPrivateStoreRequest","normalized","roomsState","rooms","heapState","roomHeapSlice","jid","keys","Number","isFinite","newestKnownMs","getServerReadTimestamp","isCorruptFutureReadMarker","length","applyPrivateStoreMarkers","actionSetTimestampToPrivateStoreStanza","timestamp","chats","actionSetTimestampToPrivateStore","flushLastViewedToPrivateStoreStanza","opts","flushLastViewedToPrivateStore","sendMediaMessageStanza","data","sendMediaMessage","setVCardStanza","_xmppUsername","createPrivateRoomStanza","sendReceivedReceiptStanza","messageId","config","disableReadReceipts","key","add","oldest","values","sendReceivedReceipt","sendDisplayedMarkerStanza","sendDisplayedMarker","sendMessageReactionStanza","reactionsList","sendMessageReaction","sendTextMessageWithTranslateTagStanza","langSource","sendTextMessageWithTranslateTag","_default"],"sourceRoot":"../../../src","sources":["networking/xmppClient.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_client","_interopRequireWildcard","require","_walletUsername","_sendMediaMessage","_getChatsPrivateStoreRequest","_actionSetTimestampToPrivateStore","_flushLastViewedToPrivateStore","_sendTypingRequest","_sendPing","_getHistory","_sendTextMessage","_sendMessageReaction","_sendReceivedReceipt","_sendDisplayedMarker","_sendTextMessageWithTranslateTag","_deleteMessage","_roomJoinSweep","_getLastMessageArchive","_createRoom","_setRoomImage","_getRoomMembers","_getRoomInfo","_leaveTheRoom","_editMessage","_inviteRoomRequest","_getRooms","_handleStanzas","_e2ee","_devLogger","_normalizeRoomJid","_roomStore","_roomsSlice","_chatSettingsSlice","_outboundQueue","_getServerReadTimestamp","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_DEV_SERVER","RECEIPT_ACKED_CAP","STOP_TIMEOUT_MS","withTimeout","promise","ms","Promise","resolve","settled","done","clearTimeout","timer","setTimeout","then","AUTH_RECOVERY_MAX_FAILURES","AUTH_REJECTIONS_LIMIT","isNotAuthorizedError","err","condition","name","type","error","includes","message","text","toString","test","HISTORY_WATCHDOG_MS","exports","CREDENTIALS_REFRESH_MIN_INTERVAL_MS","XmppClient","host","service","conference","_status","status","next","changed","reported","suppressReconnect","store","getState","chatSettingStore","connection","dispatch","setConnectionState","password","reconnectAttempts","maxReconnectAttempts","reconnectDelay","maxReconnectDelay","lastReconnectAt","reconnectTimer","reconnecting","lastAuthError","credentialsRefreshedAt","credentialsProvider","credentialsRefreshInFlight","onOnlineCallback","connectionEpoch","joins","RoomJoinManager","getClient","client","getConnectionEpoch","isOnline","waitForOnline","timeoutMs","getConference","getHistoryQoS","xmppSettings","historyQoS","presencesReady","value","priorityPresencesReady","disableLastRead","activeRoomJID","receiptAckedIds","Set","lastWatermarkSentByRoom","Map","activeRoomBoostUntil","softPauseUntil","mamInFlightByRoom","maxInFlightHistory","softPauseAfterSendMs","activeRoomBoostTtlMs","alwaysPrioritizeActiveRoom","checkOnline","authLostHandler","authRecoveryFailures","authLostFired","authRejectionsSinceOnline","setAuthLostHandler","handler","markAuthRecoveryFailed","reason","console","warn","setCredentialsProvider","provider","setOnOnline","cb","updateCredentials","username","constructor","devServer","qos","initializeClient","setActiveRoomJid","roomJID","promoteRoomHistory","_roomJID","Date","now","isActiveRoomGateOpen","size","onCriticalSend","_messageId","prioritizeRoomPresence","ensureRoomPresence","normalizeRoomJid","waitForJoin","source","options","sendAllPresencesAndMarkReady","bumpConnectionEpoch","reset","enqueueHistoryTask","params","reissued","chatJID","max","before","existing","existingIsTeaser","Math","min","sourceRank","ctl","aborted","guarded","releaseMamEntry","String","catch","undefined","runHistoryTask","messages","self","entry","cur","delete","id","selfApplied","wait","startedAt","getHistory","s","clientAlreadyStopped","url","match","detachEventListeners","xmpp","walletToUsername","reconnect","stop","setMaxListeners","origSend","send","bind","wrapped","stanza","isDevLogActive","tag","attrs","to","devPushLog","split","result","writable","configurable","attachEventListeners","start","scheduleReconnect","onDisconnect","log","onOnline","xml","e2eeOnOnline","flushPendingSends","onError","onStanza","from","handleStanza","on","c","removeListener","reject","tick","Error","ensureConnected","timeout","exp","delay","pow","forceReconnect","streamAliveProbe","verifyStreamAlive","underlying","alive","sendPing","finally","ensureStreamAlive","authFailed","staleCreds","rejectedPassword","refreshCredentialsOnce","old","suspendedForBackground","stopClientQuietly","fresh","sock","socket","end","suspend","resume","isSuspended","disconnect","close","clearOutboundSends","getRoomsStanza","getRooms","createRoomStanza","title","description","createRoom","inviteRoomRequestStanza","roomJid","inviteRoomRequest","leaveTheRoomStanza","leaveTheRoom","presenceInRoomStanza","getHistoryStanza","coalesceRoom","getHistoryPage","cursor","ok","complete","first","last","count","received","finSeen","getHistoryWindow","failed","page","fetchHistoryPage","window","getLastMessageArchiveStanza","getLastMessage","setRoomImageStanza","roomThumbnail","roomBackground","setRoomImage","getRoomInfoStanza","getRoomInfo","getRoomMembersStanza","getRoomMembers","isStreamReady","flushOutboundSends","joinForSend","sendMessage","firstName","lastName","photo","walletAddress","userMessage","notDisplayedValue","isReply","showInChannel","mainMessage","customId","enqueueOutboundSend","optimisticId","enqueuedAt","sendTextMessage","deleteMessageStanza","room","msgId","deleteMessage","editMessageStanza","editMessage","sendTypingRequestStanza","chatId","fullName","sendTypingRequest","getChatsPrivateStoreRequestStanza","markers","getChatsPrivateStoreRequest","normalized","roomsState","rooms","heapState","roomHeapSlice","jid","keys","Number","isFinite","newestKnownMs","getServerReadTimestamp","isCorruptFutureReadMarker","length","applyPrivateStoreMarkers","actionSetTimestampToPrivateStoreStanza","timestamp","chats","actionSetTimestampToPrivateStore","flushLastViewedToPrivateStoreStanza","opts","flushLastViewedToPrivateStore","sendMediaMessageStanza","data","sendMediaMessage","setVCardStanza","_xmppUsername","createPrivateRoomStanza","sendReceivedReceiptStanza","messageId","config","disableReadReceipts","key","add","oldest","values","sendReceivedReceipt","sendDisplayedMarkerStanza","sendDisplayedMarker","sendMessageReactionStanza","reactionsList","sendMessageReaction","sendTextMessageWithTranslateTagStanza","langSource","sendTextMessageWithTranslateTag","_default"],"sourceRoot":"../../../src","sources":["networking/xmppClient.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.__resetPushKeyStoreForTests = exports.PUSH_SECRET_KEY_ITEM = exports.PUSH_PUBLIC_KEY_ITEM = exports.PUSH_KEY_KEYCHAIN_SERVICE = void 0;
|
|
7
|
+
exports.clearPushKeyPair = clearPushKeyPair;
|
|
8
|
+
exports.ensurePushKeyPair = ensurePushKeyPair;
|
|
9
|
+
exports.getPushKeyPair = getPushKeyPair;
|
|
10
|
+
exports.loadPushSecretKey = loadPushSecretKey;
|
|
11
|
+
exports.resetPushKeyPair = resetPushKeyPair;
|
|
12
|
+
var _crypto = require("../e2ee/crypto");
|
|
13
|
+
var _secureStoreRuntime = require("../helpers/secureStoreRuntime");
|
|
14
|
+
var _devLogger = require("../utils/devLogger");
|
|
15
|
+
var _sealedBox = require("./sealedBox");
|
|
16
|
+
// The device key for encrypted pushes: one X25519 pair per install, in the
|
|
17
|
+
// platform keychain / keystore through expo-secure-store. The public half
|
|
18
|
+
// goes to the push service with the token (`pushKey`); the secret half
|
|
19
|
+
// never leaves the device and is read by whoever renders a sealed push —
|
|
20
|
+
// the Android background task (`sealedPushTask.ts`, same process, same
|
|
21
|
+
// store) and the iOS notification service extension, which reads the
|
|
22
|
+
// keychain item directly (plugins/notification-service), so the item's
|
|
23
|
+
// attributes below are a contract with the Swift side:
|
|
24
|
+
// service `ethora.push` (expo-secure-store stores it as `ethora.push:no-auth`)
|
|
25
|
+
// account `ethora_push_secret_key`, UTF-8
|
|
26
|
+
// value base64 of the 32-byte secret key, UTF-8
|
|
27
|
+
// group the app's first keychain access group, which the config
|
|
28
|
+
// plugin shares with the extension
|
|
29
|
+
// Readable after the first unlock so a push that arrives while the phone
|
|
30
|
+
// is locked still decrypts; this device only, so an iCloud keychain copy
|
|
31
|
+
// on another device is never a key for pushes that go to this one.
|
|
32
|
+
|
|
33
|
+
const PUSH_KEY_KEYCHAIN_SERVICE = exports.PUSH_KEY_KEYCHAIN_SERVICE = 'ethora.push';
|
|
34
|
+
const PUSH_SECRET_KEY_ITEM = exports.PUSH_SECRET_KEY_ITEM = 'ethora_push_secret_key';
|
|
35
|
+
const PUSH_PUBLIC_KEY_ITEM = exports.PUSH_PUBLIC_KEY_ITEM = 'ethora_push_public_key';
|
|
36
|
+
let warnedMissingStore = false;
|
|
37
|
+
const warnMissingStoreOnce = () => {
|
|
38
|
+
if (warnedMissingStore) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
warnedMissingStore = true;
|
|
42
|
+
(0, _devLogger.pushLog)('warn', 'push: expo-secure-store is not installed, so no device key for encrypted ' + 'pushes can be kept; pushes stay in the clear.');
|
|
43
|
+
};
|
|
44
|
+
const storeOptions = () => {
|
|
45
|
+
const store = (0, _secureStoreRuntime.loadSecureStore)();
|
|
46
|
+
if (!store) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
const accessible = store.accessible.afterFirstUnlockThisDeviceOnly;
|
|
50
|
+
return {
|
|
51
|
+
keychainService: PUSH_KEY_KEYCHAIN_SERVICE,
|
|
52
|
+
...(accessible !== undefined ? {
|
|
53
|
+
keychainAccessible: accessible
|
|
54
|
+
} : {})
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
const readItem = async item => {
|
|
58
|
+
const store = (0, _secureStoreRuntime.loadSecureStore)();
|
|
59
|
+
const options = storeOptions();
|
|
60
|
+
if (!store || !options) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
return await store.getItemAsync(item, options);
|
|
65
|
+
} catch (e) {
|
|
66
|
+
(0, _devLogger.pushLog)('warn', `push: reading ${item} failed`, e);
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
const decodeKey = (raw, length) => {
|
|
71
|
+
if (!raw) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
const bytes = (0, _crypto.fromBase64)(raw);
|
|
76
|
+
return bytes.length === length ? bytes : null;
|
|
77
|
+
} catch {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* The stored pair, or null when there is none (or it is unreadable).
|
|
84
|
+
* The public key is re-derived from the secret, so the pair is consistent
|
|
85
|
+
* even if only the secret item survived.
|
|
86
|
+
*/
|
|
87
|
+
async function loadPushSecretKey() {
|
|
88
|
+
const secretKey = decodeKey(await readItem(PUSH_SECRET_KEY_ITEM), _sealedBox.SEALED_BOX_SECRET_KEY_BYTES);
|
|
89
|
+
if (!secretKey) {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
const stored = decodeKey(await readItem(PUSH_PUBLIC_KEY_ITEM), _sealedBox.SEALED_BOX_PUBLIC_KEY_BYTES);
|
|
93
|
+
return {
|
|
94
|
+
publicKey: stored ?? (0, _sealedBox.sealedBoxPublicKeyOf)(secretKey),
|
|
95
|
+
secretKey
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
const describe = publicKey => ({
|
|
99
|
+
publicKey: (0, _crypto.toBase64)(publicKey),
|
|
100
|
+
keyId: (0, _sealedBox.sealedBoxKeyId)(publicKey)
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
/** The public half of the stored pair, null when the device has no key. */
|
|
104
|
+
async function getPushKeyPair() {
|
|
105
|
+
const key = await loadPushSecretKey();
|
|
106
|
+
return key ? describe(key.publicKey) : null;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Generate and store a new pair, replacing any existing one. Pushes sealed
|
|
111
|
+
* for the old key stop opening at once, so re-register the token with the
|
|
112
|
+
* new `publicKey` right after. Null when expo-secure-store is missing or
|
|
113
|
+
* the keychain refused the write.
|
|
114
|
+
*/
|
|
115
|
+
async function resetPushKeyPair() {
|
|
116
|
+
const store = (0, _secureStoreRuntime.loadSecureStore)();
|
|
117
|
+
const options = storeOptions();
|
|
118
|
+
if (!store || !options) {
|
|
119
|
+
warnMissingStoreOnce();
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
const pair = (0, _sealedBox.generateSealedBoxKeyPair)();
|
|
123
|
+
try {
|
|
124
|
+
await store.setItemAsync(PUSH_SECRET_KEY_ITEM, (0, _crypto.toBase64)(pair.secretKey), options);
|
|
125
|
+
await store.setItemAsync(PUSH_PUBLIC_KEY_ITEM, (0, _crypto.toBase64)(pair.publicKey), options);
|
|
126
|
+
} catch (e) {
|
|
127
|
+
(0, _devLogger.pushLog)('warn', 'push: storing the device key failed', e);
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
const check = await loadPushSecretKey();
|
|
131
|
+
if (!check || (0, _crypto.toBase64)(check.publicKey) !== (0, _crypto.toBase64)(pair.publicKey)) {
|
|
132
|
+
(0, _devLogger.pushLog)('warn', 'push: the device key was not kept');
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
(0, _devLogger.pushLog)('rn', `push: new device key ${(0, _sealedBox.sealedBoxKeyId)(pair.publicKey)}`);
|
|
136
|
+
return describe(pair.publicKey);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* The device key for encrypted pushes, created on first call. Hand
|
|
141
|
+
* `publicKey` to `registerPushToken` (or send it as `pushKey` yourself).
|
|
142
|
+
*/
|
|
143
|
+
async function ensurePushKeyPair() {
|
|
144
|
+
const existing = await getPushKeyPair();
|
|
145
|
+
return existing ?? resetPushKeyPair();
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/** Remove the pair; the next `ensurePushKeyPair` creates a new one. */
|
|
149
|
+
async function clearPushKeyPair() {
|
|
150
|
+
const store = (0, _secureStoreRuntime.loadSecureStore)();
|
|
151
|
+
const options = storeOptions();
|
|
152
|
+
if (!store || !options) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
for (const item of [PUSH_SECRET_KEY_ITEM, PUSH_PUBLIC_KEY_ITEM]) {
|
|
156
|
+
try {
|
|
157
|
+
await store.deleteItemAsync(item, options);
|
|
158
|
+
} catch {
|
|
159
|
+
// Not there — nothing to remove.
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/** Test seam only. */
|
|
165
|
+
const __resetPushKeyStoreForTests = () => {
|
|
166
|
+
warnedMissingStore = false;
|
|
167
|
+
};
|
|
168
|
+
exports.__resetPushKeyStoreForTests = __resetPushKeyStoreForTests;
|
|
169
|
+
//# sourceMappingURL=pushKeyStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_crypto","require","_secureStoreRuntime","_devLogger","_sealedBox","PUSH_KEY_KEYCHAIN_SERVICE","exports","PUSH_SECRET_KEY_ITEM","PUSH_PUBLIC_KEY_ITEM","warnedMissingStore","warnMissingStoreOnce","pushLog","storeOptions","store","loadSecureStore","accessible","afterFirstUnlockThisDeviceOnly","keychainService","undefined","keychainAccessible","readItem","item","options","getItemAsync","e","decodeKey","raw","length","bytes","fromBase64","loadPushSecretKey","secretKey","SEALED_BOX_SECRET_KEY_BYTES","stored","SEALED_BOX_PUBLIC_KEY_BYTES","publicKey","sealedBoxPublicKeyOf","describe","toBase64","keyId","sealedBoxKeyId","getPushKeyPair","key","resetPushKeyPair","pair","generateSealedBoxKeyPair","setItemAsync","check","ensurePushKeyPair","existing","clearPushKeyPair","deleteItemAsync","__resetPushKeyStoreForTests"],"sourceRoot":"../../../src","sources":["push/pushKeyStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.sealedBoxKeyId = exports.generateSealedBoxKeyPair = exports.SEALED_BOX_SECRET_KEY_BYTES = exports.SEALED_BOX_PUBLIC_KEY_BYTES = exports.SEALED_BOX_OVERHEAD_BYTES = void 0;
|
|
7
|
+
exports.sealedBoxOpen = sealedBoxOpen;
|
|
8
|
+
exports.sealedBoxPublicKeyOf = void 0;
|
|
9
|
+
exports.sealedBoxSeal = sealedBoxSeal;
|
|
10
|
+
var _salsa = require("@noble/ciphers/salsa.js");
|
|
11
|
+
var _utils = require("@noble/ciphers/utils.js");
|
|
12
|
+
var _ed = require("@noble/curves/ed25519.js");
|
|
13
|
+
var _blake = require("@noble/hashes/blake2.js");
|
|
14
|
+
var _sha = require("@noble/hashes/sha2.js");
|
|
15
|
+
var _utils2 = require("@noble/hashes/utils.js");
|
|
16
|
+
// libsodium's sealed box (`crypto_box_seal` / `crypto_box_seal_open`) on
|
|
17
|
+
// the noble primitives the e2ee code already ships, so the JS side needs
|
|
18
|
+
// no native libsodium. The push service seals every chat push for a
|
|
19
|
+
// device that registered an X25519 public key (ethora-backend,
|
|
20
|
+
// services/push/README.md, "Encrypted pushes"); this is the matching
|
|
21
|
+
// receiver. The iOS notification service extension decrypts the same
|
|
22
|
+
// boxes in Swift with libsodium (plugins/notification-service).
|
|
23
|
+
//
|
|
24
|
+
// Layout: ephemeral public key (32) || crypto_box(message, nonce,
|
|
25
|
+
// recipient pk, ephemeral sk), with crypto_box = XSalsa20-Poly1305 under
|
|
26
|
+
// HSalsa20(X25519 shared secret) and nonce = BLAKE2b-192(epk || rpk).
|
|
27
|
+
// `__tests__/sealedBox.test.ts` pins this against libsodium itself.
|
|
28
|
+
|
|
29
|
+
const SEALED_BOX_PUBLIC_KEY_BYTES = exports.SEALED_BOX_PUBLIC_KEY_BYTES = 32;
|
|
30
|
+
const SEALED_BOX_SECRET_KEY_BYTES = exports.SEALED_BOX_SECRET_KEY_BYTES = 32;
|
|
31
|
+
/** Ephemeral public key (32) + Poly1305 tag (16). */
|
|
32
|
+
const SEALED_BOX_OVERHEAD_BYTES = exports.SEALED_BOX_OVERHEAD_BYTES = 48;
|
|
33
|
+
const NONCE_BYTES = 24;
|
|
34
|
+
const SIGMA = (0, _utils.u32)((0, _utils.utf8ToBytes)('expand 32-byte k'));
|
|
35
|
+
const ZERO_NONCE_PREFIX = new Uint32Array(4);
|
|
36
|
+
const generateSealedBoxKeyPair = () => {
|
|
37
|
+
const {
|
|
38
|
+
secretKey,
|
|
39
|
+
publicKey
|
|
40
|
+
} = _ed.x25519.keygen();
|
|
41
|
+
return {
|
|
42
|
+
publicKey,
|
|
43
|
+
secretKey
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
exports.generateSealedBoxKeyPair = generateSealedBoxKeyPair;
|
|
47
|
+
const sealedBoxPublicKeyOf = secretKey => _ed.x25519.getPublicKey(secretKey);
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* The key id the push service derives when the registration carries none:
|
|
51
|
+
* the first 16 hex characters of SHA-256 over the raw public key. Sent back
|
|
52
|
+
* as `kid` in every sealed push.
|
|
53
|
+
*/
|
|
54
|
+
exports.sealedBoxPublicKeyOf = sealedBoxPublicKeyOf;
|
|
55
|
+
const sealedBoxKeyId = publicKey => (0, _utils2.bytesToHex)((0, _sha.sha256)(publicKey)).slice(0, 16);
|
|
56
|
+
|
|
57
|
+
// crypto_box_beforenm: HSalsa20 over the X25519 shared secret.
|
|
58
|
+
exports.sealedBoxKeyId = sealedBoxKeyId;
|
|
59
|
+
const boxSharedKey = (theirPublicKey, mySecretKey) => {
|
|
60
|
+
const shared = _ed.x25519.getSharedSecret(mySecretKey, theirPublicKey);
|
|
61
|
+
const words = new Uint32Array(8);
|
|
62
|
+
(0, _salsa.hsalsa)(SIGMA, (0, _utils.u32)(shared), ZERO_NONCE_PREFIX, words);
|
|
63
|
+
(0, _utils.clean)(shared);
|
|
64
|
+
return (0, _utils.u8)(words);
|
|
65
|
+
};
|
|
66
|
+
const sealNonce = (ephemeralPublicKey, recipientPublicKey) => (0, _blake.blake2b)((0, _utils.concatBytes)(ephemeralPublicKey, recipientPublicKey), {
|
|
67
|
+
dkLen: NONCE_BYTES
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
/** `crypto_box_seal`: used by the tests and the key tool, not by the app. */
|
|
71
|
+
function sealedBoxSeal(message, recipientPublicKey) {
|
|
72
|
+
if (recipientPublicKey.length !== SEALED_BOX_PUBLIC_KEY_BYTES) {
|
|
73
|
+
throw new Error('sealedBoxSeal: the public key must be 32 bytes');
|
|
74
|
+
}
|
|
75
|
+
const ephemeral = generateSealedBoxKeyPair();
|
|
76
|
+
const key = boxSharedKey(recipientPublicKey, ephemeral.secretKey);
|
|
77
|
+
const nonce = sealNonce(ephemeral.publicKey, recipientPublicKey);
|
|
78
|
+
const box = (0, _salsa.xsalsa20poly1305)(key, nonce).encrypt(message);
|
|
79
|
+
(0, _utils.clean)(key, ephemeral.secretKey);
|
|
80
|
+
return (0, _utils.concatBytes)(ephemeral.publicKey, box);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* `crypto_box_seal_open`. Returns null for anything that does not open:
|
|
85
|
+
* a wrong key, a box for another key, a damaged or truncated box.
|
|
86
|
+
*/
|
|
87
|
+
function sealedBoxOpen(sealed, publicKey, secretKey) {
|
|
88
|
+
if (sealed.length < SEALED_BOX_OVERHEAD_BYTES || publicKey.length !== SEALED_BOX_PUBLIC_KEY_BYTES || secretKey.length !== SEALED_BOX_SECRET_KEY_BYTES) {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
const ephemeralPublicKey = sealed.subarray(0, SEALED_BOX_PUBLIC_KEY_BYTES);
|
|
92
|
+
const box = sealed.subarray(SEALED_BOX_PUBLIC_KEY_BYTES);
|
|
93
|
+
let key = null;
|
|
94
|
+
try {
|
|
95
|
+
key = boxSharedKey(ephemeralPublicKey, secretKey);
|
|
96
|
+
const nonce = sealNonce(ephemeralPublicKey, publicKey);
|
|
97
|
+
return (0, _salsa.xsalsa20poly1305)(key, nonce).decrypt(box);
|
|
98
|
+
} catch {
|
|
99
|
+
return null;
|
|
100
|
+
} finally {
|
|
101
|
+
if (key) {
|
|
102
|
+
(0, _utils.clean)(key);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=sealedBox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_salsa","require","_utils","_ed","_blake","_sha","_utils2","SEALED_BOX_PUBLIC_KEY_BYTES","exports","SEALED_BOX_SECRET_KEY_BYTES","SEALED_BOX_OVERHEAD_BYTES","NONCE_BYTES","SIGMA","u32","utf8ToBytes","ZERO_NONCE_PREFIX","Uint32Array","generateSealedBoxKeyPair","secretKey","publicKey","x25519","keygen","sealedBoxPublicKeyOf","getPublicKey","sealedBoxKeyId","bytesToHex","sha256","slice","boxSharedKey","theirPublicKey","mySecretKey","shared","getSharedSecret","words","hsalsa","clean","u8","sealNonce","ephemeralPublicKey","recipientPublicKey","blake2b","concatBytes","dkLen","sealedBoxSeal","message","length","Error","ephemeral","key","nonce","box","xsalsa20poly1305","encrypt","sealedBoxOpen","sealed","subarray","decrypt"],"sourceRoot":"../../../src","sources":["push/sealedBox.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isSealedPush = exports.isReactionPush = exports.SEALED_PUSH_VERSION = exports.SEALED_PUSH_ALG = void 0;
|
|
7
|
+
exports.openSealedPush = openSealedPush;
|
|
8
|
+
exports.sealedPushEnvelopeOf = void 0;
|
|
9
|
+
var _crypto = require("../e2ee/crypto");
|
|
10
|
+
var _sealedBox = require("./sealedBox");
|
|
11
|
+
// The envelope of an encrypted chat push (ethora-backend,
|
|
12
|
+
// services/push/README.md, "Encrypted pushes"): the FCM `data` map on
|
|
13
|
+
// Android, the custom keys next to `aps` on iOS. Only ids travel in the
|
|
14
|
+
// clear; everything shown to the user is inside `enc`, a sealed box for
|
|
15
|
+
// the key the device registered with its token.
|
|
16
|
+
|
|
17
|
+
const SEALED_PUSH_ALG = exports.SEALED_PUSH_ALG = 'sealed-box-x25519';
|
|
18
|
+
const SEALED_PUSH_VERSION = exports.SEALED_PUSH_VERSION = '1';
|
|
19
|
+
|
|
20
|
+
/** What the box holds: the notification the service would have sent in the clear. */
|
|
21
|
+
|
|
22
|
+
const isReactionPush = envelope => envelope.type === 'reaction';
|
|
23
|
+
exports.isReactionPush = isReactionPush;
|
|
24
|
+
const str = value => typeof value === 'string' ? value : '';
|
|
25
|
+
|
|
26
|
+
/** The envelope of `data` when it is a sealed chat push, else null. */
|
|
27
|
+
const sealedPushEnvelopeOf = data => {
|
|
28
|
+
if (!data || data.alg !== SEALED_PUSH_ALG) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
const enc = str(data.enc);
|
|
32
|
+
return {
|
|
33
|
+
v: str(data.v) || SEALED_PUSH_VERSION,
|
|
34
|
+
alg: SEALED_PUSH_ALG,
|
|
35
|
+
kid: str(data.kid),
|
|
36
|
+
jid: str(data.jid),
|
|
37
|
+
msgID: str(data.msgID),
|
|
38
|
+
userJid: str(data.userJid),
|
|
39
|
+
...(str(data.type) ? {
|
|
40
|
+
type: str(data.type)
|
|
41
|
+
} : {}),
|
|
42
|
+
...(enc ? {
|
|
43
|
+
enc
|
|
44
|
+
} : {})
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
exports.sealedPushEnvelopeOf = sealedPushEnvelopeOf;
|
|
48
|
+
const isSealedPush = data => sealedPushEnvelopeOf(data) !== null;
|
|
49
|
+
exports.isSealedPush = isSealedPush;
|
|
50
|
+
const parseContent = plaintext => {
|
|
51
|
+
try {
|
|
52
|
+
const parsed = JSON.parse(new TextDecoder().decode(plaintext));
|
|
53
|
+
if (!parsed || typeof parsed !== 'object') {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
title: str(parsed.title),
|
|
58
|
+
body: str(parsed.body),
|
|
59
|
+
sender: str(parsed.sender),
|
|
60
|
+
senderJid: str(parsed.senderJid),
|
|
61
|
+
chat: str(parsed.chat),
|
|
62
|
+
chatJid: str(parsed.chatJid),
|
|
63
|
+
msgID: str(parsed.msgID),
|
|
64
|
+
image: str(parsed.image),
|
|
65
|
+
...(str(parsed.type) ? {
|
|
66
|
+
type: str(parsed.type)
|
|
67
|
+
} : {}),
|
|
68
|
+
...(str(parsed.reaction) ? {
|
|
69
|
+
reaction: str(parsed.reaction)
|
|
70
|
+
} : {})
|
|
71
|
+
};
|
|
72
|
+
} catch {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Open a sealed push with the device key. `key` null means there is no key
|
|
78
|
+
* on this device. Never throws: every failure names why, so the caller can
|
|
79
|
+
* show the placeholder and log the reason.
|
|
80
|
+
*/
|
|
81
|
+
function openSealedPush(envelope, key) {
|
|
82
|
+
if (!key) {
|
|
83
|
+
return {
|
|
84
|
+
ok: false,
|
|
85
|
+
reason: 'no-key',
|
|
86
|
+
envelope
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
if (envelope.kid && envelope.kid !== (0, _sealedBox.sealedBoxKeyId)(key.publicKey)) {
|
|
90
|
+
return {
|
|
91
|
+
ok: false,
|
|
92
|
+
reason: 'key-mismatch',
|
|
93
|
+
envelope
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
if (!envelope.enc) {
|
|
97
|
+
return {
|
|
98
|
+
ok: false,
|
|
99
|
+
reason: 'no-ciphertext',
|
|
100
|
+
envelope
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
let sealed;
|
|
104
|
+
try {
|
|
105
|
+
sealed = (0, _crypto.fromBase64)(envelope.enc);
|
|
106
|
+
} catch {
|
|
107
|
+
return {
|
|
108
|
+
ok: false,
|
|
109
|
+
reason: 'bad-ciphertext',
|
|
110
|
+
envelope
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
const plaintext = (0, _sealedBox.sealedBoxOpen)(sealed, key.publicKey, key.secretKey);
|
|
114
|
+
if (!plaintext) {
|
|
115
|
+
return {
|
|
116
|
+
ok: false,
|
|
117
|
+
reason: 'bad-ciphertext',
|
|
118
|
+
envelope
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
const content = parseContent(plaintext);
|
|
122
|
+
if (!content) {
|
|
123
|
+
return {
|
|
124
|
+
ok: false,
|
|
125
|
+
reason: 'bad-content',
|
|
126
|
+
envelope
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
ok: true,
|
|
131
|
+
content,
|
|
132
|
+
envelope
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=sealedPush.js.map
|