silc_create_key_pair(SILC_CLIENT_DEF_PKCS,
SILC_CLIENT_DEF_PKCS_LEN,
file_public_key, file_private_key, NULL,
- NULL, NULL, NULL, FALSE);
+ NULL, NULL, NULL, NULL, FALSE);
printf("Press <Enter> to continue...\n");
getchar();
} else {
silc_create_key_pair(SILC_CLIENT_DEF_PKCS,
SILC_CLIENT_DEF_PKCS_LEN,
file_public_key, file_private_key, NULL,
- NULL, NULL, NULL, FALSE);
+ NULL, NULL, NULL, NULL, FALSE);
printf("Press <Enter> to continue...\n");
getchar();
} else {
silc_create_key_pair(SILC_CLIENT_DEF_PKCS,
SILC_CLIENT_DEF_PKCS_LEN,
file_public_key, file_private_key, NULL,
- NULL, NULL, NULL, FALSE);
+ NULL, NULL, NULL, NULL, FALSE);
printf("Press <Enter> to continue...\n");
getchar();
} else {
{
char pub[256], prv[256];
struct passwd *pw;
+ bool ret;
SILC_LOG_DEBUG(("Loading public and private keys"));
snprintf(pub, sizeof(pub) - 1, "%s/%s",
get_irssi_dir(), SILC_CLIENT_PUBLIC_KEY_NAME);
- return silc_load_key_pair(pub, prv, &client->pkcs, &client->public_key,
- &client->private_key);
+ /* Try loading first with "" passphrase, for those that didn't set
+ passphrase for private key, and only if that fails let it prompt
+ for passphrase. */
+ ret = silc_load_key_pair(pub, prv, "", &client->pkcs, &client->public_key,
+ &client->private_key);
+ if (!ret)
+ ret = silc_load_key_pair(pub, prv, NULL, &client->pkcs,
+ &client->public_key, &client->private_key);
+ return ret;
}