Verify payload in stage 1

This commit is contained in:
morrigan
2019-12-02 13:18:31 +01:00
parent 7b03a3df3b
commit bf9ae90a5e
4 changed files with 11 additions and 8 deletions

View File

@ -90,11 +90,13 @@ export async function verifyPeerId(peerId: bytes, publicKey: bytes) {
}
}
export function verifySignedPayload(noiseStaticKey: bytes, plaintext: bytes, libp2pPublicKey: bytes) {
export async function verifySignedPayload(noiseStaticKey: bytes, plaintext: bytes, libp2pPublicKey: bytes) {
const NoiseHandshakePayload = await loadPayloadProto();
const receivedPayload = NoiseHandshakePayload.toObject(NoiseHandshakePayload.decode(plaintext));
const generatedPayload = getHandshakePayload(noiseStaticKey);
if (!ed25519.verify(generatedPayload, signature, libp2pPublicKey)) {
throw new Error("Static key doesn't match to peer that signed payload!");
if (!ed25519.verify(generatedPayload, receivedPayload.noiseStaticKeySignature, libp2pPublicKey)) {
Promise.reject("Static key doesn't match to peer that signed payload!");
}
}