Return ciphertext rather than decrypted content

This commit is contained in:
Jack Hadrill
2022-03-18 15:56:33 +00:00
parent 5c17b880cf
commit be39f7bae1
8 changed files with 11400 additions and 92 deletions

View File

@@ -1,4 +1,4 @@
import { decrypt, encrypt } from 'romulus-js'
import { encrypt } from 'romulus-js'
import { DEFAULT_KEY, MessageTypes } from '../common'
import { numberToUint16BE } from '../utilities/number'
import { packOutgoingPacket } from './packet'
@@ -6,19 +6,16 @@ import { packOutgoingPacket } from './packet'
const MESSAGE_TYPE = numberToUint16BE(MessageTypes.Basic)
export interface BasicMessage {
message: string
success?: boolean
data: Uint8Array
}
/**
* Create an outgoing basic message (0x0001) packet.
* @param properties The properties for the message.
* @param message The plaintext message to send.
* @param key The key to encrypt the data with.
* @returns An outgoing basic message (0x0001) packet.
* @returns An encrypted outgoing basic message (0x0001) packet.
*/
export function packBasicMessage (properties: BasicMessage, key: Uint8Array = DEFAULT_KEY): Uint8Array {
const encoder = new TextEncoder()
const message = encoder.encode(properties.message)
export function packBasicMessage (message: Uint8Array, key: Uint8Array = DEFAULT_KEY): Uint8Array {
const data = encrypt(message, MESSAGE_TYPE, key)
return packOutgoingPacket({
messageType: MESSAGE_TYPE,
@@ -29,14 +26,8 @@ export function packBasicMessage (properties: BasicMessage, key: Uint8Array = DE
/**
* Unpack the data section of an incoming basic message (0x0001) message.
* @param data The data section of an incoming basic message (0x0001) message.
* @param key The key to decrypt the data with.
* @returns An unpacked basic message (0x0001) message.
* @returns An encrypted unpacked basic message (0x0001) message.
*/
export function unpackBasicMessage (data: Uint8Array, key: Uint8Array = DEFAULT_KEY): BasicMessage {
const decoder = new TextDecoder()
const message = decrypt(data, MESSAGE_TYPE, key)
return {
message: decoder.decode(message.plaintext),
success: message.success
}
export function unpackBasicMessage (data: Uint8Array): Uint8Array {
return data
}