UNIX Client-Server Program Interface
C Groff Shell Makefile Ruby
Permalink
Failed to load latest commit information.
downstream increase version Jan 15, 2015
.gitignore Ignore more build products. Dec 8, 2015
.travis.yml Create .travis.yml Jan 11, 2016
GNUmakefile Makefile: sslc on GNU/Linux, tlsc on MacOSX Jan 13, 2015
Makefile add a manpage for the httppc tool Sep 21, 2016
README.md readme: add current build and test status Jan 12, 2016
ca.cf test: add missing ca config file Jan 2, 2016
client.cf tlss tlsc: add client certificate support Nov 5, 2015
config.mk minor improvements Aug 6, 2016
findport.c test: replace random ports by freeports Sep 21, 2016
http httpc: wip error debugging Jan 14, 2015
http_parser.c minor improvements Aug 6, 2016
http_parser.h minor improvements Aug 6, 2016
httpc.c httpc: remove duplicated include of libgen.h Sep 19, 2016
httppc.1 add a manpage for the httppc tool Sep 21, 2016
httppc.c minor improvment Jun 8, 2016
read0.sh fix shell stuff Jan 11, 2016
read6.sh fix shell stuff Jan 11, 2016
server.cf tlss tlsc: add client certificate support Nov 5, 2015
sockc.1 man: fix some mandoc -T lint warnings Sep 21, 2016
sockc.c sockc: simplify source code Jun 8, 2016
socks.1 socks.1: typo Jan 15, 2015
socks.c socks: wip Sep 18, 2015
sslc.c use fd 6 to read and fd 7 to write Jan 31, 2015
tap-functions tests: add test backend: test anything protocol Mar 31, 2015
tcpc.c test: remove race conditions of port selection and listen state Sep 21, 2016
tcps.c test: remove race conditions of port selection and listen state Sep 21, 2016
test.sh test: remove race conditions of port selection and listen state Sep 21, 2016
tests.mk test: remove findport dependency Sep 21, 2016
tlsc.1 tlss: add a manpage for tlss and add tlss to the installtion process Apr 28, 2016
tlsc.c tlsc: add missing header Sep 21, 2016
tlss.1 man: fix some mandoc -T lint warnings Sep 21, 2016
tlss.c tlss: add missing sys/select.h Sep 19, 2016
ucspi-tee.c search path for executables Dec 9, 2015
write.sh fix shell stuff Jan 11, 2016

README.md

Build Status

ucspi-tools

The UNIX Client/Server Program Interface Tool Suite is bunch of tools to handle UCSPI connections.

sockc

sockc is an ucpi SOCKS client. It handles the socks protocol transparently and establishes further connection through the corresponding SOCKS server. sockc supports SOCKS version 5.

tlsc

tlsc establishes an TLS connection and builds an crypto interface between the network side and program side of the exec-chain. It depends on libtls from LibreSSL.

tlss

tlss accepts server side tls connections. It also uses libtls for encryption.

sslc

sslc is a legacy version of tlsc which just depends on plain old OpenSSL. It just contains rudiment certificate checks.

httpc

The http client is just a stub for testing. It needs to be rewritten for productive use.

examples

Just open a tcp connection to google.de and make a fetch of the start page.

tcpclient www.google.de 80 http www.google.de

Get the google index page over a local socks proxy:

tcpclient 127.0.0.1 8080 socks www.google.de 80 ./http.sh www.google.de

If you have to use a socks proxy you could always use socks with the following alias:

alias tcpclient="tcpclient 127.0.0.1 8080 socks"
tcpclient www.google.de 80

TODO:

  • missing, but useful tools
    • http proxy client
    • smtp client
    • socks server
  • sockc
    • user authentication
    • server mode
    • udp
  • tlsc
    • Fingerprint accept
    • Revocation check
    • OCSP
  • httpc
    • user authentication
    • support for different content encodings
    • keep-alive with queue of paths to download

references