History of windows/winpgen.c of 2674622249d10d83

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

History of file windows/winpgen.c at check-in 2674622249d10d83

2013-07-22
14:55
Fix a few more memory and resource leaks. file: [ac56239f64] check-in: [9b3e8c1465] user: simon branch: trunk, size: 43178
02:11
Another big batch of memory leak fixes, again mostly on error paths. The most interesting one is printer_add_enum, which I've modified to take a char ** rather than a char * so that it can both realloc its input buffer _and_ return NULL to indicate error. file: [69b9e52d9e] check-in: [c3f3ee12f4] user: simon branch: trunk, size: 43104
02:11
Report an error if deleting a random seed file fails. (This has also required me to add a currently unused nonfatal() to PuTTYgen, since although PuTTYgen won't actually try to delete putty.rnd, it does link in winstore.c as a whole.) file: [74fb78589f] check-in: [8954381522] user: simon branch: trunk, size: 43012
2012-07-22
14:51
Introduce a new utility function smemclr(), which memsets things to zero but does it in such a way that over-clever compilers hopefully won't helpfully optimise the call away if you do it just before freeing something or letting it go out of scope. Use this for (hopefully) every memset whose job is to destroy sensitive data that might otherwise be left lying around in the process's memory. file: [d5d82491af] check-in: [aee68b8d31] user: simon branch: trunk, size: 42702
2012-02-19
04:44
Update default key length in PuTTYgen to 2048. file: [941bb14102] check-in: [c630f6dc40] user: simon branch: trunk, size: 42704
2011-10-02
09:14
More arbitrary-limit hunting: retire PASSPHRASE_MAXLEN in the Windows GUIs of Pageant and PuTTYgen. With that and the prompts_t redesign, there should no longer be any limit on passphrase length other than the patience of the user. file: [b2ac3834d8] check-in: [2a6b005d2c] user: simon branch: trunk, size: 42704
06:01
Turn 'Filename' into a dynamically allocated type with no arbitrary length limit, just as I did to FontSpec yesterday. file: [aadd4d738e] check-in: [7756dc109c] user: simon branch: trunk, size: 42291
2006-12-17
05:16
Initial support for HTML Help. All the ad-hoc help-file finding code and various calls to WinHelp() have been centralised into a new file winhelp.c, which in turn has been modified to detect a .CHM file as well as .HLP and select between them as appropriate. It explicitly tries to load HHCTRL.OCX and use GetProcAddress, meaning that it _should_ still work correctly on pre-HTML-Help platforms, falling gracefully back to WinHelp, but although I tested this by temporarily renaming my own HHCTRL.OCX I haven't yet been able to test it on a real HTML-Help-free platform. Also in this checkin: a new .but file and docs makefile changes to make it convenient to build the sources for a .CHM. As yet, owing to limitations of Halibut's CHM support, I'm not able to write a .CHM directly, more's the pity. file: [cdff007bff] check-in: [e861af5aa9] user: simon branch: trunk, size: 42221
2005-08-10
13:31
Ben Rudiak-Gould points out that we should be using WM_APP as the base for our app-private window messages, which is considerably higher than the WM_XUSER we arbitrarily chose. (This isn't known to be causing any actual problems. The fix seems not to have obviously broken anything.) file: [f1292356d5] check-in: [8b2c50dec0] user: jacob branch: trunk, size: 42866
2005-05-21
09:16
Use {Get,Set}WindowLongPtr() instead of {Get,Set}WindowLong() for compatibility with 64-bit Windows. Untested on 64-bit, but it doesn't appear to have broken anything on 32-bit. file: [7c2187cdcf] check-in: [15d9ec22cf] user: jacob branch: trunk, size: 42868
2005-03-18
20:26
Try to make our PGP signing more useful: * All the PuTTY tools for Windows and Unix now contain the fingerprints of the Master Keys. The method for accessing them is crude but universal: a new "-pgpfp" command-line option. (Except Unix PuTTYgen, which takes "--pgpfp" just to be awkward.) * Move the key policy discussion from putty-website/keys.html to putty/doc/pgpkeys.but, and autogenerate the former from the latter. Also tweak the text somewhat and include the fingerprints of the Master Keys themselves. (I've merged the existing autogeneration scripts into a single new one; I've left the old scripts and keys.html around until such time as the webmonster reviews the changes and plumbs in the new script; he should remove the old files then.) file: [8ab6587faf] check-in: [d2a830c19a] user: jacob branch: trunk, size: 42828
2005-03-10
10:36
Consistently use a single notation to refer to SSH protocol versions, as discussed. Use Barrett and Silverman's convention of "SSH-1" for SSH protocol version 1 and "SSH-2" for protocol 2 ("SSH1"/"SSH2" refer to ssh.com implementations in this scheme). <http://www.snailbook.com/terms.html> file: [6cc644a628] check-in: [59a5e883d1] user: jacob branch: trunk, size: 42721
2005-03-02
09:53
More confusing "(BYTE *) & val" style punctuation. I blame GNU indent, although its confusion is understandable. file: [11c54c8730] check-in: [2674622249] user: jacob branch: trunk, size: 42713
2005-02-28
19:16
Add context help to a couple of message boxes. Unfortunately the ones I wanted to get to -- "software caused connection abort" and friends -- are going to be more involved (probably requiring some cross-platform notion of help contexts), and these ones hardly seem worth the effort. Still, I've done it now. Side-effect: Pageant now uses the same `hinst' and `hwnd' globals as everything else. Tested basic functionality. file: [a265f42e06] check-in: [ab8229cc93] user: jacob branch: trunk, size: 42714
18:00
Move the MessageBox-with-help function out into winutils.c, although it's still only used for the host key popups. Side-effects: - requested_help is a winstuff.h global - Pageant now defines winstuff.h globals (Also, my previous fix to my improved host-key dialogs only got the "changed" case, not the "unknown" case. Some days I shouldn't be let near a keyboard.) file: [90f95e8969] check-in: [97227aaee6] user: jacob branch: trunk, size: 42638
2005-02-27
20:51
Make things other than Pageant use request_file(), why not, although all of its funkiness is switched off so the behaviour is the same as before. file: [4fb266c391] check-in: [baaeb6bb81] user: jacob branch: trunk, size: 42666
17:01
Improvements to PuTTYgen error reporting: - will now display a reason when it fails to load a key - uses existing error return from native keys - import.c had a lot of error descriptions which weren't going anywhere; since the strings are probably taking up space in the binary, we may as well use them file: [265a36bc38] check-in: [c5c5fb953d] user: jacob branch: trunk, size: 42866
2005-02-15
19:47
Minor reorganisations to WinHelp support. (Done as part of a - failed - attempt to fix `winhelp-crash', but we may as well keep them.) file: [54aa7840bc] check-in: [10431bbf1a] user: jacob branch: trunk, size: 42749
2005-01-09
08:27
New function ltime() returns a struct tm of the current local time. Fixes crashes when time() returns (time_t)-1 on Windows by using the Win32 GetLocalTime() function. (The Unix implementation still just uses time() and localtime().) file: [c9a8787dde] check-in: [b5b804da44] user: owen branch: trunk, size: 42757
2004-11-27
13:56
Loose end from timing shakeup: sshrand.c is now a client of timing.c, and hence takes its own responsibility for calling noise_regular() at regular intervals. Again, this means it will be called consistently in _all_ the SSH-speaking tools, not just those in which I remembered to call it! file: [31555c85da] check-in: [4150c7ebb8] user: simon branch: trunk, size: 42792
2004-11-16
16:14
Renamed puttygen.c → windows/winpgen.c. Now that we have Subversion's file renaming ability, it's time at long last to move all the Windows-specific source files down into a `windows' subdirectory. Only platform-specific files remain at the top level. With any luck this will act as a hint to anyone still contemplating sending us a Windows-centric patch... file: [ceec8a8291] check-in: [a6928f6770] user: simon branch: trunk, size: 42793
2004-10-27
10:50
Malcolm Rowe's UI tweak patch for About/Licence: recognise `Esc' to close windows (PuTTY, Pageant, PuTTYgen); Licence window parent in PuTTY. file: [ceec8a8291] check-in: [267adc6657] user: jacob branch: trunk, size: 42793
2004-08-31
13:26
Ben Hutchings points out that the initial states of the key-type radio buttons and menu items are inconsistent. file: [78fbe4cb0b] check-in: [220e635f4d] user: simon branch: trunk, size: 42757
2004-04-27
07:31
Various tweaks to header comments to remind me which bits are meant to be platform-independent, etc. file: [93121c865d] check-in: [9bda77c20e] user: jacob branch: trunk, size: 42754
2004-02-13
01:42
Alexei Podtelezhnikov points out that PuTTYgen's key-type default ought to have moved in sync with PuTTY's SSH version default. file: [32ceac0267] check-in: [dfeb697d71] user: simon branch: trunk, size: 42744
2003-11-24
07:40
I think the time has come for PuTTYgen to mention "authorized_keys" instead of "authorized_keys2" by default. I believe this change was made in OpenSSH around June 2001, so any versions which it applies should have been replaced by now for other reasons. (The docs still adequately document the confusion surrounding this) file: [152bb9de0f] check-in: [71e1929ea0] user: jacob branch: trunk, size: 42741
2003-10-12
08:46
The WinSock library is now loaded at run-time, which means we can attempt to load WS2 and then fall back to WS1 if that fails. This should allow us to use WS2-specific functionality to find out the local system's list of IP addresses, thus fixing winnet-if2lo, while degrading gracefully back to the previous behaviour if that functionality is unavailable. (I haven't yet actually done this; I've just laid the groundwork.) This checkin _may_ cause instability; it seemed fine to me on initial testing, but it's a bit of an upheaval and I wouldn't like to make bets on it just yet. file: [15a86d713b] check-in: [6773da81d2] user: simon branch: trunk, size: 42742
2003-08-29
17:52
Work towards wish `keyfile-diagnostic'. Many sshpubk.c keyfile-loading functions have sprouted `**errorstr' arguments, which if non-NULL can return a textual error message. The interface additions are patchy and ad-hoc since this seemed to suit the style of the existing interfaces. I've since realised that most of this is masked by sanity-checking that gets done before these functions are called, but it will at least report MAC failures and the like (tested on Unix), which was the original point of the exercise. Note that not everyone who could be using this information is at the moment. file: [b5b6d0e674] check-in: [3623e79240] user: jacob branch: trunk, size: 42784
2003-05-24
13:02
Fixed accelerator clash between "Conversions" menu and "key comment" control (former is now "Con&versions"). Add shortcut to key fingerprint for ease of copy-and-paste. file: [51cc1c3e95] check-in: [0ef9f00904] user: jacob branch: trunk, size: 42772
2003-05-14
13:53
Rene Post's other patch: PuTTYgen was generating double file dialogs by mistake. file: [cdb6831b7b] check-in: [bea54a66b8] user: simon branch: trunk, size: 42771
2003-03-29
10:14
Introduced wrapper macros snew(), snewn() and sresize() for the malloc functions, which automatically cast to the same type they're allocating the size of. Should prevent any future errors involving mallocing the size of the wrong structure type, and will also make life easier if we ever need to turn the PuTTY core code from real C into C++-friendly C. I haven't touched the Mac frontend in this checkin because I couldn't compile or test it. file: [ce6804af38] check-in: [48c3c19745] user: simon branch: trunk, size: 42627
2003-03-22
03:22
Fixed the bug whereby PuTTYgen went into generation mode as soon as it started up. The problem was that I was accepting _any_ event on IDC_GENERATE to trigger this, not just the `clicked' event, and some uninteresting event like `initialise' must have occurred. Quite why this only showed up as a result of the config box revamp I can't imagine. file: [5cb6c1b133] check-in: [ebf4491f72] user: simon branch: trunk, size: 42600
2003-02-07
08:22
Set some parent windows on PuTTYgen and Pageant About/Licence dialog to improve window management behaviour. file: [98458fc092] check-in: [f39872d5a5] user: jacob branch: trunk, size: 42491
07:54
Give PuTTYgen an icon. file: [fc22a25228] check-in: [aa0351520d] user: jacob branch: trunk, size: 42491
2003-02-01
06:54
Created new data types `Filename' and `FontSpec', intended to be opaque to all platform-independent modules and only handled within per-platform code. `Filename' is there because the Mac has a magic way to store filenames (though currently this checkin doesn't support it!); `FontSpec' is there so that all the auxiliary stuff such as font height and charset and so on which is needed under Windows but not Unix can be kept where it belongs, and so that I can have a hope in hell of dealing with a font chooser in the forthcoming cross-platform config box code, and best of all it gets the horrid font height wart out of settings.c and into the Windows code where it should be. The Mac part of this checkin is a bunch of random guesses which will probably not quite compile, but which look roughly right to me. Sorry if I screwed it up, Ben :-) file: [ab51c583ae] check-in: [497dc397e7] user: simon branch: trunk, size: 42339
2003-01-29
10:39
Further cosmetic tweaks to file-selection boxes per observed conventions on Windows: - Change "AllFiles" to "All Files (*.*)" - Extensions in lower case file: [4f99e299f1] check-in: [e7864be8f8] user: jacob branch: trunk, size: 42218
2003-01-16
09:43
Steven Shockley points out that the .PPK extension is far from obvious to users. Update the file selection dialogs to mention it per the usual Windows convention, and also sprinkle references to it throughout the docs. I've also scattered hints that most tools need PuTTY's native format; perhaps this will reduce the frequency with which FAQ A.1.2 trips people up. file: [a3c4797c41] check-in: [8a5be4d472] user: jacob branch: trunk, size: 42206
2002-11-07
13:49
Robustness fixes for KEXINIT handling and others. In particular, I've created a self-mallocing variant of sprintf, to obviate any future need for paranoid %.100s type stuff in format strings. file: [74e717789b] check-in: [c58e86fe39] user: simon branch: trunk, size: 42190
2002-10-26
07:58
Yet more global-removal. The static variables in logging.c are now absent, and also (I think) all the frontend request functions (such as request_resize) take a context pointer, so that multiple windows can be handled sensibly. I wouldn't swear to this, but I _think_ that only leaves the Unicode stuff as the last stubborn holdout. file: [0943d65c73] check-in: [8fba443d8c] user: simon branch: trunk, size: 42270
2002-10-09
13:09
First phase of porting. pterm now compiles and runs under Linux+gtk. The current pty.c backend is temporarily a loopback device for terminal emulator testing, the display handling is only just enough to show that terminal.c is functioning, the keyboard handling is laughable, and most features are absent. Next step: bring output and input up to a plausibly working state, and put a real pty on the back to create a vaguely usable prototype. Oh, and a scrollbar would be nice too. In _theory_ the Windows builds should still work fine after this... file: [598e8be522] check-in: [2d8039929a] user: simon branch: trunk, size: 42404
2002-08-06
12:57
Pageant's command line handling now uses my new split_into_argv() function, because it's silly to have two (and because the old one was not the same as the new one, violating the Principle of Least Surprise). file: [72ef9bb812] check-in: [40423b941a] user: simon branch: trunk, size: 42069
12:48
PuTTYgen will now start by loading a private key file if one is provided on its command line. file: [61b75809c5] check-in: [c3af1e66ed] user: simon branch: trunk, size: 42063
12:35
Oops. That is to say, only loading and saving of PuTTY private keys should default to .PPK - loading and saving of public keys and of foreign key formats still defaults to All Files. Ahem. file: [cb9d112f94] check-in: [67bb09d557] user: simon branch: trunk, size: 41798
12:27
Now that we've decided on a file extension for private key files (.PPK), make it the default in all the private-key file dialogs. file: [a17ab744ec] check-in: [d49eafa9b5] user: simon branch: trunk, size: 41664
2002-05-18
04:20
UI changes for key imports. We now have a separate Load command and Import command; the former warns you if you load a foreign key, whereas the latter doesn't. So the user should always be aware, one way or the other, that a format conversion is taking place. file: [069e3c2f58] check-in: [2cf1ef8dbd] user: simon branch: trunk, size: 41604
2002-05-15
15:07
Final cleanups on key import/export work. Rationalised the UI (so that menu options are greyed out helpfully) and added documentation. file: [148a5cb64f] check-in: [08285efb5d] user: simon branch: trunk, size: 40655
14:16
Added export of ssh.com key files. file: [6ebc7ebb0d] check-in: [c1a44eb091] user: simon branch: trunk, size: 36743
2002-05-14
13:11
Implemented export of OpenSSH keys. file: [f86e1179b4] check-in: [d43d5163af] user: simon branch: trunk, size: 36756
2002-05-13
11:56
Add some basic framework code preparatory to adding key export. file: [b0e875a373] check-in: [43c3b91680] user: simon branch: trunk, size: 36873
2002-05-11
11:45
Added a framework for importing foreign key formats, and implemented importing of OpenSSH SSH2 private key files (both encrypted and unencrypted). Seems to work fine. file: [2dcc155bc5] check-in: [b7502058f0] user: simon branch: trunk, size: 35239
07:13
Improved error messages if you use the wrong key type: you should now be told that the key is the wrong type, _and_ what type it is, rather than being given a blanket `unable to read key file' message. file: [d9513050be] check-in: [9f93ab88b5] user: simon branch: trunk, size: 33238
2002-03-06
14:13
Ensure our network layer is properly cleaned up before PuTTY exits. Specifically, we explicitly closesocket() all open sockets, which appears to be necessary since otherwise Windows sends RST rather than FIN. I'm _sure_ that's a Windows bug, but there we go. file: [08787cab3f] check-in: [c483e38b9f] user: simon branch: trunk, size: 33080
2001-12-12
12:45
Updated the PuTTYgen section in pubkey.but so that it gives individual documentation of the various PuTTYgen controls; also implemented context help in PuTTYgen to go with it. Shame there isn't space for a generic `Help' button in the PuTTYgen window. file: [1304ee2a4e] check-in: [d1b6559149] user: simon branch: trunk, size: 33035
2001-11-25
08:31
INCOMPATIBLE CHANGE to the SSH2 private key file format. There is now a passphrase-keyed MAC covering _all_ important data in the file, including the public blob and the key comment. Should conclusively scupper any attacks based on nobbling the key file in an attempt to sucker the machine that decrypts it. MACing the comment field also protects against a key-substitution attack (if someone's worked out a way past our DSA protections and can extract the private key from a signature, swapping key files and substituting comments might just enable them to get the signature they need to do this. Paranoid, but might as well). file: [04fbfbe1f8] check-in: [33213fd301] user: simon branch: trunk, size: 30186
2001-11-12
03:19
Remember to initialise p->nphases to zero in progress report structure. file: [ddea60a050] check-in: [e36e8a43a6] user: simon branch: trunk, size: 29553
2001-10-30
16:12
Shrink the PuTTYgen window for 640x480 friendliness (thanks Jacob) file: [9ddc983b19] check-in: [c4565ece48] user: simon branch: trunk, size: 29444
2001-10-28
09:32
Fix trivial UI buglets related to DSA key support. file: [27ecfacc65] check-in: [b361225304] user: jacob branch: trunk, size: 29447
2001-09-22
15:52
Add support for DSA authentication in SSH2, following clever ideas on how to get round the problem of generating a good k. file: [35909924dc] check-in: [49dcc2ded6] user: simon branch: trunk, size: 29288
2001-09-09
05:35
Oops - changing the prototype of statictext() affected puttygen.c too file: [0062ecb15a] check-in: [186b2d152e] user: simon branch: trunk, size: 28478
2001-08-27
12:40
PuTTYgen: add an extra button to save a public key into a file (as well as showing it for cut and paste). For SSH1, this feature is largely cosmetic and added for orthogonality; it comes into its own in SSH2, where it saves the Official One True Public Key Format as specified in the draft spec, and more particularly as used by ssh.com's product for authentication. Now that ssh-3.0.1 supports RSA user keys, this is suddenly actually useful. file: [c2ef6ff329] check-in: [3ec80d2102] user: simon branch: trunk, size: 28472
2001-05-13
09:02
Placate gcc's `-Wall' warnings. file: [8f2c4eab7d] check-in: [e91a557356] user: simon branch: trunk, size: 25190
2001-05-06
09:35
Run entire source base through GNU indent to tidy up the varying coding styles of the various contributors! Woohoo! file: [1c286a1b4d] check-in: [18fcbbf5a2] user: simon branch: trunk, size: 24996
2001-04-28
06:41
Jacob's patch to make passphrase boxes work more sanely file: [e5412c5ca2] check-in: [a1e1b76501] user: simon branch: trunk, size: 29843
2001-04-16
06:16
Pageant interface changes. You can now do `pageant -c command' to spawn another command after starting Pageant. Also, if Pageant is already running, `pageant keyfile' and `pageant -c command' will do the Right Thing, that is, add the key to the _first_ Pageant and/or run a command and then exit. The only time you now get the `Pageant is already running' error is if you try to start the second copy with no arguments. NB the affected files in this checkin are rather wide-ranging because I renamed the not really SSH1-specific `ssh1_bignum_bitcount' function to just `bignum_bitcount'. file: [4936d13b60] check-in: [64fef963cc] user: simon branch: trunk, size: 29773
2001-03-15
06:14
Fix a trivial compiler warning file: [60d103ea60] check-in: [5dad092a2a] user: simon branch: trunk, size: 29778
2001-03-10
04:22
Update the text format of the public key as the comment box is edited file: [6f3e21fb45] check-in: [e67e208029] user: simon branch: trunk, size: 29786
2001-03-03
06:05
Oops - fix silly segfault in new puttygen file: [03828dac5d] check-in: [ffa475b6e8] user: simon branch: trunk, size: 29665
05:54
Preliminary support for RSA user authentication in SSH2! Most of the error messages are currently wrong, and Pageant doesn't yet support the new key type, and I haven't thoroughly tested that falling back to password authentication and trying invalid keys etc all work. But what I have here has successfully performed a public key authentication, so it's working to at least some extent. file: [33b168c7e5] check-in: [0761a1ad90] user: simon branch: trunk, size: 29580
2001-01-22
11:25
Update puttygen GUI code to use Jeremy Sawicki's better group boxes file: [02afa70885] check-in: [691481e5fc] user: simon branch: trunk, size: 25791
2000-12-12
04:33
Make memory management uniform: _everything_ now goes through the smalloc() macros and thence to the safemalloc() functions in misc.c. This should allow me to plug in a debugging allocator and track memory leaks and segfaults and things. file: [1d7d0a20a6] check-in: [6f56ef599a] user: simon branch: trunk, size: 25889
2000-10-25
09:29
Impose a lower limit of 256 on key lengths. This is mostly because the primegen() function doesn't work well with <100 bits, so RSA keys need to be >=200 to be generated correctly, and I thought 256 was a nice round number beyond that just to be sure. Perhaps I should also have a security warning on any key less than 768; or perhaps I should let people shoot themselves in the feet if they really want to. file: [be94448ee1] check-in: [562fe0c8c5] user: simon branch: trunk, size: 25873
05:25
Be more sure that state->collecting_entropy can't be spuriously set file: [7f97f9c750] check-in: [dadec84bc8] user: simon branch: trunk, size: 25174
2000-10-24
05:47
Fix miscellaneous compiler warnings. Thanks to Jacob Nevins file: [eebfaa72ab] check-in: [8952007fd8] user: simon branch: trunk, size: 25014
2000-10-23
06:57
Remove the NO_SECURITY define I accidentally copied from Pageant file: [d6e972c410] check-in: [8c4be9beb8] user: simon branch: trunk, size: 24994
2000-10-20
05:47
A couple of UI tweaks in puttygen file: [5838dda2e3] check-in: [15e8f8e0d3] user: simon branch: trunk, size: 25041
05:44
Removed TODO comment after verifying that generated keys work file: [489e1f5455] check-in: [6d0f485169] user: simon branch: trunk, size: 25040
05:42
Entropy fix after better statistical analysis file: [59c3495e1c] check-in: [997ad13ebf] user: simon branch: trunk, size: 25119
05:07
Variable key size in PuTTYgen. Also required adding WM_VSCROLL to the window style in bigeditctrl() in winctrls.c. file: [ecaa2f229c] check-in: [16f42d028f] user: simon branch: trunk, size: 24941
04:43
Check whether key was actually saved, and warn if not file: [969a73c8d9] check-in: [c266d0396c] user: simon branch: trunk, size: 24339
04:41
Save Key now prompts before overwriting an existing file file: [05f8f4e581] check-in: [a677373c49] user: simon branch: trunk, size: 24319
04:31
Add a second passphrase prompt to protect against typos file: [ec1f4b909f] check-in: [f2cff3718f] user: simon branch: trunk, size: 24099
04:24
We must InitCommonControls() or the progress bar doesn't work on 95 file: [529e05924e] check-in: [738a36faa4] user: simon branch: trunk, size: 23314
2000-10-19
10:43
Added: PuTTYgen initial version. Still to do are basic user-friendliness features (prompt for passphrase twice, prompt before overwriting a file, check the key file was actually saved OK), testing of the generated keys to make sure I got the file format right, and support for a variable key size. I think what's already here is basically sound though. file: [0a09fdfdad] check-in: [6ca7ca4b41] user: simon branch: trunk, size: 23288