--- trunk/src/OEDlgVerify.c 2006/04/13 07:41:30 18 +++ trunk/src/OEDlgVerify.c 2006/06/04 10:12:47 19 @@ -133,19 +133,54 @@ } +static void +set_info_fields (HWND dlg, gpgme_data_t text) +{ + gpgme_data_t in; + char date[64], buf[256], *p; + time_t t = time (NULL); + int n; + + strncpy (date, ctime (&t), sizeof (date)-1); + date[strlen (date)-1]=0; + + _snprintf (buf, sizeof (buf)-1, "BEGIN PGP SIGNED MESSAGE [%s]", date); + SetDlgItemText (dlg, IDC_VERIFY_BEGININF, buf); + _snprintf (buf, sizeof (buf)-1, "END PGP SIGNED MESSAGE [%s]", date); + SetDlgItemText (dlg, IDC_VERIFY_ENDINF, buf); + + if (!text) + return; + + gpgme_data_rewind (text); + gpgme_data_new (&in); + for (;;) { + n = gpgme_data_read (text, buf, sizeof (buf)-1); + if (n < 1) + break; + gpgme_data_write (in, buf, n); + } + gpgme_data_write (in, "\0", 1); + p = gpgme_data_release_and_get_mem (in, &n); + SetDlgItemText (dlg, IDC_VERIFY_SIGTEXT, p); + gpgme_free (p); +} + + /* Dialog box procedure for the verify process. */ BOOL CALLBACK verify_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam) { - gpgme_signature_t sig; + verify_ctx_t ctx; switch (msg) { case WM_INITDIALOG: - sig = (gpgme_signature_t)lparam; - assert (sig); + ctx = (verify_ctx_t)lparam; + assert (ctx); SetDlgItemText (dlg, IDOK, _("&OK")); SetWindowText (dlg, _("Signature Verification")); - set_sig_info (dlg, sig); + set_sig_info (dlg, ctx->sig); + set_info_fields (dlg, ctx->text); SetForegroundWindow (dlg); break;