src/net/java/otr4j/io/messages/MysteriousT.java
changeset 810 0ff0059f2ec3
--- /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;
+	}
+
+}