projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Better default paths for log and PID files on Windows.
[tinc]
/
src
/
protocol_auth.c
diff --git
a/src/protocol_auth.c
b/src/protocol_auth.c
index
84aece0
..
cd39f28
100644
(file)
--- a/
src/protocol_auth.c
+++ b/
src/protocol_auth.c
@@
-198,7
+198,7
@@
static bool finalize_invitation(connection_t *c, const char *data, uint16_t len)
return true;
}
return true;
}
-static bool receive_invitation_sptps(void *handle, uint8_t type, const
char
*data, uint16_t len) {
+static bool receive_invitation_sptps(void *handle, uint8_t type, const
void
*data, uint16_t len) {
connection_t *c = handle;
if(type == 128)
connection_t *c = handle;
if(type == 128)
@@
-412,6
+412,11
@@
bool id_h(connection_t *c, const char *request) {
}
bool send_metakey(connection_t *c) {
}
bool send_metakey(connection_t *c) {
+ if(!myself->connection->rsa) {
+ logger(DEBUG_CONNECTIONS, LOG_ERR, "Peer %s (%s) uses legacy protocol which we don't support", c->name, c->hostname);
+ return false;
+ }
+
if(!read_rsa_public_key(c))
return false;
if(!read_rsa_public_key(c))
return false;
@@
-421,7
+426,7
@@
bool send_metakey(connection_t *c) {
if(!(c->outdigest = digest_open_sha1(-1)))
return false;
if(!(c->outdigest = digest_open_sha1(-1)))
return false;
- size_t len = rsa_size(c->rsa);
+
const
size_t len = rsa_size(c->rsa);
char key[len];
char enckey[len];
char hexkey[2 * len + 1];
char key[len];
char enckey[len];
char hexkey[2 * len + 1];
@@
-478,9
+483,12
@@
bool send_metakey(connection_t *c) {
}
bool metakey_h(connection_t *c, const char *request) {
}
bool metakey_h(connection_t *c, const char *request) {
+ if(!myself->connection->rsa)
+ return false;
+
char hexkey[MAX_STRING_SIZE];
int cipher, digest, maclength, compression;
char hexkey[MAX_STRING_SIZE];
int cipher, digest, maclength, compression;
- size_t len = rsa_size(myself->connection->rsa);
+
const
size_t len = rsa_size(myself->connection->rsa);
char enckey[len];
char key[len];
char enckey[len];
char key[len];
@@
-540,7
+548,7
@@
bool metakey_h(connection_t *c, const char *request) {
}
bool send_challenge(connection_t *c) {
}
bool send_challenge(connection_t *c) {
- size_t len = rsa_size(c->rsa);
+
const
size_t len = rsa_size(c->rsa);
char buffer[len * 2 + 1];
if(!c->hischallenge)
char buffer[len * 2 + 1];
if(!c->hischallenge)
@@
-560,8
+568,11
@@
bool send_challenge(connection_t *c) {
}
bool challenge_h(connection_t *c, const char *request) {
}
bool challenge_h(connection_t *c, const char *request) {
+ if(!myself->connection->rsa)
+ return false;
+
char buffer[MAX_STRING_SIZE];
char buffer[MAX_STRING_SIZE];
- size_t len = rsa_size(myself->connection->rsa);
+
const
size_t len = rsa_size(myself->connection->rsa);
size_t digestlen = digest_length(c->indigest);
char digest[digestlen];
size_t digestlen = digest_length(c->indigest);
char digest[digestlen];