Implementation of a generic wrap interface for bignum and diffie-hellman
based upon Damien's wrap code in openssh-openbsd. This commit adds the
generic interface along with the backing code for openssl, cng, and cng
with an openssl fallback. Currently, openssl is the only provider for
bignum and the diffie-hellman generic interface is only for static and
negotiated oakley groups..
Changed the code to bring back assertion popups for everyone, but turn
off assertions around the _get_osfhandle() call in allocate_sfd(). The
original port code was designed knowing that some of the passed
parameters would be invalid, but was expecting that the call would just
fail instead of generating an assert dialog. Turning off Asserts around
this call results in behavior similar to mingw.
Also, turn off Incremental Linking for ssh.exe since half the time, the
linker would trap on this project.
Using a module definition file gives better support to handle symbol
decorations. This change adds ssh-lsa.def to define the functions
exported from ssh-lsa.dll.
Misc. changes to ssh-lsa project (warning level, sdl check, calling
convention).
Builds all x64 64bit and x86 32 bit openssh binaries Release and Debug
versions from the single Win32-OpenSSH.sln file.
1. Open a MSbuild cmd prompt for Visual Studio 2015
2. cd Win32-OpenSSH\contrib\win32\openssh directory.
3. openssh_build_cmd
Add a utility upon which every other project is dependent, to copy the
config.h.vs file to the source root config.h. Because the target may
have changed outside of visual studio, I have disabled the dependency
check so the file will be copied with every build..
Use new compile flag WIN32_VS to add/change logic of sftp client and
sftp server codes so that MS Visual Studio 2015 compiler and runtime can
be used. opendir(), readdir(), closedir() directory APIs and basename()
API of Unix/Linux are implemented in Windows as they are not available
in Windows/VisualStudio C-runtime. win32_dirent.c and win32_dirent.h
files added as dirent.c and dirent.h are not available in Windows and we
do not want to affect mingW/gcc builds for Windows which have those
files available.