ckwin
                                
                                 ckwin copied to clipboard
                                
                                    ckwin copied to clipboard
                            
                            
                            
                        Refactor the whole SSH subsystem into a DLL
Move the whole SSH subsystem (all of it) into a DLL. This would allow the current libssh-based implementation to be swapped out with another without requiring any changes to the rest of CKW (or even a recompile).
This would involve:
- [ ] Elimination of all SSH-related global variables (all of them)
- [ ] Elimination of some of the static command tables (eg the options for set ssh v2 hostkey-algorithmsneeds to come from the ssh subsystem rather than being hard-coded in CKW)
- [ ] ckoshs, ckossh and ckorbf move into a DLL
- [ ] Availability of SSH commands should now depend on the presence of the SSH subsystem DLL
Once this is done we can investigate the possibility of building an alternative SSH subsystem based on code from PuTTY to provide SSH support on older windows systems
An additional reason to do this: Enabling GSSAPI support in libssh means requiring MIT Kerberos for Windows to be installed - CKW won't start without it. CKW now ships with two versions of ssh.dll with the user having to swap them around if they want GSSAPI support.
We could do a LoadLibrary for ssh-gssapi.dll and if that fails try ssh.dll but its going to be a lot easier to GetProcAddress the limited API the SSH subsystem exposes than do it for libssh.