diff --git a/src/handshake-ik.ts b/src/handshake-ik.ts index 8b3d315..5cdf52a 100644 --- a/src/handshake-ik.ts +++ b/src/handshake-ik.ts @@ -32,7 +32,7 @@ export class IKHandshake implements IHandshake { handshake?: IK, ) { this.isInitiator = isInitiator; - this.payload = payload; + this.payload = Buffer.from(payload); this.prologue = prologue; this.staticKeypair = staticKeypair; this.connection = connection; diff --git a/src/keycache.ts b/src/keycache.ts index fec7ef3..24cbcc0 100644 --- a/src/keycache.ts +++ b/src/keycache.ts @@ -7,11 +7,11 @@ import {bytes, bytes32} from "./@types/basic"; class Keycache { private storage = new Map(); - public async store(peerId: PeerId, key: bytes32): Promise { + public store(peerId: PeerId, key: bytes32): void { this.storage.set(peerId.id, key); } - public async load(peerId: PeerId): Promise { + public load(peerId: PeerId): bytes32|undefined { return this.storage.get(peerId.id); } diff --git a/src/noise.ts b/src/noise.ts index b0d65ef..73c6edd 100644 --- a/src/noise.ts +++ b/src/noise.ts @@ -109,7 +109,7 @@ export class Noise implements INoiseConnection { const payload = await getPayload(params.localPeer, this.staticKeys.publicKey, this.earlyData); let tryIK = this.useNoisePipes; - const foundRemoteStaticKey = await KeyCache.load(params.remotePeer); + const foundRemoteStaticKey = KeyCache.load(params.remotePeer); if (tryIK && params.isInitiator && !foundRemoteStaticKey) { tryIK = false; logger(`Static key not found.`) @@ -124,7 +124,7 @@ export class Noise implements INoiseConnection { throw new Error("Remote static key should be initialized."); } - const IKhandshake = new IKHandshake(isInitiator, Buffer.from(payload), this.prologue, this.staticKeys, connection, remotePeer, foundRemoteStaticKey); + const IKhandshake = new IKHandshake(isInitiator, payload, this.prologue, this.staticKeys, connection, remotePeer, foundRemoteStaticKey); try { return await this.performIKHandshake(IKhandshake); } catch (e) { @@ -176,7 +176,7 @@ export class Noise implements INoiseConnection { await handshake.finish(); if (this.useNoisePipes) { - await KeyCache.store(remotePeer, handshake.getRemoteStaticKey()); + KeyCache.store(remotePeer, handshake.getRemoteStaticKey()); } } catch (e) { throw new Error(`Error occurred during XX handshake: ${e.message}`); diff --git a/test/noise.test.ts b/test/noise.test.ts index ebafad4..dca824c 100644 --- a/test/noise.test.ts +++ b/test/noise.test.ts @@ -137,8 +137,8 @@ describe("Noise", () => { const noiseResp = new Noise(staticKeysResponder.privateKey); // Prepare key cache for noise pipes - await KeyCache.store(localPeer, staticKeysInitiator.publicKey); - await KeyCache.store(remotePeer, staticKeysResponder.publicKey); + KeyCache.store(localPeer, staticKeysInitiator.publicKey); + KeyCache.store(remotePeer, staticKeysResponder.publicKey); const xxSpy = sandbox.spy(noiseInit, "performXXHandshake"); const xxFallbackSpy = sandbox.spy(noiseInit, "performXXFallbackHandshake"); @@ -171,8 +171,8 @@ describe("Noise", () => { const xxSpy = sandbox.spy(noiseInit, "performXXFallbackHandshake"); // Prepare key cache for noise pipes - await KeyCache.store(localPeer, staticKeysInitiator.publicKey); - await KeyCache.store(remotePeer, generateKeypair().publicKey); + KeyCache.store(localPeer, staticKeysInitiator.publicKey); + KeyCache.store(remotePeer, generateKeypair().publicKey); const [inboundConnection, outboundConnection] = DuplexPair(); const [outbound, inbound] = await Promise.all([ @@ -204,8 +204,8 @@ describe("Noise", () => { const xxSpy = sandbox.spy(noiseInit, "performXXFallbackHandshake"); // Prepare key cache for noise pipes - await KeyCache.store(localPeer, staticKeysInitiator.publicKey); - await KeyCache.store(remotePeer, staticKeysResponder.publicKey); + KeyCache.store(localPeer, staticKeysInitiator.publicKey); + KeyCache.store(remotePeer, staticKeysResponder.publicKey); const [inboundConnection, outboundConnection] = DuplexPair(); @@ -239,7 +239,7 @@ describe("Noise", () => { const xxRespSpy = sandbox.spy(noiseResp, "performXXFallbackHandshake"); // Prepare key cache for noise pipes - await KeyCache.store(localPeer, staticKeysInitiator.publicKey); + KeyCache.store(localPeer, staticKeysInitiator.publicKey); const [inboundConnection, outboundConnection] = DuplexPair();