import org.asamk.signal.util.DateUtils;
import org.asamk.signal.util.Util;
import org.slf4j.helpers.MessageFormatter;
+import org.whispersystems.libsignal.protocol.DecryptionErrorMessage;
import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
import org.whispersystems.signalservice.api.messages.SignalServiceContent;
import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
DateUtils.formatTimestamp(content.getServerReceivedTimestamp()),
DateUtils.formatTimestamp(content.getServerDeliveredTimestamp()));
+ if (content.getSenderKeyDistributionMessage().isPresent()) {
+ final var message = content.getSenderKeyDistributionMessage().get();
+ writer.println("Received a sender key distribution message for distributionId {}",
+ message.getDistributionId());
+ }
+
if (content.getDataMessage().isPresent()) {
var message = content.getDataMessage().get();
printDataMessage(writer, message);
var typingMessage = content.getTypingMessage().get();
printTypingMessage(writer.indentedWriter(), typingMessage);
}
+ if (content.getDecryptionErrorMessage().isPresent()) {
+ writer.println("Received a decryption error message (resend request)");
+ var decryptionErrorMessage = content.getDecryptionErrorMessage().get();
+ printDecryptionErrorMessage(writer.indentedWriter(), decryptionErrorMessage);
+ }
}
} else {
writer.println("Unknown message received.");
}
}
+ private void printDecryptionErrorMessage(
+ final PlainTextWriter writer, final DecryptionErrorMessage decryptionErrorMessage
+ ) {
+ writer.println("Device id: {}", decryptionErrorMessage.getDeviceId());
+ writer.println("Timestamp: {}", DateUtils.formatTimestamp(decryptionErrorMessage.getTimestamp()));
+ writer.println("Ratchet key: {}",
+ decryptionErrorMessage.getRatchetKey().isPresent() ? "is present" : "not present");
+ }
+
private void printReceiptMessage(
final PlainTextWriter writer, final SignalServiceReceiptMessage receiptMessage
) {
final var deviceId = callMessage.getDestinationDeviceId().get();
writer.println("Destination device id: {}", deviceId);
}
+ if (callMessage.getGroupId().isPresent()) {
+ final var groupId = GroupId.unknownVersion(callMessage.getGroupId().get());
+ writer.println("Destination group id: {}", groupId);
+ }
+ if (callMessage.getTimestamp().isPresent()) {
+ writer.println("Timestamp: {}", DateUtils.formatTimestamp(callMessage.getTimestamp().get()));
+ }
if (callMessage.getAnswerMessage().isPresent()) {
var answerMessage = callMessage.getAnswerMessage().get();
writer.println("Answer message: {}, sdp: {})", answerMessage.getId(), answerMessage.getSdp());
}
if (callMessage.getOpaqueMessage().isPresent()) {
final var opaqueMessage = callMessage.getOpaqueMessage().get();
- writer.println("Opaque message: size {}", opaqueMessage.getOpaque().length);
+ writer.println("Opaque message: size {}, urgency: {}",
+ opaqueMessage.getOpaque().length,
+ opaqueMessage.getUrgency().name());
}
}