site.c: Abstract out generation of the Diffie--Hellman private secret.
[secnet] / site.c
diff --git a/site.c b/site.c
index fed1306..303dbbd 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;