From 94f1da3ff1711afd42c6aef25389da4478298999 Mon Sep 17 00:00:00 2001 From: "James (ClawdBot)" Date: Wed, 28 Jan 2026 18:53:47 +0000 Subject: [PATCH] Fix Ed25519 signature: use standard mode, not prehashed EdDSAEngine(MessageDigest) is for Ed25519ph (prehashed mode). Standard Ed25519 requires EdDSAEngine() with no arguments. --- .../main/java/com/inou/clawdnode/security/DeviceIdentity.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/inou/clawdnode/security/DeviceIdentity.kt b/app/src/main/java/com/inou/clawdnode/security/DeviceIdentity.kt index 848454d..13d0744 100644 --- a/app/src/main/java/com/inou/clawdnode/security/DeviceIdentity.kt +++ b/app/src/main/java/com/inou/clawdnode/security/DeviceIdentity.kt @@ -101,8 +101,8 @@ class DeviceIdentity(context: Context) { val privateKeySpec = EdDSAPrivateKeySpec(privateKeyBytes, ed25519Spec) val privateKey = EdDSAPrivateKey(privateKeySpec) - // Sign the payload - val signature = EdDSAEngine(MessageDigest.getInstance(ed25519Spec.hashAlgorithm)).apply { + // Sign the payload using standard Ed25519 (not prehashed Ed25519ph) + val signature = EdDSAEngine().apply { initSign(privateKey) update(payload.toByteArray(Charsets.UTF_8)) }