diff --git a/src/@types/basic.ts b/src/@types/basic.ts index 0e9ba27..03f9451 100644 --- a/src/@types/basic.ts +++ b/src/@types/basic.ts @@ -1,9 +1,8 @@ -import BN from 'bn.js'; -import { Buffer } from 'buffer'; +import {Buffer} from 'buffer'; export type bytes = Buffer; export type bytes32 = Buffer; export type bytes16 = Buffer; export type uint32 = number; -export type uint64 = BN; +export type uint64 = number; diff --git a/src/handshakes/ik.ts b/src/handshakes/ik.ts index b94f7a2..56dd8b0 100644 --- a/src/handshakes/ik.ts +++ b/src/handshakes/ik.ts @@ -1,6 +1,4 @@ import {Buffer} from "buffer"; -import BN from "bn.js"; - import {CipherState, HandshakeState, MessageBuffer, NoiseSession} from "../@types/handshake"; import {bytes, bytes32} from "../@types/basic"; import {generateKeypair, isValidPublicKey} from "../utils"; @@ -22,21 +20,21 @@ export class IK extends AbstractHandshake { return { hs, i: initiator, - mc: new BN(0), + mc: 0, }; } public sendMessage(session: NoiseSession, message: bytes): MessageBuffer { let messageBuffer: MessageBuffer; - if (session.mc.eqn(0)) { + if (session.mc === 0) { 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); messageBuffer = mb; session.h = h; session.cs1 = cs1; session.cs2 = cs2; - } else if (session.mc.gtn(1)) { + } else if (session.mc > 1) { if (session.i) { if (!session.cs1) { throw new Error("CS1 (cipher state) is not defined") @@ -54,16 +52,16 @@ export class IK extends AbstractHandshake { throw new Error("Session invalid.") } - session.mc = session.mc.add(new BN(1)); + session.mc++; return messageBuffer; } public recvMessage(session: NoiseSession, message: MessageBuffer): {plaintext: bytes; valid: boolean} { let plaintext = Buffer.alloc(0), valid = false; - if (session.mc.eqn(0)) { + if (session.mc === 0) { ({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); plaintext = pt; valid = v; @@ -71,7 +69,7 @@ export class IK extends AbstractHandshake { session.cs1 = cs1; session.cs2 = cs2; } - session.mc = session.mc.add(new BN(1)); + session.mc++; return {plaintext, valid}; } diff --git a/src/handshakes/xx.ts b/src/handshakes/xx.ts index 0caf6bc..4e608d0 100644 --- a/src/handshakes/xx.ts +++ b/src/handshakes/xx.ts @@ -1,6 +1,4 @@ import { Buffer } from 'buffer'; -import BN from 'bn.js'; - import { bytes32, bytes } from '../@types/basic' import { KeyPair } from '../@types/libp2p' import {generateKeypair, isValidPublicKey} from '../utils'; @@ -129,23 +127,23 @@ export class XX extends AbstractHandshake { return { hs, i: initiator, - mc: new BN(0), + mc: 0, }; } public sendMessage(session: NoiseSession, message: bytes, ephemeral?: KeyPair): MessageBuffer { let messageBuffer: MessageBuffer; - if (session.mc.eqn(0)) { + if (session.mc === 0) { messageBuffer = this.writeMessageA(session.hs, message, ephemeral); - } else if (session.mc.eqn(1)) { + } else if (session.mc === 1) { 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); messageBuffer = resultingBuffer; session.h = h; session.cs1 = cs1; session.cs2 = cs2; - } else if (session.mc.gtn(2)) { + } else if (session.mc > 2) { if (session.i) { if (!session.cs1) { throw new Error("CS1 (cipher state) is not defined") @@ -163,18 +161,18 @@ export class XX extends AbstractHandshake { throw new Error("Session invalid.") } - session.mc = session.mc.add(new BN(1)); + session.mc++; return messageBuffer; } public recvMessage(session: NoiseSession, message: MessageBuffer): {plaintext: bytes; valid: boolean} { let plaintext: bytes = Buffer.alloc(0); let valid = false; - if (session.mc.eqn(0)) { + if (session.mc === 0) { ({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)); - } else if (session.mc.eqn(2)) { + } else if (session.mc === 2) { const { h, plaintext: resultingPlaintext, valid: resultingValid, cs1, cs2 } = this.readMessageC(session.hs, message); plaintext = resultingPlaintext; valid = resultingValid; @@ -182,7 +180,7 @@ export class XX extends AbstractHandshake { session.cs1 = cs1; session.cs2 = cs2; } - session.mc = session.mc.add(new BN(1)); + session.mc++; return {plaintext, valid}; } }