Group configuration

The group configuration can be specified by building a MlsGroupConfig object or choosing the default value. The default velaue contains safe values for all parameters and is suitable for scenarios whithout particular requirements.

The following parameters can be set:

NameTypeExplanation
wire_format_policyWireFormatPolicyDefines the wire format policy for outgoing and incoming handshake messages.
padding_sizeusizeSize of padding in bytes. The default is 0.
max_past_epochsusizeMaximum number of past epochs for which application messages can be decrypted. The default is 0.
number_of_resumption_secretsusizeNumber of resumtion secrets to keep. The default is 0.
use_ratchet_tree_extensionboolFlag indicating the Ratchet Tree Extension should be used. The default is false.
required_capabilitiesRequiredCapabilitiesExtensionRequired capabilities (extensions and proposal types).
sender_ratchet_configurationSenderRatchetConfigurationSender ratchet configuration.

Example configuration:

    let mls_group_config = MlsGroupConfig::builder()
        .padding_size(100)
        .sender_ratchet_configuration(SenderRatchetConfiguration::new(
            10,   // out_of_order_tolerance
            2000, // maximum_forward_distance
        ))
        .use_ratchet_tree_extension(true)
        .build();