HEX
Server: Apache/2.4.29 (Ubuntu)
System: Linux bareserver 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64
User: root (0)
PHP: 7.2.24-0ubuntu0.18.04.17
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
File: //lib/cryptsetup/scripts/decrypt_openct
#!/bin/sh

#check_reader() {
#    readerfound=0
#
#    readertmp=$(/usr/bin/openct-tool list 2>&1)
#    if [ $? = 0 ] ; then
#        readerfound=1
#    fi
#}

wait_reader() {
#    check_reader
    echo "Waiting for Smart Card reader..." >&2
    /usr/bin/openct-tool rwait >/dev/null 2>&1
    if [ $? != 0 ]; then
        echo 'Failed to find Smart Card reader!' >&2
    fi
#    if [ $readerfound = 0 ] ; then
#        tries=0
#        while [ $readerfound == 0 -a $tries -lt 60 ] ; do
#            echo "Waiting for Smart Card reader..." >&2
#            sleep 1
#            check_reader
#            tries=$(($tries + 1))
#        done
#        if [ $readerfound = 0 ] ; then
#            echo 'Failed to find Smart Card reader!' >&2
#            exit 1
#        fi
#    fi
}

wait_card() {
    echo "Waiting for Smart Card..." >&2
    /usr/bin/openct-tool wait >/dev/null 2>&1
    if [ $? != 0 ]; then
        echo 'Failed to find Smart Card!' >&2
    fi
}

/usr/sbin/openct-control init
wait_reader
wait_card

# Due to a bug in openct, the --label does not work on data objects, means,
# all data objects have by default the label 'pkcs15-init', that's why we are
# setting the label manually if none is configured by the user.

if [ -z "$1" ] || [ "$1" = "none" ] ; then
	LABEL="pkcs15-init"
else
	LABEL="$1"
fi

if [ -x /bin/plymouth ] && plymouth --ping; then
	# Get pin number from plymouth
	/usr/bin/pkcs15-tool --read-data-object $LABEL --pin "$(plymouth ask-for-password --prompt "Enter pin for $crypttarget ($cryptsource): ")" -o /proc/self/fd/3 3>&1 1>/dev/null 2>&1
else
	# Interactive call, user enters pin
	/usr/bin/pkcs15-tool --read-data-object $LABEL -o /proc/self/fd/3 3>&1 1>/dev/null 2>&1
fi

exit $?