3.2.4.1 Registering a Key

To register a key, the application or higher-layer protocol MUST provide:

  • The elements required by the SecurityModule abstract data model (ADM) element to authenticate the key to peers.

  • Optionally a Payload.

If there are no addresses currently available in the Local Endpoint List element, a failure MUST be returned to the application or higher-layer protocol.

To register a key in a given cloud, a node MUST perform the following steps:

  1. Verify that an entry for the cloud exists in the Cloud State element. If it does not, return a failure.

  2. The node MUST add the key to its Locally Registered Key List element.

    The node MUST then initiate the procedure as specified in section 3.1.4.4 to resolve the key equal to the new key + 1. The ResolveCritera MUST be set to SEARCH_OPCODE_NONE, ResolveReasonCode MUST be set to REASON_REGISTRATION, PickBestMatchFromLocalIds MUST be set to FALSE, and the InitialBestMatchRouteEntry MUST be a ROUTE_ENTRY structure holding the key and the endpoints in the Local Endpoint List element.

    (Note that because the above route entry is in each LOOKUP message sent, the nodes receiving the LOOKUP will have the opportunity to learn of the existence of the new node.)