X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilc%2Fclientconfig.c;h=1e85aa4f2150e490f7a8604d1a331f86ca7307c5;hb=32fd2624bef1d1e64b3250d7ff8475db043fd4a5;hp=94ddb7f04943f2e1e5c864ba8c9d09f04c4f69af;hpb=b3bb2c3a975b7b02ece7db077cb68b230b3d6fb5;p=silc.git diff --git a/apps/silc/clientconfig.c b/apps/silc/clientconfig.c index 94ddb7f0..1e85aa4f 100644 --- a/apps/silc/clientconfig.c +++ b/apps/silc/clientconfig.c @@ -272,28 +272,28 @@ int silc_client_config_parse_lines(SilcClientConfig config, if (ret < 0) break; - /* Get block length */ + /* Get key length */ ret = silc_config_get_token(line, &tmp); if (ret < 0) break; if (ret == 0) { - fprintf(stderr, "%s:%d: Cipher block length not defined\n", + fprintf(stderr, "%s:%d: Cipher key length not defined\n", config->filename, pc->linenum); break; } - config->cipher->block_len = atoi(tmp); + config->cipher->key_len = atoi(tmp); silc_free(tmp); - /* Get key length */ + /* Get block length */ ret = silc_config_get_token(line, &tmp); if (ret < 0) break; if (ret == 0) { - fprintf(stderr, "%s:%d: Cipher key length not defined\n", + fprintf(stderr, "%s:%d: Cipher block length not defined\n", config->filename, pc->linenum); break; } - config->cipher->key_len = atoi(tmp); + config->cipher->block_len = atoi(tmp); silc_free(tmp); check = TRUE; @@ -554,6 +554,7 @@ void silc_client_config_register_ciphers(SilcClientConfig config) /* Load (try at least) the crypto SIM module */ SilcCipherObject cipher; SilcSimContext *sim; + char *alg_name; memset(&cipher, 0, sizeof(cipher)); cipher.name = alg->alg_name; @@ -564,25 +565,29 @@ void silc_client_config_register_ciphers(SilcClientConfig config) sim->type = SILC_SIM_CIPHER; sim->libname = alg->sim_name; + alg_name = strdup(alg->alg_name); + if (strchr(alg_name, '-')) + *strchr(alg_name, '-') = '\0'; + if ((silc_sim_load(sim))) { cipher.set_key = - silc_sim_getsym(sim, silc_sim_symname(alg->alg_name, + silc_sim_getsym(sim, silc_sim_symname(alg_name, SILC_CIPHER_SIM_SET_KEY)); SILC_LOG_DEBUG(("set_key=%p", cipher.set_key)); cipher.set_key_with_string = - silc_sim_getsym(sim, silc_sim_symname(alg->alg_name, + silc_sim_getsym(sim, silc_sim_symname(alg_name, SILC_CIPHER_SIM_SET_KEY_WITH_STRING)); SILC_LOG_DEBUG(("set_key_with_string=%p", cipher.set_key_with_string)); cipher.encrypt = - silc_sim_getsym(sim, silc_sim_symname(alg->alg_name, + silc_sim_getsym(sim, silc_sim_symname(alg_name, SILC_CIPHER_SIM_ENCRYPT_CBC)); SILC_LOG_DEBUG(("encrypt_cbc=%p", cipher.encrypt)); cipher.decrypt = - silc_sim_getsym(sim, silc_sim_symname(alg->alg_name, + silc_sim_getsym(sim, silc_sim_symname(alg_name, SILC_CIPHER_SIM_DECRYPT_CBC)); SILC_LOG_DEBUG(("decrypt_cbc=%p", cipher.decrypt)); cipher.context_len = - silc_sim_getsym(sim, silc_sim_symname(alg->alg_name, + silc_sim_getsym(sim, silc_sim_symname(alg_name, SILC_CIPHER_SIM_CONTEXT_LEN)); SILC_LOG_DEBUG(("context_len=%p", cipher.context_len)); @@ -592,6 +597,8 @@ void silc_client_config_register_ciphers(SilcClientConfig config) (app->sim_count + 1)); app->sim[app->sim_count] = sim; app->sim_count++; + + silc_free(alg_name); } else { SILC_LOG_ERROR(("Error configuring ciphers")); silc_client_stop(client);