157 |
} |
} |
158 |
|
|
159 |
|
|
160 |
|
static listview_ctrl_t |
161 |
|
on_init_dialog (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam) |
162 |
|
{ |
163 |
|
listview_ctrl_t lv; |
164 |
|
gpg_keycache_t kc, sec_kc; |
165 |
|
int nkeys = 0; |
166 |
|
|
167 |
|
SetWindowText (dlg, _("Signing")); |
168 |
|
kc = keycache_get_ctx (KEYCACHE_PUB); |
169 |
|
if (!kc) |
170 |
|
BUG (0); |
171 |
|
sec_kc = keycache_get_ctx (KEYCACHE_PRV); |
172 |
|
if (!sec_kc) |
173 |
|
BUG (0); |
174 |
|
|
175 |
|
nkeys = count_useable_seckeys (sec_kc); |
176 |
|
if (nkeys < 1) { |
177 |
|
msg_box (dlg, _("No useable signing key found"), _("Signing"), MB_ERR); |
178 |
|
return NULL; |
179 |
|
} |
180 |
|
else if (nkeys == 1) { |
181 |
|
one_key_proc (dlg); |
182 |
|
return NULL; |
183 |
|
} |
184 |
|
lv = keylist_load (GetDlgItem (dlg, IDC_SIGN_KEYLIST), kc, sec_kc, |
185 |
|
KEYLIST_SIGN, KEY_SORT_USERID); |
186 |
|
center_window (dlg, NULL); |
187 |
|
SetForegroundWindow (dlg); |
188 |
|
return lv; |
189 |
|
} |
190 |
|
|
191 |
|
|
192 |
/* Dialog box procedure for clipboard signing. */ |
/* Dialog box procedure for clipboard signing. */ |
193 |
BOOL CALLBACK |
BOOL CALLBACK |
194 |
clip_sign_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam) |
clip_sign_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam) |
195 |
{ |
{ |
196 |
static listview_ctrl_t lv = NULL; |
static listview_ctrl_t lv = NULL; |
|
gpg_keycache_t kc, sec_kc; |
|
197 |
gpgme_ctx_t ctx; |
gpgme_ctx_t ctx; |
198 |
gpgme_error_t err; |
gpgme_error_t err; |
199 |
passphrase_cb_s pwd; |
passphrase_cb_s pwd; |
201 |
int rc = 0, no_signer = 0; |
int rc = 0, no_signer = 0; |
202 |
char *signer = NULL; |
char *signer = NULL; |
203 |
|
|
204 |
switch( msg ) { |
switch (msg) { |
205 |
case WM_INITDIALOG: |
case WM_INITDIALOG: |
206 |
SetWindowText (dlg, _("Signing")); |
lv = on_init_dialog (dlg, msg, wparam, lparam); |
207 |
|
if (!lv) |
208 |
kc = keycache_get_ctx (KEYCACHE_PUB); |
EndDialog (dlg, TRUE); |
|
if (!kc) |
|
|
BUG( NULL ); |
|
|
sec_kc = keycache_get_ctx (KEYCACHE_PRV); |
|
|
if (!sec_kc) |
|
|
BUG (dlg); |
|
|
if (count_useable_seckeys (sec_kc) == 1) { |
|
|
one_key_proc (dlg); |
|
|
EndDialog (dlg, TRUE); |
|
|
return FALSE; |
|
|
} |
|
|
lv = keylist_load (GetDlgItem (dlg, IDC_SIGN_KEYLIST), kc, sec_kc, |
|
|
KEYLIST_SIGN, KEY_SORT_USERID); |
|
|
center_window (dlg, NULL); |
|
|
SetForegroundWindow (dlg); |
|
209 |
return FALSE; |
return FALSE; |
210 |
|
|
211 |
case WM_DESTROY: |
case WM_DESTROY: |