X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/e295c4c17d1f6c6491ece0c2fad4299a56ac81d9..806c9d94341c912a45e563d87ad36d63966a4308:/windows/winutils.c diff --git a/windows/winutils.c b/windows/winutils.c index b1ee0113..40f1f4a7 100644 --- a/windows/winutils.c +++ b/windows/winutils.c @@ -6,7 +6,7 @@ #include #include -#include "winstuff.h" +#include "putty.h" #include "misc.h" #ifdef TESTMODE @@ -94,27 +94,20 @@ void filereq_free(filereq *state) /* Callback function to launch context help. */ static VOID CALLBACK message_box_help_callback(LPHELPINFO lpHelpInfo) { - if (help_path) { - char *context = NULL; + char *context = NULL; #define CHECK_CTX(name) \ - do { \ - if (lpHelpInfo->dwContextId == WINHELP_CTXID_ ## name) \ - context = WINHELP_CTX_ ## name; \ - } while (0) - CHECK_CTX(errors_hostkey_absent); - CHECK_CTX(errors_hostkey_changed); - CHECK_CTX(errors_cantloadkey); - CHECK_CTX(option_cleanup); + do { \ + if (lpHelpInfo->dwContextId == WINHELP_CTXID_ ## name) \ + context = WINHELP_CTX_ ## name; \ + } while (0) + CHECK_CTX(errors_hostkey_absent); + CHECK_CTX(errors_hostkey_changed); + CHECK_CTX(errors_cantloadkey); + CHECK_CTX(option_cleanup); + CHECK_CTX(pgp_fingerprints); #undef CHECK_CTX - if (context) { - /* We avoid using malloc, in case we're in a situation where - * it would be awkward to do so. */ - char cmd[WINHELP_CTX_MAXLEN+10]; - sprintf(cmd, "JI(`',`%.*s')", WINHELP_CTX_MAXLEN, context); - WinHelp(hwnd, help_path, HELP_COMMAND, (DWORD)cmd); - requested_help = TRUE; - } - } + if (context) + launch_help(hwnd, context); } int message_box(LPCTSTR text, LPCTSTR caption, DWORD style, DWORD helpctxid) @@ -135,11 +128,29 @@ int message_box(LPCTSTR text, LPCTSTR caption, DWORD style, DWORD helpctxid) mbox.lpszCaption = caption; mbox.dwContextHelpId = helpctxid; mbox.dwStyle = style; - if (helpctxid != 0 && help_path) mbox.dwStyle |= MB_HELP; + if (helpctxid != 0 && has_help()) mbox.dwStyle |= MB_HELP; return MessageBoxIndirect(&mbox); } /* + * Display the fingerprints of the PGP Master Keys to the user. + */ +void pgp_fingerprints(void) +{ + message_box("These are the fingerprints of the PuTTY PGP Master Keys. They can\n" + "be used to establish a trust path from this executable to another\n" + "one. See the manual for more information.\n" + "(Note: these fingerprints have nothing to do with SSH!)\n" + "\n" + "PuTTY Master Key (RSA), 1024-bit:\n" + " " PGP_RSA_MASTER_KEY_FP "\n" + "PuTTY Master Key (DSA), 1024-bit:\n" + " " PGP_DSA_MASTER_KEY_FP, + "PGP fingerprints", MB_ICONINFORMATION | MB_OK, + HELPCTXID(pgp_fingerprints)); +} + +/* * Split a complete command line into argc/argv, attempting to do * it exactly the same way Windows itself would do it (so that * console utilities, which receive argc and argv from Windows,