34 lines
1.0 KiB
TypeScript
34 lines
1.0 KiB
TypeScript
import { encrypt } from 'romulus-js'
|
|
import { DEFAULT_KEY, MessageTypes } from '../common'
|
|
import { numberToUint16BE } from '../utilities/number'
|
|
import { packOutgoingPacket } from './packet'
|
|
|
|
const MESSAGE_TYPE = numberToUint16BE(MessageTypes.Basic)
|
|
|
|
export interface BasicMessage {
|
|
data: Uint8Array
|
|
}
|
|
|
|
/**
|
|
* Create an outgoing basic message (0x0001) packet.
|
|
* @param message The plaintext message to send.
|
|
* @param key The key to encrypt the data with.
|
|
* @returns An encrypted outgoing basic message (0x0001) packet.
|
|
*/
|
|
export function packBasicMessage (message: Uint8Array, key: Uint8Array = DEFAULT_KEY): Uint8Array {
|
|
const data = encrypt(message, MESSAGE_TYPE, key)
|
|
return packOutgoingPacket({
|
|
messageType: MESSAGE_TYPE,
|
|
data: data
|
|
})
|
|
}
|
|
|
|
/**
|
|
* Unpack the data section of an incoming basic message (0x0001) message.
|
|
* @param data The data section of an incoming basic message (0x0001) message.
|
|
* @returns An encrypted unpacked basic message (0x0001) message.
|
|
*/
|
|
export function unpackBasicMessage (data: Uint8Array): Uint8Array {
|
|
return data
|
|
}
|