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

Diff of /trunk/Include/wptKeyCache.h

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

revision 37 by werner, Thu Oct 27 19:12:40 2005 UTC revision 214 by twoaday, Sun May 14 18:40:36 2006 UTC
# Line 1  Line 1 
1  #warning this is a dummy file - replace it with the real one.  /* wptKeyCache.h
2     *      Copyright (C) 2005, 2006 Timo Schulz
3     *
4     * This file is part of WinPT.
5     *
6     * WinPT is free software; you can redistribute it and/or modify
7     * it under the terms of the GNU General Public License as published by
8     * the Free Software Foundation; either version 2 of the License, or
9     * (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
14     * GNU 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    #ifndef WPT_KEYCACHE_H
21    #define WPT_KEYCACHE_H
22    
23    #include <gpgme.h>
24    
25    struct gpg_desig_rev_s;
26    typedef struct gpg_desig_rev_s *gpg_desig_rev_t;
27    
28    /* key cache specific update flags. */
29    enum keycache_flag_t {
30        KC_FLAG_ADD = 1,
31        KC_FLAG_UPD = 2
32    };
33    
34    /* key specifc attributes. */
35    enum keycache_attr_t {
36        KC_ATTR_PREFSYM     = 11,
37        KC_ATTR_PREFKSERV   = 24
38    };
39    
40    
41    /* contains the UTF8 decoded user id. */
42    struct native_uid_s {
43        struct native_uid_s *next;
44        unsigned int malloced:1;        /* 1 if the follow parts are actually
45                                           malloced or just referenced pointer. */
46        unsigned int revoked : 1;
47        gpgme_validity_t validity;
48    
49        gpgme_key_sig_t signatures;
50    
51        char *uid;
52        char *name;
53        char *comment;
54        char *email;
55    };
56    
57    
58    struct keycache_s {
59        struct keycache_s *next;
60        int flags;
61        gpgme_key_t key;                    /* actual key context. */
62        unsigned int default_key:1;         /* default signing key. */
63        struct keycache_s *pubpart;         /* corresponding public key. */
64        struct {
65            unsigned int is_protected:1;    /* key is protected. */
66            unsigned int divert_to_card:1;  /* secret key on card. */
67            unsigned int has_desig_rev:1;   /* has desig. revokers. */
68        } gloflags;
69        struct {
70            unsigned int   flags;
71            unsigned char *d;           /* attribute (JPG) data. */
72            unsigned int   len;         /* attribute data length. */
73            gpgme_validity_t validity;  /* attribute id validity. */
74        } attrib;
75        unsigned char *sym_prefs;/* symmetric cipher preferences. */
76        char *pref_keyserver;   /* if != NULL preferred keyserver. */
77        unsigned short pref_keyserver_port;
78        char *card_type;        /* if != NULL key stored on smart card. */
79        struct native_uid_s *uids;
80        gpg_desig_rev_t rev;        /* if != NULL list of desig revokers. */
81    };
82    
83    struct gpg_keycache_s {    
84        struct keycache_s *item;
85        struct keycache_s *tmp;
86        int secret;
87        int pos;
88        void (*cb) (void*, const char*, int, int, int);
89        void *cb_value;
90        int cb_value2;
91    };
92    typedef struct gpg_keycache_s *gpg_keycache_t;
93    
94    gpgme_error_t gpg_keycache_new (gpg_keycache_t * r_ctx);
95    void gpg_keycache_release (gpg_keycache_t ctx);
96    void gpg_keycache_set_cb (gpg_keycache_t ctx,
97                                void (*cb)(void *, const char *, int, int, int),
98                                void* cb_value1, int cb_value2);
99    void gpg_keycache_rewind (gpg_keycache_t ctx);
100    int gpg_keycache_get_size (gpg_keycache_t ctx);
101    gpgme_error_t gpg_keycache_add_key (gpg_keycache_t ctx, gpgme_key_t key,
102                                          void **opaque);
103    gpgme_error_t gpg_keycache_update_key (gpg_keycache_t ctx, int is_sec,
104                                             void *opaque, const char *keyid);
105    gpgme_error_t gpg_keycache_find_key (gpg_keycache_t ctx, const char *pattern,
106                                           int flags, gpgme_key_t * r_key);
107    gpgme_error_t gpg_keycache_find_key2 (gpg_keycache_t ctx,
108                                          const char *pattern, int flags,
109                                            gpgme_key_t *r_key,
110                                            struct keycache_s **r_item);
111    gpgme_error_t gpg_keycache_delete_key (gpg_keycache_t ctx,
112                                             const char * pattern);
113    gpgme_error_t gpg_keycache_init (gpg_keycache_t ctx, const char * pattern,
114                                       int secret);
115    gpgme_error_t gpg_keycache_next_key (gpg_keycache_t ctx, int flags,
116                                           gpgme_key_t * r_key);
117    gpgme_error_t gpg_keycache_next_key2 (gpg_keycache_t ctx, int flags,
118                                         struct keycache_s **c, gpgme_key_t *r_key);
119    gpgme_error_t gpg_keycache_prepare (gpg_keycache_t ctx,
120                                          const char *pubring,
121                                          const char *secring);
122    gpgme_error_t gpg_keycache_prepare_single (gpg_keycache_t ctx,
123                                                 const char *keyid,
124                                                 const char *pubr,
125                                                 const char *secr);
126    gpgme_error_t gpg_keycache_sync (gpg_keycache_t pub, gpg_keycache_t sec);
127    gpgme_error_t gpg_keycache_next_updated_key (gpg_keycache_t ctx,
128                                                 struct keycache_s **r_obj,
129                                                 int *r_status);
130    gpgme_error_t gpg_keycache_set_default_key (gpg_keycache_t ctx,
131                                                const char *pattern);
132    gpgme_error_t gpg_keycache_get_default_key (gpg_keycache_t ctx,
133                                                gpgme_key_t *r_key);
134    gpgme_error_t gpg_keycache_update_attr (struct keycache_s *item,
135                                            int attr, int force);
136    
137    #endif /*WPT_KEYCACHE_H*/

Legend:
Removed from v.37  
changed lines
  Added in v.214

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26