Spaces:
Paused
Paused
File size: 2,124 Bytes
abc1805 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | import { describe, expect, test } from "bun:test";
import {
generateKeyPair,
exportKey,
importKey,
encryptMessage,
decryptMessage,
generateSymKey,
encryptSymMessage,
decryptSymMessage,
exportSymKey,
importSymKey
} from "./crypto";
describe("Crypto Logic", () => {
test("should generate key pair", async () => {
const keyPair = await generateKeyPair();
expect(keyPair.publicKey).toBeDefined();
expect(keyPair.privateKey).toBeDefined();
});
test("should export and import keys", async () => {
const keyPair = await generateKeyPair();
const exportedPublic = await exportKey(keyPair.publicKey);
const importedPublic = await importKey(exportedPublic, ["encrypt"]);
expect(importedPublic).toBeDefined();
});
test("should encrypt and decrypt message", async () => {
const keyPair = await generateKeyPair();
const message = "Hello, World!";
const encrypted = await encryptMessage(keyPair.publicKey, message);
const decrypted = await decryptMessage(keyPair.privateKey, encrypted);
expect(decrypted).toBe(message);
});
test("should encrypt and decrypt symmetric message", async () => {
const key = await generateSymKey();
const message = "Secret Message";
const encrypted = await encryptSymMessage(key, message);
const decrypted = await decryptSymMessage(key, encrypted);
expect(decrypted).toBe(message);
});
test("should export and import symmetric keys", async () => {
const key = await generateSymKey();
const exported = await exportSymKey(key);
const imported = await importSymKey(exported);
expect(imported).toBeDefined();
// Verify imported key works
const message = "Test Key Import";
const encrypted = await encryptSymMessage(imported, message);
const decrypted = await decryptSymMessage(key, encrypted); // Decrypt with original key
expect(decrypted).toBe(message);
});
});
|