commit 8be3a041a40297ae1a54980bb4c73849ed2a040d
parent 506b5b61a8563e724bd02a207e072f2c594dcdd6
Author: Florian Dold <florian@dold.me>
Date: Mon, 20 Oct 2025 17:09:21 +0200
harness: only delete denom keys in test
Diffstat:
2 files changed, 24 insertions(+), 1 deletion(-)
diff --git a/packages/taler-harness/src/harness/harness.ts b/packages/taler-harness/src/harness/harness.ts
@@ -1750,6 +1750,9 @@ export class ExchangeService implements ExchangeServiceInterface {
);
}
+ /**
+ * Purge all secmod keys, including message and coin signing keys.
+ */
async purgeSecmodKeys(): Promise<void> {
const cfg = Configuration.load(
this.configFilename,
@@ -1766,6 +1769,26 @@ export class ExchangeService implements ExchangeServiceInterface {
await sh(this.globalState, "rm-secmod-keys", `rm ${eddsaKeydir}/*`);
}
+
+ /**
+ * Purge denom signing keys.
+ * Keeps message signing keys (eddsa) in place.
+ */
+ async purgeSecmodDenomKeys(): Promise<void> {
+ const cfg = Configuration.load(
+ this.configFilename,
+ ConfigSources["taler-exchange"],
+ );
+ const rsaKeydir = cfg
+ .getPath("taler-exchange-secmod-rsa", "KEY_DIR")
+ .required();
+ const eddsaKeydir = cfg
+ .getPath("taler-exchange-secmod-eddsa", "KEY_DIR")
+ .required();
+ // Be *VERY* careful when changing this, or you will accidentally delete user data.
+ await sh(this.globalState, "rm-secmod-keys", `rm -rf ${rsaKeydir}/COIN_*`);
+ }
+
/**
* Generate a new master public key for the exchange.
*/
diff --git a/packages/taler-harness/src/integrationtests/test-denom-lost-complex.ts b/packages/taler-harness/src/integrationtests/test-denom-lost-complex.ts
@@ -79,7 +79,7 @@ export async function runDenomLostComplexTest(t: GlobalTestState) {
await exchange.stop();
- await exchange.purgeSecmodKeys();
+ await exchange.purgeSecmodDenomKeys();
t.logStep("before-skip-keyup");
await exchange.start({