diff --git a/src/freedombone-controlpanel-user b/src/freedombone-controlpanel-user index 66a2dda6..a2328cd0 100755 --- a/src/freedombone-controlpanel-user +++ b/src/freedombone-controlpanel-user @@ -375,19 +375,30 @@ function add_gpg_key { trap "rm -f $data" 0 1 2 5 15 dialog --title $"Add someone's PGP/GPG key" \ --backtitle $"Freedombone User Control Panel" \ - --inputbox $"Enter their email address below" 8 60 2>$data + --inputbox $"Enter their email address or Key ID below" 8 60 2>$data sel=$? case $sel in 0) ADD_EMAIL_ADDRESS=$(<$data) if [ ${#ADD_EMAIL_ADDRESS} -gt 2 ]; then + + address_is_valid= + if [[ $ADD_EMAIL_ADDRESS == *"@"* && $ADD_EMAIL_ADDRESS == *"."* ]]; then + address_is_valid=1 + else + if [[ $ADD_EMAIL_ADDRESS == "0x"* ]]; then + address_is_valid=1 + fi + fi + + if [ $address_is_valid ]; then clear gpg --search-keys $ADD_EMAIL_ADDRESS else dialog --title $"Unrecognised email address" \ --backtitle $"Freedombone User Control Panel" \ - --msgbox $"This doesn't look like an email address" 6 50 + --msgbox $"This doesn't look like an email address or key ID" 6 50 fi fi ;;