diff options
| author | inoguchi <> | 2021-06-21 13:29:05 +0000 |
|---|---|---|
| committer | inoguchi <> | 2021-06-21 13:29:05 +0000 |
| commit | 6a02fee4a2d95cb497bd80d5c4e193cf75422cb1 (patch) | |
| tree | 7c6d87e9c33162447d6c15609fc0a4f61e224c45 /src | |
| parent | f3231da7e89a3a1b6fbe00fb2afa52f76f4c9745 (diff) | |
| download | openbsd-6a02fee4a2d95cb497bd80d5c4e193cf75422cb1.tar.gz openbsd-6a02fee4a2d95cb497bd80d5c4e193cf75422cb1.tar.bz2 openbsd-6a02fee4a2d95cb497bd80d5c4e193cf75422cb1.zip | |
Add GnuTLS interoperability test in appstest.sh
Diffstat (limited to 'src')
| -rwxr-xr-x | src/regress/usr.bin/openssl/appstest.sh | 110 |
1 files changed, 109 insertions, 1 deletions
diff --git a/src/regress/usr.bin/openssl/appstest.sh b/src/regress/usr.bin/openssl/appstest.sh index f7ad3686cb..457e671ece 100755 --- a/src/regress/usr.bin/openssl/appstest.sh +++ b/src/regress/usr.bin/openssl/appstest.sh | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | #!/bin/sh | 1 | #!/bin/sh |
| 2 | # | 2 | # |
| 3 | # $OpenBSD: appstest.sh,v 1.50 2021/05/12 10:39:13 inoguchi Exp $ | 3 | # $OpenBSD: appstest.sh,v 1.51 2021/06/21 13:29:05 inoguchi Exp $ |
| 4 | # | 4 | # |
| 5 | # Copyright (c) 2016 Kinichiro Inoguchi <inoguchi@openbsd.org> | 5 | # Copyright (c) 2016 Kinichiro Inoguchi <inoguchi@openbsd.org> |
| 6 | # | 6 | # |
| @@ -46,6 +46,16 @@ function stop_s_server { | |||
| 46 | fi | 46 | fi |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | function stop_gnutls_serv { | ||
| 50 | if [ ! -z "$gnutls_serv_pid" ] ; then | ||
| 51 | echo ":-| stop gnutls-serv [ $gnutls_serv_pid ]" | ||
| 52 | sleep 1 | ||
| 53 | kill -TERM $gnutls_serv_pid | ||
| 54 | wait $gnutls_serv_pid | ||
| 55 | gnutls_serv_pid= | ||
| 56 | fi | ||
| 57 | } | ||
| 58 | |||
| 49 | function check_exit_status { | 59 | function check_exit_status { |
| 50 | status=$1 | 60 | status=$1 |
| 51 | if [ $status -ne 0 ] ; then | 61 | if [ $status -ne 0 ] ; then |
| @@ -708,6 +718,10 @@ __EOF__ | |||
| 708 | $openssl_bin genrsa -aes256 -passout pass:$sv_rsa_pass -out $sv_rsa_key | 718 | $openssl_bin genrsa -aes256 -passout pass:$sv_rsa_pass -out $sv_rsa_key |
| 709 | check_exit_status $? | 719 | check_exit_status $? |
| 710 | 720 | ||
| 721 | $openssl_bin rsa -in $sv_rsa_key -passin pass:$sv_rsa_pass \ | ||
| 722 | -out $sv_rsa_key.nopass | ||
| 723 | check_exit_status $? | ||
| 724 | |||
| 711 | start_message "req ... generate server csr#1" | 725 | start_message "req ... generate server csr#1" |
| 712 | 726 | ||
| 713 | $openssl_bin req -new -subj $subj -sha256 \ | 727 | $openssl_bin req -new -subj $subj -sha256 \ |
| @@ -1847,6 +1861,92 @@ function test_server_client_dtls { | |||
| 1847 | 1861 | ||
| 1848 | stop_s_server | 1862 | stop_s_server |
| 1849 | } | 1863 | } |
| 1864 | |||
| 1865 | function test_gnutls { | ||
| 1866 | # --- GnuTLS interoperability --- | ||
| 1867 | section_message "GnuTLS $1 interoperability" | ||
| 1868 | |||
| 1869 | proto="$1" | ||
| 1870 | |||
| 1871 | if [ $proto = "tls" ] ; then | ||
| 1872 | sopt="-www" | ||
| 1873 | lopt= | ||
| 1874 | gopt= | ||
| 1875 | else | ||
| 1876 | sopt="-quiet" | ||
| 1877 | lopt="-dtls" | ||
| 1878 | gopt="-u" | ||
| 1879 | fi | ||
| 1880 | |||
| 1881 | gs_bin=/usr/local/bin/gnutls-serv | ||
| 1882 | gc_bin=/usr/local/bin/gnutls-cli | ||
| 1883 | |||
| 1884 | host="localhost" | ||
| 1885 | port=4433 | ||
| 1886 | |||
| 1887 | if [ $ecdsa_tests = 1 ] ; then | ||
| 1888 | echo "Using ECDSA certificate" | ||
| 1889 | crt=$sv_ecdsa_cert | ||
| 1890 | key=$sv_ecdsa_key | ||
| 1891 | sni=ecdsa.test-dummy.com | ||
| 1892 | elif [ $gost_tests = 1 ] ; then | ||
| 1893 | echo "Using GOST certificate" | ||
| 1894 | crt=$sv_gost_cert | ||
| 1895 | key=$sv_gost_key | ||
| 1896 | sni=gost.test-dummy.com | ||
| 1897 | else | ||
| 1898 | echo "Using RSA certificate" | ||
| 1899 | crt=$sv_rsa_cert | ||
| 1900 | key=$sv_rsa_key.nopass | ||
| 1901 | sni=localhost.test-dummy.com | ||
| 1902 | fi | ||
| 1903 | |||
| 1904 | # LibreSSL - GnuTLS | ||
| 1905 | |||
| 1906 | start_message "s_server ... start $proto test server" | ||
| 1907 | s_server_out=$server_dir/s_server_LG_$proto.out | ||
| 1908 | $openssl_bin s_server -accept $port -CAfile $ca_cert \ | ||
| 1909 | -cert $crt -key $key -cert2 $crt -key2 $key \ | ||
| 1910 | -servername $sni -msg -tlsextdebug -status $sopt $lopt \ | ||
| 1911 | > $s_server_out 2>&1 & | ||
| 1912 | check_exit_status $? | ||
| 1913 | s_server_pid=$! | ||
| 1914 | echo "s_server pid = [ $s_server_pid ]" | ||
| 1915 | sleep 1 | ||
| 1916 | |||
| 1917 | gnutls_cli_out=$user1_dir/gnutls-cli_LG_$proto.out | ||
| 1918 | $gc_bin --x509cafile=$ca_cert --sni-hostname=$sni \ | ||
| 1919 | --verify-hostname=$sni $gopt -p $port $host < /dev/null \ | ||
| 1920 | > $gnutls_cli_out 2>&1 | ||
| 1921 | check_exit_status $? | ||
| 1922 | |||
| 1923 | grep 'Handshake was completed' $gnutls_cli_out > /dev/null | ||
| 1924 | check_exit_status $? | ||
| 1925 | |||
| 1926 | stop_s_server | ||
| 1927 | |||
| 1928 | # GnuTLS - LibreSSL | ||
| 1929 | |||
| 1930 | start_message "gnutls-serv ... start $proto test server" | ||
| 1931 | gnutls_serv_out=$server_dir/gnutls-serv_GL_$proto.out | ||
| 1932 | $gs_bin --x509cafile=$ca_cert --x509certfile=$crt --x509keyfile=$key \ | ||
| 1933 | $gopt -p $port > $gnutls_serv_out 2>&1 & | ||
| 1934 | check_exit_status $? | ||
| 1935 | gnutls_serv_pid=$! | ||
| 1936 | echo "gnutls-serv pid = [ $gnutls_serv_pid ]" | ||
| 1937 | sleep 1 | ||
| 1938 | |||
| 1939 | s_client_out=$user1_dir/s_client_GL_$proto.out | ||
| 1940 | $openssl_bin s_client -connect $host:$port -CAfile $ca_cert \ | ||
| 1941 | -msg -tlsextdebug -status $lopt < /dev/null > $s_client_out 2>&1 | ||
| 1942 | check_exit_status $? | ||
| 1943 | |||
| 1944 | grep 'Verify return code: 0 (ok)' $s_client_out > /dev/null | ||
| 1945 | check_exit_status $? | ||
| 1946 | |||
| 1947 | stop_gnutls_serv | ||
| 1948 | } | ||
| 1949 | |||
| 1850 | function test_speed { | 1950 | function test_speed { |
| 1851 | # === PERFORMANCE === | 1951 | # === PERFORMANCE === |
| 1852 | section_message "PERFORMANCE" | 1952 | section_message "PERFORMANCE" |
| @@ -1877,6 +1977,7 @@ other_openssl_bin=${OTHER_OPENSSL:-/usr/local/bin/eopenssl11} | |||
| 1877 | ecdsa_tests=0 | 1977 | ecdsa_tests=0 |
| 1878 | gost_tests=0 | 1978 | gost_tests=0 |
| 1879 | interop_tests=0 | 1979 | interop_tests=0 |
| 1980 | gnutls_tests=0 | ||
| 1880 | no_long_tests=0 | 1981 | no_long_tests=0 |
| 1881 | 1982 | ||
| 1882 | while [ "$1" != "" ]; do | 1983 | while [ "$1" != "" ]; do |
| @@ -1892,6 +1993,9 @@ while [ "$1" != "" ]; do | |||
| 1892 | -i | --interop) shift | 1993 | -i | --interop) shift |
| 1893 | interop_tests=1 | 1994 | interop_tests=1 |
| 1894 | ;; | 1995 | ;; |
| 1996 | -n | --gnutls) shift | ||
| 1997 | gnutls_tests=1 | ||
| 1998 | ;; | ||
| 1895 | -q | --quick ) shift | 1999 | -q | --quick ) shift |
| 1896 | no_long_tests=1 | 2000 | no_long_tests=1 |
| 1897 | ;; | 2001 | ;; |
| @@ -1964,6 +2068,10 @@ if [ $interop_tests = 1 ] ; then | |||
| 1964 | test_server_client_dtls 0 1 | 2068 | test_server_client_dtls 0 1 |
| 1965 | test_server_client_dtls 1 0 | 2069 | test_server_client_dtls 1 0 |
| 1966 | fi | 2070 | fi |
| 2071 | if [ $gnutls_tests = 1 ] ; then | ||
| 2072 | test_gnutls tls | ||
| 2073 | test_gnutls dtls | ||
| 2074 | fi | ||
| 1967 | test_speed | 2075 | test_speed |
| 1968 | test_version | 2076 | test_version |
| 1969 | 2077 | ||
