Use correct public key in public key auth as responder.
[silc.git] / lib / silcske / silcconnauth.c
index 97fdd1668b47d4452e5e8a86d95223f2defb8f11..70cc29680181e9b314baf92e647a252c6902ff60 100644 (file)
@@ -357,7 +357,8 @@ SILC_FSM_STATE(silc_connauth_st_initiator_result)
     SILC_LOG_DEBUG(("Authentication successful"));
     connauth->success = TRUE;
   } else {
-    SILC_LOG_DEBUG(("Authentication failed"));
+    SILC_LOG_DEBUG(("Authentication failed, packet %s received",
+                   silc_get_packet_name(connauth->packet->type)));
     connauth->success = FALSE;
   }
   silc_packet_free(connauth->packet);
@@ -486,7 +487,8 @@ SILC_FSM_STATE(silc_connauth_st_responder_authenticate)
 
   if (connauth->aborted) {
     /** Aborted */
-    silc_packet_free(connauth->packet);
+    if (connauth->packet)
+      silc_packet_free(connauth->packet);
     silc_fsm_next(fsm, silc_connauth_st_responder_failure);
     return SILC_FSM_CONTINUE;
   }
@@ -595,8 +597,9 @@ SILC_FSM_STATE(silc_connauth_st_responder_authenticate)
       return SILC_FSM_CONTINUE;
     }
 
-    silc_skr_find_set_pkcs_type(find, connauth->ske->pk_type);
-    silc_skr_find_set_public_key(find, connauth->ske->public_key);
+    silc_skr_find_set_pkcs_type(
+                 find, silc_pkcs_get_type(connauth->ske->prop->public_key));
+    silc_skr_find_set_public_key(find, connauth->ske->prop->public_key);
     silc_skr_find_set_usage(find, (SILC_SKR_USAGE_AUTH |
                                   SILC_SKR_USAGE_KEY_AGREEMENT));
 
@@ -650,6 +653,8 @@ SILC_FSM_STATE(silc_connauth_st_responder_authenticate_pk)
 
   silc_free(connauth->auth_data);
 
+  SILC_LOG_DEBUG(("Signature is Ok"));
+
   /** Authentication successful */
   silc_fsm_next(fsm, silc_connauth_st_responder_success);
   return SILC_FSM_CONTINUE;