mirror of
https://github.com/fluencelabs/js-libp2p-noise
synced 2025-04-25 13:42:33 +00:00
remove bn.js
# Conflicts: # src/@types/basic.ts # src/handshakes/ik.ts # src/handshakes/xx.ts
This commit is contained in:
parent
2efbfcb105
commit
cc96cf5e37
@ -1,9 +1,8 @@
|
|||||||
import { BN } from 'bn.js';
|
import {Buffer} from 'buffer';
|
||||||
import { Buffer } from 'buffer';
|
|
||||||
|
|
||||||
export type bytes = Buffer;
|
export type bytes = Buffer;
|
||||||
export type bytes32 = Buffer;
|
export type bytes32 = Buffer;
|
||||||
export type bytes16 = Buffer;
|
export type bytes16 = Buffer;
|
||||||
|
|
||||||
export type uint32 = number;
|
export type uint32 = number;
|
||||||
export type uint64 = BN;
|
export type uint64 = number;
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
import {Buffer} from "buffer";
|
import {Buffer} from "buffer";
|
||||||
import {BN} from "bn.js";
|
|
||||||
|
|
||||||
import {CipherState, HandshakeState, MessageBuffer, NoiseSession} from "../@types/handshake";
|
import {CipherState, HandshakeState, MessageBuffer, NoiseSession} from "../@types/handshake";
|
||||||
import {bytes, bytes32} from "../@types/basic";
|
import {bytes, bytes32} from "../@types/basic";
|
||||||
import {generateKeypair, isValidPublicKey} from "../utils";
|
import {generateKeypair, isValidPublicKey} from "../utils";
|
||||||
@ -22,21 +20,21 @@ export class IK extends AbstractHandshake {
|
|||||||
return {
|
return {
|
||||||
hs,
|
hs,
|
||||||
i: initiator,
|
i: initiator,
|
||||||
mc: new BN(0),
|
mc: 0,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public sendMessage(session: NoiseSession, message: bytes): MessageBuffer {
|
public sendMessage(session: NoiseSession, message: bytes): MessageBuffer {
|
||||||
let messageBuffer: MessageBuffer;
|
let messageBuffer: MessageBuffer;
|
||||||
if (session.mc.eqn(0)) {
|
if (session.mc === 0) {
|
||||||
messageBuffer = this.writeMessageA(session.hs, message);
|
messageBuffer = this.writeMessageA(session.hs, message);
|
||||||
} else if (session.mc.eqn(1)) {
|
} else if (session.mc === 1) {
|
||||||
const { messageBuffer: mb, h, cs1, cs2 } = this.writeMessageB(session.hs, message);
|
const { messageBuffer: mb, h, cs1, cs2 } = this.writeMessageB(session.hs, message);
|
||||||
messageBuffer = mb;
|
messageBuffer = mb;
|
||||||
session.h = h;
|
session.h = h;
|
||||||
session.cs1 = cs1;
|
session.cs1 = cs1;
|
||||||
session.cs2 = cs2;
|
session.cs2 = cs2;
|
||||||
} else if (session.mc.gtn(1)) {
|
} else if (session.mc > 1) {
|
||||||
if (session.i) {
|
if (session.i) {
|
||||||
if (!session.cs1) {
|
if (!session.cs1) {
|
||||||
throw new Error("CS1 (cipher state) is not defined")
|
throw new Error("CS1 (cipher state) is not defined")
|
||||||
@ -54,16 +52,16 @@ export class IK extends AbstractHandshake {
|
|||||||
throw new Error("Session invalid.")
|
throw new Error("Session invalid.")
|
||||||
}
|
}
|
||||||
|
|
||||||
session.mc = session.mc.add(new BN(1));
|
session.mc++;
|
||||||
return messageBuffer;
|
return messageBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public recvMessage(session: NoiseSession, message: MessageBuffer): {plaintext: bytes; valid: boolean} {
|
public recvMessage(session: NoiseSession, message: MessageBuffer): {plaintext: bytes; valid: boolean} {
|
||||||
let plaintext = Buffer.alloc(0), valid = false;
|
let plaintext = Buffer.alloc(0), valid = false;
|
||||||
if (session.mc.eqn(0)) {
|
if (session.mc === 0) {
|
||||||
({plaintext, valid} = this.readMessageA(session.hs, message));
|
({plaintext, valid} = this.readMessageA(session.hs, message));
|
||||||
}
|
}
|
||||||
if (session.mc.eqn(1)) {
|
if (session.mc === 1) {
|
||||||
const { plaintext: pt, valid: v, h, cs1, cs2 } = this.readMessageB(session.hs, message);
|
const { plaintext: pt, valid: v, h, cs1, cs2 } = this.readMessageB(session.hs, message);
|
||||||
plaintext = pt;
|
plaintext = pt;
|
||||||
valid = v;
|
valid = v;
|
||||||
@ -71,7 +69,7 @@ export class IK extends AbstractHandshake {
|
|||||||
session.cs1 = cs1;
|
session.cs1 = cs1;
|
||||||
session.cs2 = cs2;
|
session.cs2 = cs2;
|
||||||
}
|
}
|
||||||
session.mc = session.mc.add(new BN(1));
|
session.mc++;
|
||||||
return {plaintext, valid};
|
return {plaintext, valid};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
import { Buffer } from 'buffer';
|
import { Buffer } from 'buffer';
|
||||||
import { BN } from 'bn.js';
|
|
||||||
|
|
||||||
import { bytes32, bytes } from '../@types/basic'
|
import { bytes32, bytes } from '../@types/basic'
|
||||||
import { KeyPair } from '../@types/libp2p'
|
import { KeyPair } from '../@types/libp2p'
|
||||||
import {generateKeypair, isValidPublicKey} from '../utils';
|
import {generateKeypair, isValidPublicKey} from '../utils';
|
||||||
@ -129,23 +127,23 @@ export class XX extends AbstractHandshake {
|
|||||||
return {
|
return {
|
||||||
hs,
|
hs,
|
||||||
i: initiator,
|
i: initiator,
|
||||||
mc: new BN(0),
|
mc: 0,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public sendMessage(session: NoiseSession, message: bytes, ephemeral?: KeyPair): MessageBuffer {
|
public sendMessage(session: NoiseSession, message: bytes, ephemeral?: KeyPair): MessageBuffer {
|
||||||
let messageBuffer: MessageBuffer;
|
let messageBuffer: MessageBuffer;
|
||||||
if (session.mc.eqn(0)) {
|
if (session.mc === 0) {
|
||||||
messageBuffer = this.writeMessageA(session.hs, message, ephemeral);
|
messageBuffer = this.writeMessageA(session.hs, message, ephemeral);
|
||||||
} else if (session.mc.eqn(1)) {
|
} else if (session.mc === 1) {
|
||||||
messageBuffer = this.writeMessageB(session.hs, message);
|
messageBuffer = this.writeMessageB(session.hs, message);
|
||||||
} else if (session.mc.eqn(2)) {
|
} else if (session.mc === 2) {
|
||||||
const { h, messageBuffer: resultingBuffer, cs1, cs2 } = this.writeMessageC(session.hs, message);
|
const { h, messageBuffer: resultingBuffer, cs1, cs2 } = this.writeMessageC(session.hs, message);
|
||||||
messageBuffer = resultingBuffer;
|
messageBuffer = resultingBuffer;
|
||||||
session.h = h;
|
session.h = h;
|
||||||
session.cs1 = cs1;
|
session.cs1 = cs1;
|
||||||
session.cs2 = cs2;
|
session.cs2 = cs2;
|
||||||
} else if (session.mc.gtn(2)) {
|
} else if (session.mc > 2) {
|
||||||
if (session.i) {
|
if (session.i) {
|
||||||
if (!session.cs1) {
|
if (!session.cs1) {
|
||||||
throw new Error("CS1 (cipher state) is not defined")
|
throw new Error("CS1 (cipher state) is not defined")
|
||||||
@ -163,18 +161,18 @@ export class XX extends AbstractHandshake {
|
|||||||
throw new Error("Session invalid.")
|
throw new Error("Session invalid.")
|
||||||
}
|
}
|
||||||
|
|
||||||
session.mc = session.mc.add(new BN(1));
|
session.mc++;
|
||||||
return messageBuffer;
|
return messageBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public recvMessage(session: NoiseSession, message: MessageBuffer): {plaintext: bytes; valid: boolean} {
|
public recvMessage(session: NoiseSession, message: MessageBuffer): {plaintext: bytes; valid: boolean} {
|
||||||
let plaintext: bytes = Buffer.alloc(0);
|
let plaintext: bytes = Buffer.alloc(0);
|
||||||
let valid = false;
|
let valid = false;
|
||||||
if (session.mc.eqn(0)) {
|
if (session.mc === 0) {
|
||||||
({plaintext, valid} = this.readMessageA(session.hs, message));
|
({plaintext, valid} = this.readMessageA(session.hs, message));
|
||||||
} else if (session.mc.eqn(1)) {
|
} else if (session.mc === 1) {
|
||||||
({plaintext, valid} = this.readMessageB(session.hs, message));
|
({plaintext, valid} = this.readMessageB(session.hs, message));
|
||||||
} else if (session.mc.eqn(2)) {
|
} else if (session.mc === 2) {
|
||||||
const { h, plaintext: resultingPlaintext, valid: resultingValid, cs1, cs2 } = this.readMessageC(session.hs, message);
|
const { h, plaintext: resultingPlaintext, valid: resultingValid, cs1, cs2 } = this.readMessageC(session.hs, message);
|
||||||
plaintext = resultingPlaintext;
|
plaintext = resultingPlaintext;
|
||||||
valid = resultingValid;
|
valid = resultingValid;
|
||||||
@ -182,7 +180,7 @@ export class XX extends AbstractHandshake {
|
|||||||
session.cs1 = cs1;
|
session.cs1 = cs1;
|
||||||
session.cs2 = cs2;
|
session.cs2 = cs2;
|
||||||
}
|
}
|
||||||
session.mc = session.mc.add(new BN(1));
|
session.mc++;
|
||||||
return {plaintext, valid};
|
return {plaintext, valid};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user