68 Commits

Author SHA1 Message Date
manojampalam
8dd7423e13 committing un-revertable diff 2016-03-15 20:33:07 -07:00
manojampalam
b1fb747716 PS Script to analyze fork Vs original code diffs
Intention is to see the % of original code being reused for Win32 port. Here are the number as of 2-26-2016 for various libs
libssh     89.09911361805 %
scp     85.2348993288591 %
sftp     93.3269323091695 %
sftp-server     76.2975778546713 %
ssh     90.1238422312415 %
ssh-add     99.6138996138996 %
ssh-agent     85.7938718662953 %
sshd     84.0249187432286 %
2016-02-26 19:40:40 -08:00
Manoj Ampalam
88f4c54f66 OpenSSL build script from David 2016-02-09 11:41:26 -08:00
dkulwin
384cd18b56 Add abstraction interface for elliptic points and elliptic diffie hellman 2016-02-01 11:27:52 -06:00
quamrulmina
829f799ad9 Add pluggable access to shell session so that cmd & powershell runs like natively
#define WIN32_PRAGMA_REMCON in config.h.vs or in channels.c, session.c
and sshpty.c files . cmdserver.exe runtime in Pragma Fortress SSH
package needed to access shell session.
2016-02-01 04:10:36 -06:00
quamrulmina
802d9a3349 Fix #71; Env vars like APPDATA, LOCALAPPDATA etc in sshd are set correctly now.
APPDATA, LOCALAPPDATA, HOMEDRIVE, HOMEPATH set correctly in sshd server
2016-01-27 18:20:11 -06:00
dkulwin
44d8ddddb1 Implement generic interface for bignum and diffie-hellman
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..
2016-01-16 16:10:16 -06:00
quamrulmina
fe136bc352 Code fixed for ssh-agent.exe and ssh-add.exe to work in Windows
ssh-agent.exe and ssh-add.exe code updated and fixed to work in Windows.
For convenience of users, ssh-agent.exe starts a cmd shell with the
"SSH_AUTH_SOCK" and "SSH_AGENT_PID" environment variables set.
ssh-add.exe can be run immediately from the cmd shell. 'ssh-add -L" and
"ssh-add id_rsa"  and "ssh-add -d id_rsa" are 3 useful commands to list,
add and delete keys from ssh-agent cache.
2016-01-16 00:05:33 -06:00
dkulwin
02e784565a Add CNG KEX support routine
CNG KEX support for Group1, Group14 and Group Exchange .
2016-01-08 13:40:55 -06:00
dkulwin
67c7a3c003 Add os compatibility to manifests
Microsoft version apis distinguish operating systems beyond window 8 if
there isn't a manifest entry for os compatibility.
2016-01-08 13:35:55 -06:00
quamrulmina
d77657997c scp dependency libraries added for scp to build correctly
openbsd_compat.lib libssh  config win32compat dependencies added
2016-01-04 17:24:41 -06:00
dkulwin
702daceea7 Minor changes to assertion handling
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.
2015-12-08 12:47:35 -06:00
quamrulmina
68677bb603 scp client and server ported to work in Windows
Lot of code had to be redone as scp.exe contains both the scp client and
scp server in the same binary working in Windows needs various file
system access related changes. sshd_config file needs to add "scp"
subsystem path like we do for sftp server.
2015-12-07 00:31:07 -06:00
dkulwin
298c353755 Add SCP project to solution 2015-12-04 13:23:46 -06:00
quamrulmina
66426d7369 Fix #21 -- ssh client cannot issue commands to Tectia sshd server
Will work with Tectia server 6.3.6 and all Tectia ssh servers. Tested
with latest Tectia ssh server 6.4.12
2015-11-20 18:13:32 -06:00
dkulwin
5752a7e550 Remove EditAndContinue selection for debug configurations.
Replaced by standard /Zi database option
2015-11-19 15:29:17 -06:00
dkulwin
138ce33669 fix exception caused by *dword used in *size_t call parameter
The code was writing a size_t size of data to a dword.
2015-11-16 17:53:16 -06:00
dkulwin
937f2e02cc ssh-lsa project changes
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).
2015-11-13 22:01:06 -06:00
dkulwin
b45867b93c LSA visual studio work
Add exports via pragma statements and reduce included libraires
2015-11-13 11:58:51 -06:00
dkulwin
1067adc0f2 Lsa project added to visual studio solution
Lsa project added to visual studio solution
2015-11-11 15:03:49 -06:00
dkulwin
dd2bf90066 Support for Visual studio
The changes necessary to support visual studio fall into 2 basic groups.
1) reordering of header files, and 2) changes to support syntax
differences between mingw and visual studio and 3).  All changes are
conditional upon the definition of the macro __VS_BUILD__ .
2015-11-11 15:03:03 -06:00
quamrulmina
faf153b7cf msbuild cmd script to build all openssh win32 binaries using VS2015 solution
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
2015-11-09 18:39:32 -06:00
Manoj Ampalam
d7986de876 Enabling CNG back after merging L1 to master. 2015-11-09 00:04:37 -08:00
Manoj Ampalam
7f97b8188a Disable CNG for MingW builid 2015-11-08 23:49:18 -08:00
dkulwin
891836d333 Remove ssh-keygen from ssh-keysign project
ssh-keygen isn't needed by ssh-keysign and ssh-keygen.c and
ssh-keysign.c both have main.
2015-11-06 18:24:53 -06:00
dkulwin
c051e06f50 Add utility to automatically copy the config.h.vs file to config.h
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..
2015-11-06 13:07:51 -06:00
dkulwin
3a660dc4c7 Tweak kerberos function specs to match prototypes 2015-11-06 12:03:51 -06:00
dkulwin
df8c2c2b02 Change include paths to use matching plaform/config
The include paths for openssl should match the platform/config of the
project.
2015-11-06 12:03:50 -06:00
quamrulmina
4d952924e1 sftp client and server code changed to build & work with MS Visual Studio
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.
2015-11-06 03:02:51 -06:00
dkulwin
65fb8f4c38 Fix kerberos prototypes for Visual studio
Visual studio wants call convention specification within the parenthesis
when declaring function variables.
2015-11-05 15:39:18 -06:00
dkulwin
2367dca1e9 Disable invalid parameter handler use under mingw
Mingw doesn't support the invalid parameter handler function in the same
way as visual studio.  Shouldn't be needed under mingw anyway.
2015-11-05 15:01:12 -06:00
manojampalam
9fa44f0777 Merge pull request #22 from noshbar/L1
Fix potential memory leak in win32/console.c
2015-11-05 12:26:22 -08:00
dkulwin
44510dc67e Back out kerberos prototype changes
Looks like the changes work for visual studio, but broke mingw.
2015-11-05 14:03:33 -06:00
dkulwin
99a38147f7 Updated Readme
Updated with new paths
2015-11-05 13:16:02 -06:00
dkulwin
095ae850aa path updates for visual studio solution
Added specific paths for different configurations of OpenSSL instead of
assuming a tree with all four.
2015-11-05 13:03:03 -06:00
dkulwin
7bd7008792 Add Visual Studio 2015 solution and projects
Add the solution, projects and filter files for building Win32-OpenSSH
binaries under visual studio 2015.
2015-11-04 19:34:21 -06:00
dkulwin
3bbefb6078 Add #ifdefs around #defines
In order to avoid redefinition warnings, check before we define.
2015-11-04 19:34:19 -06:00
dkulwin
5fd03ec459 Add some missing headers and defines to support visual studio
Visual studio compatibility changes.
2015-11-04 19:34:18 -06:00
dkulwin
11561cd62a add an invalid parameter handler to catch _get_osfhandle failures under visual studio
The sfds code blindly uses _get_osfhandle on values that may be file
descriptors, sockets or io handles.  Under visual studio, _get_osfhandle
will call the invalid parameter handler for items that are not file
descriptors.  Adding the handler allows us to call this in the same way
that mingw does.  We will still get an assertion, but a prior change
sends those to stdiout instead of making the user click through a
dialog.
2015-11-04 19:34:17 -06:00
dkulwin
2454a18404 whitespace after \ causes visual studio to not parse as a line continuation
Make the file work better in visual studio
2015-11-04 19:34:16 -06:00
dkulwin
39706fca9c Add code to stop asserts from tossing up dialogs
Assert dialogs can be a problem when running as a service.  This change
instructs assert info to be sent to stdout instead of a dialog.
2015-11-04 19:34:15 -06:00
dkulwin
25e52cb498 Add prototypes for functions returning pointers and modify how some arrays are defined
Functions not declared before use, are define as returning an int.
Under 64-bit this can result in corrupted pointers being returned.

Also, Visual studio doesn't like it when you use variables to declare
array sizes, static values always work though.
2015-11-04 19:34:15 -06:00
dkulwin
ddace27b97 VC2015 doesn't like it when you take a negative of on unsigned value
Negative of an unsigned value should just be the two's complement.  Add
code to change code with negative unsigned values to two's compliment
values if compiling under visual studio.
2015-11-04 19:34:12 -06:00
dkulwin
3ab9c8f055 fix bug in cng cipher keyobject processing
KeyObject for cipher symmetric key was being allocated improperly due to
an error in getting the key object size.  Also added code to free
keyobject in the event of a key creation failure.
2015-10-31 12:06:18 -05:00
dkulwin
bc6871e862 Add CNG manual memory management code to support Vista
Windows 7 improved the memory management in CNG.  To support Vista we
need to manage memory for cryptographic objects ourselves.  This change
adds a key object memory pointer to the cipher context and adds code to
allocate and free it along with the key handle.
2015-10-29 15:46:37 -05:00
dkulwin
728c299d67 Fix CNG hash GetProperty bug
ssh_digest_start was using a pointer to the algorithm handle instead of
the algorithm handle itself in the BCryptGetProperty call.  It was also
querying for the hash length when it should have been querying for the
hash object length.
2015-10-29 15:07:09 -05:00
dkulwin
c4fb7d76ee Manually manage bcrypt hash memory in order to support Vista
The CNG routines added improved memory management in windows 7.  In
order to support Vista, we need to manually manage the scratch memory
used by cng.
2015-10-29 13:08:22 -05:00
quamrulmina
3c6c8c3ca5 Fix ssh/sshd failing in Windows 7 due to a flag use in cng_digest
Avoid using BCRYPT_HASH_REUSABLE_FLAG in cng_digest.c file which was
introduced in Windows 8 and not supported in previous OS like Windows 7.
2015-10-28 15:37:02 -05:00
quamrulmina
e743b54a61 Fix ssh client to generate LF or CRLF correctly
Typically LF is sent when Return key is hit.  But for sshd servers that
sent us via ANSI escape sequence that CRLF is to be sent, ssh.exe client
will do so which is used commonly used by sshd servers in Windows - like
our own win32 port sshd.
2015-10-28 00:31:24 -05:00
quamrulmina
d4c8ef9ac5 Improved SSH client interactive mode and fixed control-c to work
Console API is now used for interactive tty mode. Thus ssh.exe client
can now pass each character to remote side as one types so that programs
like more works correctly. Control-c now will stop the remote program
instead of exiting the ssh.exe.
2015-10-27 19:05:38 -05:00