import {QmcDeriveKey, simpleMakeKey} from "@/decrypt/qmc_key"; import fs from "fs"; test("key dec: make simple key", () => { expect( simpleMakeKey(106, 8) ).toStrictEqual( [0x69, 0x56, 0x46, 0x38, 0x2b, 0x20, 0x15, 0x0b] ) }) function loadTestDataKeyDecrypt(name: string): { cipherText: Uint8Array, clearText: Uint8Array } { return { cipherText: fs.readFileSync(`testdata/${name}_key_raw.bin`), clearText: fs.readFileSync(`testdata/${name}_key.bin`) } } test("key dec: real file", async () => { const cases = ["mflac_map", "mgg_map", "mflac0_rc4"] for (const name of cases) { const {clearText, cipherText} = loadTestDataKeyDecrypt(name) const buf = QmcDeriveKey(cipherText) expect(buf).toStrictEqual(clearText) } })