1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
|
#compdef gpg gpgv
local curcontext="$curcontext" state line expl ret=1
typeset -A opt_args
_arguments -C -s -S -A "-*" \
'(-s --sign)'{-s,--sign}'[make a signature]' \
'--clearsign[make a clear text signature]' \
'(-b --detach-sign)'{-b,--detach-sign}'[make a detached signature]' \
'(-e --encrypt)'{-e,--encrypt}'[encrypt data. this option may be combined with --sign]' \
'(-c --symmetric)'{-c,--symmetric}'[encrypt with symmetric cypher only]' \
'--store[store only]' \
'--decrypt[decrypt file or stdin]' \
'--verify[verify a signature]' \
'--verify-files[verify a list of files]' \
'(-f --encrypt-files)'{-f,--encrypt-files}'[encrypt files]' \
'--decrypt-files[decrypt files]' \
'--list-keys[list all keys]' \
'--list-public-keys[list all public keys]' \
'--list-secret-keys[list all secret keys]' \
'--list-sigs[lists keys and signatures]:key attachment:->public-keys' \
'--list-options[modify what the various --list-* commands show]' \
'--check-sigs[list key, signatures and check them]:key attachment:->public-keys' \
'--fingerprint[list all keys with their fingerprints]:key attachment:->public-keys' \
'--list-packets[list only the sequence of packets]' \
'--gen-key[generate a new pair key]' \
'--edit-key[a menu for edit yours keys]:key attachment:->public-keys' \
'--sign-key[sign a key]:key attachment:->public-keys'\
'--lsign-key[sign a key but mark as non-exportable]:key attachment:->public-keys' \
'--nrsign-key[sign a key non-revocably]' \
'--delete-key[remove key from public keyring]:key attachment:->public-keys' \
'--delete-secret-key[remove key from public & private keyring]:key attachment:->secret-keys' \
'--delete-secret-and-public-key:key attachment:->secret-keys' \
'--gen-revoke[generate a revocation certificate]' \
'--desig-revoke[generate a designated revocation certificate]' \
'--export[export all key from all keyrings]' \
'--send-keys[send keys to a keyserver]:key attachment:->public-keyids' \
'--export-all[export all key and not OpenPGP compatible keys]' \
'--export-secret-keys:key attachment:->secret-keys' \
'--export-secret-subkeys:key attachment:->secret-keys' \
'--import[import a gpg key from a file]:_files attachment:_files' \
'--fast-import[import a file without build trustdb]:_files attachment:_files' \
'--recv-keys[receive a list of keys from a keyserver]:key attachment:->public-keyids' \
'--refresh-keys[update all keys from a keyserver]' \
'--search-keys[search for keys on a key server]' \
'--update-trustdb[update the trust database]' \
'--check-trustdb[unattended trust database update]' \
'--fix-trustdb[fix a corrupted trust database]' \
'--export-ownertrust[list the assigned ownertrust values in ASCII format]:file:_files' \
'--import-ownertrust[update the trustdb with a file]:file:_files' \
'--dearmor[de-Armor a file or stdin]' \
'--enarmor[en-Armor a file or stdin]' \
'--print-md[print message digests]:algorithm:->ciphers::file:_files' \
'--print-mds[print message digests]::file:_files' \
'--gen-random:count' --gen-prime \
'--version[print info on program version and supported algorithms]' \
'--warranty[print warranty info]' \
'(-h --help)'{-h,--help}'[display usage information]' \
'(-a --armor)'{-a,--armor}'[create ASCII armored output]' \
'(-o --output)'{-o+,--output}'[write output to file]:output file:_files' \
'(-u --local-user)'{-u+,--local-user}'[use name as the user ID to sign]:user attachment:_users'\
'--default-key[specify default user-id for signatures]:key:->secret-keys' \
'*'{-r+,--recipient}'[specify user to encrypt for]:recipient:->public-keys' \
'--default-recipient[specify default recipient]:recipient:->public-keys' \
'--default-recipient-self[use default key as default recipient]' \
'--no-default-recipient[reset default recipient]' \
'*--encrypt-to[specify recipient]:key:->public-keys' \
'(--encrypt-to)--no-encrypt-to[disable the use of all --encrypt-to keys]' \
'(-q --quiet)*'{-v,--verbose}'[increase amount of output]' \
'(-q --quiet -v --verbose)'{-q,--quiet}'[reduce amount of output]' \
'(-z --compress)'{-z,--compress}'[specify compression level]:compression level:((0\:no\ compression 1\:minimum 2 3 4 5 6\:default 7 8 9\:maximum))' \
'(-t --textmode)'{-t,--textmode}'[use canonical text mode]' \
'(-n --dry-run)'{-n,--dry-run}"[don't make any changes]" \
'(-i --interactive --batch)'{-i,--interactive}'[prompt before overwriting files]' \
'(-i --interactive --no-batch)--batch[use batch mode]' \
'--no-tty[never output to tty]' \
'(--batch)--no-batch[disable batch mode]' \
'(--no)--yes[assume "yes" on most questions]' \
'(--yes)--no[assume "no" on most questions]' \
'--default-cert-check-level:check level:((0\:no\ claim 1\:no\ verification 2\:casual\ verification 3\:extensive\ verification))' \
'--trusted-key[assume that the specified key is trustworthy]:long key id' \
'--always-trust[skip key validation]' \
'--keyserver[specify key server to use]:key server:_hosts' \
'--keyserver-options[specify keyserver options]:options' \
'--import-options[specify options for importing keys]:options' \
'--export-options[specify options for exporting keys]:options' \
--show-photos --no-show-photos '--photo-viewer:command:_command_names -e'\
--exec-path:path:_dir_list' \
--show-keyring[display keyring name when listing keys]' \
'--keyring=[add specified file to list of keyrings]:file:_files' \
'--secret-keyring[add specified file to list of secret keyrings]:file:_files' \
--homedir:directory:_directories \
'--charset:character set:(iso-8859-1 iso-8859-2 koi8-r utf-8)' \
'--utf8-strings' '--no-utf8-strings[arguments are not in UTF8]' \
'(--no-options)--options[specify file to read options from]:options file:_files' \
"(--options)--no-options[don't read options file]" \
--{status,logger,attribute,passphrase,command}-fd:file\ descriptor:_file_descriptors \
'--sk-comments[include secret key comments when exporting keys]' \
'(--emit-version)--no-version[omit version string in clear text signatures]' \
'(--no-version)--emit-version[force writing of version string in clear text signatures]' \
'(-N --notation-data)'{-N,--notation-data}'[put parameter in signature]:name=value' \
'(--no-show-notation)--show-notation[show key signature notations]' \
"(--show-notation)--no-show-notation[don't show key signature notations]" \
'--set-policy-url:policy URL' \
'(--no-show-policy-url)--show-policy-url' \
"(--show-policy-url)--no-show-policy-url" \
'--set-filename[specify file which is stored in messages]:file:_files' \
'(--for-your-eyes-only)--for-your-eyes-only' \
"(--for-your-eyes-only)--no-for-your-eyes-only" \
--completes-needed:number --marginals-needed:number --max-cert-depth:number \
--{{,disable-,s2k-}cipher,{,s2k-,cert-}digest,disable-pubkey}'-algo:cipher:->ciphers' \
--s2k-mode:value --simple-sk-checksum \
'--compress-algo:compression algorithm:((0\:disable\ compression 1\:zlib 2\:rfc1950))' \
--no-sig-cache --no-sig-create-check --{,no-}auto-check-trustdb --throw-keyid \
--not-dash-escaped --escape-from-lines --use-agent \
--rfc1991 --{,no-}pgp2 --{,no}pgp6 --{,no}pgp7 --openpgp \
--{,no-}force-v3-sigs --{,no}force-v4-certs --force-mdc --disable-mdc \
--{,no-}allow-non-selfsigned-uid --allow-freeform-uid \
--ignore-time-conflict --ignore-valid-from \
--ignore-crc-error --ignore-mdc-error --lock-once --lock-multiple --lock-never \
--no-random-seed-file --no-verbose --no-greeting --no-secmem-warning \
--no-permission-warning --no-mdc-warning --no-armor --no-default-keyring \
--skip-verify --with-colons --with-key-data --with-fingerprint \
--fast-list-mode --fixed-list-mode --list-only --no-literal --set-filesize \
--emulate-md-encode-bug --show-session-key --override-session-key:string \
--{,no-}ask-sig-expire --{,no}ask-cert-expire --{,no}expert \
--merge-only --allow-secret-key-import --try-all-secrets \
--enable-special-filenames --no-expensive-trust-checks --group:name=value \
--preserve-permissions --personal-{cipher,digest,compress}-preferences:string \
--default-preference-list:string \
'*:args:->args' && ret=0
if [[ $state = args ]]; then
if (( ${+opt_args[--export]} || ${+opt_args[--list-keys]} || ${+opt_args[--list-public-keys]} )); then
state=public-keys
elif (( ${+opt_args[--list-secret-keys]} )); then
state=secret-keys
else
_files && return
fi
fi
# We need to keep some arguments to get a consistent list of keys
# etc.
local -a needed
integer krind=${words[(I)--keyring(|=*)]}
needed=(${words[(r)--no-default-keyring]})
if (( krind )); then
# We have a --keyring option. We can't be completing its
# argument because that was handled above, so it must be complete.
if [[ $words[krind] = --keyring ]]; then
if [[ -n $words[krind+1] ]]; then
needed+=(--keyring=$words[krind+1])
fi
else
needed+=($words[krind])
fi
fi
case "$state" in
public-keys)
_wanted public-keys expl 'public key' \
compadd ${${(Mo)$(_call_program public-keys gpg $needed --list-public-keys --list-options no-show-photos 2>/dev/null):%<*>}//(<|>)/} && return
;;
secret-keys)
_wanted secret-keys expl 'secret key' compadd \
${${(Mo)$(_call_program secret-keys gpg $needed --list-secret-keys --list-options no-show-photos 2>/dev/null):%<*>}//(<|>)/} && return
;;
ciphers)
_wanted ciphers expl cipher compadd \
${${(s.,.)${(M)${(f)"$(_call_program ciphers gpg $needed --version)"}:#Cipher*}#*:}# } && return
;;
(public-keyids)
_wanted public-keys expl 'public keyid' \
compadd ${${${(M)${(f)"$(_call_program public-keyids gpg $needed --list-public-keys --list-options no-show-photos 2>/dev/null)"}:%pub*}#pub */}%% *} && return
;;
esac
return ret
|