/*
* otr4j, the open source java otr library.
*
* Distributable under LGPL license. See terms of license at gnu.org.
*/
package net.java.otr4j;
/** @author George Politis */
public interface OtrPolicy {
public static final int ALLOW_V1 = 0x01;
public static final int ALLOW_V2 = 0x02;
public static final int REQUIRE_ENCRYPTION = 0x04;
public static final int SEND_WHITESPACE_TAG = 0x08;
public static final int WHITESPACE_START_AKE = 0x10;
public static final int ERROR_START_AKE = 0x20;
public static final int VERSION_MASK = (ALLOW_V1 | ALLOW_V2);
// The four old version 1 policies correspond to the following combinations
// of flags (adding an allowance for version 2 of the protocol):
public static final int NEVER = 0x00;
public static final int OPPORTUNISTIC = (ALLOW_V1 | ALLOW_V2 | SEND_WHITESPACE_TAG
| WHITESPACE_START_AKE | ERROR_START_AKE);
public static final int OTRL_POLICY_MANUAL = (ALLOW_V1 | ALLOW_V2);
public static final int OTRL_POLICY_ALWAYS = (ALLOW_V1 | ALLOW_V2 | REQUIRE_ENCRYPTION
| WHITESPACE_START_AKE | ERROR_START_AKE);
public static final int OTRL_POLICY_DEFAULT = OPPORTUNISTIC;
public abstract boolean getAllowV1();
public abstract boolean getAllowV2();
public abstract boolean getRequireEncryption();
public abstract boolean getSendWhitespaceTag();
public abstract boolean getWhitespaceStartAKE();
public abstract boolean getErrorStartAKE();
public abstract int getPolicy();
public abstract void setAllowV1(boolean value);
public abstract void setAllowV2(boolean value);
public abstract void setRequireEncryption(boolean value);
public abstract void setSendWhitespaceTag(boolean value);
public abstract void setWhitespaceStartAKE(boolean value);
public abstract void setErrorStartAKE(boolean value);
public abstract void setEnableAlways(boolean value);
public abstract boolean getEnableAlways();
public abstract void setEnableManual(boolean value);
public abstract boolean getEnableManual();
}