#!/bin/sh

. shell-error

[ -n "$(type -p kadmin.local)" ] || fatal "kadmin.local not found"

#---------------------------------------------------------------
getprinc()
{
    kadmin.local -q "getprinc $1"
}

hasprinc()
{
    getprinc $1 2>/dev/null |grep -q ^Principal
}

delprinc()
{
    kadmin.local -q "delprinc -force $1"
}

addprinc()
{
    kadmin.local -q "addprinc -randkey $1"
}

changepw()
{
    printf '%s\n%s' $2 $2 |kadmin.local -q "cpw $1"
}

ktadd()
{
    kadmin.local -q "ktadd -e des-cbc-crc:normal -k $1 $2"
}

genkeytab()
{
    local keytab="$1"
    local hostname="$2"
    shift; shift
    
    for p in nfs cifs host; do
	princ=$p/$hostname
	if hasprinc $princ; then
	    delprinc $princ
	fi
	addprinc $princ
	ktadd $keytab $princ
    done
}
