#compdef kvno
local curcontext="$curcontext" state line ret=1
_arguments -C \
'-c[specify credentials cache to use]:cache:_files' \
'-e[specify encryption type]:encryption type' \
'-q[suppress printing]' \
'(- :)-h[display help information]' \
'-P[acquire credentials for the principal during S4U2Self]' \
'-S[specify the service name of the principal]:service' \
'-U[specify user for S4U2Self]:user:_users' \
':principal:->principal' && ret=0
if [[ $state = principal ]]; then
if compset -P '*/'; then
_hosts && ret=0
else
_alternative \
'users:user:_users' \
'services:service:compadd -S/ host' && ret=0
fi
fi
return ret