mirror of
https://github.com/fluencelabs/js-libp2p-interfaces
synced 2025-06-13 02:51:22 +00:00
chore: record interface instead of class, transport and stream muxer factory interface and minor pubsub fixes
This commit is contained in:
@ -36,23 +36,25 @@ async function signMessage (peerId, message) {
|
||||
* @returns {Promise<boolean>}
|
||||
*/
|
||||
async function verifySignature (message) {
|
||||
// Get message sans the signature
|
||||
const baseMessage = { ...message }
|
||||
delete baseMessage.signature
|
||||
delete baseMessage.key
|
||||
if (!message.signature) {
|
||||
throw new Error('Message must contain a signature to be verified')
|
||||
}
|
||||
|
||||
// Get message sans the signature
|
||||
const bytes = uint8ArrayConcat([
|
||||
SignPrefix,
|
||||
Message.encode(Object.assign(baseMessage, {
|
||||
from: baseMessage.from && PeerId.createFromCID(baseMessage.from).toBytes()
|
||||
}))
|
||||
Message.encode({
|
||||
...message,
|
||||
from: message.from && PeerId.createFromCID(message.from).toBytes(),
|
||||
signature: undefined,
|
||||
key: undefined
|
||||
})
|
||||
])
|
||||
|
||||
// Get the public key
|
||||
const pubKey = await messagePublicKey(message)
|
||||
|
||||
// verify the base message
|
||||
// @ts-ignore - may not have signature
|
||||
return pubKey.verify(bytes, message.signature)
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user