Updated ...md (markdown)

manojampalam 2016-02-24 14:14:27 -08:00
parent 1da3573827
commit 1bdd3bf665

@ -51,9 +51,21 @@ Brief design details of POSIX wrapper
| write | WriteFileEx | |
| fdopen | TBD | |
| fstat | TBD | |
| dup, dup2 | SetStdHandle | only supported on standard IO file descriptors |
| dup, dup2 | SetStdHandle | only supported on standard IO file descriptors (used for IO redirection) |
| socketpair | CreateNamedPipe | A bi directional named pipe with an internal name is created, CreateFile called to connect from other end. This does not support AF_UNIX ancilliary messages. More details later |
A fully functional prototype (for socket, file and pipe IO) of this wrapper is available [here](https://github.com/PowerShell/Win32-OpenSSH/tree/L2-Win32Posix-Prototype/contrib/win32/w32-posix-prototype/win32posix.)
#### AF_UNIX domain sockets
Unix domain sockets are used for IPC communication between processes on the same host. Apart from providing stream/datagram modes, they also support a secure way to transmit ancillary data (like file descriptors). The only place ancillary data is used in OpenSSH is in "ProxyUseFDPass" feature where a proxy command is issued by ssh client to create a connected socket, and its FD is transmitted back over IPC. This feature will be disabled on Windows. The rest of the places AF_UNIX sockets are used:
+ ControlMaster - used to multiplex multiple sessions over a single SSH connection. A secure Windows pipe can be used for this purpose.
+ SSHAgent - used to managed store keys and crypto validation based on those. Current plan is to replace its client side usage with Windows Credential manager. Server side plan is TBD.
+ Local Socket Forwarding - This is forwarding traffic to AF_UNIX sockets and this feature is not applicable in Windows
+ SSHD rexec - TBD
+ SSHD from inetd - TBD