package net.java.otr4j.session;
import java.math.BigInteger;
import java.security.KeyPair;
import javax.crypto.interfaces.DHPublicKey;
import net.java.otr4j.OtrException;
public 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();
}