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

Diff of /trunk/Src/wptGPGME.cpp

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

revision 109 by twoaday, Fri Dec 2 07:32:13 2005 UTC revision 181 by twoaday, Tue Mar 14 11:01:22 2006 UTC
# Line 43  void progress_cleanup (progress_filter_s Line 43  void progress_cleanup (progress_filter_s
43    
44  static gpg_keycache_t pub = NULL;  static gpg_keycache_t pub = NULL;
45  static gpg_keycache_t sec = NULL;  static gpg_keycache_t sec = NULL;
 static unsigned int reload = 0;  
46  static char *gpg_secring = NULL;  static char *gpg_secring = NULL;
47    
48    
# Line 105  keycache_update (int is_sec, const char Line 104  keycache_update (int is_sec, const char
104      return err;      return err;
105  }  }
106    
 /* XXX: cache_keyring_names must be called then the GPG homedir changes! */  
107    
108  /* Initialize both cache contexts. Use @pubring for the public  /* Initialize both cache contexts. Use @pubring for the public
109     keyring and @secring for the secret keyring. */     keyring and @secring for the secret keyring. */
# Line 121  keycache_init (const char *pubring, cons Line 119  keycache_init (const char *pubring, cons
119          free_if_alloc (gpg_secring);          free_if_alloc (gpg_secring);
120          gpg_secring = get_gnupg_keyring (0, NO_STRICT);          gpg_secring = get_gnupg_keyring (0, NO_STRICT);
121      }      }
122        
     if (reload) {  
         keycache_release (0);  
         reload = 0;  
     }  
123      p = get_reg_entry (HKEY_CURRENT_USER, "Software\\WinPT", "nKeys");      p = get_reg_entry (HKEY_CURRENT_USER, "Software\\WinPT", "nKeys");
124      if (p && *p != ' ') {      if (p && *p != ' ') {
125          val = atoi (p);          val = atoi (p);
126          free_if_alloc (p);          free_if_alloc (p);      
         memset (&pfx, 0, sizeof (pfx));  
127      }      }
128    
129        memset (&pfx, 0, sizeof (pfx));
130        /* Release old contexts first. */
131        keycache_release (0);
132    
133      err = gpg_keycache_new (&pub);      err = gpg_keycache_new (&pub);
134      if (err)      if (err)
135          return err;          return err;
# Line 142  keycache_init (const char *pubring, cons Line 139  keycache_init (const char *pubring, cons
139      if (!err)      if (!err)
140          err = gpg_keycache_init (pub, NULL, 0);          err = gpg_keycache_init (pub, NULL, 0);
141      if (!err)      if (!err)
142          err = gpg_keycache_init( sec, NULL, 1 );          err = gpg_keycache_init (sec, NULL, 1);
143      if( !err && pubring && *pubring )      if (!err && pubring && *pubring)
144          err = gpg_keycache_prepare( pub, pubring, NULL );          err = gpg_keycache_prepare (pub, pubring, NULL);
145      if( !err && secring && * secring )      if (!err && secring && * secring)
146          err = gpg_keycache_prepare( sec, NULL, secring );          err = gpg_keycache_prepare (sec, NULL, secring);
147      if (!err)      if (!err)
148          gpg_keycache_sync (pub, sec);          gpg_keycache_sync (pub, sec);
149      if (val != 0)      if (val != 0)
# Line 155  keycache_init (const char *pubring, cons Line 152  keycache_init (const char *pubring, cons
152  }  }
153    
154    
 /* If @val = 1 indicate to reload the cache. */  
 void  
 keycache_set_reload (int val)  
 {  
     reload = val;  
 }  
   
   
 /* Return the reload cache flag. */  
 int  
 keycache_get_reload (void)  
 {  
     return reload;  
 }  
   
   
155  /* Return the public cache context if @is_pub is set  /* Return the public cache context if @is_pub is set
156     the secre cache context otherwise. */     the secre cache context otherwise. */
157  gpg_keycache_t  gpg_keycache_t
# Line 196  get_key_from_cache (const char *keyid, g Line 177  get_key_from_cache (const char *keyid, g
177          *r_key = NULL;          *r_key = NULL;
178      cache = keycache_get_ctx (mode);      cache = keycache_get_ctx (mode);
179      if (!cache)      if (!cache)
180          BUG( NULL );          BUG (0);
181      if (!c)      if (!c)
182          err = gpg_keycache_find_key (cache, keyid, 0, r_key);          err = gpg_keycache_find_key (cache, keyid, 0, r_key);
183      else      else
# Line 343  get_gpg_sigstat (gpgme_sigsum_t sum) Line 324  get_gpg_sigstat (gpgme_sigsum_t sum)
324    
325      return gpg_sigstat[sigsum_to_index (sum) % mask];      return gpg_sigstat[sigsum_to_index (sum) % mask];
326  }  }
327    
328    
329    /* Check if the secret keyring contains at least one
330       key with ultimate trust.
331       Return value: 0 on success. */
332    int
333    check_ultimate_trusted_key (void)
334    {
335        struct keycache_s *n;
336    
337        for (n = sec->item; n; n = n->next) {
338            if (n->pubpart &&
339                n->pubpart->key->owner_trust == GPGME_VALIDITY_ULTIMATE)
340            return 0;
341        }
342        return -1;
343    }

Legend:
Removed from v.109  
changed lines
  Added in v.181

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26