Shouldn't the v3 client process the certs cell before sending her netinfo cell?
The tor-spec used to say:
As soon as it gets the CERTS cell, the initiator knows whether the responder is correctly authenticated. At this point the initiator may send a NETINFO cell if it does not wish to authenticate, or a CERTS cell, an AUTHENTICATE cell (4.4), and a NETINFO cell if it does.
I changed it to:
The initiator can use the CERTS cell to confirm whether the responder is correctly authenticated. If the initiator does not wish to authenticate, it can send a NETINFO cell once it has received the VERSIONS cell from the responder. If the initiator does wish to authenticate, it waits until it gets the AUTH_CHALLENGE cell, and then sends a CERTS cell, an AUTHENTICATE cell (4.4), and a NETINFO cell.
since that's what the code does.
But troll_un points out that we should probably change the code so the client checks the CERTS cell and either hangs up then, or sends her NETINFO comfortable in the knowledge that she knows who she's sending the NETINFO cell to.
If we do change the code, we'd then want to revert (and probably still clean up a bit more) the spec change.