3.2.5.6 Receiving an INQUIRE Message

When a DRT node receives an INQUIRE message, it MUST perform the following steps:

  1. Check whether the INQUIRE message conforms to the syntax as specified in section 2.2.2.5, and drop the message if not. If the protocol is executing in membership or confidential security mode, pass the REQUEST message to the SecurityModule for verification of the Credential and Signature fields. If verification fails, drop the message. Otherwise, continue processing as follows.

  2. Check the Locally Registered KEY List for the presence of the KEY in the Validate KEY field. If the KEY is not found, the node MUST construct an AUTHORITY_BUFFER message with the N flag set, return it to the sender, and take no further action. Otherwise, continue processing as follows.

  3. If the KEY is in the Locally Registered KEY List, the node MUST construct an AUTHORITY_BUFFER message.

  4. If the A flag in the INQUIRE message is set, construct a CPA (as specified in section 3.2.5.7) for the locally registered KEY, including the INQUIRE message. If the NONCE field is not present in the INQUIRE message, an all-zero NONCE SHOULD be used by the receiver when processing the INQUIRE.

  5. If the C flag in the INQUIRE message is set, retrieve the Certificate Chain, if any, for the CPA message and insert it into the AUTHORITY_BUFFER message.

  6. If the X flag in the INQUIRE message is set, retrieve the Extended Payload, if any, for the ID and insert it into the AUTHORITY_BUFFER message.

  7. Send the AUTHORITY_BUFFER message to the source of the INQUIRE message, as specified in section 3.2.5.7.