Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Patched INITIATE message following Daniel Boucher
I was looking at the file curve_codec.c and I found a little issue in the implementation of the INITIATE message when computing Box [C',S](C->S') At some point there was a fix made (#14) referring to https://codesinchaos.wordpress.com/2012/09/09/curvecp-1 but I think a bug got introduced in the code NOTE: The following problem doesn't apply in the ZMQ's implementation, the code in curve_client.cpp and curve_server.cpp seems correct The actual code at line 627 for s_produce_initiate() is s_encrypt (self, vouch_crypt, vouch_plain, 64, "VOUCH---", NULL, NULL); So it's using the precomputed key (C'->S') instead of (C->S'), if I'm not mistaking to the correct code should be: s_encrypt (self, vouch_crypt, vouch_plain, 64, "VOUCH---", self->peer_transkey, zcert_secret_key (self->permacert)); Same thing on the server side for processing the initiate message at line 704 (process_initiate()): int rc = s_decrypt (self, vouch, plain, 64, "VOUCH---", NULL, NULL); The correct behavior would be: int rc = s_decrypt (self, vouch, plain, 64, "VOUCH---", self->peer_permakey, zcert_secret_key(self->transcert));
- Loading branch information