Tiny amount of infrastructure for having actual keys in PuTTYgen.
authorben <ben@cda61777-01e9-0310-a592-d414129be87e>
Sat, 15 Feb 2003 14:20:43 +0000 (14:20 +0000)
committerben <ben@cda61777-01e9-0310-a592-d414129be87e>
Sat, 15 Feb 2003 14:20:43 +0000 (14:20 +0000)
git-svn-id: svn://svn.tartarus.org/sgt/putty@2849 cda61777-01e9-0310-a592-d414129be87e

Recipe
mac/mac.h
mac/macpgen.c
mac/macpgen.r
mac/macpgrid.h

diff --git a/Recipe b/Recipe
index cb8a8cc..d5fbb0a 100644 (file)
--- 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
index dfe7285..e747e29 100644 (file)
--- 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);
index 8c6aa2a..16ef055 100644 (file)
@@ -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;
index 6d3107b..ea0e25d 100644 (file)
@@ -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) {
+    {
+    }
+};
+
index edf6d53..5293bb0 100644 (file)
@@ -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