diff options
author | bluhm <> | 2018-11-07 06:29:26 +0000 |
---|---|---|
committer | bluhm <> | 2018-11-07 06:29:26 +0000 |
commit | f9dbc90145487245088b16c223cdd3a15fcaf9c2 (patch) | |
tree | c5a86b9acc7138b145ea944e9c16cf2901e261a3 | |
parent | ce26c3410b909ac6a3b6467a194cd79210869e06 (diff) | |
download | openbsd-f9dbc90145487245088b16c223cdd3a15fcaf9c2.tar.gz openbsd-f9dbc90145487245088b16c223cdd3a15fcaf9c2.tar.bz2 openbsd-f9dbc90145487245088b16c223cdd3a15fcaf9c2.zip |
Print SSLeay, OpenSSL, and LibreSSL version strings. Make client
and server compile with OpenSSL 1.1. Check runtime version string
of SSL library.
-rw-r--r-- | src/regress/lib/libssl/interop/Makefile.inc | 10 | ||||
-rw-r--r-- | src/regress/lib/libssl/interop/client.c | 5 | ||||
-rw-r--r-- | src/regress/lib/libssl/interop/libressl/Makefile | 7 | ||||
-rw-r--r-- | src/regress/lib/libssl/interop/openssl/Makefile | 7 | ||||
-rw-r--r-- | src/regress/lib/libssl/interop/server.c | 5 | ||||
-rw-r--r-- | src/regress/lib/libssl/interop/util.c | 46 | ||||
-rw-r--r-- | src/regress/lib/libssl/interop/util.h | 3 |
7 files changed, 71 insertions, 12 deletions
diff --git a/src/regress/lib/libssl/interop/Makefile.inc b/src/regress/lib/libssl/interop/Makefile.inc index fc282bea88..f209bdbd91 100644 --- a/src/regress/lib/libssl/interop/Makefile.inc +++ b/src/regress/lib/libssl/interop/Makefile.inc | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: Makefile.inc,v 1.1.1.1 2018/11/07 01:08:49 bluhm Exp $ | 1 | # $OpenBSD: Makefile.inc,v 1.2 2018/11/07 06:29:26 bluhm Exp $ |
2 | 2 | ||
3 | .PATH: ${.CURDIR}/.. | 3 | .PATH: ${.CURDIR}/.. |
4 | 4 | ||
@@ -20,7 +20,7 @@ ldd-$p.out: $p | |||
20 | 20 | ||
21 | CLEANFILES += client.out netcat-l.out netcat-l.fstat | 21 | CLEANFILES += client.out netcat-l.out netcat-l.fstat |
22 | REGRESS_TARGETS += run-client | 22 | REGRESS_TARGETS += run-client |
23 | run-client: client 127.0.0.1.crt | 23 | client.out run-client: client 127.0.0.1.crt |
24 | @echo '\n======== $@ ========' | 24 | @echo '\n======== $@ ========' |
25 | echo "greeting" | nc -l -c -C 127.0.0.1.crt -K 127.0.0.1.key \ | 25 | echo "greeting" | nc -l -c -C 127.0.0.1.crt -K 127.0.0.1.key \ |
26 | 127.0.0.1 0 >netcat-l.out & \ | 26 | 127.0.0.1 0 >netcat-l.out & \ |
@@ -39,7 +39,7 @@ run-client: client 127.0.0.1.crt | |||
39 | 39 | ||
40 | CLEANFILES += server.out netcat.out | 40 | CLEANFILES += server.out netcat.out |
41 | REGRESS_TARGETS += run-server | 41 | REGRESS_TARGETS += run-server |
42 | run-server: server 127.0.0.1.crt | 42 | server.out run-server: server 127.0.0.1.crt |
43 | @echo '\n======== $@ ========' | 43 | @echo '\n======== $@ ========' |
44 | LD_LIBRARY_PATH=${LD_LIBRARY_PATH} ./server 127.0.0.1 0 >server.out | 44 | LD_LIBRARY_PATH=${LD_LIBRARY_PATH} ./server 127.0.0.1 0 >server.out |
45 | echo "hello" | nc -c -T noverify \ | 45 | echo "hello" | nc -c -T noverify \ |
@@ -52,6 +52,10 @@ run-server: server 127.0.0.1.crt | |||
52 | # client must have read server greeting | 52 | # client must have read server greeting |
53 | grep -q '^greeting$$' netcat.out | 53 | grep -q '^greeting$$' netcat.out |
54 | 54 | ||
55 | # check that programs have used correct runtime library | ||
56 | |||
57 | REGRESS_TARGETS += ${PROGS:S/^/run-version-/} | ||
58 | |||
55 | # create certificates for TLS | 59 | # create certificates for TLS |
56 | 60 | ||
57 | CLEANFILES += 127.0.0.1.crt 127.0.0.1.key | 61 | CLEANFILES += 127.0.0.1.crt 127.0.0.1.key |
diff --git a/src/regress/lib/libssl/interop/client.c b/src/regress/lib/libssl/interop/client.c index d4d4f1e94d..9d56182932 100644 --- a/src/regress/lib/libssl/interop/client.c +++ b/src/regress/lib/libssl/interop/client.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: client.c,v 1.1.1.1 2018/11/07 01:08:49 bluhm Exp $ */ | 1 | /* $OpenBSD: client.c,v 1.2 2018/11/07 06:29:26 bluhm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2018 Alexander Bluhm <bluhm@openbsd.org> | 3 | * Copyright (c) 2018 Alexander Bluhm <bluhm@openbsd.org> |
4 | * | 4 | * |
@@ -21,6 +21,7 @@ | |||
21 | #include <err.h> | 21 | #include <err.h> |
22 | #include <netdb.h> | 22 | #include <netdb.h> |
23 | #include <stdio.h> | 23 | #include <stdio.h> |
24 | #include <string.h> | ||
24 | #include <unistd.h> | 25 | #include <unistd.h> |
25 | 26 | ||
26 | #include <openssl/err.h> | 27 | #include <openssl/err.h> |
@@ -61,6 +62,7 @@ main(int argc, char *argv[]) | |||
61 | 62 | ||
62 | SSL_library_init(); | 63 | SSL_library_init(); |
63 | SSL_load_error_strings(); | 64 | SSL_load_error_strings(); |
65 | print_version(); | ||
64 | 66 | ||
65 | /* setup method and context */ | 67 | /* setup method and context */ |
66 | method = SSLv23_client_method(); | 68 | method = SSLv23_client_method(); |
@@ -77,7 +79,6 @@ main(int argc, char *argv[]) | |||
77 | bio = BIO_new_connect(host_port); | 79 | bio = BIO_new_connect(host_port); |
78 | if (bio == NULL) | 80 | if (bio == NULL) |
79 | err_ssl(1, "BIO_new_connect"); | 81 | err_ssl(1, "BIO_new_connect"); |
80 | |||
81 | print_ciphers(SSL_get_ciphers(ssl)); | 82 | print_ciphers(SSL_get_ciphers(ssl)); |
82 | 83 | ||
83 | /* connect */ | 84 | /* connect */ |
diff --git a/src/regress/lib/libssl/interop/libressl/Makefile b/src/regress/lib/libssl/interop/libressl/Makefile index 2d8ef78922..5fce6c5c22 100644 --- a/src/regress/lib/libssl/interop/libressl/Makefile +++ b/src/regress/lib/libssl/interop/libressl/Makefile | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: Makefile,v 1.1.1.1 2018/11/07 01:08:49 bluhm Exp $ | 1 | # $OpenBSD: Makefile,v 1.2 2018/11/07 06:29:26 bluhm Exp $ |
2 | 2 | ||
3 | PROGS = client server | 3 | PROGS = client server |
4 | CPPFLAGS = | 4 | CPPFLAGS = |
@@ -15,6 +15,11 @@ run-ldd-$p: ldd-$p.out | |||
15 | grep -q /usr/lib/libssl.so ldd-$p.out | 15 | grep -q /usr/lib/libssl.so ldd-$p.out |
16 | # check that $p is not linked with OpenSSL | 16 | # check that $p is not linked with OpenSSL |
17 | ! grep /usr/local/lib/ ldd-$p.out | 17 | ! grep /usr/local/lib/ ldd-$p.out |
18 | |||
19 | run-version-$p: $p.out | ||
20 | @echo '\n======== $@ ========' | ||
21 | # check that runtime version is LibreSSL | ||
22 | grep 'SSLEAY_VERSION: LibreSSL' $p.out | ||
18 | .endfor | 23 | .endfor |
19 | 24 | ||
20 | .include <bsd.regress.mk> | 25 | .include <bsd.regress.mk> |
diff --git a/src/regress/lib/libssl/interop/openssl/Makefile b/src/regress/lib/libssl/interop/openssl/Makefile index 26095d0019..9661767d7b 100644 --- a/src/regress/lib/libssl/interop/openssl/Makefile +++ b/src/regress/lib/libssl/interop/openssl/Makefile | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: Makefile,v 1.1.1.1 2018/11/07 01:08:49 bluhm Exp $ | 1 | # $OpenBSD: Makefile,v 1.2 2018/11/07 06:29:26 bluhm Exp $ |
2 | 2 | ||
3 | .if ! exists(/usr/local/bin/eopenssl) | 3 | .if ! exists(/usr/local/bin/eopenssl) |
4 | regress: | 4 | regress: |
@@ -22,6 +22,11 @@ run-ldd-$p: ldd-$p.out | |||
22 | grep -q /usr/local/lib/eopenssl/libssl.so ldd-$p.out | 22 | grep -q /usr/local/lib/eopenssl/libssl.so ldd-$p.out |
23 | # check that $p is not linked with LibreSSL | 23 | # check that $p is not linked with LibreSSL |
24 | ! grep -v libc.so ldd-$p.out | grep /usr/lib/ | 24 | ! grep -v libc.so ldd-$p.out | grep /usr/lib/ |
25 | |||
26 | run-version-$p: $p.out | ||
27 | @echo '\n======== $@ ========' | ||
28 | # check that runtime version is OpenSSL 1.0 | ||
29 | grep 'SSLEAY_VERSION: OpenSSL 1.0' $p.out | ||
25 | .endfor | 30 | .endfor |
26 | 31 | ||
27 | .include <bsd.regress.mk> | 32 | .include <bsd.regress.mk> |
diff --git a/src/regress/lib/libssl/interop/server.c b/src/regress/lib/libssl/interop/server.c index 862ca21fcb..6f40c4899c 100644 --- a/src/regress/lib/libssl/interop/server.c +++ b/src/regress/lib/libssl/interop/server.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: server.c,v 1.1.1.1 2018/11/07 01:08:49 bluhm Exp $ */ | 1 | /* $OpenBSD: server.c,v 1.2 2018/11/07 06:29:26 bluhm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2018 Alexander Bluhm <bluhm@openbsd.org> | 3 | * Copyright (c) 2018 Alexander Bluhm <bluhm@openbsd.org> |
4 | * | 4 | * |
@@ -21,6 +21,7 @@ | |||
21 | #include <err.h> | 21 | #include <err.h> |
22 | #include <netdb.h> | 22 | #include <netdb.h> |
23 | #include <stdio.h> | 23 | #include <stdio.h> |
24 | #include <string.h> | ||
24 | #include <unistd.h> | 25 | #include <unistd.h> |
25 | 26 | ||
26 | #include <openssl/err.h> | 27 | #include <openssl/err.h> |
@@ -65,6 +66,7 @@ main(int argc, char *argv[]) | |||
65 | 66 | ||
66 | SSL_library_init(); | 67 | SSL_library_init(); |
67 | SSL_load_error_strings(); | 68 | SSL_load_error_strings(); |
69 | print_version(); | ||
68 | 70 | ||
69 | /* setup method and context */ | 71 | /* setup method and context */ |
70 | method = SSLv23_server_method(); | 72 | method = SSLv23_server_method(); |
@@ -93,7 +95,6 @@ main(int argc, char *argv[]) | |||
93 | bio = BIO_new_accept(host_port); | 95 | bio = BIO_new_accept(host_port); |
94 | if (bio == NULL) | 96 | if (bio == NULL) |
95 | err_ssl(1, "BIO_new_accept"); | 97 | err_ssl(1, "BIO_new_accept"); |
96 | |||
97 | print_ciphers(SSL_get_ciphers(ssl)); | 98 | print_ciphers(SSL_get_ciphers(ssl)); |
98 | 99 | ||
99 | /* bind, listen */ | 100 | /* bind, listen */ |
diff --git a/src/regress/lib/libssl/interop/util.c b/src/regress/lib/libssl/interop/util.c index 3f1c221d51..b012d73193 100644 --- a/src/regress/lib/libssl/interop/util.c +++ b/src/regress/lib/libssl/interop/util.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: util.c,v 1.1.1.1 2018/11/07 01:08:49 bluhm Exp $ */ | 1 | /* $OpenBSD: util.c,v 1.2 2018/11/07 06:29:26 bluhm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2018 Alexander Bluhm <bluhm@openbsd.org> | 3 | * Copyright (c) 2018 Alexander Bluhm <bluhm@openbsd.org> |
4 | * | 4 | * |
@@ -24,13 +24,55 @@ | |||
24 | 24 | ||
25 | #include <openssl/err.h> | 25 | #include <openssl/err.h> |
26 | #include <openssl/ssl.h> | 26 | #include <openssl/ssl.h> |
27 | #include <openssl/opensslv.h> | ||
28 | #include <openssl/crypto.h> | ||
27 | 29 | ||
28 | #include "util.h" | 30 | #include "util.h" |
29 | 31 | ||
30 | void | 32 | void |
33 | print_version(void) | ||
34 | { | ||
35 | #ifdef OPENSSL_VERSION_NUMBER | ||
36 | printf("OPENSSL_VERSION_NUMBER: %#08lx\n", OPENSSL_VERSION_NUMBER); | ||
37 | #endif | ||
38 | #ifdef LIBRESSL_VERSION_NUMBER | ||
39 | printf("LIBRESSL_VERSION_NUMBER: %#08lx\n", LIBRESSL_VERSION_NUMBER); | ||
40 | #endif | ||
41 | #ifdef LIBRESSL_VERSION_TEXT | ||
42 | printf("LIBRESSL_VERSION_TEXT: %s\n", LIBRESSL_VERSION_TEXT); | ||
43 | #endif | ||
44 | #if OPENSSL_VERSION_NUMBER >= 0x1010000f | ||
45 | printf("OpenSSL_version_num: %#08lx\n", OpenSSL_version_num()); | ||
46 | printf("OpenSSL_version OPENSSL_VERSION: %s\n", | ||
47 | OpenSSL_version(OPENSSL_VERSION)); | ||
48 | printf("OpenSSL_version OPENSSL_CFLAGS: %s\n", | ||
49 | OpenSSL_version(OPENSSL_CFLAGS)); | ||
50 | printf("OpenSSL_version OPENSSL_BUILT_ON: %s\n", | ||
51 | OpenSSL_version(OPENSSL_BUILT_ON)); | ||
52 | printf("OpenSSL_version OPENSSL_PLATFORM: %s\n", | ||
53 | OpenSSL_version(OPENSSL_PLATFORM)); | ||
54 | printf("OpenSSL_version OPENSSL_DIR: %s\n", | ||
55 | OpenSSL_version(OPENSSL_DIR)); | ||
56 | printf("OpenSSL_version OPENSSL_ENGINES_DIR: %s\n", | ||
57 | OpenSSL_version(OPENSSL_ENGINES_DIR)); | ||
58 | #endif | ||
59 | printf("SSLeay: %#08lx\n", SSLeay()); | ||
60 | printf("SSLeay_version SSLEAY_VERSION: %s\n", | ||
61 | SSLeay_version(SSLEAY_VERSION)); | ||
62 | printf("SSLeay_version SSLEAY_CFLAGS: %s\n", | ||
63 | SSLeay_version(SSLEAY_CFLAGS)); | ||
64 | printf("SSLeay_version SSLEAY_BUILT_ON: %s\n", | ||
65 | SSLeay_version(SSLEAY_BUILT_ON)); | ||
66 | printf("SSLeay_version SSLEAY_PLATFORM: %s\n", | ||
67 | SSLeay_version(SSLEAY_PLATFORM)); | ||
68 | printf("SSLeay_version SSLEAY_DIR: %s\n", | ||
69 | SSLeay_version(SSLEAY_DIR)); | ||
70 | } | ||
71 | |||
72 | void | ||
31 | print_ciphers(STACK_OF(SSL_CIPHER) *cstack) | 73 | print_ciphers(STACK_OF(SSL_CIPHER) *cstack) |
32 | { | 74 | { |
33 | SSL_CIPHER *cipher; | 75 | const SSL_CIPHER *cipher; |
34 | int i; | 76 | int i; |
35 | 77 | ||
36 | for (i = 0; (cipher = sk_SSL_CIPHER_value(cstack, i)) != NULL; i++) | 78 | for (i = 0; (cipher = sk_SSL_CIPHER_value(cstack, i)) != NULL; i++) |
diff --git a/src/regress/lib/libssl/interop/util.h b/src/regress/lib/libssl/interop/util.h index 2fdebf34b3..78f7bb63b6 100644 --- a/src/regress/lib/libssl/interop/util.h +++ b/src/regress/lib/libssl/interop/util.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: util.h,v 1.1.1.1 2018/11/07 01:08:49 bluhm Exp $ */ | 1 | /* $OpenBSD: util.h,v 1.2 2018/11/07 06:29:26 bluhm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2018 Alexander Bluhm <bluhm@openbsd.org> | 3 | * Copyright (c) 2018 Alexander Bluhm <bluhm@openbsd.org> |
4 | * | 4 | * |
@@ -15,6 +15,7 @@ | |||
15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
16 | */ | 16 | */ |
17 | 17 | ||
18 | void print_version(void); | ||
18 | void print_ciphers(STACK_OF(SSL_CIPHER) *); | 19 | void print_ciphers(STACK_OF(SSL_CIPHER) *); |
19 | void print_sockname(BIO *); | 20 | void print_sockname(BIO *); |
20 | void print_peername(BIO *); | 21 | void print_peername(BIO *); |