--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/net/java/otr4j/session/SessionKeys.java Fri Apr 15 03:01:09 2011 +0200
@@ -0,0 +1,54 @@
+package net.java.otr4j.session;
+
+import java.math.BigInteger;
+import java.security.KeyPair;
+
+import javax.crypto.interfaces.DHPublicKey;
+
+import net.java.otr4j.OtrException;
+
+interface SessionKeys {
+
+ public static final int Previous = 0;
+ public static final int Current = 1;
+ public static final byte HIGH_SEND_BYTE = (byte) 0x01;
+ public static final byte HIGH_RECEIVE_BYTE = (byte) 0x02;
+ public static final byte LOW_SEND_BYTE = (byte) 0x02;
+ public static final byte LOW_RECEIVE_BYTE = (byte) 0x01;
+
+ public abstract void setLocalPair(KeyPair keyPair, int localPairKeyID);
+
+ public abstract void setRemoteDHPublicKey(DHPublicKey pubKey,
+ int remoteKeyID);
+
+ public abstract void incrementSendingCtr();
+
+ public abstract byte[] getSendingCtr();
+
+ public abstract byte[] getReceivingCtr();
+
+ public abstract void setReceivingCtr(byte[] ctr);
+
+ public abstract byte[] getSendingAESKey() throws OtrException;
+
+ public abstract byte[] getReceivingAESKey() throws OtrException;
+
+ public abstract byte[] getSendingMACKey() throws OtrException;
+
+ public abstract byte[] getReceivingMACKey() throws OtrException;
+
+ public abstract void setS(BigInteger s);
+
+ public abstract void setIsUsedReceivingMACKey(Boolean isUsedReceivingMACKey);
+
+ public abstract Boolean getIsUsedReceivingMACKey();
+
+ public abstract int getLocalKeyID();
+
+ public abstract int getRemoteKeyID();
+
+ public abstract DHPublicKey getRemoteKey();
+
+ public abstract KeyPair getLocalPair();
+
+}
\ No newline at end of file