feat: add native KDBX scaffolding and in-memory KeePass API
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
import { describe, expect, test } from "bun:test";
|
||||
import { parseKdbxHeader } from "../../src/kdbx/header";
|
||||
|
||||
function createHeaderBuffer(major: number, minor: number): Uint8Array {
|
||||
const buffer = new Uint8Array(12);
|
||||
buffer[0] = 0x03;
|
||||
buffer[1] = 0xd9;
|
||||
buffer[2] = 0xa2;
|
||||
buffer[3] = 0x9a;
|
||||
buffer[4] = 0x67;
|
||||
buffer[5] = 0xfb;
|
||||
buffer[6] = 0x4b;
|
||||
buffer[7] = 0xb5;
|
||||
buffer[8] = minor & 0xff;
|
||||
buffer[9] = (minor >> 8) & 0xff;
|
||||
buffer[10] = major & 0xff;
|
||||
buffer[11] = (major >> 8) & 0xff;
|
||||
return buffer;
|
||||
}
|
||||
|
||||
describe("parseKdbxHeader", () => {
|
||||
test("reads a valid KDBX signature and version", () => {
|
||||
const parsed = parseKdbxHeader(createHeaderBuffer(4, 1));
|
||||
expect(parsed.header).toEqual({ version: { major: 4, minor: 1 } });
|
||||
});
|
||||
|
||||
test("rejects invalid signatures", () => {
|
||||
const buffer = createHeaderBuffer(4, 1);
|
||||
buffer[0] = 0x00;
|
||||
expect(() => parseKdbxHeader(buffer)).toThrow("Invalid KDBX signature");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user