s->buflen += toread;
len -= toread;
data += toread;
-
+
// Exit early if we don't have the full length.
if(s->buflen < 6)
return true;
// 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);
- s->inbuf = NULL;
free(s->mykex);
- s->mykex = NULL;
free(s->hiskex);
- s->hiskex = NULL;
free(s->key);
- s->key = NULL;
free(s->label);
- s->label = NULL;
free(s->late);
- s->late = NULL;
+ memset(s, 0, sizeof *s);
return true;
}