--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/net/java/otr4j/io/messages/MysteriousT.java Sun Dec 05 18:43:51 2010 +0100
@@ -0,0 +1,82 @@
+package net.java.otr4j.io.messages;
+
+import java.util.Arrays;
+
+import javax.crypto.interfaces.DHPublicKey;
+
+public class MysteriousT {
+ // Fields.
+ public int protocolVersion;
+ public int messageType;
+ public int flags;
+ public int senderKeyID;
+ public int recipientKeyID;
+ public DHPublicKey nextDH;
+ public byte[] ctr;
+ public byte[] encryptedMessage;
+
+ // Ctor.
+ public MysteriousT(int protocolVersion, int flags, int senderKeyID,
+ int recipientKeyID, DHPublicKey nextDH, byte[] ctr,
+ byte[] encryptedMessage) {
+
+ this.protocolVersion = protocolVersion;
+ this.messageType = AbstractEncodedMessage.MESSAGE_DATA;
+ this.flags = flags;
+ this.senderKeyID = senderKeyID;
+ this.recipientKeyID = recipientKeyID;
+ this.nextDH = nextDH;
+ this.ctr = ctr;
+ this.encryptedMessage = encryptedMessage;
+ }
+
+ // Methods.
+ @Override
+ public int hashCode() {
+ // TODO: Needs work.
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + Arrays.hashCode(ctr);
+ result = prime * result + Arrays.hashCode(encryptedMessage);
+ result = prime * result + flags;
+ result = prime * result + messageType;
+ result = prime * result + ((nextDH == null) ? 0 : nextDH.hashCode());
+ result = prime * result + protocolVersion;
+ result = prime * result + recipientKeyID;
+ result = prime * result + senderKeyID;
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ // TODO: Needs work.
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ MysteriousT other = (MysteriousT) obj;
+ if (!Arrays.equals(ctr, other.ctr))
+ return false;
+ if (!Arrays.equals(encryptedMessage, other.encryptedMessage))
+ return false;
+ if (flags != other.flags)
+ return false;
+ if (messageType != other.messageType)
+ return false;
+ if (nextDH == null) {
+ if (other.nextDH != null)
+ return false;
+ } else if (!nextDH.equals(other.nextDH))
+ return false;
+ if (protocolVersion != other.protocolVersion)
+ return false;
+ if (recipientKeyID != other.recipientKeyID)
+ return false;
+ if (senderKeyID != other.senderKeyID)
+ return false;
+ return true;
+ }
+
+}