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

Annotation of /trunk/Include/wptKeyserver.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 329 - (hide annotations)
Fri Sep 25 16:08:14 2009 UTC (15 years, 5 months ago) by twoaday
File MIME type: text/plain
File size: 4165 byte(s)


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

Properties

Name Value
svn:eol-style native

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26