7 public
) reg
="pub" list
="--list-public-keys" ;;
8 private
) reg
="sec" list
="--list-secret-keys" ;;
11 Linux
) datef
="date --date=@" ;;
12 OpenBSD
) datef
="date -r " ;;
14 ids
=$
(gpg2
$list --with-colons |
awk -F: "/^$reg.*\$/ {print \$5}")
16 for each_id
in $ids ;do
17 name_date
=$
(gpg2
$list --with-colons $each_id |\
18 awk -v datef
="$datef" -F: '/^uid:.*$/\
19 {(""datef""$6" +\"%a %d, %b %Y\" ")|\
20 getline formated_date;
21 print $10 " " formated_date}')
22 echo $each_id $name_date
24 selected_key
=$
(echo -e "$formated" | dmenu
-l 10 |
awk '{print $1}')
25 if [[ ! $selected_key ]]; then exit; fi
34 Name-Real: Hassan Afify
35 Name-Email: hassan@afify.dev" | gpg2
--gen-key --batch
39 pub_or_pri
=$
(echo -e "public\nprivate" | dmenu
-p 'Choose key type: ')
41 public
)select_key public
42 gpg2
--delete-key $selected_key ;;
43 private
)select_key private
44 gpg2
--delete-secret-keys $selected_key
45 d_pub
=$
(echo -e "yes\nno" | dmenu
-p 'delete public key also ? ')
46 if [[ "$d_pub" == "yes" ]]; then gpg2
--delete-key $selected_key; fi ;;
52 gpg2
--list-keys --keyid-format LONG
--fingerprint --with-keygrip
53 gpg2
--list-secret-keys --keyid-format LONG
--fingerprint --with-keygrip
57 pub_or_pri
=$
(echo -e "public\nprivate" | dmenu
-p 'Choose key type: ')
59 public
) select_key public
60 gpg2
--armor --export $selected_key ;;
61 private
) select_key private
62 gpg2
--export-secret-keys $selected_key ;;
68 gpg2
--send-keys $selected_key
72 gpg2
--keyserver keys.gnupg.net
--search-key $1
81 # if [[ -f $1 ]]; then
84 # # TODO encrypt with many public keys
85 # gpg2--recipient $pub_id --encrypt $of.bz2
86 # # gpg2--yes --batch --passphrase=$pass -c $filename
87 # # gpg2--encrypt --recipient 'admin@example.com' --output confidential.txt.enc public.txt
92 # if [[ -f $1 ]]; then
93 # # TODO files end with .gpg
97 # gpg2--output $output --decrypt $filename
98 # # gpg2--yes --batch --passphrase=$pass $filename
99 # # gpg2--decrypt --output public.txt confidential.txt.enc
114 gpg-connect-agent reloadagent
/bye
119 gpg2
--edit-key $selected_key
124 gen
) create_new_key
;;
126 restart
) restart_agent
;;
127 public
) select_key public
128 echo $selected_key ;;
129 private
) select_key private
130 echo $selected_key ;;
131 delete
) delete_key
;;
133 export) export_key
$2 ;;
134 upload
) upload_to_server
;;
135 find) find_by_email
$2 ;;
137 # encrypt) encrypt_file $2 ;;
138 # decrypt) decrypt_file $2 ;;
139 # sign) sign_file $2 ;;
140 # vertify) vertify_file $2 ;;