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; } }