mirror of
https://github.com/fluencelabs/js-libp2p-noise
synced 2025-04-25 14:12:30 +00:00
Create test for large payload
This commit is contained in:
parent
128aba164d
commit
4a04e955dd
@ -14,7 +14,7 @@ import {
|
||||
import { decodeMessageBuffer, encodeMessageBuffer } from "../src/encoder";
|
||||
import {XXHandshake} from "../src/xx";
|
||||
import {Buffer} from "buffer";
|
||||
import {getKeyPairFromPeerId} from "./utils";
|
||||
import {getKeyPairFromPeerId, getRandomBuffer} from "./utils";
|
||||
|
||||
describe("Noise", () => {
|
||||
let remotePeer, localPeer;
|
||||
@ -96,4 +96,30 @@ describe("Noise", () => {
|
||||
assert(false, e.message);
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
it("should test large payloads", async() => {
|
||||
try {
|
||||
const { privateKey: libp2pInitPrivKey } = getKeyPairFromPeerId(localPeer);
|
||||
const { privateKey: libp2pRespPrivKey } = getKeyPairFromPeerId(remotePeer);
|
||||
const noiseInit = new Noise(libp2pInitPrivKey);
|
||||
const noiseResp = new Noise(libp2pRespPrivKey);
|
||||
|
||||
const [inboundConnection, outboundConnection] = DuplexPair();
|
||||
const [outbound, inbound] = await Promise.all([
|
||||
noiseInit.secureOutbound(localPeer, outboundConnection, remotePeer),
|
||||
noiseResp.secureInbound(remotePeer, inboundConnection, localPeer),
|
||||
]);
|
||||
const wrappedInbound = Wrap(inbound.conn);
|
||||
const wrappedOutbound = Wrap(outbound.conn);
|
||||
|
||||
const largePlaintext = getRandomBuffer(100000);
|
||||
wrappedOutbound.writeLP(largePlaintext);
|
||||
const response = await wrappedInbound.readLP();
|
||||
expect(response.equals(largePlaintext)).to.be.true;
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
assert(false, e.message);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -1,5 +1,6 @@
|
||||
import * as crypto from 'libp2p-crypto';
|
||||
import {KeyPair, PeerId} from "../src/@types/libp2p";
|
||||
import {bytes} from "../src/@types/basic";
|
||||
|
||||
export async function generateEd25519Keys() {
|
||||
return await crypto.keys.generateKeyPair('ed25519');
|
||||
@ -11,3 +12,15 @@ export function getKeyPairFromPeerId(peerId: PeerId): KeyPair {
|
||||
publicKey: peerId.marshalPubKey(),
|
||||
}
|
||||
}
|
||||
|
||||
export function getRandomBuffer(size: number) : bytes {
|
||||
size = Math.max(1, size<<0);
|
||||
|
||||
const buf = Buffer.alloc(size);
|
||||
let i = 0;
|
||||
for (; i < size; ++i) {
|
||||
buf[i] = (Math.random() * 0xFF) << 0;
|
||||
}
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user