Merge remote-tracking branch 'remotes/origin/master' into morrigan/interface

# Conflicts:
#	src/xx.ts
This commit is contained in:
morrigan 2019-11-25 10:37:57 +01:00
commit 9c898043b8
2 changed files with 63 additions and 59 deletions

12
.travis.yml Normal file
View File

@ -0,0 +1,12 @@
language: node_js
cache: false
install:
- yarn install --frozen-lockfile --network-timeout 1000000
script:
set -e;
yarn run lint;
yarn run check-types;
yarn run build;

View File

@ -6,40 +6,39 @@ import { bytes32, uint32, uint64, bytes } from './@types/basic'
import { KeyPair } from './@types/libp2p'
import { generateKeypair } from './utils';
export interface MessageBuffer {
ne: bytes32,
ns: bytes,
ciphertext: bytes
ne: bytes32;
ns: bytes;
ciphertext: bytes;
}
type CipherState = {
k: bytes32,
n: uint32,
k: bytes32;
n: uint32;
}
type SymmetricState = {
cs: CipherState,
ck: bytes32, // chaining key
h: bytes32, // handshake hash
cs: CipherState;
ck: bytes32; // chaining key
h: bytes32; // handshake hash
}
type HandshakeState = {
ss: SymmetricState,
s: KeyPair,
e?: KeyPair,
rs: bytes32,
re: bytes32,
psk: bytes32,
ss: SymmetricState;
s: KeyPair;
e?: KeyPair;
rs: bytes32;
re: bytes32;
psk: bytes32;
}
export type NoiseSession = {
hs: HandshakeState,
h?: bytes32,
cs1?: CipherState,
cs2?: CipherState,
mc: uint64,
i: boolean,
hs: HandshakeState;
h?: bytes32;
cs1?: CipherState;
cs2?: CipherState;
mc: uint64;
i: boolean;
}
export type Hkdf = [bytes, bytes, bytes];
@ -164,7 +163,7 @@ export class XXHandshake {
private async hashProtocolName(protocolName: bytes): Promise<bytes32> {
if (protocolName.length <= 32) {
let h = Buffer.alloc(32);
const h = Buffer.alloc(32);
protocolName.copy(h);
return h;
} else {
@ -225,11 +224,8 @@ export class XXHandshake {
}
private async writeMessageA(hs: HandshakeState, payload: bytes): Promise<MessageBuffer> {
let ns = Buffer.alloc(0);
const ns = Buffer.alloc(0);
hs.e = generateKeypair();
if (!hs.e) {
throw new Error("Handshake state has keypair missing.");
}
const ne = hs.e.publicKey;
this.mixHash(hs.ss, ne);
@ -240,9 +236,6 @@ export class XXHandshake {
private async writeMessageB(hs: HandshakeState, payload: bytes): Promise<MessageBuffer> {
hs.e = generateKeypair();
if (!hs.e) {
throw new Error("Handshake state has keypair missing.");
}
const ne = hs.e.publicKey;
this.mixHash(hs.ss, ne);
@ -277,7 +270,6 @@ export class XXHandshake {
}
private async readMessageA(hs: HandshakeState, message: MessageBuffer): Promise<bytes> {
console.log("publci key: ", message.ne)
if (x25519.publicKeyVerify(message.ne)) {
hs.re = message.ne;
}