From 936a68433def7a74d11a5fb17e0fac073dae77b9 Mon Sep 17 00:00:00 2001 From: AsamK Date: Wed, 8 Jun 2022 15:21:24 +0200 Subject: [PATCH] Add additional logging for payment address parsing --- .../java/org/asamk/signal/manager/util/PaymentUtils.java | 6 ++++++ .../java/org/asamk/signal/manager/util/ProfileUtils.java | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/src/main/java/org/asamk/signal/manager/util/PaymentUtils.java b/lib/src/main/java/org/asamk/signal/manager/util/PaymentUtils.java index 6c34d9c9..1471d8fe 100644 --- a/lib/src/main/java/org/asamk/signal/manager/util/PaymentUtils.java +++ b/lib/src/main/java/org/asamk/signal/manager/util/PaymentUtils.java @@ -6,10 +6,14 @@ import org.signal.libsignal.protocol.IdentityKey; import org.signal.libsignal.protocol.IdentityKeyPair; import org.signal.libsignal.protocol.ecc.ECPrivateKey; import org.signal.libsignal.protocol.ecc.ECPublicKey; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.whispersystems.signalservice.internal.push.SignalServiceProtos; public class PaymentUtils { + private final static Logger logger = LoggerFactory.getLogger(PaymentUtils.class); + private PaymentUtils() { } @@ -37,6 +41,7 @@ public class PaymentUtils { SignalServiceProtos.PaymentAddress paymentAddress, ECPublicKey publicKey ) { if (!paymentAddress.hasMobileCoinAddress()) { + logger.debug("Got payment address without mobile coin address, ignoring."); return null; } @@ -44,6 +49,7 @@ public class PaymentUtils { byte[] signature = paymentAddress.getMobileCoinAddress().getSignature().toByteArray(); if (signature.length != 64 || !publicKey.verifySignature(bytes, signature)) { + logger.debug("Got mobile coin address with invalid signature, ignoring."); return null; } diff --git a/lib/src/main/java/org/asamk/signal/manager/util/ProfileUtils.java b/lib/src/main/java/org/asamk/signal/manager/util/ProfileUtils.java index e202f70a..5d61cab3 100644 --- a/lib/src/main/java/org/asamk/signal/manager/util/ProfileUtils.java +++ b/lib/src/main/java/org/asamk/signal/manager/util/ProfileUtils.java @@ -30,7 +30,8 @@ public class ProfileUtils { IdentityKey identityKey = null; try { identityKey = new IdentityKey(Base64.getDecoder().decode(encryptedProfile.getIdentityKey()), 0); - } catch (InvalidKeyException ignored) { + } catch (InvalidKeyException e) { + logger.debug("Failed to decode identity key in profile, can't verify payment address", e); } try { @@ -112,6 +113,7 @@ public class ProfileUtils { try { decrypted = profileCipher.decryptWithLength(encryptedPaymentAddress); } catch (IOException e) { + logger.debug("Failed to decrypt payment address", e); return null; } @@ -119,6 +121,7 @@ public class ProfileUtils { try { paymentAddress = SignalServiceProtos.PaymentAddress.parseFrom(decrypted); } catch (InvalidProtocolBufferException e) { + logger.debug("Failed to parse payment address", e); return null; } -- 2.50.1