knub=$KEYS/nub/$kowner/$klabel
}
+runas () {
+ user=$1 service=$2; shift 2
+ ## If the current (effective) user is not USER then reinvoke via `userv',
+ ## as the specified service, with the remaining arguments.
+
+ case $(id -un) in
+ "$user") ;;
+ *) exec userv "$user" "$service" "$@" ;;
+ esac
+}
+
###--------------------------------------------------------------------------
### Input validation functions.
## Compute a hash of the key nub in stdin, and write it to stdout in hex.
## The property `nubid_hash' is used.
- { echo "distorted-keys nubid"; cat -; } |
- openssl dgst -${kprop_nubid_hash-sha256}
+ ## Stupid dance because the output incompatibly grew a filename, in order
+ ## to demonstrate the same idiocy as GNU mumblesum.
+ set _ $({ echo "distorted-keys nubid"; cat -; } |
+ openssl dgst -${kprop_nubid_hash-sha256})
+ echo $2
}
subst () {
case $uservp in
t)
checkword "profile user" "$user"
- userv "$user" cryptop-profile "$label" >$tmp/profile
+ userv "$user" cryptop-profile "$label" >$tmp/profile </dev/null
;;
nil)
$bindir/extract-profile "$label" $ETC/profile.d/ >$tmp/profile