From 1ac5585f84b6150a3ec333b74f562ea73d8e587c Mon Sep 17 00:00:00 2001 From: "glm-5.2" Date: Tue, 23 Jun 2026 13:32:35 +0000 Subject: [PATCH] tasks: mark vault/derivedkey-serialization completed --- tasks/vault/derivedkey-serialization.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tasks/vault/derivedkey-serialization.md b/tasks/vault/derivedkey-serialization.md index 60bd8fc..ad2f295 100644 --- a/tasks/vault/derivedkey-serialization.md +++ b/tasks/vault/derivedkey-serialization.md @@ -1,7 +1,7 @@ --- id: vault/derivedkey-serialization name: Implement always-redact DerivedKey serialization and reject redacted payloads on deserialize -status: pending +status: completed depends_on: [vault/irpc-removal] scope: narrow risk: medium @@ -137,4 +137,9 @@ the irpc removal task (drift #4) because both modify `protocol.rs`. ## Summary -> To be filled on completion \ No newline at end of file +Replaced `DerivedKey`'s derived `Deserialize` with custom serde impls. `Serialize` +now always redacts `private_key` as `"[REDACTED]"` (dropped the +`is_human_readable()` branch that preserved bytes in binary formats). Custom +`Deserialize` rejects `private_key == b"[REDACTED]"` with an explicit error +message. Added tests for redacted-payload rejection and debug-no-leak. All tests +pass; clippy clean. Merged to develop. \ No newline at end of file