chiark / gitweb /
site.c: Abstract out generation of the Diffie--Hellman private secret.
authorMark Wooding <mdw@distorted.org.uk>
Sat, 29 Apr 2017 12:55:40 +0000 (13:55 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Wed, 25 Sep 2019 12:46:59 +0000 (13:46 +0100)
I want to make this more complicated, so it makes sense to have the
logic in one place.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
site.c

diff --git a/site.c b/site.c
index fed130649683e816eaafcee099a2e05d98fd803f..303dbbd1cc08e72d602d9c07e44d732d70b97915 100644 (file)
--- a/site.c
+++ b/site.c
@@ -862,11 +862,16 @@ kind##_found:                                                             \
     return True;
 }
 
+static void generate_dhsecret(struct site *st)
+{
+    st->random->generate(st->random->st, st->dh->secret_len,st->dhsecret);
+}
+
 static bool_t generate_msg3(struct site *st)
 {
     /* Now we have our nonce and their nonce. Think of a secret key,
        and create message number 3. */
-    st->random->generate(st->random->st,st->dh->secret_len,st->dhsecret);
+    generate_dhsecret(st);
     return generate_msg(st,
                        (st->remote_capabilities & CAPAB_TRANSFORM_MASK)
                        ? LABEL_MSG3BIS
@@ -949,7 +954,7 @@ kind##_found:                                                               \
     /* Terminate their DH public key with a '0' */
     m.pk[m.pklen]=0;
     /* Invent our DH secret key */
-    st->random->generate(st->random->st,st->dh->secret_len,st->dhsecret);
+    generate_dhsecret(st);
 
     /* Generate the shared key and set up the transform */
     if (!set_new_transform(st,m.pk)) return False;