From f7574cd3b8caef4fd2fd4c07b08c7b094a9699f5 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 11 Aug 2026 18:01:27 +0000 Subject: [PATCH] identity: avoid rendering raw private key bytes in PEM encode errors EncodeSignerToPEM formatted the signer itself with %s. multikey signers are backed by byte slices with no String method, so the raw private key material was interpolated into the error text and leaked anywhere that error was logged. Format the signer's key DID instead. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_017uKN5QJLWhCX6jTTJ8t6FV --- identity/pem.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/identity/pem.go b/identity/pem.go index bee6bee..2a28de8 100644 --- a/identity/pem.go +++ b/identity/pem.go @@ -16,7 +16,7 @@ import ( func EncodeSignerToPEM(signer multikey.Signer) ([]byte, error) { privateKeyBytes, err := x509.MarshalPKCS8PrivateKey(signer.PrivateKey()) if err != nil { - return nil, fmt.Errorf("marshaling private key of signer %s: %w", signer, err) + return nil, fmt.Errorf("marshaling private key of signer %s: %w", signer.KeyDID(), err) } privateKeyBlock := &pem.Block{ @@ -26,7 +26,7 @@ func EncodeSignerToPEM(signer multikey.Signer) ([]byte, error) { buffer := new(bytes.Buffer) if err := pem.Encode(buffer, privateKeyBlock); err != nil { - return nil, fmt.Errorf("encoding private key of signer %s: %w", signer, err) + return nil, fmt.Errorf("encoding private key of signer %s: %w", signer.KeyDID(), err) } return buffer.Bytes(), nil