diff -r 5315a5713dd5 -r b2e1b45382a4 src/net/java/otr4j/io/messages/MysteriousT.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/net/java/otr4j/io/messages/MysteriousT.java Fri Apr 15 03:01:09 2011 +0200 @@ -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; + } + +}