#! /bin/sh
# This source code is released into the public domain.

. /usr/local/share/lfacme/init.sh

# begin, done or failed
ACTION=$1
# ACME method, must be http-01.
METHOD=$2
# The full domain name we're authorising.
DOMAIN=$3
# Token name.
TOKEN=$4
# The token value we need to create.
AUTH=$5

if [ "$#" -ne 5 ]; then
	_fatal "missing arguments"
fi

if [ "$METHOD" != "tls-alpn-01" ]; then
	exit 1
fi

_UALPN="$(_findbin ualpn $LFACME_UALPN)"

case "$ACTION" in
	begin)
		_verbose "creating validation token for %s" "$DOMAIN"
		status="$($_UALPN <<EOF
auth $DOMAIN $AUTH
EOF
)"
		if [ "$status" = "OK" ]; then
			exit 0
		else
			exit 1
		fi
		;;

	done|failed)
		_verbose "deleting validation token for %s" "$DOMAIN"
		status="$($_UALPN <<EOF
unauth $DOMAIN
EOF
)"
		if [ "$status" = "OK" ]; then
			exit 0
		else
			exit 1
		fi
		;;

	*)
		_fatal "unknown action: %s" "$ACTION"
		;;
esac
