add 'nc' to the distribution as an example of libtls client and server

This commit is contained in:
Brent Cook 2015-09-12 07:48:06 -05:00
parent 34bfb6ecb5
commit 854f4f69af
17 changed files with 227 additions and 200 deletions

17
.gitignore vendored
View File

@ -107,14 +107,15 @@ include/pqueue.h
include/tls.h include/tls.h
include/openssl/*.h include/openssl/*.h
!/apps/apps_win.c /apps/nc/*.h
!/apps/poll_win.c /apps/nc/*.c
!/apps/certhash_disabled.c /apps/nc/nc*
/apps/*.h /apps/openssl/*.h
/apps/*.c /apps/openssl/*.c
/apps/*.cnf /apps/openssl/*.cnf
/apps/*.pem /apps/openssl/*.pem
/apps/openssl /apps/openssl/openssl
/apps/openssl/compat/strtonum.c
!/crypto/Makefile.am.* !/crypto/Makefile.am.*
!/crypto/compat/arc4random.h !/crypto/compat/arc4random.h

View File

@ -29,7 +29,7 @@ history is also available from Git.
LibreSSL Portable Release Notes: LibreSSL Portable Release Notes:
2.3.0 - SSLv3 removed, libtls API changes, portability improvements 2.3.0 - SSLv3 removed, libtls API changes, portability improvements
e
* SSLv3 is now permanently removed from the tree. * SSLv3 is now permanently removed from the tree.
* The libtls API is changed from the 2.2.x series. * The libtls API is changed from the 2.2.x series.

View File

@ -6,72 +6,72 @@ include_directories(
set( set(
OPENSSL_SRC OPENSSL_SRC
apps.c openssl/apps.c
asn1pars.c openssl/asn1pars.c
ca.c openssl/ca.c
ciphers.c openssl/ciphers.c
cms.c openssl/cms.c
crl.c openssl/crl.c
crl2p7.c openssl/crl2p7.c
dgst.c openssl/dgst.c
dh.c openssl/dh.c
dhparam.c openssl/dhparam.c
dsa.c openssl/dsa.c
dsaparam.c openssl/dsaparam.c
ec.c openssl/ec.c
ecparam.c openssl/ecparam.c
enc.c openssl/enc.c
errstr.c openssl/errstr.c
gendh.c openssl/gendh.c
gendsa.c openssl/gendsa.c
genpkey.c openssl/genpkey.c
genrsa.c openssl/genrsa.c
nseq.c openssl/nseq.c
ocsp.c openssl/ocsp.c
openssl.c openssl/openssl.c
passwd.c openssl/passwd.c
pkcs12.c openssl/pkcs12.c
pkcs7.c openssl/pkcs7.c
pkcs8.c openssl/pkcs8.c
pkey.c openssl/pkey.c
pkeyparam.c openssl/pkeyparam.c
pkeyutl.c openssl/pkeyutl.c
prime.c openssl/prime.c
rand.c openssl/rand.c
req.c openssl/req.c
rsa.c openssl/rsa.c
rsautl.c openssl/rsautl.c
s_cb.c openssl/s_cb.c
s_client.c openssl/s_client.c
s_server.c openssl/s_server.c
s_socket.c openssl/s_socket.c
s_time.c openssl/s_time.c
sess_id.c openssl/sess_id.c
smime.c openssl/smime.c
speed.c openssl/speed.c
spkac.c openssl/spkac.c
ts.c openssl/ts.c
verify.c openssl/verify.c
version.c openssl/version.c
x509.c openssl/x509.c
) )
if(CMAKE_HOST_UNIX) if(CMAKE_HOST_UNIX)
set(OPENSSL_SRC ${OPENSSL_SRC} apps_posix.c) set(OPENSSL_SRC ${OPENSSL_SRC} openssl/apps_posix.c)
set(OPENSSL_SRC ${OPENSSL_SRC} certhash.c) set(OPENSSL_SRC ${OPENSSL_SRC} openssl/certhash.c)
endif() endif()
if(CMAKE_HOST_WIN32) if(CMAKE_HOST_WIN32)
set(OPENSSL_SRC ${OPENSSL_SRC} apps_win.c) set(OPENSSL_SRC ${OPENSSL_SRC} openssl/compat/apps_win.c)
set(OPENSSL_SRC ${OPENSSL_SRC} certhash_disabled.c) set(OPENSSL_SRC ${OPENSSL_SRC} openssl/compat/hash_win.c)
set(OPENSSL_SRC ${OPENSSL_SRC} poll_win.c) set(OPENSSL_SRC ${OPENSSL_SRC} openssl/compat/poll_win.c)
endif() endif()
check_function_exists(strtonum HAVE_STRTONUM) check_function_exists(strtonum HAVE_STRTONUM)
if(HAVE_STRTONUM) if(HAVE_STRTONUM)
add_definitions(-DHAVE_STRTONUM) add_definitions(-DHAVE_STRTONUM)
else() else()
set(OPENSSL_SRC ${OPENSSL_SRC} strtonum.c) set(OPENSSL_SRC ${OPENSSL_SRC} openssl/compat/strtonum.c)
endif() endif()
add_executable(openssl ${OPENSSL_SRC}) add_executable(openssl ${OPENSSL_SRC})

View File

@ -1,117 +1,5 @@
include $(top_srcdir)/Makefile.am.common include $(top_srcdir)/Makefile.am.common
bin_PROGRAMS = openssl SUBDIRS = openssl nc
openssl_LDADD = $(PLATFORM_LDADD) $(PROG_LDADD) EXTRA_DIST = CMakeLists.txt
openssl_LDADD += $(top_builddir)/ssl/libssl.la
openssl_LDADD += $(top_builddir)/crypto/libcrypto.la
openssl_SOURCES = apps.c
openssl_SOURCES += asn1pars.c
openssl_SOURCES += ca.c
openssl_SOURCES += ciphers.c
openssl_SOURCES += cms.c
openssl_SOURCES += crl.c
openssl_SOURCES += crl2p7.c
openssl_SOURCES += dgst.c
openssl_SOURCES += dh.c
openssl_SOURCES += dhparam.c
openssl_SOURCES += dsa.c
openssl_SOURCES += dsaparam.c
openssl_SOURCES += ec.c
openssl_SOURCES += ecparam.c
openssl_SOURCES += enc.c
openssl_SOURCES += errstr.c
openssl_SOURCES += gendh.c
openssl_SOURCES += gendsa.c
openssl_SOURCES += genpkey.c
openssl_SOURCES += genrsa.c
openssl_SOURCES += nseq.c
openssl_SOURCES += ocsp.c
openssl_SOURCES += openssl.c
openssl_SOURCES += passwd.c
openssl_SOURCES += pkcs12.c
openssl_SOURCES += pkcs7.c
openssl_SOURCES += pkcs8.c
openssl_SOURCES += pkey.c
openssl_SOURCES += pkeyparam.c
openssl_SOURCES += pkeyutl.c
openssl_SOURCES += prime.c
openssl_SOURCES += rand.c
openssl_SOURCES += req.c
openssl_SOURCES += rsa.c
openssl_SOURCES += rsautl.c
openssl_SOURCES += s_cb.c
openssl_SOURCES += s_client.c
openssl_SOURCES += s_server.c
openssl_SOURCES += s_socket.c
openssl_SOURCES += s_time.c
openssl_SOURCES += sess_id.c
openssl_SOURCES += smime.c
openssl_SOURCES += speed.c
openssl_SOURCES += spkac.c
openssl_SOURCES += ts.c
openssl_SOURCES += verify.c
openssl_SOURCES += version.c
openssl_SOURCES += x509.c
if BUILD_CERTHASH
openssl_SOURCES += certhash.c
else
openssl_SOURCES += certhash_disabled.c
endif
if HOST_WIN
openssl_SOURCES += apps_win.c
else
openssl_SOURCES += apps_posix.c
endif
if !HAVE_POLL
if HOST_WIN
openssl_SOURCES += poll_win.c
endif
endif
if !HAVE_STRTONUM
openssl_SOURCES += strtonum.c
endif
noinst_HEADERS = apps.h
noinst_HEADERS += progs.h
noinst_HEADERS += s_apps.h
noinst_HEADERS += testdsa.h
noinst_HEADERS += testrsa.h
noinst_HEADERS += timeouts.h
EXTRA_DIST = cert.pem
EXTRA_DIST += openssl.cnf
EXTRA_DIST += x509v3.cnf
EXTRA_DIST += CMakeLists.txt
install-exec-hook:
@if [ "@OPENSSLDIR@x" != "x" ]; then \
OPENSSLDIR="$(DESTDIR)/@OPENSSLDIR@"; \
else \
OPENSSLDIR="$(DESTDIR)/$(sysconfdir)/ssl"; \
fi; \
mkdir -p "$$OPENSSLDIR/certs"; \
for i in cert.pem openssl.cnf x509v3.cnf; do \
if [ ! -f "$$OPENSSLDIR/$i" ]; then \
$(INSTALL) -m 644 "$(srcdir)/$$i" "$$OPENSSLDIR/$$i"; \
else \
echo " $$OPENSSLDIR/$$i already exists, install will not overwrite"; \
fi \
done
uninstall-local:
@if [ "@OPENSSLDIR@x" != "x" ]; then \
OPENSSLDIR="$(DESTDIR)/@OPENSSLDIR@"; \
else \
OPENSSLDIR="$(DESTDIR)/$(sysconfdir)/ssl"; \
fi; \
for i in cert.pem openssl.cnf x509v3.cnf; do \
if cmp -s "$$OPENSSLDIR/$$i" "$(srcdir)/$$i"; then \
rm -f "$$OPENSSLDIR/$$i"; \
fi \
done

11
apps/nc/Makefile.am Normal file
View File

@ -0,0 +1,11 @@
include $(top_srcdir)/Makefile.am.common
bin_PROGRAMS = nc
nc_LDADD = $(PLATFORM_LDADD) $(PROG_LDADD)
nc_LDADD += $(top_builddir)/tls/libtls.la
nc_SOURCES = atomicio.c
nc_SOURCES += netcat.c
nc_SOURCES += socks.c
noinst_HEADERS = atomicio.h

116
apps/openssl/Makefile.am Normal file
View File

@ -0,0 +1,116 @@
include $(top_srcdir)/Makefile.am.common
bin_PROGRAMS = openssl
openssl_LDADD = $(PLATFORM_LDADD) $(PROG_LDADD)
openssl_LDADD += $(top_builddir)/ssl/libssl.la
openssl_LDADD += $(top_builddir)/crypto/libcrypto.la
openssl_SOURCES = apps.c
openssl_SOURCES += asn1pars.c
openssl_SOURCES += ca.c
openssl_SOURCES += ciphers.c
openssl_SOURCES += cms.c
openssl_SOURCES += crl.c
openssl_SOURCES += crl2p7.c
openssl_SOURCES += dgst.c
openssl_SOURCES += dh.c
openssl_SOURCES += dhparam.c
openssl_SOURCES += dsa.c
openssl_SOURCES += dsaparam.c
openssl_SOURCES += ec.c
openssl_SOURCES += ecparam.c
openssl_SOURCES += enc.c
openssl_SOURCES += errstr.c
openssl_SOURCES += gendh.c
openssl_SOURCES += gendsa.c
openssl_SOURCES += genpkey.c
openssl_SOURCES += genrsa.c
openssl_SOURCES += nseq.c
openssl_SOURCES += ocsp.c
openssl_SOURCES += openssl.c
openssl_SOURCES += passwd.c
openssl_SOURCES += pkcs12.c
openssl_SOURCES += pkcs7.c
openssl_SOURCES += pkcs8.c
openssl_SOURCES += pkey.c
openssl_SOURCES += pkeyparam.c
openssl_SOURCES += pkeyutl.c
openssl_SOURCES += prime.c
openssl_SOURCES += rand.c
openssl_SOURCES += req.c
openssl_SOURCES += rsa.c
openssl_SOURCES += rsautl.c
openssl_SOURCES += s_cb.c
openssl_SOURCES += s_client.c
openssl_SOURCES += s_server.c
openssl_SOURCES += s_socket.c
openssl_SOURCES += s_time.c
openssl_SOURCES += sess_id.c
openssl_SOURCES += smime.c
openssl_SOURCES += speed.c
openssl_SOURCES += spkac.c
openssl_SOURCES += ts.c
openssl_SOURCES += verify.c
openssl_SOURCES += version.c
openssl_SOURCES += x509.c
if BUILD_CERTHASH
openssl_SOURCES += certhash.c
else
openssl_SOURCES += compat/certhash_win.c
endif
if HOST_WIN
openssl_SOURCES += compat/apps_win.c
else
openssl_SOURCES += apps_posix.c
endif
if !HAVE_POLL
if HOST_WIN
openssl_SOURCES += compat/poll_win.c
endif
endif
if !HAVE_STRTONUM
openssl_SOURCES += compat/strtonum.c
endif
noinst_HEADERS = apps.h
noinst_HEADERS += progs.h
noinst_HEADERS += s_apps.h
noinst_HEADERS += testdsa.h
noinst_HEADERS += testrsa.h
noinst_HEADERS += timeouts.h
EXTRA_DIST = cert.pem
EXTRA_DIST += openssl.cnf
EXTRA_DIST += x509v3.cnf
install-exec-hook:
@if [ "@OPENSSLDIR@x" != "x" ]; then \
OPENSSLDIR="$(DESTDIR)/@OPENSSLDIR@"; \
else \
OPENSSLDIR="$(DESTDIR)/$(sysconfdir)/ssl"; \
fi; \
mkdir -p "$$OPENSSLDIR/certs"; \
for i in cert.pem openssl.cnf x509v3.cnf; do \
if [ ! -f "$$OPENSSLDIR/$i" ]; then \
$(INSTALL) -m 644 "$(srcdir)/$$i" "$$OPENSSLDIR/$$i"; \
else \
echo " $$OPENSSLDIR/$$i already exists, install will not overwrite"; \
fi \
done
uninstall-local:
@if [ "@OPENSSLDIR@x" != "x" ]; then \
OPENSSLDIR="$(DESTDIR)/@OPENSSLDIR@"; \
else \
OPENSSLDIR="$(DESTDIR)/$(sysconfdir)/ssl"; \
fi; \
for i in cert.pem openssl.cnf x509v3.cnf; do \
if cmp -s "$$OPENSSLDIR/$$i" "$(srcdir)/$$i"; then \
rm -f "$$OPENSSLDIR/$$i"; \
fi \
done

View File

@ -119,6 +119,8 @@ AC_CONFIG_FILES([
tls/Makefile tls/Makefile
tests/Makefile tests/Makefile
apps/Makefile apps/Makefile
apps/openssl/Makefile
apps/nc/Makefile
man/Makefile man/Makefile
libcrypto.pc libcrypto.pc
libssl.pc libssl.pc

View File

@ -1,5 +1,5 @@
--- apps/openssl.c.orig 2015-07-20 02:01:42.000000000 -0600 --- apps/openssl/openssl.c.orig 2015-07-20 02:01:42.000000000 -0600
+++ apps/openssl.c 2015-07-20 02:02:00.000000000 -0600 +++ apps/openssl/openssl.c 2015-07-20 02:02:00.000000000 -0600
@@ -130,6 +130,19 @@ @@ -130,6 +130,19 @@
#include <openssl/engine.h> #include <openssl/engine.h>
#endif #endif

View File

@ -3,7 +3,8 @@ include $(top_srcdir)/Makefile.am.common
AM_CPPFLAGS += -I $(top_srcdir)/crypto/modes AM_CPPFLAGS += -I $(top_srcdir)/crypto/modes
AM_CPPFLAGS += -I $(top_srcdir)/crypto/asn1 AM_CPPFLAGS += -I $(top_srcdir)/crypto/asn1
AM_CPPFLAGS += -I $(top_srcdir)/ssl AM_CPPFLAGS += -I $(top_srcdir)/ssl
AM_CPPFLAGS += -I $(top_srcdir)/apps AM_CPPFLAGS += -I $(top_srcdir)/apps/openssl
AM_CPPFLAGS += -I $(top_srcdir)/apps/openssl/compat
LDADD = $(PLATFORM_LDADD) $(PROG_LDADD) LDADD = $(PLATFORM_LDADD) $(PROG_LDADD)
LDADD += $(top_builddir)/ssl/libssl.la LDADD += $(top_builddir)/ssl/libssl.la

View File

@ -4,9 +4,9 @@
#Test DSA certificate generation of openssl #Test DSA certificate generation of openssl
cmd=../apps/openssl cmd=../apps/openssl/openssl
if [ -e ../apps/openssl.exe ]; then if [ -e ../apps/openssl/openssl.exe ]; then
cmd=../apps/openssl.exe cmd=../apps/openssl/openssl.exe
fi fi
if [ -z $srcdir ]; then if [ -z $srcdir ]; then

View File

@ -2,9 +2,9 @@
# $OpenBSD: testenc.sh,v 1.1 2014/08/26 17:50:07 jsing Exp $ # $OpenBSD: testenc.sh,v 1.1 2014/08/26 17:50:07 jsing Exp $
test=p test=p
cmd=../apps/openssl cmd=../apps/openssl/openssl
if [ -e ../apps/openssl.exe ]; then if [ -e ../apps/openssl/openssl.exe ]; then
cmd=../apps/openssl.exe cmd=../apps/openssl/openssl.exe
fi fi
cat openssl.cnf >$test; cat openssl.cnf >$test;

View File

@ -4,9 +4,9 @@
#Test RSA certificate generation of openssl #Test RSA certificate generation of openssl
cmd=../apps/openssl cmd=../apps/openssl/openssl
if [ -e ../apps/openssl.exe ]; then if [ -e ../apps/openssl/openssl.exe ]; then
cmd=../apps/openssl.exe cmd=../apps/openssl/openssl.exe
fi fi
if [ -z $srcdir ]; then if [ -z $srcdir ]; then

View File

@ -12,6 +12,7 @@ libtls_la_SOURCES = tls.c
libtls_la_SOURCES += tls_client.c libtls_la_SOURCES += tls_client.c
libtls_la_SOURCES += tls_config.c libtls_la_SOURCES += tls_config.c
libtls_la_SOURCES += tls_server.c libtls_la_SOURCES += tls_server.c
libtls_la_SOURCES += tls_peer.c
libtls_la_SOURCES += tls_util.c libtls_la_SOURCES += tls_util.c
libtls_la_SOURCES += tls_verify.c libtls_la_SOURCES += tls_verify.c
noinst_HEADERS = tls_internal.h noinst_HEADERS = tls_internal.h

View File

@ -26,7 +26,7 @@ libssl_src=$CWD/openbsd/src/lib/libssl
libssl_regress=$CWD/openbsd/src/regress/lib/libssl libssl_regress=$CWD/openbsd/src/regress/lib/libssl
libtls_src=$CWD/openbsd/src/lib/libtls libtls_src=$CWD/openbsd/src/lib/libtls
libtls_regress=$CWD/openbsd/src/regress/lib/libtls libtls_regress=$CWD/openbsd/src/regress/lib/libtls
openssl_app_src=$CWD/openbsd/src/usr.bin/openssl app_src=$CWD/openbsd/src/usr.bin
# load library versions # load library versions
. $libcrypto_src/crypto/shlib_version . $libcrypto_src/crypto/shlib_version
@ -210,15 +210,25 @@ $CP m4/check*.m4 \
sed -e "s/compat\///" crypto/Makefile.am.arc4random > \ sed -e "s/compat\///" crypto/Makefile.am.arc4random > \
libtls-standalone/compat/Makefile.am.arc4random libtls-standalone/compat/Makefile.am.arc4random
# copy nc(1) source
echo "copying nc(1) source"
rm -f apps/nc/*.c apps/nc/*.h
for i in `awk '/SOURCES|HEADERS|MANS/ { print $3 }' apps/nc/Makefile.am` ; do
if [ -e $app_src/nc/$i ]; then
$CP $app_src/nc/$i apps/nc
fi
done
# copy openssl(1) source # copy openssl(1) source
echo "copying openssl(1) source" echo "copying openssl(1) source"
$CP $libc_src/stdlib/strtonum.c apps rm -f apps/openssl/*.c apps/openssl/*.h
$CP $libcrypto_src/cert.pem apps $CP $libc_src/stdlib/strtonum.c apps/openssl/compat
$CP $libcrypto_src/openssl.cnf apps $CP $libcrypto_src/cert.pem apps/openssl
$CP $libcrypto_src/x509v3.cnf apps $CP $libcrypto_src/openssl.cnf apps/openssl
for i in `awk '/SOURCES|HEADERS/ { print $3 }' apps/Makefile.am` ; do $CP $libcrypto_src/x509v3.cnf apps/openssl
if [ -e $openssl_app_src/$i ]; then for i in `awk '/SOURCES|HEADERS|MANS/ { print $3 }' apps/openssl/Makefile.am` ; do
$CP $openssl_app_src/$i apps if [ -e $app_src/openssl/$i ]; then
$CP $app_src/openssl/$i apps/openssl
fi fi
done done
@ -298,9 +308,6 @@ echo "copying manpages"
echo EXTRA_DIST = CMakeLists.txt > man/Makefile.am echo EXTRA_DIST = CMakeLists.txt > man/Makefile.am
echo dist_man_MANS = >> man/Makefile.am echo dist_man_MANS = >> man/Makefile.am
$CP $openssl_app_src/openssl.1 man
echo "dist_man_MANS += openssl.1" >> man/Makefile.am
$CP $libtls_src/tls_init.3 man $CP $libtls_src/tls_init.3 man
echo "dist_man_MANS += tls_init.3" >> man/Makefile.am echo "dist_man_MANS += tls_init.3" >> man/Makefile.am