Automatic Mission and Group ID Generation
ICE tactical clients support a feature called 'automatic channel identification' which generates channel IDs automatically by hashing relevant components of the channel configuration any time they change. This has the effect of allowing any two equivalently-configured channels to be considered the same channel.
Any time a group or Mission configuration is changed, the client must recalculate the ID of the group using a common hashing algorithm. It is important that all clients calculate the same ID for any given configuration. To achieve this, clients must be able to implement
RFC-4122, version 5, commonly referred to as
UUIDv5 (see section:
4.3. Algorithm for Creating a Name-Based UUID).
For backward compatibility, any Mission or Group being imported (from durable storage, QR codes, etc) must ignore any specified ID and instead favor recalculating the ID based on the provided configuration.
UUIDv5 produces an ID from name and namespace input strings. In order for different tools to produce the same ID these values must be exactly, byte-for-byte identical. The namespace input must be the literal value d15fbc09-ad8b-4080-be3c-15ab56d08d00. The name input must be the following group configuration values concatenated (without a delimiter) in this specific order:
1. name
2. type
3. cryptoPassword (omit when the group does not use encryption)
4. rx.address
5. rx.port
6. tx.address
7. tx.port
8. For each Rallypoint in the list, concatenate the following:
rp.address
rp.port