From f97dd58a298cf337a1fffa00d3733256d21d2d8f Mon Sep 17 00:00:00 2001 From: Daniel Kahn Gillmor Date: Thu, 6 May 2010 22:25:28 -0400 Subject: reporting new expiration date when key expiry is updated (closes MS #2291) --- src/share/mh/set_expire | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) (limited to 'src/share') diff --git a/src/share/mh/set_expire b/src/share/mh/set_expire index 68a8dfd..f9a5507 100644 --- a/src/share/mh/set_expire +++ b/src/share/mh/set_expire @@ -19,20 +19,25 @@ set_expire() { local extendBy local keyID -if [ -z "$1" ] ; then - cat <&2 -Must specify expiration. The possibilities are: +local formatMsg=' +The possibilities are: 0 = key does not expire = key expires in n days w = key expires in n weeks m = key expires in n months - y = key expires in n years -EOF - failure + y = key expires in n years' + + +if [ -z "$1" ] ; then + failure "Must specify expiration.$formatMsg" fi extendBy="$1" shift +if ! <<<"$extendBy" egrep -q '^[[:digit:]]+[wmy]?$' ; then + failure "'$extendBy' is not a valid expiration date.$formatMsg" +fi + keyID=$(check_key_input "$@") if [ "$PROMPT" != "false" ] ; then @@ -55,6 +60,16 @@ EOF update_pgp_pub_file +if [ 0 == "$extendBy" ] ; then + log info "Key ${keyID} no longer expires." +else + if expiry=$(gpg_host_list_keys "${keyID}" | grep ^pub: | head -n1 | cut -f7 -d: ) ; then + log info "Key ${keyID} now expires at $(date '+%F %T' --date "1970-01-01 0:00 UTC + ${expiry} seconds")" + else + log error "Failed to retrieve new expiration date for key ${keyID}" + fi +fi + log info <