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

Contents of /trunk/Include/wptKeyserver.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 214 - (show annotations)
Sun May 14 18:40:36 2006 UTC (18 years, 9 months ago) by twoaday
File MIME type: text/plain
File size: 4636 byte(s)
2006-05-14  Timo Schulz  <ts@g10code.de>
                                                                                
        * wptKeyCache.cpp (gpg_keycache_update_attr): Parse
        preferred keyserver URL.
        * wptHTTP.cpp (extractHostInfo): Fix segv.
        * wptGPGUtil.cpp (gpg_find_key_subpacket): Ignore default
        gpg.conf.
        * wptKeyserverSearchDlg.cpp (search_hkp_keys): Do not
        assume an existing user id.
        * wptPassphraseCB.cpp (passphrase_cb): Automatic cancel
        if no passphrase is available.

(for complete list of changes, see Src/ChangeLog)

About to release 0.12.1


1 /* wptKeyserver.h - Keyserver headerfile
2 * Copyright (C) 2000-2006 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_KEYSERVER_H
22 #define WPT_KEYSERVER_H
23
24 #define HKP_PORT 11371 /* Horowitz Keyserver Protocol */
25 #define FINGER_PORT 79 /* Finger Protocol */
26
27 /* Default keyserver URL. */
28 #define DEF_HKP_KEYSERVER "http://subkeys.pgp.net"
29
30 /* Valid proxy protocols. */
31 enum proxy_proto_t {
32 PROXY_PROTO_NONE = 0,
33 PROXY_PROTO_HTTP,
34 PROXY_PROTO_SOCKS4,
35 PROXY_PROTO_SOCKS5
36 };
37
38 /* Valid proxy authentications. */
39 enum proxy_auth_t {
40 PROXY_AUTH_NONE = 0,
41 PROXY_AUTH_PLAIN = 2
42 };
43
44 /* Valid key server protocols. */
45 enum ksproto_t {
46 KSPROTO_HTTP = 0,
47 KSPROTO_LDAP = 1,
48 KSPROTO_FINGER = 2
49 };
50 #define KSPROTO_HKP 0 /* alias for http */
51
52 struct keyserver_ctx {
53 const char *name;
54 unsigned short port;
55 const char *pattern;
56 };
57
58 struct keyserver {
59 char *name; /* name of the keyserver. */
60 int port; /* used tcp port. */
61 int used; /* 1=entry will be used. */
62 int proto; /* protocol (0..2). */
63 };
64
65 /* Proxy configuration context. */
66 struct keyserver_proxy_s {
67 int proto; /* protocol. */
68 int port; /* server port. */
69 char *host; /* server host. */
70 int auth_mode; /* authentication mode. */
71 char *user; /* user. */
72 char *base64_user; /* base64 encoded user. */
73 char *pass; /* password. */
74 };
75 typedef struct keyserver_proxy_s *keyserver_proxy_t;
76
77 #define MAX_KEYSERVERS 32
78 extern keyserver server[MAX_KEYSERVERS]; /* runtime initialized */
79 extern char *default_keyserver;
80 extern WORD default_keyserver_port;
81 extern keyserver_proxy_s proxy;
82
83
84 struct keyserver_uid_s {
85 struct keyserver_uid_s *next;
86 long creation;
87 long expires;
88 char *uid;
89 };
90
91 struct keyserver_key_s {
92 int algo; /* pubkey algorithm. */
93 int bits; /* length of the key. */
94 char *keyid; /* keyid of the key. */
95 long creation; /* creation date. */
96 long expires;
97 struct keyserver_uid_s *uids; /* list ofuser-ids. */
98 const struct keyserver_uid_s *main_uid;
99 };
100
101
102 /*-- wptSOCKS.cpp --*/
103 int socks_handshake (keyserver_proxy_t ctx, int conn_fd,
104 const char *hostname, WORD port);
105
106 /*-- Winsock2 support --*/
107 int wsock_init (void);
108 void wsock_end (void);
109 const char* wsock_strerror (void);
110
111 /*-- Keyserver config --*/
112 int kserver_load_conf (const char *conf);
113 int kserver_save_conf (const char *conf);
114 const char* kserver_check_keyid (const char *keyid);
115 void kserver_proxy_release (keyserver_proxy_t ctx);
116 const char* kserver_get_hostname (int idx, int type, unsigned short *port);
117 void keyserver_set_default (const char *hostname, unsigned short port);
118 void kserver_set_socket_timeout (int nsec);
119
120 /*-- General --*/
121 int check_IP_or_hostname (const char *name);
122 const char* kserver_strerror (void);
123 int kserver_check_inet_connection (void);
124 int kserver_connect (const char *hostname, WORD port, int *conn_fd);
125 int kserver_sendkey (const char *hostname, WORD port,
126 const char *pubkey, int len);
127 int kserver_recvkey (const char *hostname, WORD port,
128 const char *keyid, char **r_key, int *r_keylen);
129 int kserver_search_begin (const char *hostname, WORD port,
130 const char *pattern, int *conn_fd, int *nkeys);
131 int kserver_search_next (int conn_fd, keyserver_key_s **r_key);
132 void kserver_search_end (int conn_fd);
133 void kserver_release_key (keyserver_key_s *key);
134
135 /*-- Finger/LDAP Protocol --*/
136 int ldap_recvkey (const char *hostname, const char *keyid,
137 char **r_key, int *r_keylen);
138 int finger_recvkey (const char *host, const char *user,
139 char **r_key, int *r_keylen);
140
141 /*-- Dialog support --*/
142 int hkp_send_key (HWND dlg, const char *kserver, unsigned short port,
143 const char *pattern);
144 int hkp_recv_key (HWND dlg, const char *kserver, unsigned short port,
145 const char *pattern, int proto, int flags);
146
147 #endif /* WPT_KEYSERVER_H */

Properties

Name Value
svn:eol-style native

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26