From 06e0f715cf1b4f345708eb240e915a74888c079d Mon Sep 17 00:00:00 2001 From: ben Date: Sat, 15 Feb 2003 14:20:43 +0000 Subject: [PATCH] Tiny amount of infrastructure for having actual keys in PuTTYgen. git-svn-id: svn://svn.tartarus.org/sgt/putty@2849 cda61777-01e9-0310-a592-d414129be87e --- Recipe | 2 +- mac/mac.h | 12 +++++++++++- mac/macpgen.c | 7 +++++-- mac/macpgen.r | 32 +++++++++++++++++++++++++++++++- mac/macpgrid.h | 3 ++- 5 files changed, 50 insertions(+), 6 deletions(-) diff --git a/Recipe b/Recipe index cb8a8cc7..d5fbb0a4 100644 --- a/Recipe +++ b/Recipe @@ -161,4 +161,4 @@ PuTTYtel : [M] terminal wcwidth ldiscucs logging be_nossh mac macdlg macevlog + stricmp vsnprint PuTTYgen : [M] macpgen sshrsag sshdssg sshprime sshdes sshbn sshmd5 version + sshrand macnoise sshsha macstore misc sshrsa sshdss macmisc sshpubk - + sshaes sshsh512 import macpgen.rsrc \ No newline at end of file + + sshaes sshsh512 import macpgen.rsrc macpgkey diff --git a/mac/mac.h b/mac/mac.h index dfe7285a..e747e29b 100644 --- a/mac/mac.h +++ b/mac/mac.h @@ -43,7 +43,8 @@ extern struct mac_gestalts mac_gestalts; /* Every window used by PuTTY has a refCon field pointing to one of these. */ typedef struct { - struct Session *s; + struct Session *s; /* Only used in PuTTY */ + struct KeyState *ks; /* Only used in PuTTYgen */ int wtype; } WinInfo; @@ -96,6 +97,13 @@ typedef struct Session { extern Session *sesslist; +/* PuTTYgen per-window state */ +typedef struct KeyState { + DialogPtr box; +} KeyState; + +#define mac_windowkey(w) (((WinInfo *)GetWRefCon(w))->ks) + /* from macdlg.c */ extern void mac_newsession(void); extern void mac_dupsession(void); @@ -164,6 +172,8 @@ extern Socket ot_register(void *, Plug); extern Socket ot_new(SockAddr addr, int, int, int, int, Plug); extern Socket ot_newlistener(char *, int, Plug, int); extern char *ot_addr_error(SockAddr); +/* from macpgkey.c */ +extern void mac_newkey(void); /* Apple Event Handlers (in various files) */ extern pascal OSErr mac_aevt_oapp(const AppleEvent *, AppleEvent *, long); extern pascal OSErr mac_aevt_odoc(const AppleEvent *, AppleEvent *, long); diff --git a/mac/macpgen.c b/mac/macpgen.c index 8c6aa2a8..16ef0550 100644 --- a/mac/macpgen.c +++ b/mac/macpgen.c @@ -1,4 +1,4 @@ -/* $Id: macpgen.c,v 1.1 2003/02/12 23:53:15 ben Exp $ */ +/* $Id: macpgen.c,v 1.2 2003/02/15 14:20:43 ben Exp $ */ /* * Copyright (c) 1999, 2003 Ben Harris * All rights reserved. @@ -126,7 +126,7 @@ static void mac_startup(void) { /* Get base system version (only used if there's no better selector) */ if (Gestalt(gestaltSystemVersion, &mac_gestalts.sysvers) != noErr || (mac_gestalts.sysvers &= 0xffff) < 0x700) - fatalbox("PuTTY requires System 7 or newer"); + fatalbox("PuTTYgen requires System 7 or newer"); /* Find out if we've got Color Quickdraw */ if (Gestalt(gestaltQuickdrawVersion, &mac_gestalts.qdvers) != noErr) mac_gestalts.qdvers = gestaltOriginalQD; @@ -457,6 +457,9 @@ static void mac_menucommand(long result) { break; case mFile: switch (item) { + case iNew: + mac_newkey(); + goto done; case iClose: mac_closewindow(window); goto done; diff --git a/mac/macpgen.r b/mac/macpgen.r index 6d3107ba..ea0e25df 100644 --- a/mac/macpgen.r +++ b/mac/macpgen.r @@ -1,4 +1,4 @@ -/* $Id: macpgen.r,v 1.1 2003/02/12 23:53:15 ben Exp $ */ +/* $Id: macpgen.r,v 1.2 2003/02/15 14:20:43 ben Exp $ */ /* * Copyright (c) 1999, 2002 Ben Harris * All rights reserved. @@ -260,6 +260,11 @@ resource 'STR ' (-16397, purgeable) { "This file is used internally by PuTTY. It cannot be opened." }; +/* Missing-application name string, for private keys. */ +/* XXX Private keys should eventually be owned by Pageant */ +resource 'STR ' (-16396, purgeable) { + "PuTTYgen" +}; /* * Internal resources @@ -435,3 +440,28 @@ resource 'TEXT' (wLicence, "licence", purgeable) { "CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE " "SOFTWARE." }; + +/* Key box */ + +resource 'DLOG' (wKey, "key", purgeable) { + { 0, 0, 120, 240 }, + noGrowDocProc, + invisible, + goAway, + wAbout, /* RefCon -- identifies the window to PuTTY */ + wAbout, /* DITL ID */ + "untitled", + staggerParentWindowScreen +}; + +resource 'dlgx' (wKey, "key", purgeable) { + versionZero { + kDialogFlagsUseThemeBackground | kDialogFlagsUseThemeControls + } +}; + +resource 'DITL' (wKey, "key", purgeable) { + { + } +}; + diff --git a/mac/macpgrid.h b/mac/macpgrid.h index edf6d530..5293bb0a 100644 --- a/mac/macpgrid.h +++ b/mac/macpgrid.h @@ -1,4 +1,4 @@ -/* $Id: macpgrid.h,v 1.1 2003/02/12 23:53:15 ben Exp $ */ +/* $Id: macpgrid.h,v 1.2 2003/02/15 14:20:43 ben Exp $ */ /* * macpgrid.h -- Mac resource IDs for PuTTYgen @@ -42,3 +42,4 @@ #define wiAboutLicence 1 #define wiAboutVersion 3 #define wLicence 131 +#define wKey 134 -- 2.11.0