projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix whitespace.
[tinc]
/
src
/
sptps.c
diff --git
a/src/sptps.c
b/src/sptps.c
index
b907dad
..
2a298ff
100644
(file)
--- a/
src/sptps.c
+++ b/
src/sptps.c
@@
-209,7
+209,7
@@
static bool generate_key_material(sptps_t *s, const char *shared, size_t len) {
memcpy(seed + 13, s->hiskex + 1, 32);
memcpy(seed + 45, s->mykex + 1, 32);
}
memcpy(seed + 13, s->hiskex + 1, 32);
memcpy(seed + 45, s->mykex + 1, 32);
}
- memcpy(seed + 7
8
, s->label, s->labellen);
+ memcpy(seed + 7
7
, s->label, s->labellen);
// Use PRF to generate the key material
if(!prf(shared, len, seed, s->labellen + 64 + 13, s->key, keylen))
// Use PRF to generate the key material
if(!prf(shared, len, seed, s->labellen + 64 + 13, s->key, keylen))
@@
-339,7
+339,6
@@
bool sptps_force_kex(sptps_t *s) {
// Receive a handshake record.
static bool receive_handshake(sptps_t *s, const char *data, uint16_t len) {
// Only a few states to deal with handshaking.
// Receive a handshake record.
static bool receive_handshake(sptps_t *s, const char *data, uint16_t len) {
// Only a few states to deal with handshaking.
- fprintf(stderr, "Received handshake message, current state %d\n", s->state);
switch(s->state) {
case SPTPS_SECONDARY_KEX:
// We receive a secondary KEX request, first respond by sending our own.
switch(s->state) {
case SPTPS_SECONDARY_KEX:
// We receive a secondary KEX request, first respond by sending our own.
@@
-509,7
+508,7
@@
bool sptps_receive_data(sptps_t *s, const char *data, size_t len) {
s->buflen += toread;
len -= toread;
data += toread;
s->buflen += toread;
len -= toread;
data += toread;
-
+
// Exit early if we don't have the full length.
if(s->buflen < 6)
return true;
// Exit early if we don't have the full length.
if(s->buflen < 6)
return true;
@@
-628,18
+627,17
@@
bool sptps_start(sptps_t *s, void *handle, bool initiator, bool datagram, ecdsa_
// Stop a SPTPS session.
bool sptps_stop(sptps_t *s) {
// Clean up any resources.
// Stop a SPTPS session.
bool sptps_stop(sptps_t *s) {
// Clean up any resources.
+ cipher_close(&s->incipher);
+ cipher_close(&s->outcipher);
+ digest_close(&s->indigest);
+ digest_close(&s->outdigest);
ecdh_free(&s->ecdh);
free(s->inbuf);
ecdh_free(&s->ecdh);
free(s->inbuf);
- s->inbuf = NULL;
free(s->mykex);
free(s->mykex);
- s->mykex = NULL;
free(s->hiskex);
free(s->hiskex);
- s->hiskex = NULL;
free(s->key);
free(s->key);
- s->key = NULL;
free(s->label);
free(s->label);
- s->label = NULL;
free(s->late);
free(s->late);
-
s->late = NULL
;
+
memset(s, 0, sizeof *s)
;
return true;
}
return true;
}