use ISender from @waku/interfaces:

This commit is contained in:
weboko 2023-03-06 22:20:50 +01:00
parent 63c572abe4
commit 39796e9c20
No known key found for this signature in database
3 changed files with 8 additions and 20 deletions

View File

@ -14,7 +14,7 @@ import {
StepHandshakeParameters,
} from "./handshake.js";
import { MessageNametagBuffer } from "./messagenametag.js";
import { InitiatorParameters, Responder, ResponderParameters, Sender, WakuPairing } from "./pairing.js";
import { InitiatorParameters, Responder, ResponderParameters, WakuPairing } from "./pairing.js";
import {
HandshakePattern,
MessageDirection,
@ -49,4 +49,4 @@ export { ChaChaPolyCipherState, NoisePublicKey };
export { MessageNametagBuffer };
export { NoiseHandshakeDecoder, NoiseHandshakeEncoder, NoiseSecureTransferDecoder, NoiseSecureTransferEncoder };
export { QR };
export { InitiatorParameters, ResponderParameters, Sender, Responder, WakuPairing };
export { InitiatorParameters, ResponderParameters, Responder, WakuPairing };

View File

@ -24,7 +24,7 @@ describe("js-noise: pairing object", () => {
// Simulate waku. This code is not meant to be used IRL
const msgEmitter = new EventEmitter();
const sender = {
async publish(encoder: IEncoder, msg: IMessage): Promise<void> {
async send(encoder: IEncoder, msg: IMessage): Promise<void> {
const protoMsg = await encoder.toProtoObj(msg);
msgEmitter.emit(encoder.contentTopic, protoMsg);
},

View File

@ -1,6 +1,6 @@
import { HMACDRBG } from "@stablelib/hmac-drbg";
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 { EventEmitter } from "eventemitter3";
import { pEvent } from "p-event";
@ -23,18 +23,6 @@ import { QR } from "./qr.js";
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
*/
@ -122,7 +110,7 @@ export class WakuPairing {
* @param myEphemeralKey optional ephemeral key
*/
constructor(
private sender: Sender,
private sender: ISender,
private responder: Responder,
private myStaticKey: KeyPair,
pairingParameters: InitiatorParameters | ResponderParameters,
@ -258,7 +246,7 @@ export class WakuPairing {
// We prepare a message from initiator's payload2
// At this point wakuMsg is sent over the Waku network to responder content topic
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
// 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);
await this.sender.publish(encoder, {});
await this.sender.send(encoder, {});
// Secure Transfer Phase
this.handshakeResult = this.handshake.finalizeHandshake();
@ -333,7 +321,7 @@ export class WakuPairing {
// We prepare a Waku message from responder's payload2
const encoder = new NoiseHandshakeEncoder(this.contentTopic, hsStep);
await this.sender.publish(encoder, {});
await this.sender.send(encoder, {});
// 3rd step
// -> sA, sAeB, sAsB {s}