HIPv2: Restart the DH handshake negotiation
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
HIPL |
New
|
Undecided
|
Unassigned |
Bug Description
"During the Handshake, the Initiator and the Responder agree on a single DH Group. The Responder selects the DH Group and its DH public value in the R1 based on the list of DH Suite IDs in the I1 packet. If the responder supports none of the DH Groups requested by the Initiator, the Responder selects an arbitrary DH and replies with an R1 containing its list of supported DH Group IDs. In such case, the Initiator receives an R1 packet containing the DH public value for an unrequested DH Group and also the Responder's DH Group list in the signed part of the R1 packet. At this point, the Initiator MAY abort the handshake or MAY restart the handshake by sending a new I1 packet containing a selection of DH Group IDs that is supported by the Responder." RFC-5201-bis-08 Section 4.1.6
The DH negotiation is implemented in branch hipv2-dh-ecdh, but this restart mechanism is missing.