#! /bin/sh ### ### List the available recovery keys ### ### (c) 2012 Mark Wooding ### ###----- Licensing notice --------------------------------------------------- ### ### This file is part of the distorted.org.uk key management suite. ### ### distorted-keys is free software; you can redistribute it and/or modify ### it under the terms of the GNU General Public License as published by ### the Free Software Foundation; either version 2 of the License, or ### (at your option) any later version. ### ### distorted-keys is distributed in the hope that it will be useful, ### but WITHOUT ANY WARRANTY; without even the implied warranty of ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ### GNU General Public License for more details. ### ### You should have received a copy of the GNU General Public License ### along with distorted-keys; if not, write to the Free Software Foundation, ### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. set -e case "${KEYSLIB+t}" in t) ;; *) echo >&2 "$0: KEYSLIB unset"; exit 1 ;; esac . "$KEYSLIB"/keyfunc.sh defhelp <&1 "$quis: no recovery keys" else cd $KEYS/recov firstp=t for r in *; do if [ ! -d $r ]; then continue; fi ## Start printing a record for this key. case $firstp in t) firstp=nil ;; nil) echo ;; esac echo "$r" ## Print information about the configured keeper set. echo " keepers" while read k t; do read n hunoz <$KEYS/keeper/$k/meta echo " $k t=$t n=$n" done <$r/keepers ## Print information about the various instances. rcur=$(readlink $r/current) for ri in $r/*; do ## Extract and check the instance number. i=${ri##*/} case "$i" in *[!0-9]*) continue ;; esac ## Start printing a subrecord. echo " instance $i" ## If this is the current instance, mention this. case "$rcur" in $i) echo " current" ;; esac ## Print basic facts about the instance. readmeta $ri/store nubid=$(cat $ri/store/nubid) echo " profile $profile" echo " nubid $nubid" ## Print information about the keepers, including sharing stuff. echo " keepers" for kp in $ri/*.param; do k=${kp##*/}; k=${k%.param} read n hunoz <$KEYS/keeper/$k/meta t=$(sharethresh $kp) echo " $k t=$t n=$n" done ## Print information about secrets protected by this recovery key ## instance. anyp=nil for sf in $(cd $ri; find . -type f -name '*.recov' -print); do s=${sf#./}; s=${s%.recov} case $anyp in nil) anyp=t; echo " secrets" ;; esac echo " $s" done done done fi ###----- That's all, folks --------------------------------------------------