Create IKEv1 keymat hasher explicitly on sync
authorMartin Willi <martin@revosec.ch>
Thu, 19 Jan 2012 14:55:29 +0000 (15:55 +0100)
committerMartin Willi <martin@revosec.ch>
Tue, 20 Mar 2012 16:31:37 +0000 (17:31 +0100)
src/libcharon/plugins/ha/ha_dispatcher.c

index b20ced4..e3080c4 100644 (file)
@@ -236,9 +236,12 @@ static void process_ike_add(private_ha_dispatcher_t *this, ha_message_t *message
                                method = AUTH_PSK;
                                shared = shared_key_create(SHARED_IKE, chunk_clone(psk));
                        }
-                       ok = keymat_v1->derive_ike_keys(keymat_v1, proposal,
-                                                       dh, dh_remote, nonce_i, nonce_r,
-                                                       ike_sa->get_id(ike_sa), method, shared);
+                       if (keymat_v1->create_hasher(keymat_v1, proposal))
+                       {
+                               ok = keymat_v1->derive_ike_keys(keymat_v1, proposal,
+                                                               dh, dh_remote, nonce_i, nonce_r,
+                                                               ike_sa->get_id(ike_sa), method, shared);
+                       }
                        DESTROY_IF(shared);
                }
                dh->destroy(dh);