mirror of
https://github.com/logos-messaging/js-noise.git
synced 2026-01-04 06:33:08 +00:00
use ISender from @waku/interfaces:
This commit is contained in:
parent
63c572abe4
commit
39796e9c20
@ -14,7 +14,7 @@ import {
|
|||||||
StepHandshakeParameters,
|
StepHandshakeParameters,
|
||||||
} from "./handshake.js";
|
} from "./handshake.js";
|
||||||
import { MessageNametagBuffer } from "./messagenametag.js";
|
import { MessageNametagBuffer } from "./messagenametag.js";
|
||||||
import { InitiatorParameters, Responder, ResponderParameters, Sender, WakuPairing } from "./pairing.js";
|
import { InitiatorParameters, Responder, ResponderParameters, WakuPairing } from "./pairing.js";
|
||||||
import {
|
import {
|
||||||
HandshakePattern,
|
HandshakePattern,
|
||||||
MessageDirection,
|
MessageDirection,
|
||||||
@ -49,4 +49,4 @@ export { ChaChaPolyCipherState, NoisePublicKey };
|
|||||||
export { MessageNametagBuffer };
|
export { MessageNametagBuffer };
|
||||||
export { NoiseHandshakeDecoder, NoiseHandshakeEncoder, NoiseSecureTransferDecoder, NoiseSecureTransferEncoder };
|
export { NoiseHandshakeDecoder, NoiseHandshakeEncoder, NoiseSecureTransferDecoder, NoiseSecureTransferEncoder };
|
||||||
export { QR };
|
export { QR };
|
||||||
export { InitiatorParameters, ResponderParameters, Sender, Responder, WakuPairing };
|
export { InitiatorParameters, ResponderParameters, Responder, WakuPairing };
|
||||||
|
|||||||
@ -24,7 +24,7 @@ describe("js-noise: pairing object", () => {
|
|||||||
// Simulate waku. This code is not meant to be used IRL
|
// Simulate waku. This code is not meant to be used IRL
|
||||||
const msgEmitter = new EventEmitter();
|
const msgEmitter = new EventEmitter();
|
||||||
const sender = {
|
const sender = {
|
||||||
async publish(encoder: IEncoder, msg: IMessage): Promise<void> {
|
async send(encoder: IEncoder, msg: IMessage): Promise<void> {
|
||||||
const protoMsg = await encoder.toProtoObj(msg);
|
const protoMsg = await encoder.toProtoObj(msg);
|
||||||
msgEmitter.emit(encoder.contentTopic, protoMsg);
|
msgEmitter.emit(encoder.contentTopic, protoMsg);
|
||||||
},
|
},
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { HMACDRBG } from "@stablelib/hmac-drbg";
|
import { HMACDRBG } from "@stablelib/hmac-drbg";
|
||||||
import { randomBytes } from "@stablelib/random";
|
import { randomBytes } from "@stablelib/random";
|
||||||
import type { IDecoder, IEncoder, IMessage } from "@waku/interfaces";
|
import type { IDecoder, ISender } from "@waku/interfaces";
|
||||||
import debug from "debug";
|
import debug from "debug";
|
||||||
import { EventEmitter } from "eventemitter3";
|
import { EventEmitter } from "eventemitter3";
|
||||||
import { pEvent } from "p-event";
|
import { pEvent } from "p-event";
|
||||||
@ -23,18 +23,6 @@ import { QR } from "./qr.js";
|
|||||||
|
|
||||||
const log = debug("waku:noise:pairing");
|
const log = debug("waku:noise:pairing");
|
||||||
|
|
||||||
/**
|
|
||||||
* Sender interface that an object must implement so the pairing object can publish noise messages
|
|
||||||
*/
|
|
||||||
export interface Sender {
|
|
||||||
/**
|
|
||||||
* Publish a message
|
|
||||||
* @param encoder NoiseHandshakeEncoder encoder to use to encrypt the messages
|
|
||||||
* @param msg message to broadcast
|
|
||||||
*/
|
|
||||||
publish(encoder: IEncoder, msg: IMessage): Promise<void>;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Responder interface than an object must implement so the pairing object can receive noise messages
|
* Responder interface than an object must implement so the pairing object can receive noise messages
|
||||||
*/
|
*/
|
||||||
@ -122,7 +110,7 @@ export class WakuPairing {
|
|||||||
* @param myEphemeralKey optional ephemeral key
|
* @param myEphemeralKey optional ephemeral key
|
||||||
*/
|
*/
|
||||||
constructor(
|
constructor(
|
||||||
private sender: Sender,
|
private sender: ISender,
|
||||||
private responder: Responder,
|
private responder: Responder,
|
||||||
private myStaticKey: KeyPair,
|
private myStaticKey: KeyPair,
|
||||||
pairingParameters: InitiatorParameters | ResponderParameters,
|
pairingParameters: InitiatorParameters | ResponderParameters,
|
||||||
@ -258,7 +246,7 @@ export class WakuPairing {
|
|||||||
// We prepare a message from initiator's payload2
|
// We prepare a message from initiator's payload2
|
||||||
// At this point wakuMsg is sent over the Waku network to responder content topic
|
// At this point wakuMsg is sent over the Waku network to responder content topic
|
||||||
let encoder = new NoiseHandshakeEncoder(this.contentTopic, hsStep);
|
let encoder = new NoiseHandshakeEncoder(this.contentTopic, hsStep);
|
||||||
await this.sender.publish(encoder, {});
|
await this.sender.send(encoder, {});
|
||||||
|
|
||||||
// We generate an authorization code using the handshake state
|
// We generate an authorization code using the handshake state
|
||||||
// this check has to be confirmed with a user interaction, comparing auth codes in both ends
|
// this check has to be confirmed with a user interaction, comparing auth codes in both ends
|
||||||
@ -294,7 +282,7 @@ export class WakuPairing {
|
|||||||
});
|
});
|
||||||
|
|
||||||
encoder = new NoiseHandshakeEncoder(this.contentTopic, hsStep);
|
encoder = new NoiseHandshakeEncoder(this.contentTopic, hsStep);
|
||||||
await this.sender.publish(encoder, {});
|
await this.sender.send(encoder, {});
|
||||||
|
|
||||||
// Secure Transfer Phase
|
// Secure Transfer Phase
|
||||||
this.handshakeResult = this.handshake.finalizeHandshake();
|
this.handshakeResult = this.handshake.finalizeHandshake();
|
||||||
@ -333,7 +321,7 @@ export class WakuPairing {
|
|||||||
|
|
||||||
// We prepare a Waku message from responder's payload2
|
// We prepare a Waku message from responder's payload2
|
||||||
const encoder = new NoiseHandshakeEncoder(this.contentTopic, hsStep);
|
const encoder = new NoiseHandshakeEncoder(this.contentTopic, hsStep);
|
||||||
await this.sender.publish(encoder, {});
|
await this.sender.send(encoder, {});
|
||||||
|
|
||||||
// 3rd step
|
// 3rd step
|
||||||
// -> sA, sAeB, sAsB {s}
|
// -> sA, sAeB, sAsB {s}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user