test.build/core/adapters/security.fixture.ts
test.build/core/adapters/security.fixture.ts is a file in Codebase Testing. 32 lines of code and 5 definitions.
import { GPGCONF_BINARY, GPG_BINARY } from "@banes-lab/build-scripts/configuration/constants/security.constants.ts";
import { mkdtempSync, rmSync } from "node:fs";
import { execFileSync } from "node:child_process";
import { join } from "node:path";
import { tmpdir } from "node:os";
const PARAMETERS = [
"%no-protection",
"Key-Type: eddsa",
"Key-Curve: ed25519",
"Key-Usage: sign",
"Name-Real: Test",
"Name-Email: test@example.test",
"Expire-Date: 0",
"%commit",
"",
].join("\n");
export interface TestKey {
readonly dispose: () => void;
readonly encoded: string;
}
export const testKey = function testKey(): TestKey {
const home = mkdtempSync(join(tmpdir(), "security-fixture-"));
execFileSync(GPG_BINARY, ["--homedir", home, "--batch", "--quiet", "--gen-key"], { input: PARAMETERS, stdio: "pipe" });
const encoded = execFileSync(GPG_BINARY, ["--homedir", home, "--batch", "--export-secret-keys"]).toString("base64");
return {
dispose: () => {
execFileSync(GPGCONF_BINARY, ["--homedir", home, "--kill", "all"], { stdio: "ignore" });
rmSync(home, { force: true, recursive: true });
},
encoded,
};
};