Don't free ephemeral ECDH keys twice.
ecdh_compute_shared() was changed to immediately delete the ephemeral key after the shared secret was computed. Therefore, the pointer to the ecdh_t struct should be zeroed so it won't be freed again when a struct sptps_t is freed.
This commit is contained in:
parent
fc119fb009
commit
d03dc91e27
1 changed files with 1 additions and 0 deletions
|
@ -319,6 +319,7 @@ static bool receive_sig(sptps_t *s, const char *data, uint16_t len) {
|
|||
char shared[ECDH_SHARED_SIZE];
|
||||
if(!ecdh_compute_shared(s->ecdh, s->hiskex + 1 + 32, shared))
|
||||
return false;
|
||||
s->ecdh = NULL;
|
||||
|
||||
// Generate key material from shared secret.
|
||||
if(!generate_key_material(s, shared, sizeof shared))
|
||||
|
|
Loading…
Reference in a new issue