X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/distorted-keys/blobdiff_plain/c47f2aba7d705252c660ba1ad0931fbb93122d80..37ba6d05cc2a4214ff2d447b26a7d6c98322842c:/keys.reveal diff --git a/keys.reveal b/keys.reveal index a93ec90..9e18879 100755 --- a/keys.reveal +++ b/keys.reveal @@ -28,19 +28,15 @@ case "${KEYSLIB+t}" in t) ;; *) echo >&2 "$0: KEYSLIB unset"; exit 1 ;; esac . "$KEYSLIB"/keyfunc.sh defhelp <&2 "$quis: stdin is a terminal"; exit 1; fi ;; - 3) ;; - *) usage_err ;; -esac +case $# in 2) ;; *) usage_err ;; esac recov=$1 keeper=$2; shift 2 checklabel "recovery key" "$recov" case "$recov" in @@ -65,27 +61,10 @@ fi ## Grab the key, because we'll need to read it several times. mktmp -cat -- "$@" >$tmp/secret +cat >$tmp/secret ## Read the threshold from the recovery metadata. -read param <$KEYS/recov/$recov/$keeper.param -case "$param" in - shamir-params:*) ;; - *) - echo >&2 "$quis: secret sharing parameter file damaged (wrong header)" - exit 1 - ;; -esac -t=";${param#*:}" -case "$t" in - *";t="*) ;; - *) - echo >&2 "$quis: secret sharing parameter file damaged (missing t)" - exit 1 - ;; -esac -t=${t#*;t=} -t=${t%%;*} +t=$(sharethresh $KEYS/recov/$recov/$keeper.param) ## Find out which keeper index it corresponds to. read n hunoz <$KEYS/keeper/$keeper/meta @@ -133,7 +112,7 @@ if [ $n -lt $t ]; then echo >&2 "$quis: share $i revealed; $(( $t - $n )) more required" else cat $KEYS/recov/$recov/$keeper.param $keeper.*.share >$keeper.shares - shamir recover <$keeper.shares >nub.new + $bindir/shamir recover <$keeper.shares >nub.new c_sysprepare $KEYS/recov/$recov/store nubbin=$(nubid