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

Diff of /trunk/Src/wptKeylist.cpp

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

revision 19 by twoaday, Mon Jan 31 11:02:21 2005 UTC revision 20 by twoaday, Wed Jul 27 11:17:22 2005 UTC
# Line 62  struct key_array_s { Line 62  struct key_array_s {
62      int checked;      int checked;
63  };  };
64    
 static int keylist_add_key( listview_ctrl_t lv, int mode, gpgme_key_t key );  
65  static int find_secret_key( gpgme_key_t key );  static int find_secret_key( gpgme_key_t key );
66    
67    
# Line 185  get_key_size( gpgme_key_t key, int keyid Line 184  get_key_size( gpgme_key_t key, int keyid
184      n = gpgme_key_count_items( key, GPGME_ATTR_KEYID );      n = gpgme_key_count_items( key, GPGME_ATTR_KEYID );
185      if( n > 1 ) {          if( n > 1 ) {    
186          size_sub = gpgme_key_get_ulong_attr( key, GPGME_ATTR_LEN, NULL, n-1 );          size_sub = gpgme_key_get_ulong_attr( key, GPGME_ATTR_LEN, NULL, n-1 );
187          _snprintf( size_id, sizeof size_id - 1, "%d/%d", size_main, size_sub );          _snprintf( size_id, sizeof (size_id) - 1, "%d/%d", size_main, size_sub );
188          return size_id;          return size_id;
189      }      }
190      _snprintf( size_id, sizeof size_id - 1, "%d", size_main );      _snprintf( size_id, sizeof (size_id) - 1, "%d", size_main );
191      return size_id;      return size_id;
192  } /* get_key_size */  } /* get_key_size */
193    
# Line 198  get_key_fpr( gpgme_key_t key ) Line 197  get_key_fpr( gpgme_key_t key )
197  {  {
198      static char fpr_md[64];      static char fpr_md[64];
199      const char * fpr;      const char * fpr;
200      char t[16];      char t[16], tmp[40];
201      size_t i;      size_t i;
202            
203      memset( fpr_md, 0, sizeof fpr_md );      memset (fpr_md, 0, sizeof (fpr_md));
204      fpr = gpgme_key_get_string_attr( key, GPGME_ATTR_FPR, NULL, 0 );      fpr = gpgme_key_get_string_attr (key, GPGME_ATTR_FPR, NULL, 0);
205      for( i = 0; i < strlen( fpr ) / 4; i++ ) {      if (!fpr || !*fpr) {
206          sprintf( t, "%c%c%c%c ", fpr[4*i], fpr[4*i+1], fpr[4*i+2], fpr[4*i+3] );          memset (tmp, '0', 40);
207          strcat( fpr_md, t );          fpr = tmp;
208        }
209        for (i = 0; i < strlen (fpr) / 4; i++) {
210            sprintf (t, "%c%c%c%c ", fpr[4*i], fpr[4*i+1], fpr[4*i+2], fpr[4*i+3]);
211            strcat (fpr_md, t);
212      }      }
213      return fpr_md;      return fpr_md;
214  } /* get_key_fpr */  } /* get_key_fpr */
# Line 452  keylist_build( listview_ctrl_t *r_lv, HW Line 455  keylist_build( listview_ctrl_t *r_lv, HW
455    
456    
457  static void  static void
458  keylist_load_keycache( listview_ctrl_t lv, int mode, gpgme_keycache_t pubkc,  keylist_load_keycache (listview_ctrl_t lv, int mode,
459                         gpgme_keycache_t seckc )                         gpgme_keycache_t pubkc, gpgme_keycache_t seckc)
460  {  {
461      gpgme_error_t err = GPGME_No_Error;      gpgme_error_t err = GPGME_No_Error;
462      gpgme_key_t key, skey;      gpgme_key_t key, skey;
# Line 464  keylist_load_keycache( listview_ctrl_t l Line 467  keylist_load_keycache( listview_ctrl_t l
467          while( !gpgme_keycache_next_key( pubkc, 0, &key ) ) {          while( !gpgme_keycache_next_key( pubkc, 0, &key ) ) {
468              keyid = gpgme_key_get_string_attr( key, GPGME_ATTR_KEYID, NULL, 0 );              keyid = gpgme_key_get_string_attr( key, GPGME_ATTR_KEYID, NULL, 0 );
469              if( keyid && !gpgme_keycache_find_key( seckc, keyid, 0, &skey ) )              if( keyid && !gpgme_keycache_find_key( seckc, keyid, 0, &skey ) )
470                  keylist_add_key( lv, mode, key );                              keylist_add_key (lv, mode, key);
471          }                }      
472      }      }
473      else if( pubkc ) {      else if (pubkc) {
474          gpgme_keycache_rewind( pubkc );          gpgme_keycache_rewind (pubkc);
475          while( !err ) {              while (!err) {    
476              err = gpgme_keycache_next_key( pubkc, 0, &key );              err = gpgme_keycache_next_key (pubkc, 0, &key);
477              if( !err )              if (!err)
478                  keylist_add_key( lv, mode, key );                  keylist_add_key (lv, mode, key);
479          }          }
480      }      }
481  } /* keylist_load_keycache */  } /* keylist_load_keycache */
# Line 627  do_addkey( listview_ctrl_t lv, gpgme_key Line 630  do_addkey( listview_ctrl_t lv, gpgme_key
630  } /* do_addkey */  } /* do_addkey */
631    
632    
633  static int  int
634  keylist_add_key (listview_ctrl_t lv, int mode, gpgme_key_t key)  keylist_add_key (listview_ctrl_t lv, int mode, gpgme_key_t key)
635  {  {
636      int uids, rc = 0, i, n = 0;      int uids, rc = 0, i, n = 0;
637                    
638      for ( i = 0; i < gpgme_key_count_items( key, GPGME_ATTR_KEYID ); i++ ) {      for (i = 0; i < gpgme_key_count_items (key, GPGME_ATTR_KEYID); i++) {
639          if( gpgme_key_get_ulong_attr( key, GPGME_ATTR_KEY_INVALID, NULL, i ) )            if (gpgme_key_get_ulong_attr( key, GPGME_ATTR_KEY_INVALID, NULL, i))
640              continue; /* Don't use invalid keys */              continue; /* Don't use invalid keys */
641                                    
642          if( mode & KEYLIST_ALL ) {          if (mode & KEYLIST_ALL) {
643              uids = gpgme_key_count_items( key, GPGME_ATTR_USERID );              uids = gpgme_key_count_items (key, GPGME_ATTR_USERID);
644              rc = do_addkey( lv, key, uids, i, 0 );              rc = do_addkey (lv, key, uids, i, 0);
645              if( rc )              if( rc )
646                  return rc;                  return rc;
647          }          }
648          else if( mode & KEYLIST_LIST )                else if (mode & KEYLIST_LIST)
649              return do_addkey( lv, key, -1, i, 1 );              return do_addkey (lv, key, -1, i, 1);
650          else if (mode & KEYLIST_ENCRYPT)          else if (mode & KEYLIST_ENCRYPT) {
         {  
651              if (gpgme_key_get_cability (key, GPGME_ATTR_CAN_ENCRYPT, i)              if (gpgme_key_get_cability (key, GPGME_ATTR_CAN_ENCRYPT, i)
652                  && gpgme_key_get_ulong_attr (key, GPGME_ATTR_KEY_USABLE, NULL, i))                  && gpgme_key_get_ulong_attr (key, GPGME_ATTR_KEY_USABLE, NULL, i))
653              {              {
# Line 663  keylist_add_key (listview_ctrl_t lv, int Line 665  keylist_add_key (listview_ctrl_t lv, int
665                  }                  }
666              }              }
667          }          }
668          else if (mode & KEYLIST_ENCRYPT_MIN)          else if (mode & KEYLIST_ENCRYPT_MIN) {
         {  
669              if( gpgme_key_get_cability (key, GPGME_ATTR_CAN_ENCRYPT, i)              if( gpgme_key_get_cability (key, GPGME_ATTR_CAN_ENCRYPT, i)
670                  && gpgme_key_get_ulong_attr (key, GPGME_ATTR_KEY_USABLE, NULL, i))                  && gpgme_key_get_ulong_attr (key, GPGME_ATTR_KEY_USABLE, NULL, i))
671              {              {
# Line 672  keylist_add_key (listview_ctrl_t lv, int Line 673  keylist_add_key (listview_ctrl_t lv, int
673                  return rc;                  return rc;
674              }              }
675          }                }      
676          else if( mode & KEYLIST_SIGN ) {          else if (mode & KEYLIST_SIGN) {
677              if ( gpgme_key_get_cability( key, GPGME_ATTR_CAN_SIGN, i )              if ( gpgme_key_get_cability( key, GPGME_ATTR_CAN_SIGN, i )
678                  && find_secret_key( key )                  && find_secret_key( key )
679                  && gpgme_key_get_ulong_attr (key, GPGME_ATTR_KEY_USABLE, NULL, i))                  && gpgme_key_get_ulong_attr (key, GPGME_ATTR_KEY_USABLE, NULL, i))
# Line 747  keylist_get_recipients (listview_ctrl_t Line 748  keylist_get_recipients (listview_ctrl_t
748                        "doing, you may answer the next question with yes\n"                        "doing, you may answer the next question with yes\n"
749                        "\n"                        "\n"
750                        "Use \"%s\" anyway?"), id);                        "Use \"%s\" anyway?"), id);
751                  if( reg_prefs.always_trust )                  if (reg_prefs.always_trust)
752                      rc = IDYES;                      rc = IDYES;
753                  else                  else
754                      rc = msg_box (NULL, warn, _("Recipients"), MB_ERR_ASK);                      rc = msg_box (NULL, warn, _("Recipients"), MB_ERR_ASK);
755                  if (rc == IDYES)                  if (rc == IDYES) {
                 {  
756                      gpgme_recipients_add_name_with_validity (rset, keyid, GPGME_VALIDITY_FULL);                      gpgme_recipients_add_name_with_validity (rset, keyid, GPGME_VALIDITY_FULL);
757                      force_trust++;                      force_trust++;
758                      ka[ka_pos].checked = 1;                      ka[ka_pos].checked = 1;
# Line 767  keylist_get_recipients (listview_ctrl_t Line 767  keylist_get_recipients (listview_ctrl_t
767              }              }
768          }          }
769      }      }
770      key_array_release( ka );      key_array_release (ka);
771      if( r_force_trust )      if (r_force_trust)
772          *r_force_trust = force_trust;          *r_force_trust = force_trust;
773      if( r_count )      if (r_count)
774          *r_count = count;          *r_count = count;
775      return rset;      return rset;
776  } /* keylist_get_recipients */  } /* keylist_get_recipients */
# Line 925  seclist_select_key (HWND dlg, int ctlid, Line 925  seclist_select_key (HWND dlg, int ctlid,
925          *ret_key = (gpgme_key_t)k;          *ret_key = (gpgme_key_t)k;
926      }      }
927      return k? 0 : -1;      return k? 0 : -1;
 } /* seclist_dlg_proc */  
928    } /* seclist_dlg_proc */

Legend:
Removed from v.19  
changed lines
  Added in v.20

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26