Note: You can propose changes using the forum below.
Putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/) is perhaps the most popular ssh client for windows. It supports X11 forwarding and there is a unix port of it as well. Bitvise WinSSHD is a closed source ssh server for windows. In addition to implementing the xterm protocol, allowing most SSH clients to connect to it, it also implements the bvterm protocol available at http://www.bitvise.com/specifications. The purpose of this project is to implement the bvterm protocol in the putty client in a way that Simon Tatham finds acceptable for inclusion in putty proper.
The implementation must work with the windows and unix build of PuTTY. The Bitvise spec delegates a lot of details to the Windows specification (e.g. the precise set of supported key values and scan codes), so the obvious easy option would be to write the Windows code so that it just translates mechanically between values passed through the Windows API and values passed through the SSH protocol. This will not be acceptable, however; a full solution will have to work on Unix as well as Windows, so the Unix and Windows front ends will each have to translate their local key codes into a cross-platform representation which will then be translated back into the Bitvise protocol.
I place the additional requirement that the implementation must result in me being able to do the following from a WinSSHD session through putty:
1. Be able to make complete use of Far Manager (http://farmanager.com/). This is defined as all function keys operational, and resizing operational. I will make specific exclusion of the Alt+F9 video mode.
2. Be able to make complete use of vim, and not have to hit the escape key twice to register the escape key being hit.