Class OmemoConfiguration

java.lang.Object
org.jivesoftware.smackx.omemo.OmemoConfiguration

public final class OmemoConfiguration extends Object
Contains OMEMO related configuration options.
  • Constructor Details

  • Method Details

    • setIgnoreReadOnlyDevices

      public static void setIgnoreReadOnlyDevices(boolean ignore)
      Set to true, in order to ignore read-only devices.
      Parameters:
      ignore - ignore read-only devices
      See Also:
    • getIgnoreReadOnlyDevices

      public static boolean getIgnoreReadOnlyDevices()
      Return true, if the client should stop encrypting messages to a read-only device.
      Returns:
      true if read-only devices should get ignored after a certain amount of unanswered messages.
      See Also:
    • setMaxReadOnlyMessageCount

      public static void setMaxReadOnlyMessageCount(int maxReadOnlyMessageCount)
      Set the maximum amount of messages that the client is allowed to send to a read-only device without getting a response. Once the message counter of a device reaches that value, the client will stop encrypting messages for the device (given that getIgnoreReadOnlyDevices() is true). This threshold is used to prevent read-only devices from weakening forward secrecy.
      Parameters:
      maxReadOnlyMessageCount - maximum number of allowed messages to a read-only device.
      See Also:
    • getMaxReadOnlyMessageCount

      public static int getMaxReadOnlyMessageCount()
      Get the maximum amount of messages that the client is allowed to send to a read-only device without getting a response. Once the message counter of a device reaches that value, the client will stop encrypting messages for the device (given that getIgnoreReadOnlyDevices() is true). This threshold is used to prevent read-only devices from weakening forward secrecy.
      Returns:
      maximum number of allowed messages to a read-only device.
      See Also:
    • setDeleteStaleDevices

      public static void setDeleteStaleDevices(boolean delete)
    • getDeleteStaleDevices

      public static boolean getDeleteStaleDevices()
    • setDeleteStaleDevicesAfterHours

      public static void setDeleteStaleDevicesAfterHours(int hours)
    • getDeleteStaleDevicesAfterHours

      public static int getDeleteStaleDevicesAfterHours()
    • setRenewOldSignedPreKeys

      public static void setRenewOldSignedPreKeys(boolean renew)
      Decide, whether signed preKeys are automatically rotated or not. It is highly recommended to rotate signed preKeys to preserve forward secrecy.
      Parameters:
      renew - automatically rotate signed preKeys?
    • getRenewOldSignedPreKeys

      public static boolean getRenewOldSignedPreKeys()
      Determine, whether signed preKeys are automatically rotated or not.
      Returns:
      auto-rotate signed preKeys?
    • setRenewOldSignedPreKeysAfterHours

      public static void setRenewOldSignedPreKeysAfterHours(int hours)
      Set the interval in hours, after which the published signed preKey should be renewed. This value should be between one or two weeks.
      Parameters:
      hours - hours after which signed preKeys should be rotated.
    • getRenewOldSignedPreKeysAfterHours

      Get the interval in hours, after which the published signed preKey should be renewed. This value should be between one or two weeks.
      Returns:
      hours after which signed preKeys should be rotated.
    • setMaxNumberOfStoredSignedPreKeys

      public static void setMaxNumberOfStoredSignedPreKeys(int number)
      Set the maximum number of signed preKeys that are cached until the oldest one gets deleted. This number should not be too small in order to prevent message loss, but also not too big to preserve forward secrecy.
      Parameters:
      number - number of cached signed preKeys.
    • getMaxNumberOfStoredSignedPreKeys

      public static int getMaxNumberOfStoredSignedPreKeys()
      Return the maximum number of signed preKeys that are cached until the oldest one gets deleted.
      Returns:
      max number of cached signed preKeys.
    • setAddOmemoHintBody

      public static void setAddOmemoHintBody(boolean addHint)
      Decide, whether an OMEMO message should carry a plaintext hint about OMEMO encryption. Eg. "I sent you an OMEMO encrypted message..."
      Parameters:
      addHint - shall we add a hint?
    • getAddOmemoHintBody

      public static boolean getAddOmemoHintBody()
      Determine, whether an OMEMO message should carry a plaintext hint about OMEMO encryption.
      Returns:
      true, if a hint is added to the message.
    • getRepairBrokenSessionsWithPreKeyMessages

      Determine, whether incoming messages, which have broken sessions should automatically be answered by an empty preKeyMessage in order to establish a new session.
      Returns:
      true if session should be repaired automatically.
    • setRepairBrokenSessionsWithPrekeyMessages

      public static void setRepairBrokenSessionsWithPrekeyMessages(boolean repair)
      Decide, whether incoming messages, which have broken sessions should automatically be answered by an empty preKeyMessage in order to establish a new session.
      Parameters:
      repair - repair sessions?
    • getCompleteSessionWithEmptyMessage

      public static boolean getCompleteSessionWithEmptyMessage()
      Determine, whether incoming preKeyMessages should automatically be answered by an empty message in order to complete the session.
      Returns:
      true if sessions should be completed.
    • setCompleteSessionWithEmptyMessage

      public static void setCompleteSessionWithEmptyMessage(boolean complete)
      Decide, whether incoming preKeyMessages should automatically be answered by an empty message in order to complete the session.
      Parameters:
      complete - complete the session or not