3.1.5.2 Receiving an ADVERTISE Message

When a Resolver receives an ADVERTISE message, it MUST perform the following steps:

  1. Match the Acked Message Id in the ADVERTISE message against any SOLICIT messages in the Pending List. If no match is found, it MUST silently discard the ADVERTISE message. Otherwise, it MUST remove the SOLICIT message from the Pending List and continue processing as follows.

  2. Use the hashed nonce in the message to verify that a corresponding SOLICIT message was sent.

  3. Check the array of keys in the ADVERTISE message. If the array is empty (for example, NumEntries is 0x0000), silently discard the message.

  4. Select a set of keys in the array to request. The node SHOULD select all keys in the array.

Prepare a REQUEST message with the desired keys and send it to the remote node. The node MUST also add the REQUEST message to the Pending List, set its Retry Count to 2, and start its Message Retransmission Timer. If the protocol is executing in membership or confidential security mode, call upon the SecurityModule to provide the Credential, Signature, and KeyIdentifier fields of the message.