Merge pull request #44 from NodeFactoryIo/mpetrunic/fix-browser-tests

fix buffer usage in browser
This commit is contained in:
Marin Petrunić 2020-03-11 10:04:09 +01:00 committed by GitHub
commit c8a968ed51
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 8 deletions

View File

@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] - ## [Unreleased] -
### Bugfixes
- fix browser usage of buffer
## [1.0.0-rc.7] - 2019-03-05 ## [1.0.0-rc.7] - 2019-03-05
### Breaking changes ### Breaking changes

View File

@ -58,9 +58,9 @@ export async function getPeerIdFromPayload(payload: pb.INoiseHandshakePayload):
return await PeerId.createFromPubKey(Buffer.from(payload.identityKey as Uint8Array)); return await PeerId.createFromPubKey(Buffer.from(payload.identityKey as Uint8Array));
} }
export async function decodePayload(payload: bytes): Promise<pb.INoiseHandshakePayload> { export async function decodePayload(payload: bytes|Uint8Array): Promise<pb.INoiseHandshakePayload> {
return NoiseHandshakePayloadProto.toObject( return NoiseHandshakePayloadProto.toObject(
NoiseHandshakePayloadProto.decode(payload) NoiseHandshakePayloadProto.decode(Buffer.from(payload))
) as INoisePayload; ) as INoisePayload;
} }
@ -85,19 +85,16 @@ export async function verifySignedPayload(
payload: pb.INoiseHandshakePayload, payload: pb.INoiseHandshakePayload,
remotePeer: PeerId remotePeer: PeerId
): Promise<PeerId> { ): Promise<PeerId> {
const identityKey = Buffer.from(payload.identityKey as Uint8Array);
if (!(await isValidPeerId(remotePeer.id, Buffer.from(payload.identityKey as Uint8Array)))) { if (!(await isValidPeerId(remotePeer.id, identityKey))) {
throw new Error("Peer ID doesn't match libp2p public key."); throw new Error("Peer ID doesn't match libp2p public key.");
} }
const generatedPayload = getHandshakePayload(noiseStaticKey); const generatedPayload = getHandshakePayload(noiseStaticKey);
// Unmarshaling from PublicKey protobuf // Unmarshaling from PublicKey protobuf
const publicKey = crypto.keys.unmarshalPublicKey(payload.identityKey); const publicKey = crypto.keys.unmarshalPublicKey(identityKey);
if (!publicKey.verify(generatedPayload, payload.identitySig)) { if (!publicKey.verify(generatedPayload, payload.identitySig)) {
throw new Error("Static key doesn't match to peer that signed payload!"); throw new Error("Static key doesn't match to peer that signed payload!");
} }
return remotePeer; return remotePeer;
} }