Blame tests/profile-tests.sh

Packit Service 4684c1
#!/bin/sh
Packit Service 4684c1
Packit Service 4684c1
# Copyright (C) 2019 Red Hat, Inc.
Packit Service 4684c1
#
Packit Service 4684c1
# Author: Nikos Mavrogiannopoulos
Packit Service 4684c1
#
Packit Service 4684c1
# This file is part of GnuTLS.
Packit Service 4684c1
#
Packit Service 4684c1
# GnuTLS is free software; you can redistribute it and/or modify it
Packit Service 4684c1
# under the terms of the GNU General Public License as published by the
Packit Service 4684c1
# Free Software Foundation; either version 3 of the License, or (at
Packit Service 4684c1
# your option) any later version.
Packit Service 4684c1
#
Packit Service 4684c1
# GnuTLS is distributed in the hope that it will be useful, but
Packit Service 4684c1
# WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 4684c1
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 4684c1
# General Public License for more details.
Packit Service 4684c1
#
Packit Service 4684c1
# You should have received a copy of the GNU Lesser General Public License
Packit Service 4684c1
# along with this program.  If not, see <https://www.gnu.org/licenses/>
Packit Service 4684c1
#
Packit Service 4684c1
Packit Service 4684c1
# This program tests whether the profile keywords work as expected
Packit Service 4684c1
Packit Service 4684c1
srcdir="${srcdir:-.}"
Packit Service 4684c1
SERV="${SERV:-../src/gnutls-serv${EXEEXT}}"
Packit Service 4684c1
CLI="${CLI:-../src/gnutls-cli${EXEEXT}}"
Packit Service 4684c1
TMPFILE=config.$$.tmp
Packit Service 4684c1
export GNUTLS_SYSTEM_PRIORITY_FAIL_ON_INVALID=1
Packit Service 4684c1
Packit Service 4684c1
if ! test -x "${SERV}"; then
Packit Service 4684c1
	exit 77
Packit Service 4684c1
fi
Packit Service 4684c1
Packit Service 4684c1
if ! test -x "${CLI}"; then
Packit Service 4684c1
	exit 77
Packit Service 4684c1
fi
Packit Service 4684c1
Packit Service 4684c1
if test "${WINDIR}" != ""; then
Packit Service 4684c1
	exit 77
Packit Service 4684c1
fi
Packit Service 4684c1
Packit Service 4684c1
. "${srcdir}/scripts/common.sh"
Packit Service 4684c1
Packit Service 4684c1
CAFILE="./profile-ca.$$.tmp"
Packit Service 4684c1
CERT="./profile-cert.$$.tmp"
Packit Service 4684c1
Packit Service 4684c1
Packit Service 4684c1
echo "Testing with a 256 bit ECDSA key"
Packit Service 4684c1
Packit Service 4684c1
cat >${CAFILE} <<_EOF_
Packit Service 4684c1
-----BEGIN CERTIFICATE-----
Packit Service 4684c1
MIIBZjCCAQugAwIBAgIUT/9x+s6cBhBHWoZH5fBi9c0aBPswCgYIKoZIzj0EAwIw
Packit Service 4684c1
DzENMAsGA1UEAxMEQ0EtMDAgFw0xOTA1MjAxMzAxNTdaGA85OTk5MTIzMTIzNTk1
Packit Service 4684c1
OVowDzENMAsGA1UEAxMEQ0EtMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABI7d
Packit Service 4684c1
qggkXNbYfXi5rMqdvvX26GJ02A63B5sueaS0w1LITLeMb0mhx4trpXMkJ3lr05lY
Packit Service 4684c1
JCfr6sUTAlYLMBLZJ+ajQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUD
Packit Service 4684c1
AwcGADAdBgNVHQ4EFgQUUkk7xPS5Uf53q8YLEhz5KGqeZH0wCgYIKoZIzj0EAwID
Packit Service 4684c1
SQAwRgIhAKL/lPu6hOTwA/FfB+dMkkVeeZA+6CeXgbnxeA6HXy3bAiEAvO3+1VhR
Packit Service 4684c1
RIHc3JBuIsLlrwaovXAZHgXNGV2WalixDHI=
Packit Service 4684c1
-----END CERTIFICATE-----
Packit Service 4684c1
_EOF_
Packit Service 4684c1
cat >${CERT} <<_EOF_
Packit Service 4684c1
-----BEGIN CERTIFICATE-----
Packit Service 4684c1
MIIBnTCCAUOgAwIBAgIUUoqE4mD73XmLCryaMad6AXl6TjAwCgYIKoZIzj0EAwIw
Packit Service 4684c1
DzENMAsGA1UEAxMEQ0EtMDAgFw0xOTA1MjAxMzAxNTdaGA85OTk5MTIzMTIzNTk1
Packit Service 4684c1
OVowEzERMA8GA1UEAxMIc2VydmVyLTEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNC
Packit Service 4684c1
AAScHgQMZCm5GLjGs64tN8hmK+KmDOTBU0fyqc9Tle6WjgFFBzPeHv8vLcrp5HTI
Packit Service 4684c1
mNtKFNCaLN73r9h8xk3qG2pno3cwdTAMBgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuC
Packit Service 4684c1
CWxvY2FsaG9zdDAPBgNVHQ8BAf8EBQMDB4AAMB0GA1UdDgQWBBRpzYoZdeLYgscj
Packit Service 4684c1
yokMBbda3FnghzAfBgNVHSMEGDAWgBRSSTvE9LlR/nerxgsSHPkoap5kfTAKBggq
Packit Service 4684c1
hkjOPQQDAgNIADBFAiATJTdJ176UocB1BGDTTwJAuNKurPFZzlEaeYHS3tetXAIh
Packit Service 4684c1
AP/RStdc8DV/AtHZOF1/FF3fB/tS3d+vb2f0QsTbcl5f
Packit Service 4684c1
-----END CERTIFICATE-----
Packit Service 4684c1
-----BEGIN EC PRIVATE KEY-----
Packit Service 4684c1
MHcCAQEEIG5Gt+KTDxw5cevzwL0Sfo2AJZNeVtu3GHSnpICvsSiBoAoGCCqGSM49
Packit Service 4684c1
AwEHoUQDQgAEnB4EDGQpuRi4xrOuLTfIZivipgzkwVNH8qnPU5Xulo4BRQcz3h7/
Packit Service 4684c1
Ly3K6eR0yJjbShTQmize96/YfMZN6htqZw==
Packit Service 4684c1
-----END EC PRIVATE KEY-----
Packit Service 4684c1
_EOF_
Packit Service 4684c1
KEY="${CERT}"
Packit Service 4684c1
Packit Service 4684c1
eval "${GETPORT}"
Packit Service 4684c1
launch_server $$ --echo --priority "NORMAL" --x509keyfile ${KEY} --x509certfile ${CERT}
Packit Service 4684c1
PID=$!
Packit Service 4684c1
wait_server ${PID}
Packit Service 4684c1
Packit Service 4684c1
"${CLI}" -p "${PORT}" 127.0.0.1 --priority NORMAL:%PROFILE_VERY_WEAK --verify-hostname localhost --x509cafile "${CAFILE}" </dev/null >/dev/null ||
Packit Service 4684c1
	fail ${PID} "expected connection to succeed (1)"
Packit Service 4684c1
Packit Service 4684c1
"${CLI}" -p "${PORT}" 127.0.0.1 --priority NORMAL:%PROFILE_LOW --verify-hostname localhost --x509cafile "${CAFILE}" </dev/null >/dev/null ||
Packit Service 4684c1
	fail ${PID} "expected connection to succeed (2)"
Packit Service 4684c1
Packit Service 4684c1
"${CLI}" -p "${PORT}" 127.0.0.1 --priority NORMAL:%PROFILE_LEGACY --verify-hostname localhost --x509cafile "${CAFILE}" </dev/null >/dev/null ||
Packit Service 4684c1
	fail ${PID} "expected connection to succeed (3)"
Packit Service 4684c1
Packit Service 4684c1
"${CLI}" -p "${PORT}" 127.0.0.1 --priority NORMAL:%PROFILE_HIGH --verify-hostname localhost --x509cafile "${CAFILE}" </dev/null >/dev/null ||
Packit Service 4684c1
	fail ${PID} "expected connection to succeed (4)"
Packit Service 4684c1
Packit Service 4684c1
"${CLI}" -p "${PORT}" 127.0.0.1 --priority NORMAL:%PROFILE_ULTRA --verify-hostname localhost --x509cafile "${CAFILE}" </dev/null >/dev/null &&
Packit Service 4684c1
	fail ${PID} "expected connection to fail (1)"
Packit Service 4684c1
Packit Service 4684c1
"${CLI}" -p "${PORT}" 127.0.0.1 --priority NORMAL:%PROFILE_FUTURE --verify-hostname localhost --x509cafile "${CAFILE}" </dev/null >/dev/null &&
Packit Service 4684c1
	fail ${PID} "expected connection to fail (2)"
Packit Service 4684c1
Packit Service 4684c1
kill ${PID}
Packit Service 4684c1
wait
Packit Service 4684c1
Packit Service 4684c1
Packit Service 4684c1
echo "Testing with a 384 bit ECDSA key"
Packit Service 4684c1
Packit Service 4684c1
cat >${CAFILE} <<_EOF_
Packit Service 4684c1
-----BEGIN CERTIFICATE-----
Packit Service 4684c1
MIIBojCCASigAwIBAgIUFMelLI8WwXyoyKjZGXXXcLb4N1EwCgYIKoZIzj0EAwMw
Packit Service 4684c1
DzENMAsGA1UEAxMEQ0EtMDAgFw0xOTA1MjAxMzA2MDNaGA85OTk5MTIzMTIzNTk1
Packit Service 4684c1
OVowDzENMAsGA1UEAxMEQ0EtMDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNxXKt1I
Packit Service 4684c1
dpBTxQ5oefACUoUgdEwLNkbrjMeEYbB1Wz9d5Uk9nJPjQOGx85ct3FysauMxzBGy
Packit Service 4684c1
BKnBEYViamZiffXu3zzNlIZY+tCbc3MUqs6q60CuNIw4UjakKhgD6II2MKNDMEEw
Packit Service 4684c1
DwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0GA1UdDgQWBBQJ9QXM
Packit Service 4684c1
rPF8/z2VviCfhSp2ezf1AjAKBggqhkjOPQQDAwNoADBlAjEA5nmuJqRQFLgHYnN5
Packit Service 4684c1
MRmMfT+TvkLL+MPBo9lK8cbFzweV/PdySLRKNylOH4y70UyzAjBk3kFH7KC1AGMz
Packit Service 4684c1
+A87+Rx+7BHOIdKIp91wx8LhMIdbeX9yi3w6YRsjHoLxKtJ8FYE=
Packit Service 4684c1
-----END CERTIFICATE-----
Packit Service 4684c1
_EOF_
Packit Service 4684c1
cat >${CERT} <<_EOF_
Packit Service 4684c1
-----BEGIN CERTIFICATE-----
Packit Service 4684c1
MIIB2DCCAWCgAwIBAgIUJiHZy9J/MQzCJPjaP3Zy+JTXHgowCgYIKoZIzj0EAwMw
Packit Service 4684c1
DzENMAsGA1UEAxMEQ0EtMDAgFw0xOTA1MjAxMzA2MDNaGA85OTk5MTIzMTIzNTk1
Packit Service 4684c1
OVowEzERMA8GA1UEAxMIc2VydmVyLTEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATP
Packit Service 4684c1
agsLKT6MLGFsxWyBjDmyrfcAreBZtGDe9tS8jYItbM8y/ulvjCnwW/dwmVBe6UKX
Packit Service 4684c1
n7WIJ7nxvp/j0k59TwpMxfpSn51NhiaViMQ4ZxA34qm+H3gUl8r1GC9I/EPTYe2j
Packit Service 4684c1
dzB1MAwGA1UdEwEB/wQCMAAwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA8GA1UdDwEB
Packit Service 4684c1
/wQFAwMHgAAwHQYDVR0OBBYEFO2V2sn+n3Kj0sA2leiLp/RQDmt/MB8GA1UdIwQY
Packit Service 4684c1
MBaAFAn1Bcys8Xz/PZW+IJ+FKnZ7N/UCMAoGCCqGSM49BAMDA2YAMGMCL37ZZOM0
Packit Service 4684c1
fKI8jzlZRF64IOB/hVbvMD5WOMqFN/M8BjbPSywuRy9/JIq0KiFw3IKUAjAJZSsJ
Packit Service 4684c1
fd8/9po81LJwyfUF/fTwPa7CNExb4BoDRtDDc7s/ciXI/13rxwkJnlAytwI=
Packit Service 4684c1
-----END CERTIFICATE-----
Packit Service 4684c1
-----BEGIN EC PRIVATE KEY-----
Packit Service 4684c1
MIGlAgEBBDEAtrbWqGFyxd+qLlU0VHGvS5CpuAg0fPvODXzu8qHGREvxMYJL5d0I
Packit Service 4684c1
YfU7emquAuq/oAcGBSuBBAAioWQDYgAEz2oLCyk+jCxhbMVsgYw5sq33AK3gWbRg
Packit Service 4684c1
3vbUvI2CLWzPMv7pb4wp8Fv3cJlQXulCl5+1iCe58b6f49JOfU8KTMX6Up+dTYYm
Packit Service 4684c1
lYjEOGcQN+Kpvh94FJfK9RgvSPxD02Ht
Packit Service 4684c1
-----END EC PRIVATE KEY-----
Packit Service 4684c1
_EOF_
Packit Service 4684c1
KEY="${CERT}"
Packit Service 4684c1
Packit Service 4684c1
eval "${GETPORT}"
Packit Service 4684c1
launch_server $$ --echo --priority "NORMAL" --x509keyfile ${KEY} --x509certfile ${CERT}
Packit Service 4684c1
PID=$!
Packit Service 4684c1
wait_server ${PID}
Packit Service 4684c1
Packit Service 4684c1
"${CLI}" -p "${PORT}" 127.0.0.1 --priority NORMAL:%PROFILE_VERY_WEAK --verify-hostname localhost --x509cafile "${CAFILE}" </dev/null >/dev/null ||
Packit Service 4684c1
	fail ${PID} "expected connection to succeed (1)"
Packit Service 4684c1
Packit Service 4684c1
"${CLI}" -p "${PORT}" 127.0.0.1 --priority NORMAL:%PROFILE_LOW --verify-hostname localhost --x509cafile "${CAFILE}" </dev/null >/dev/null ||
Packit Service 4684c1
	fail ${PID} "expected connection to succeed (2)"
Packit Service 4684c1
Packit Service 4684c1
"${CLI}" -p "${PORT}" 127.0.0.1 --priority NORMAL:%PROFILE_LEGACY --verify-hostname localhost --x509cafile "${CAFILE}" </dev/null >/dev/null ||
Packit Service 4684c1
	fail ${PID} "expected connection to succeed (3)"
Packit Service 4684c1
Packit Service 4684c1
"${CLI}" -p "${PORT}" 127.0.0.1 --priority NORMAL:%PROFILE_HIGH --verify-hostname localhost --x509cafile "${CAFILE}" </dev/null >/dev/null ||
Packit Service 4684c1
	fail ${PID} "expected connection to succeed (4)"
Packit Service 4684c1
Packit Service 4684c1
"${CLI}" -p "${PORT}" 127.0.0.1 --priority NORMAL:%PROFILE_ULTRA --verify-hostname localhost --x509cafile "${CAFILE}" </dev/null >/dev/null ||
Packit Service 4684c1
	fail ${PID} "expected connection to succeed (5)"
Packit Service 4684c1
Packit Service 4684c1
"${CLI}" -p "${PORT}" 127.0.0.1 --priority NORMAL:%PROFILE_FUTURE --verify-hostname localhost --x509cafile "${CAFILE}" </dev/null >/dev/null &&
Packit Service 4684c1
	fail ${PID} "expected connection to fail (1)"
Packit Service 4684c1
Packit Service 4684c1
kill ${PID}
Packit Service 4684c1
wait
Packit Service 4684c1
Packit Service 4684c1
echo "Testing with a 521 bit ECDSA key"
Packit Service 4684c1
Packit Service 4684c1
cat >${CAFILE} <<_EOF_
Packit Service 4684c1
-----BEGIN CERTIFICATE-----
Packit Service 4684c1
MIIB7TCCAU6gAwIBAgIUW9MXlkeIARoHEeP+DmgMfSOh9xkwCgYIKoZIzj0EAwQw
Packit Service 4684c1
DzENMAsGA1UEAxMEQ0EtMDAgFw0xOTA1MjAxMzE4MDVaGA85OTk5MTIzMTIzNTk1
Packit Service 4684c1
OVowDzENMAsGA1UEAxMEQ0EtMDCBmzAQBgcqhkjOPQIBBgUrgQQAIwOBhgAEASRD
Packit Service 4684c1
p6ArQF3bkC7rMzUo6RGle3LCDVkrVrcS0vMRKz6D436g/yO0+om5Xbny/z3Weo4x
Packit Service 4684c1
E8dat+dQp2sHurso6ByhAbm08MqxKUqaU4G69xvTYTOSMljDtx/3upsF955J5/CT
Packit Service 4684c1
/F8czPBR9jebQZOCXWI0clpFSTGTYFnqHVlyTTwCgd87o0MwQTAPBgNVHRMBAf8E
Packit Service 4684c1
BTADAQH/MA8GA1UdDwEB/wQFAwMHBgAwHQYDVR0OBBYEFI2SeRAmyVkAAEabKWfy
Packit Service 4684c1
SREfJqJfMAoGCCqGSM49BAMEA4GMADCBiAJCAc8sUwRR5Q5u52YSdaEiHgnWlNTJ
Packit Service 4684c1
nP7ckTAiSCEmhp2L8wdvG2274oTjvw3gbUHLc310AAoIvUcZfaXB6zooIpl9AkIB
Packit Service 4684c1
NK1JHzm60+USUDxJoQngtl8KdM9jR9UmjZ5hVhd/k5FeNYbb6Z+kuIasE4SlnJnd
Packit Service 4684c1
VIEgdnjXtlI3n052VLjDKg4=
Packit Service 4684c1
-----END CERTIFICATE-----
Packit Service 4684c1
_EOF_
Packit Service 4684c1
cat >${CERT} <<_EOF_
Packit Service 4684c1
-----BEGIN CERTIFICATE-----
Packit Service 4684c1
MIICJDCCAYagAwIBAgIUTNrzhsX4+TV92p8tYrrUclDsYsUwCgYIKoZIzj0EAwQw
Packit Service 4684c1
DzENMAsGA1UEAxMEQ0EtMDAgFw0xOTA1MjAxMzE4MDVaGA85OTk5MTIzMTIzNTk1
Packit Service 4684c1
OVowEzERMA8GA1UEAxMIc2VydmVyLTEwgZswEAYHKoZIzj0CAQYFK4EEACMDgYYA
Packit Service 4684c1
BAGAb9ToCqbQ8wImyiIN3Zf3T8WrwB/R28f0w8wq0W5a71FGayY0VU5exSBV7nnj
Packit Service 4684c1
X8xFwUb+BpIVRQ4ZsryQCDDANACxXE3hwae59mqO9JhrTUQL7KyDaZ8W6KbACn8h
Packit Service 4684c1
fYsOay/3ub0wdNdG8aJIcZzmrX1DNM0Jt/rW1d2nzuv6lZqCfqN3MHUwDAYDVR0T
Packit Service 4684c1
AQH/BAIwADAUBgNVHREEDTALgglsb2NhbGhvc3QwDwYDVR0PAQH/BAUDAweAADAd
Packit Service 4684c1
BgNVHQ4EFgQUv46ZnyF9oFn6yVCPl8WJ2InprhowHwYDVR0jBBgwFoAUjZJ5ECbJ
Packit Service 4684c1
WQAARpspZ/JJER8mol8wCgYIKoZIzj0EAwQDgYsAMIGHAkIAh0/UdYPTSWmtTRNZ
Packit Service 4684c1
d1VGCBW+Pw9aMkSTd8byWgle8+z1aQdZYQF46MHDuRC3zkooAYXPjbYCbLba5W/x
Packit Service 4684c1
K1MVvfoCQThH3TCLj/Qci1788SNJ2bvN4bGe9m71cRhJWOXx5GRUHjvRJ5dttllq
Packit Service 4684c1
dPzh992Fym1fGoyKne2xm172IG2LvTI0
Packit Service 4684c1
-----END CERTIFICATE-----
Packit Service 4684c1
-----BEGIN EC PRIVATE KEY-----
Packit Service 4684c1
MIHcAgEBBEIBZEu+h1ouDy17i0vGtm39PIrwWCGmjiQkCp1HnPSGod6SM2O3j4Mf
Packit Service 4684c1
PH5pp8dPYx0LmHXTe+/P/oiIf128sSlsIGCgBwYFK4EEACOhgYkDgYYABAGAb9To
Packit Service 4684c1
CqbQ8wImyiIN3Zf3T8WrwB/R28f0w8wq0W5a71FGayY0VU5exSBV7nnjX8xFwUb+
Packit Service 4684c1
BpIVRQ4ZsryQCDDANACxXE3hwae59mqO9JhrTUQL7KyDaZ8W6KbACn8hfYsOay/3
Packit Service 4684c1
ub0wdNdG8aJIcZzmrX1DNM0Jt/rW1d2nzuv6lZqCfg==
Packit Service 4684c1
-----END EC PRIVATE KEY-----
Packit Service 4684c1
_EOF_
Packit Service 4684c1
KEY="${CERT}"
Packit Service 4684c1
Packit Service 4684c1
eval "${GETPORT}"
Packit Service 4684c1
launch_server $$ --echo --priority "NORMAL" --x509keyfile ${KEY} --x509certfile ${CERT}
Packit Service 4684c1
PID=$!
Packit Service 4684c1
wait_server ${PID}
Packit Service 4684c1
Packit Service 4684c1
"${CLI}" -p "${PORT}" 127.0.0.1 --priority NORMAL:%PROFILE_VERY_WEAK --verify-hostname localhost --x509cafile "${CAFILE}" </dev/null >/dev/null ||
Packit Service 4684c1
	fail ${PID} "expected connection to succeed (1)"
Packit Service 4684c1
Packit Service 4684c1
"${CLI}" -p "${PORT}" 127.0.0.1 --priority NORMAL:%PROFILE_LOW --verify-hostname localhost --x509cafile "${CAFILE}" </dev/null >/dev/null ||
Packit Service 4684c1
	fail ${PID} "expected connection to succeed (2)"
Packit Service 4684c1
Packit Service 4684c1
"${CLI}" -p "${PORT}" 127.0.0.1 --priority NORMAL:%PROFILE_LEGACY --verify-hostname localhost --x509cafile "${CAFILE}" </dev/null >/dev/null ||
Packit Service 4684c1
	fail ${PID} "expected connection to succeed (3)"
Packit Service 4684c1
Packit Service 4684c1
"${CLI}" -p "${PORT}" 127.0.0.1 --priority NORMAL:%PROFILE_HIGH --verify-hostname localhost --x509cafile "${CAFILE}" </dev/null >/dev/null ||
Packit Service 4684c1
	fail ${PID} "expected connection to succeed (4)"
Packit Service 4684c1
Packit Service 4684c1
"${CLI}" -p "${PORT}" 127.0.0.1 --priority NORMAL:%PROFILE_ULTRA --verify-hostname localhost --x509cafile "${CAFILE}" </dev/null >/dev/null ||
Packit Service 4684c1
	fail ${PID} "expected connection to succeed (5)"
Packit Service 4684c1
Packit Service 4684c1
"${CLI}" -p "${PORT}" 127.0.0.1 --priority NORMAL:%PROFILE_FUTURE --verify-hostname localhost --x509cafile "${CAFILE}" </dev/null >/dev/null ||
Packit Service 4684c1
	fail ${PID} "expected connection to succeed (6)"
Packit Service 4684c1
Packit Service 4684c1
kill ${PID}
Packit Service 4684c1
wait
Packit Service 4684c1
Packit Service 4684c1
rm -f ${TMPFILE} ${CAFILE} ${CERT}
Packit Service 4684c1
Packit Service 4684c1
exit 0