34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
|
import { assertEquals } from "../../test_deps.ts";
|
||
|
import {
|
||
|
decryptAES,
|
||
|
decryptPath,
|
||
|
deriveKeyFromPassword,
|
||
|
encryptAES,
|
||
|
encryptPath,
|
||
|
} from "./aes.ts";
|
||
|
|
||
|
Deno.test("AES encryption and decryption", async () => {
|
||
|
const password = "YourPassword";
|
||
|
const salt = "UniquePerUserSalt";
|
||
|
const message = "Hello, World!";
|
||
|
|
||
|
const key = await deriveKeyFromPassword(password, salt);
|
||
|
const encrypted = await encryptAES(key, message);
|
||
|
|
||
|
const decrypted = await decryptAES(key, encrypted);
|
||
|
assertEquals(decrypted, message);
|
||
|
|
||
|
// Test that checks if a path is encrypted the same way every time and can be unencrypted
|
||
|
const path =
|
||
|
"this/is/a/long/path/that/needs/to/be/encrypted because that's what we do.md";
|
||
|
const encryptedPath = await encryptPath(key, path);
|
||
|
const encryptedPath2 = await encryptPath(key, path);
|
||
|
// Assure two runs give the same result
|
||
|
assertEquals(encryptedPath, encryptedPath2);
|
||
|
|
||
|
// Ensure decryption works
|
||
|
const decryptedPath = await decryptPath(key, encryptedPath);
|
||
|
console.log(encryptedPath);
|
||
|
assertEquals(decryptedPath, path);
|
||
|
});
|