updates.
[silc.git] / lib / silcclient / protocol.c
index 41daced5cab0a1e734df60b23af793ab2fad3e9c..3354f1d0b53f04cc98696b0734caf8d5a253b07a 100644 (file)
@@ -299,10 +299,7 @@ SILC_TASK_CALLBACK(silc_client_protocol_key_exchange)
       SilcSKE ske;
 
       /* Allocate Key Exchange object */
-      ske = silc_ske_alloc();
-      ctx->ske = ske;
-      ske->rng = client->rng;
-      ske->user_data = (void *)client;
+      ctx->ske = ske = silc_ske_alloc(client->rng, client);
 
       silc_ske_set_callbacks(ske, ctx->send_packet, NULL,
                             ctx->verify,
@@ -360,9 +357,7 @@ SILC_TASK_CALLBACK(silc_client_protocol_key_exchange)
        */
       if (ctx->responder == TRUE) {
        /* Sends the selected security properties to the initiator. */
-       status = 
-         silc_ske_responder_phase_1(ctx->ske, 
-                                    ctx->ske->start_payload);
+       status = silc_ske_responder_phase_1(ctx->ske);
       } else {
        /* Call Phase-1 function. This processes the Key Exchange Start
           paylaod reply we just got from the responder. The callback
@@ -405,7 +400,8 @@ SILC_TASK_CALLBACK(silc_client_protocol_key_exchange)
           Key Exhange 1 Payload to the responder. */
        status = silc_ske_initiator_phase_2(ctx->ske,
                                            client->public_key,
-                                           client->private_key);
+                                           client->private_key,
+                                           SILC_SKE_PK_TYPE_SILC);
        protocol->state++;
       }
 
@@ -922,8 +918,7 @@ SILC_TASK_CALLBACK(silc_client_protocol_rekey)
            silc_protocol_execute(protocol, client->schedule, 0, 300000);
          }
 
-         ctx->ske = silc_ske_alloc();
-         ctx->ske->rng = client->rng;
+         ctx->ske = silc_ske_alloc(client->rng, client);
          ctx->ske->prop = silc_calloc(1, sizeof(*ctx->ske->prop));
          silc_ske_group_get_by_number(conn->rekey->ske_group,
                                       &ctx->ske->prop->group);
@@ -979,8 +974,7 @@ SILC_TASK_CALLBACK(silc_client_protocol_rekey)
           * Use Perfect Forward Secrecy, ie. negotiate the key material
           * using the SKE protocol.
           */
-         ctx->ske = silc_ske_alloc();
-         ctx->ske->rng = client->rng;
+         ctx->ske = silc_ske_alloc(client->rng, client);
          ctx->ske->prop = silc_calloc(1, sizeof(*ctx->ske->prop));
          silc_ske_group_get_by_number(conn->rekey->ske_group,
                                       &ctx->ske->prop->group);
@@ -990,7 +984,7 @@ SILC_TASK_CALLBACK(silc_client_protocol_rekey)
                                 NULL,  NULL, NULL, silc_ske_check_version,
                                 context);
       
-         status =  silc_ske_initiator_phase_2(ctx->ske, NULL, NULL);
+         status =  silc_ske_initiator_phase_2(ctx->ske, NULL, NULL, 0);
          if (status != SILC_SKE_STATUS_OK) {
            SILC_LOG_WARNING(("Error (type %d) during Re-key (PFS)",
                              status));