Properly reading the remote's proposal
This commit is contained in:
parent
8ff5020088
commit
9cdc0bd54e
1 changed files with 2 additions and 25 deletions
|
@ -770,29 +770,6 @@ int libp2p_secio_encrypted_read(void* stream_context, unsigned char** bytes, siz
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Pull the Propose struct out of what the remote node sent us
|
|
||||||
* @param buffer incoming bytes
|
|
||||||
* @param buffer_size the size of the incoming buffer
|
|
||||||
* @returns a Propose struct or NULL on error
|
|
||||||
*/
|
|
||||||
struct Propose* libp2p_secio_get_propose_in(const uint8_t* buffer, size_t buffer_size) {
|
|
||||||
struct Propose* retVal = NULL;
|
|
||||||
const uint8_t* buffer_ptr = buffer;
|
|
||||||
// strip off the protocol id
|
|
||||||
for(int i = 0; i < buffer_size; i++) {
|
|
||||||
if (buffer[i] == '\n') {
|
|
||||||
buffer_ptr = &buffer[i+1];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// get the Propose struct
|
|
||||||
if (!libp2p_secio_propose_protobuf_decode(buffer_ptr, buffer_size - (buffer_ptr - buffer), &retVal)) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
return retVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* performs initial communication over an insecure channel to share
|
* performs initial communication over an insecure channel to share
|
||||||
* keys, IDs, and initiate connection. This is a framed messaging system
|
* keys, IDs, and initiate connection. This is a framed messaging system
|
||||||
|
@ -892,8 +869,8 @@ int libp2p_secio_handshake(struct SessionContext* local_session, struct RsaPriva
|
||||||
libp2p_logger_error("secio", "Unable to get the remote's Propose struct.\n");
|
libp2p_logger_error("secio", "Unable to get the remote's Propose struct.\n");
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
propose_in = libp2p_secio_get_propose_in(propose_in_bytes, propose_in_size);
|
|
||||||
if (propose_in == NULL) {
|
if (!libp2p_secio_propose_protobuf_decode(propose_in_bytes, propose_in_size, &propose_in)) {
|
||||||
libp2p_logger_error("secio", "Unable to un-protobuf the remote's Propose struct\n");
|
libp2p_logger_error("secio", "Unable to un-protobuf the remote's Propose struct\n");
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue