/[winpt]/trunk/Include/wptKeyEdit.h
ViewVC logotype

Contents of /trunk/Include/wptKeyEdit.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 170 - (show annotations)
Mon Jan 30 12:42:57 2006 UTC (19 years, 1 month ago) by twoaday
File MIME type: text/plain
File size: 5662 byte(s)
2006-01-29  Timo Schulz  <ts@g10code.de>
 
        * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Allow to use ESC
        to quit dialog.
        * wptKeysignDlg.cpp (sig_class_dlg_proc): More space for
        translations. Directly return sig class.
        (keysign_dlg_proc): Change msgbox title.
        * wptKeyEdit.cpp (signUserid): New.
        (getUseridIndex): New.
        (getKeyIndex): New.
        (getSigIndex): New.
        (clear): New.
        * wptKeyEditCB.cpp (cmd_sign_handler): Allow to select
        user-id first.
        * wptKeyEditDlgs.cpp (lookup_cmd): New.
        (do_editkey_sign_userid): New.
        (do_init_cmdlist): Differ between key pairs and public keys
        and allowed actions.
        (keyedit_change_ownertrust): Show msgbox on success.
        (get_default_key): New.
        * wptPassphraseDlg.cpp (request_passphrase): Reset @cancel.
         


1 /* wptKeyEdit.h
2 * Copyright (C) 2003, 2004 Timo Schulz
3 *
4 * This file is part of WinPT.
5 *
6 * WinPT is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * WinPT is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with WinPT; if not, write to the Free Software Foundation,
18 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20
21 #ifndef WPT_KEY_EDIT_H
22 #define WPT_KEY_EDIT_H
23
24 /* IDs for all possible gpg edit key commands. */
25 enum gpg_editkey_t {
26 GPG_EDITKEY_SIGN = 1,
27 GPG_EDITKEY_LSIGN = 2,
28 GPG_EDITKEY_NRSIGN = 19,
29 GPG_EDITKEY_NRLSIGN = 22,
30 GPG_EDITKEY_TSIGN = 20,
31 GPG_EDITKEY_TRUST = 3,
32 GPG_EDITKEY_ADDUID = 4,
33 GPG_EDITKEY_DELUID = 5,
34 GPG_EDITKEY_DELKEY = 6,
35 GPG_EDITKEY_ADDKEY = 7,
36 GPG_EDITKEY_PASSWD = 8,
37 GPG_EDITKEY_PRIMARY = 9,
38 GPG_EDITKEY_EXPIRE = 10,
39 GPG_EDITKEY_REVSIG = 11,
40 GPG_EDITKEY_REVKEY = 12,
41 GPG_EDITKEY_REVOKE = 13, /* revoke the whole key */
42 GPG_EDITKEY_ADDREV = 14,
43 GPG_EDITKEY_ADDPHOTO= 15,
44 GPG_EDITKEY_ENABLE = 16,
45 GPG_EDITKEY_DISABLE = 17,
46 GPG_EDITKEY_SETPREF = 18,
47 GPG_EDITKEY_DELSIG = 21,
48 GPG_EDITKEY_KEYSERV = 23,
49 GPG_EDITKEY_REVUID = 24,
50 GPG_EDITKEY_CLEAN = 25
51 };
52
53 /* Reasons for revocations. */
54 enum gpg_revoke_t {
55 GPG_REVOKE_INSECURE = 1,
56 GPG_REVOKE_SUPERSEDED = 2,
57 GPG_REVOKE_NOUSED = 3
58 };
59
60 /* Contain information about designated revokers. */
61 struct gpg_desig_rev_s {
62 struct gpg_desig_rev_s *next;
63 gpgme_pubkey_algo_t pubkey_algo;
64 char fpr[41];
65 };
66 typedef struct gpg_desig_rev_s *gpg_desig_rev_t;
67
68 /* Context to hold all user-ID information. */
69 struct gpg_user_id_info_s {
70 struct gpg_user_id_info_s *next;
71 struct {
72 unsigned int revoked:1;
73 unsigned int invalid:1;
74 unsigned int primary:1;
75 unsigned int mdc:1;
76 unsigned int no_ks_modify:1;
77 } flags;
78 int validity;
79 char *name;
80 char *email;
81 char *prefs;
82 int index;
83 };
84 typedef struct gpg_user_id_info_s *gpg_uid_info_t;
85
86 /* Class to abstract the gpg edit key interface. */
87 class GpgKeyEdit {
88 private:
89 gpgme_key_t key;
90 gpgme_ctx_t ctx;
91 int resval;
92 int type;
93
94 int sig_index;
95 int key_index;
96 int uid_index;
97
98 public:
99 int cnt;
100 int cmd_sent;
101 const char *pass;
102 const char *new_pass;
103 const char *url;
104 int trust_id;
105 char *name, *cmt, *email;
106 const char *exp_date; /* XXX */
107 gpgme_pubkey_algo_t pubkey_algo;
108 int pubkey_size;
109 int valid; /* XXX */
110 int flags;
111 int sig_class;
112 int reason;
113
114 public:
115 GpgKeyEdit (gpgme_key_t key);
116 GpgKeyEdit (const char *keyid);
117 ~GpgKeyEdit (void);
118
119 bool isValid (void);
120 void reset (void);
121 void clear (void);
122
123 void setPassphrase (const char *pass);
124 void setKey (gpgme_key_t key);
125 void setKeyID (const char *keyid);
126 void setLocalUser (gpgme_key_t locusr);
127 void setCallback (gpgme_progress_cb_t cb, void *cb_value);
128 void setResult (int val);
129 int getResult (void);
130
131 gpgme_key_t getKey (void);
132 int getType (void);
133 int getUseridIndex (void);
134 int getKeyIndex (void);
135 int getSigIndex (void);
136
137 gpgme_error_t signUserid (int uid_idx, int mode, int sig_class,
138 const char *exp_date);
139 gpgme_error_t signKey (int mode, int sig_class, const char *exp_date);
140 gpgme_error_t setTrust (gpgme_validity_t trust);
141 gpgme_error_t addUserid (const char *name, const char *cmt,
142 const char *email);
143 gpgme_error_t delUserid (int index);
144 gpgme_error_t delKey (int index);
145 gpgme_error_t addSubkey (gpgme_pubkey_algo_t pubkey_algo,
146 unsigned int nbits, long valid);
147 gpgme_error_t changePassphrase (const char *new_pass, int allow_empty);
148 gpgme_error_t setPrimaryUserid (int uid_indx);
149 gpgme_error_t setKeyExpireDate (int key_index, long exp_timestamp,
150 bool exp_days);
151 gpgme_error_t revokeUserid (int uid_indx);
152 gpgme_error_t revokeSignature (int uid_index, int sig_index);
153 gpgme_error_t revokeSubkey (int key_index, int reason, const char *cmt);
154 gpgme_error_t addDesignatedRevoker (const char *uid);
155 gpgme_error_t addPhotoid (const char *jpg_file);
156 gpgme_error_t enable (void);
157 gpgme_error_t disable (void);
158 gpgme_error_t setUseridPreferences (int uid_index, const char *new_prefs);
159 gpgme_error_t delUseridSignature (int uid_index, int sig_index);
160 gpgme_error_t setPreferredKeyserver (int uid_index, const char *url);
161 gpgme_error_t cleanKey (void);
162
163 gpgme_error_t getUseridInfo (gpg_uid_info_t *r_uinf);
164
165 gpgme_error_t getDesignatedRevoker (gpg_desig_rev_t *r_rev);
166 };
167
168 BOOL keyedit_add_subkey (winpt_key_t k, HWND dlg, listview_ctrl_t lv);
169 BOOL keyedit_add_userid (winpt_key_t k, HWND dlg, listview_ctrl_t lv);
170 BOOL keyedit_add_revoker (winpt_key_t k, HWND dlg);
171 BOOL keyedit_add_photo (winpt_key_t k, HWND dlg );
172 BOOL keyedit_change_passwd (winpt_key_t k, HWND dlg);
173 BOOL keyedit_set_pref_keyserver (winpt_key_t k, HWND dlg);
174
175 gpgme_error_t gpg_editkey (gpgme_ctx_t ctx, gpgme_key_t key, GpgKeyEdit *ek);
176 void gpg_uid_info_release (gpg_uid_info_t inf);
177 void gpg_desig_rev_release (gpg_desig_rev_t rev);
178
179 #endif /*WPT_KEY_EDIT_H*/

Properties

Name Value
svn:eol-style native

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26