import nacl from '../../deps/nacl-fast.js' import utils from '../../deps/utils.js' const signChat = (chatBytes, nonce, keyPair) => { if (!chatBytes) { throw new Error('Chat Bytes not defined') } if (!nonce) { throw new Error('Nonce not defined') } if (!keyPair) { throw new Error('keyPair not defined') } const _nonce = utils.int32ToBytes(nonce) if (chatBytes.length === undefined) { const _chatBytesBuffer = Object.keys(chatBytes).map(function (key) { return chatBytes[key]; }) const chatBytesBuffer = new Uint8Array(_chatBytesBuffer) chatBytesBuffer.set(_nonce, 112) const signature = nacl.sign.detached(chatBytesBuffer, keyPair.privateKey) const signedBytes = utils.appendBuffer(chatBytesBuffer, signature) return signedBytes } else { const chatBytesBuffer = new Uint8Array(chatBytes) chatBytesBuffer.set(_nonce, 112) const signature = nacl.sign.detached(chatBytesBuffer, keyPair.privateKey) const signedBytes = utils.appendBuffer(chatBytesBuffer, signature) return signedBytes } } export default signChat