void modalfatalbox(char *fmt, ...)
{
va_list ap;
- char stuff[200];
+ char *stuff;
va_start(ap, fmt);
- vsprintf(stuff, fmt, ap);
+ stuff = dupvprintf(fmt, ap);
va_end(ap);
MessageBox(NULL, stuff, "PuTTYgen Fatal Error",
MB_SYSTEMMODAL | MB_ICONERROR | MB_OK);
+ sfree(stuff);
exit(1);
}
#endif
of.hwndOwner = hwnd;
if (ppk) {
- of.lpstrFilter = "PuTTY Private Key Files\0*.PPK\0All Files\0*\0\0\0";
+ of.lpstrFilter = "PuTTY Private Key Files (*.ppk)\0*.ppk\0"
+ "All Files (*.*)\0*\0\0\0";
of.lpstrDefExt = ".ppk";
} else {
- of.lpstrFilter = "All Files\0*\0\0\0";
+ of.lpstrFilter = "All Files (*.*)\0*\0\0\0";
}
of.lpstrCustomFilter = NULL;
of.nFilterIndex = 1;
}
/*
- * This function is needed to link with the DES code. We need not
- * have it do anything at all.
- */
-void logevent(char *msg)
-{
-}
-
-/*
* Dialog-box function for the Licence box.
*/
static int CALLBACK LicenceProc(HWND hwnd, UINT msg,
dec1 = bignum_decimal(key->exponent);
dec2 = bignum_decimal(key->modulus);
- buffer = smalloc(strlen(dec1) + strlen(dec2) +
- strlen(key->comment) + 30);
- sprintf(buffer, "%d %s %s %s",
- bignum_bitcount(key->modulus), dec1, dec2, key->comment);
+ buffer = dupprintf("%d %s %s %s", bignum_bitcount(key->modulus),
+ dec1, dec2, key->comment);
SetDlgItemText(hwnd, id, buffer);
SetDlgItemText(hwnd, idstatic,
"&Public key for pasting into authorized_keys file:");
}
void load_key_file(HWND hwnd, struct MainDlgState *state,
- char *filename, int was_import_cmd)
+ Filename filename, int was_import_cmd)
{
char passphrase[PASSPHRASE_MAXLEN];
int needs_pass;
struct RSAKey newkey1;
struct ssh2_userkey *newkey2 = NULL;
- type = realtype = key_type(filename);
+ type = realtype = key_type(&filename);
if (type != SSH_KEYTYPE_SSH1 &&
type != SSH_KEYTYPE_SSH2 &&
!import_possible(type)) {
comment = NULL;
if (realtype == SSH_KEYTYPE_SSH1)
- needs_pass = rsakey_encrypted(filename, &comment);
+ needs_pass = rsakey_encrypted(&filename, &comment);
else if (realtype == SSH_KEYTYPE_SSH2)
needs_pass =
- ssh2_userkey_encrypted(filename, &comment);
+ ssh2_userkey_encrypted(&filename, &comment);
else
- needs_pass = import_encrypted(filename, realtype,
+ needs_pass = import_encrypted(&filename, realtype,
&comment);
pps.passphrase = passphrase;
pps.comment = comment;
*passphrase = '\0';
if (type == SSH_KEYTYPE_SSH1) {
if (realtype == type)
- ret = loadrsakey(filename, &newkey1,
+ ret = loadrsakey(&filename, &newkey1,
passphrase);
else
- ret = import_ssh1(filename, realtype,
+ ret = import_ssh1(&filename, realtype,
&newkey1, passphrase);
} else {
if (realtype == type)
- newkey2 = ssh2_load_userkey(filename,
+ newkey2 = ssh2_load_userkey(&filename,
passphrase);
else
- newkey2 = import_ssh2(filename, realtype,
+ newkey2 = import_ssh2(&filename, realtype,
passphrase);
if (newkey2 == SSH2_WRONG_PASSPHRASE)
ret = -1;
* Load a key file if one was provided on the command line.
*/
if (cmdline_keyfile)
- load_key_file(hwnd, state, cmdline_keyfile, 0);
+ load_key_file(hwnd, state, filename_from_str(cmdline_keyfile), 0);
return 1;
case WM_MOUSEMOVE:
int ret;
FILE *fp = fopen(filename, "r");
if (fp) {
- char buffer[FILENAME_MAX + 80];
+ char *buffer;
fclose(fp);
- sprintf(buffer, "Overwrite existing file\n%.*s?",
- FILENAME_MAX, filename);
+ buffer = dupprintf("Overwrite existing file\n%s?",
+ filename);
ret = MessageBox(hwnd, buffer, "PuTTYgen Warning",
MB_YESNO | MB_ICONWARNING);
+ sfree(buffer);
if (ret != IDYES)
break;
}
if (state->ssh2) {
+ Filename fn = filename_from_str(filename);
if (type != realtype)
- ret = export_ssh2(filename, type, &state->ssh2key,
+ ret = export_ssh2(&fn, type, &state->ssh2key,
*passphrase ? passphrase : NULL);
else
- ret = ssh2_save_userkey(filename, &state->ssh2key,
+ ret = ssh2_save_userkey(&fn, &state->ssh2key,
*passphrase ? passphrase :
NULL);
} else {
+ Filename fn = filename_from_str(filename);
if (type != realtype)
- ret = export_ssh1(filename, type, &state->key,
+ ret = export_ssh1(&fn, type, &state->key,
*passphrase ? passphrase : NULL);
else
- ret = saversakey(filename, &state->key,
+ ret = saversakey(&fn, &state->key,
*passphrase ? passphrase : NULL);
}
if (ret <= 0) {
int ret;
FILE *fp = fopen(filename, "r");
if (fp) {
- char buffer[FILENAME_MAX + 80];
+ char *buffer;
fclose(fp);
- sprintf(buffer, "Overwrite existing file\n%.*s?",
- FILENAME_MAX, filename);
+ buffer = dupprintf("Overwrite existing file\n%s?",
+ filename);
ret = MessageBox(hwnd, buffer, "PuTTYgen Warning",
MB_YESNO | MB_ICONWARNING);
+ sfree(buffer);
if (ret != IDYES)
break;
}
char filename[FILENAME_MAX];
if (prompt_keyfile(hwnd, "Load private key:",
filename, 0, LOWORD(wParam)==IDC_LOAD))
- load_key_file(hwnd, state, filename,
+ load_key_file(hwnd, state, filename_from_str(filename),
LOWORD(wParam) != IDC_LOAD);
}
break;