/[winpt]/trunk/Src/WinPT.cpp
ViewVC logotype

Diff of /trunk/Src/WinPT.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 197 by twoaday, Mon Apr 10 07:38:06 2006 UTC revision 248 by twoaday, Fri Jul 28 11:11:09 2006 UTC
# Line 43  Line 43 
43  #include "wptUTF8.h"  #include "wptUTF8.h"
44    
45  void remove_crit_file_attrs (const char *fname, int force);  void remove_crit_file_attrs (const char *fname, int force);
46    BOOL user_is_admin (void);
47    
48    /* Global variables. */
49  HINSTANCE glob_hinst;   /* global instance for the dialogs */  HINSTANCE glob_hinst;   /* global instance for the dialogs */
50  HWND glob_hwnd;         /* global window handle for the dialogs */  HWND glob_hwnd;         /* global window handle for the dialogs */
 HWND activ_hwnd;  
51  int scard_support = 0;  int scard_support = 0;
52  int debug = 0;  int debug = 0;
53  int mobile_mode_active = 0;  int mobile_mode_active = 0;
54  int gpg_read_only = 0;  int gpg_read_only = 0;
55    int admin_user = 0;
56  char gpgver[3];  char gpgver[3];
57    /* End */
58    
59    
60  /* Load the key cache and rebuild the signature cache. */  /* Load the key cache and rebuild the signature cache. */
# Line 65  update_keycache (HWND hwnd) Line 67  update_keycache (HWND hwnd)
67      rcs.tr_update = 1;      rcs.tr_update = 1;
68      DialogBoxParam (glob_hinst, (LPCSTR)IDD_WINPT_KEYCACHE, hwnd,      DialogBoxParam (glob_hinst, (LPCSTR)IDD_WINPT_KEYCACHE, hwnd,
69                      keycache_dlg_proc, (LPARAM)&rcs);                      keycache_dlg_proc, (LPARAM)&rcs);
70        /* XXX: the dialog return 0 when an error occurs.
71                in this case figure out if the gpg env is OK
72                and supress dialogs to configure gpg. */
73  }  }
74    
75    
# Line 213  check_default_key (gpg_keycache_t kc) Line 218  check_default_key (gpg_keycache_t kc)
218          err = gpg_keycache_find_key (kc, defkey, 0, &key);          err = gpg_keycache_find_key (kc, defkey, 0, &key);
219      else      else
220          msg_box (NULL, _("No useable secret key found."),          msg_box (NULL, _("No useable secret key found."),
221                   _("WinPT Error"), MB_ERR);                   _("WinPT Warning"), MB_WARN);
222      free_if_alloc (defkey);      free_if_alloc (defkey);
223      return err? -1 : 0;      return err? -1 : 0;
224  }  }
# Line 288  check_crypto_engine (void) Line 293  check_crypto_engine (void)
293     do not show any errors. */     do not show any errors. */
294  static int  static int
295  load_keyserver_conf (int quiet)  load_keyserver_conf (int quiet)
296  {  {    
     char *buf;  
297      const char *t, *conf;      const char *t, *conf;
298        char *buf;
299      int rc;      int rc;
300    
301      /* Create $APPDATA\winpt if needed. */      /* Create $APPDATA\winpt if needed. */
# Line 376  enable_mobile_mode (void) Line 381  enable_mobile_mode (void)
381      reg_prefs.expert = 0;      reg_prefs.expert = 0;
382      reg_prefs.kserv_conf = m_strdup ("keyserver.conf");      reg_prefs.kserv_conf = m_strdup ("keyserver.conf");
383      reg_prefs.no_zip_mmedia = 1;      reg_prefs.no_zip_mmedia = 1;
     reg_prefs.use_tmpfiles = 1;  
384      reg_prefs.word_wrap = 80;      reg_prefs.word_wrap = 80;
385      reg_prefs.use_viewer = 0; /* XXX */      reg_prefs.use_viewer = 0; /* XXX */
386      return 0;      return 0;
# Line 417  winpt_debug_msg (void) Line 421  winpt_debug_msg (void)
421  }  }
422    
423    
424    /* Search for insecure ElGamal keys and return the
425       number of founded keys. */
426    static int
427    count_insecure_elgkeys (void)
428    {
429        gpg_keycache_t pc;
430        gpgme_key_t key;
431        int n = 0;
432    
433        pc = keycache_get_ctx (1);
434        while (!gpg_keycache_next_key (pc, 0, &key)) {
435            if (key->subkeys->pubkey_algo == GPGME_PK_ELG)
436                n++;
437        }
438        gpg_keycache_rewind (pc);
439        return n;
440    }
441    
442    
443  /* Main entry point. */  /* Main entry point. */
444  int WINAPI  int WINAPI
445  WinMain (HINSTANCE hinst, HINSTANCE hprev, LPSTR cmdline, int showcmd)  WinMain (HINSTANCE hinst, HINSTANCE hprev, LPSTR cmdline, int showcmd)
# Line 425  WinMain (HINSTANCE hinst, HINSTANCE hpre Line 448  WinMain (HINSTANCE hinst, HINSTANCE hpre
448      HACCEL accel_tab;      HACCEL accel_tab;
449      MSG msg;      MSG msg;
450      HWND hwnd = NULL;      HWND hwnd = NULL;
451      /*WORD ver[3], ptdver[4];*/      WORD ver[3], ptdver[4];
452        const char *s;
453      int rc, ec, created = 0;      int rc, ec, created = 0;
454      int first_start = 0, start_gpgprefs = 0;      int first_start = 0, start_gpgprefs = 0;
455      int winpt_inst_found = 0;      int winpt_inst_found = 0;
456      int start_manager = 0;      int start_manager = 0;    
     const char *s;  
457    
458      glob_hinst = hinst;      glob_hinst = hinst;
459      if (cmdline && stristr (cmdline, "--stop")) {      if (cmdline && stristr (cmdline, "--stop")) {
# Line 445  WinMain (HINSTANCE hinst, HINSTANCE hpre Line 468  WinMain (HINSTANCE hinst, HINSTANCE hpre
468      debug = 1;      debug = 1;
469      #endif      #endif
470    
     /* XXX  
471      get_file_version ("WinPT.exe", &ver[0], &ver[1], &ver[2], &ver[3]);      get_file_version ("WinPT.exe", &ver[0], &ver[1], &ver[2], &ver[3]);
472      get_file_version ("PTD.dll", &ptdver[0], &ptdver[1],      ec = get_file_version ("PTD.dll", &ptdver[0], &ptdver[1],
473                                   &ptdver[2], &ptdver[3]);                                   &ptdver[2], &ptdver[3]);
474            
475      if (ptdver[0] != ver[0] || ptdver[1] != ver[1]|| ptdver[2] != ver[2]) {      if (!ec && (ptdver[0] != ver[0] || ptdver[1] != ver[1]|| ptdver[2] != ver[2])) {
476          log_box (_("WinPT Error"), MB_ERR,          log_box (_("WinPT Error"), MB_ERR,
477                   _("The PTD.dll file has a different version than WinPT.exe\n"                   _("The PTD.dll file has a different version than WinPT.exe\n"
478                     "Please update the PTD.dll to version %d.%d.%d"),                     "Please update the PTD.dll to version %d.%d.%d"),
479                     ver[0], ver[1], ver[2]);                     ver[0], ver[1], ver[2]);
480          return 0;          return 0;
481      }      }
     */  
482    
483      if (gpg_md_selftest ()) {      if (gpg_md_selftest ()) {
484          msg_box (NULL, _("Cryptographic selftest failed."),          msg_box (NULL, _("Cryptographic selftest failed."),
# Line 484  WinMain (HINSTANCE hinst, HINSTANCE hpre Line 505  WinMain (HINSTANCE hinst, HINSTANCE hpre
505            
506      set_default_keyserver ();      set_default_keyserver ();
507      load_gettext ();      load_gettext ();
508        admin_user = user_is_admin ();
509    
510      if (!mobile_mode_active) {      if (!mobile_mode_active) {
511          regist_inst_gnupg (1);          regist_inst_gnupg (1);
# Line 497  WinMain (HINSTANCE hinst, HINSTANCE hpre Line 519  WinMain (HINSTANCE hinst, HINSTANCE hpre
519    
520      if (!created) {      if (!created) {
521          memset (&reg_prefs, 0, sizeof (reg_prefs));          memset (&reg_prefs, 0, sizeof (reg_prefs));
         reg_prefs.use_tmpfiles = 1; /* default */  
522          reg_prefs.fm.progress = 0; /* XXX: fix the bug and enable it again */          reg_prefs.fm.progress = 0; /* XXX: fix the bug and enable it again */
523          get_reg_winpt_prefs (&reg_prefs);          get_reg_winpt_prefs (&reg_prefs);
524          gnupg_load_config ();          gnupg_load_config ();
# Line 535  WinMain (HINSTANCE hinst, HINSTANCE hpre Line 556  WinMain (HINSTANCE hinst, HINSTANCE hpre
556              }              }
557          }          }
558          else {          else {
559              msg_box (NULL, _("GPG home directory could not be determited."),              msg_box (NULL, _("GPG home directory could not be determined."),
560                       _("WinPT Error"), MB_ERR);                       _("WinPT Error"), MB_ERR);
561              goto start;              goto start;
562          }          }
# Line 560  WinMain (HINSTANCE hinst, HINSTANCE hpre Line 581  WinMain (HINSTANCE hinst, HINSTANCE hpre
581              ec = msg_box (NULL,              ec = msg_box (NULL,
582                  _("Could not access and/or find the public and secret keyring.\n"                  _("Could not access and/or find the public and secret keyring.\n"
583                    "If this is an accident, quit the program and fix it.\n\n"                    "If this is an accident, quit the program and fix it.\n\n"
584                    "Continue if you want that WinPT offers you more choices.\n"),                    "Continue if you want WinPT to offer you more choices.\n"),
585                    "WinPT", MB_INFO|MB_YESNO);                    "WinPT", MB_INFO|MB_YESNO);
586              if (ec == IDYES)              if (ec == IDYES)
587                  first_start = 1;                  first_start = 1;
# Line 725  start: Line 746  start:
746              msg_box (hwnd, _("The keycache was not initialized or is empty.\n"              msg_box (hwnd, _("The keycache was not initialized or is empty.\n"
747                               "Please check your GPG config (keyrings, pathes...)"),                               "Please check your GPG config (keyrings, pathes...)"),
748                               _("WinPT Error"), MB_ERR);                               _("WinPT Error"), MB_ERR);
749              ec = msg_box (NULL, _("It seems that GPG is not set properly.\n"              ec = msg_box (NULL, _("It seems that GPG is not configured properly.\n"
750                                    "Do you want to start the GPG preferences dialog?"),                                    "Do you want to start the GPG preferences dialog?"),
751                              "WinPT", MB_INFO|MB_YESNO);                              "WinPT", MB_INFO|MB_YESNO);
752              if (ec == IDYES) {              if (ec == IDYES) {

Legend:
Removed from v.197  
changed lines
  Added in v.248

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26