X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fcommand_reply.c;h=d02b62ff0015112480e57e9c4018a7b2e3a5ef42;hb=cdedc07c65bab8467f6f5b1ef4b38982c2c77571;hp=6a4713d6a07c3ca239766f95ecf990a5ecbcf3d3;hpb=2878ba34b8d864f89cfb785448e95cdd42297ee0;p=silc.git diff --git a/apps/silcd/command_reply.c b/apps/silcd/command_reply.c index 6a4713d6..d02b62ff 100644 --- a/apps/silcd/command_reply.c +++ b/apps/silcd/command_reply.c @@ -939,7 +939,7 @@ SILC_SERVER_CMD_REPLY_FUNC(join) /* Get founder key */ tmp = silc_argument_get_arg_type(cmd->args, 15, &len); if (tmp) - silc_pkcs_public_key_decode(tmp, len, &founder_key); + silc_pkcs_public_key_payload_decode(tmp, len, &founder_key); /* See whether we already have the channel. */ entry = silc_idlist_find_channel_by_name(server->local_list, @@ -1205,10 +1205,8 @@ SILC_SERVER_CMD_REPLY_FUNC(getkey) SilcServerEntry server_entry = NULL; SilcClientID *client_id = NULL; SilcServerID *server_id = NULL; - SilcSKEPKType type; - unsigned char *tmp, *pk; + unsigned char *tmp; SilcUInt32 len; - SilcUInt16 pk_len; SilcIDPayload idp = NULL; SilcIdType id_type; SilcPublicKey public_key = NULL; @@ -1227,16 +1225,8 @@ SILC_SERVER_CMD_REPLY_FUNC(getkey) if (!tmp) goto out; - /* Decode the public key */ - - SILC_GET16_MSB(pk_len, tmp); - SILC_GET16_MSB(type, tmp + 2); - pk = tmp + 4; - - if (type != SILC_SKE_PK_TYPE_SILC) - goto out; - - if (!silc_pkcs_public_key_decode(pk, pk_len, &public_key)) + /* Decode the public key payload */ + if (!silc_pkcs_public_key_payload_decode(tmp, len, &public_key)) goto out; id_type = silc_id_payload_get_type(idp);