@freesignal/protocol 0.7.8 → 0.7.9
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/dist/node.d.ts +1 -1
- package/dist/node.js +14 -5
- package/package.json +1 -1
package/dist/node.d.ts
CHANGED
|
@@ -86,7 +86,7 @@ export declare class FreeSignalNode {
|
|
|
86
86
|
packBootstrap(): Promise<Datagram>;
|
|
87
87
|
sendBootstrap(receiverId: string | UserId): Promise<void>;
|
|
88
88
|
protected decrypt(datagram: EncryptedDatagram | Datagram | Uint8Array): Promise<MessageEventData>;
|
|
89
|
-
protected openHandshake(datagram: Datagram | EncryptedDatagram | Uint8Array): Promise<
|
|
89
|
+
protected openHandshake(datagram: Datagram | EncryptedDatagram | Uint8Array): Promise<'syn' | 'ack'>;
|
|
90
90
|
protected open(datagram: Datagram | EncryptedDatagram | Uint8Array): Promise<void>;
|
|
91
91
|
}
|
|
92
92
|
declare class SessionMap implements LocalStorage<string, KeySession> {
|
package/dist/node.js
CHANGED
|
@@ -234,7 +234,7 @@ class FreeSignalNode {
|
|
|
234
234
|
throw new Error("Session not found for sessionTag: " + encrypted.sessionTag);
|
|
235
235
|
if (!(0, utils_1.compareBytes)(payload, crypto_1.default.ECDH.scalarMult(this.privateIdentityKey.exchangeKey, session.identityKey.exchangeKey)))
|
|
236
236
|
throw new Error("Error validating handshake data");
|
|
237
|
-
return
|
|
237
|
+
return 'ack';
|
|
238
238
|
}
|
|
239
239
|
//console.debug("Opening Handshake Syn");
|
|
240
240
|
const data = (0, utils_1.decodeData)(encrypted.payload);
|
|
@@ -244,8 +244,7 @@ class FreeSignalNode {
|
|
|
244
244
|
yield this.sessions.set(session.sessionTag, session);
|
|
245
245
|
yield this.users.set(session.userId.toString(), session.sessionTag);
|
|
246
246
|
yield this.bundles.set(session.userId.toString(), (0, utils_1.decodeData)(associatedData));
|
|
247
|
-
|
|
248
|
-
return session;
|
|
247
|
+
return 'syn';
|
|
249
248
|
});
|
|
250
249
|
}
|
|
251
250
|
open(datagram) {
|
|
@@ -253,9 +252,19 @@ class FreeSignalNode {
|
|
|
253
252
|
if (datagram instanceof Uint8Array)
|
|
254
253
|
datagram = types_1.Datagram.from(datagram);
|
|
255
254
|
switch (datagram.protocol) {
|
|
256
|
-
case types_1.Protocols.HANDSHAKE:
|
|
257
|
-
|
|
255
|
+
case types_1.Protocols.HANDSHAKE: {
|
|
256
|
+
const encrypted = types_1.EncryptedDatagram.from(datagram);
|
|
257
|
+
if (!encrypted.payload)
|
|
258
|
+
throw new Error("Missing payload");
|
|
259
|
+
if ((yield this.openHandshake(datagram)) === 'ack')
|
|
260
|
+
return;
|
|
261
|
+
const session = yield this.sessions.get(encrypted.sessionTag);
|
|
262
|
+
if (!session)
|
|
263
|
+
throw new Error("Session not found for sessionTag: " + encrypted.sessionTag);
|
|
264
|
+
yield this.sendHandshake(session);
|
|
265
|
+
this.emitter.emit('handshake', { session });
|
|
258
266
|
return;
|
|
267
|
+
}
|
|
259
268
|
case types_1.Protocols.MESSAGE:
|
|
260
269
|
//console.debug("Opening Message");
|
|
261
270
|
this.emitter.emit('message', yield this.decrypt(datagram));
|