Fix tslint

This commit is contained in:
morrigan 2019-11-21 14:43:12 +01:00
parent b2d058291c
commit f5888f6405
7 changed files with 32 additions and 16 deletions

View File

@ -15,7 +15,7 @@ export type PeerId = {
export interface NoiseConnection {
remoteEarlyData?(): bytes,
secureOutbound(localPeer: PeerId, insecure: any, remotePeer: PeerId): Promise<SecureOutbound>,
secureInbound(remotePeer: PeerId, insecure: any): Promise<SecureOutbound>,
secureInbound(localPeer: PeerId, insecure: any, remotePeer: PeerId): Promise<SecureOutbound>,
}
export type SecureOutbound = {

View File

@ -53,6 +53,7 @@ export class Handshake {
return ns;
}
// stage 1
async exchange(isInitiator: boolean, session: NoiseSession) : Promise<void> {
if (isInitiator) {
const receivedMessageBuffer = (await this.connection.readLP()).slice();
@ -68,6 +69,7 @@ export class Handshake {
}
}
// stage 2
async finish(isInitiator: boolean, session: NoiseSession) : Promise<void> {
if (isInitiator) {
const messageBuffer = await this.xx.sendMessage(session, Buffer.alloc(0));

View File

@ -3,18 +3,20 @@ import { Buffer } from "buffer";
import Wrap from 'it-pb-rpc';
import { Handshake } from "./handshake";
import { createHandshakePayload, generateKeypair, getHandshakePayload, signPayload } from "./utils";
import { generateKeypair } from "./utils";
import { decryptStreams, encryptStreams } from "./crypto";
import { bytes } from "./@types/basic";
import { NoiseConnection, PeerId, KeyPair, SecureOutbound } from "./@types/libp2p";
import { Duplex } from "./@types/it-pair";
type WrappedConnection = ReturnType<typeof Wrap>;
export class Noise implements NoiseConnection {
public protocol = "/noise";
private readonly privateKey: bytes;
private staticKeys: KeyPair;
private earlyData?: bytes;
private readonly staticKeys: KeyPair;
private readonly earlyData?: bytes;
constructor(privateKey: bytes, staticNoiseKey?: bytes, earlyData?: bytes) {
this.privateKey = privateKey;
@ -27,7 +29,7 @@ export class Noise implements NoiseConnection {
publicKey,
}
} else {
// todo: generate new static key
this.staticKeys = generateKeypair();
}
}
@ -56,18 +58,19 @@ export class Noise implements NoiseConnection {
* @param {PeerId} remotePeer - optional PeerId of the initiating peer, if known. This may only exist during transport upgrades.
* @returns {Promise<SecureOutbound>}
*/
public async secureInbound(localPeer: PeerId, connection: any, remotePeer?: PeerId) : Promise<SecureOutbound> {
// tslint:disable-next-line
public async secureInbound(localPeer: PeerId, connection: any, remotePeer: PeerId) : Promise<SecureOutbound> {
return {
conn: undefined,
remotePeer
}
}
private async createSecureConnection(
connection,
connection: WrappedConnection,
remotePublicKey: bytes,
isInitiator: boolean,
) : Promise<Duplex> {
if (!this.staticKeys) {
this.staticKeys = await generateKeypair();
}
const prologue = Buffer.from(this.protocol);
const handshake = new Handshake('XX', remotePublicKey, prologue, this.staticKeys, connection);

View File

@ -10,7 +10,7 @@ export async function loadPayloadProto () {
return payloadProtoBuf.lookupType("pb.NoiseHandshakePayload");
}
export async function generateKeypair() : Promise<KeyPair> {
export function generateKeypair() : KeyPair {
const privateKey = x25519.privateKeyGenerate();
const publicKey = x25519.publicKeyCreate(privateKey);

View File

@ -226,7 +226,7 @@ export class XXHandshake {
private async writeMessageA(hs: HandshakeState, payload: bytes) : Promise<MessageBuffer> {
let ns = Buffer.alloc(0);
hs.e = await generateKeypair();
hs.e = generateKeypair();
if (!hs.e) {
throw new Error("Handshake state has keypair missing.");
}
@ -239,7 +239,7 @@ export class XXHandshake {
}
private async writeMessageB(hs: HandshakeState, payload: bytes) : Promise<MessageBuffer> {
hs.e = await generateKeypair();
hs.e = generateKeypair();
if (!hs.e) {
throw new Error("Handshake state has keypair missing.");
}

11
test/handshake.test.ts Normal file
View File

@ -0,0 +1,11 @@
import { expect } from "chai";
import DuplexPair from 'it-pair/duplex';
import { Noise } from "../src";
import {generateEd25519Keys} from "./utils";
describe("Handshake", () => {
it("should propose, exchange and finish handshake", async() => {
})
});

View File

@ -33,8 +33,8 @@ describe("Index", () => {
});
async function doHandshake(xx) {
const kpInit = await xx.generateKeypair();
const kpResp = await xx.generateKeypair();
const kpInit = await generateKeypair();
const kpResp = await generateKeypair();
// initiator setup
const libp2pInitKeys = await generateEd25519Keys();