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

Diff of /trunk/Include/wptKeyserver.h

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

revision 23 by twoaday, Fri Sep 30 10:10:16 2005 UTC revision 214 by twoaday, Sun May 14 18:40:36 2006 UTC
# Line 1  Line 1 
1  /* wptKeyserver.h - Keyserver headerfile  /* wptKeyserver.h - Keyserver headerfile
2   *      Copyright (C) 2000-2005 Timo Schulz   *      Copyright (C) 2000-2006 Timo Schulz
3   *   *
4   * This file is part of WinPT.   * This file is part of WinPT.
5   *   *
6   * WinPT is free software; you can redistribute it and/or   * WinPT is free software; you can redistribute it and/or
7   * modify it under the terms of the GNU General Public License   * modify it under the terms of the GNU General Public License
8   * as published by the Free Software Foundation; either version 2   * as published by the Free Software Foundation; either version 2
9   * of the License, or (at your option) any later version.   * of the License, or (at your option) any later version.
10   *     *  
11   * WinPT is distributed in the hope that it will be useful,   * WinPT is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14   * General Public License for more details.   * General Public License for more details.
15   *   *
16   * You should have received a copy of the GNU General Public License   * You should have received a copy of the GNU General Public License
17   * along with WinPT; if not, write to the Free Software Foundation,   * along with WinPT; if not, write to the Free Software Foundation,
18   * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA   * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19   */   */
20    
21  #ifndef WPT_KEYSERVER_H  #ifndef WPT_KEYSERVER_H
22  #define WPT_KEYSERVER_H  #define WPT_KEYSERVER_H
23    
24  #define HKP_PORT     11371 /* Horowitz Keyserver Protocol */  #define HKP_PORT     11371 /* Horowitz Keyserver Protocol */
25  #define FINGER_PORT     79 /* Finger Protocol */  #define FINGER_PORT     79 /* Finger Protocol */
26    
27  /* Default keyserver URL. */  /* Default keyserver URL. */
28  #define DEF_HKP_KEYSERVER "http://subkeys.pgp.net"  #define DEF_HKP_KEYSERVER "http://subkeys.pgp.net"
29    
30  enum {  /* Valid proxy protocols. */
31      PROXY_USER = 0,  enum proxy_proto_t {
32      PROXY_PASS = 1,      PROXY_PROTO_NONE = 0,
33  };      PROXY_PROTO_HTTP,
34        PROXY_PROTO_SOCKS4,
35  enum {      PROXY_PROTO_SOCKS5
36      KSPROTO_HTTP   = 0,  };
37      KSPROTO_LDAP   = 1,  
38      KSPROTO_FINGER = 2  /* Valid proxy authentications. */
39  };  enum proxy_auth_t {
40  #define KSPROTO_HKP 0 /* alias for http */      PROXY_AUTH_NONE = 0,
41        PROXY_AUTH_PLAIN = 2
42  struct keyserver_ctx {  };
43      const char    *name;  
44      unsigned short port;  /* Valid key server protocols. */
45      const char    *pattern;  enum ksproto_t {
46  };      KSPROTO_HTTP   = 0,
47        KSPROTO_LDAP   = 1,
48  struct keyserver {      KSPROTO_FINGER = 2
49      char *name;     /* name of the keyserver. */  };
50      int   port;     /* used tcp port. */  #define KSPROTO_HKP 0 /* alias for http */
51      int   used;     /* 1=entry will be used. */  
52      int   proto;    /* protocol (0..2). */  struct keyserver_ctx {
53  };      const char    *name;
54        unsigned short port;
55  struct keyserver_proxy_ctx {      const char    *pattern;
56      int   port;         /* proxy server port. */  };
57      char *host;         /* proxy server host. */  
58      char *user;         /* proxy user. */  struct keyserver {
59      char *base64_user;  /* base64 encoded proxy user. */      char *name;     /* name of the keyserver. */
60      char *pass;         /* proxy password. */      int   port;     /* used tcp port. */
61  };      int   used;     /* 1=entry will be used. */
62        int   proto;    /* protocol (0..2). */
63  struct keyserver_node {  };
64      keyserver_node *    next;  
65      keyserver           host;  /* Proxy configuration context. */
66      int                 used;  struct keyserver_proxy_s {
67  };      int   proto;        /* protocol. */
68        int   port;         /* server port. */
69  struct keyserver_cfgfile {      char *host;         /* server host. */
70      keyserver_node *    list;      int   auth_mode;    /* authentication mode. */
71      keyserver_proxy_ctx proxy;      char *user;         /* user. */
72      int                 nlist;      char *base64_user;  /* base64 encoded user. */
73  };      char *pass;         /* password. */
74    };
75  #define MAX_KEYSERVERS 32  typedef struct keyserver_proxy_s *keyserver_proxy_t;
76  extern keyserver server[MAX_KEYSERVERS]; /* runtime initialized */  
77  extern char * default_keyserver;  #define MAX_KEYSERVERS 32
78  extern unsigned short default_keyserver_port;  extern keyserver server[MAX_KEYSERVERS]; /* runtime initialized */
79    extern char *default_keyserver;
80  struct keyserver_key {  extern WORD default_keyserver_port;
81      int     bits;           /* length of the key. */  extern keyserver_proxy_s proxy;
82      char    keyid[8+1];     /* keyid of the key. */  
83      char    date[10+1];     /* date of creation. */  
84      char    uid[384];       /* primary user-id. */  struct keyserver_uid_s {
85  };      struct keyserver_uid_s *next;
86        long creation;
87  const char* kserver_strerror (void);      long expires;
88        char *uid;
89  /*-- Winsock2 support --*/  };
90  int wsock_init (void);  
91  void wsock_end (void);  struct keyserver_key_s {
92  const char* wsock_strerror (void);      int    algo;                    /* pubkey algorithm. */
93        int    bits;                    /* length of the key. */
94  /*-- Keyserver config --*/      char   *keyid;                  /* keyid of the key. */
95  int kserver_load_conf (const char *conf);      long   creation;                /* creation date. */
96  const char* kserver_check_keyid (const char *keyid);      long   expires;
97  const char* kserver_get_proxy (int *r_port);      struct keyserver_uid_s *uids;   /* list ofuser-ids. */
98  const char* kserver_get_proxy_info (int id);      const struct keyserver_uid_s *main_uid;
99    };
100  int kserver_read_config( const char *fname, keyserver_cfgfile **ret_cfg );  
101  int kserver_write_config( const char *fname, keyserver_cfgfile *cfg );  
102  void kserver_cfgfile_release( keyserver_cfgfile *cfg );  /*-- wptSOCKS.cpp --*/
103  void kserver_change_proxy( keyserver_proxy_ctx *ctx );  int socks_handshake (keyserver_proxy_t ctx, int conn_fd,
104  void proxy_release( keyserver_proxy_ctx *ctx );                       const char *hostname, WORD port);
105  const char * kserver_get_hostname (int idx, int type, unsigned short *port);  
106  void keyserver_set_default (const char *hostname, unsigned short port);  /*-- Winsock2 support --*/
107  void set_default_kserver (void);  int wsock_init (void);
108    void wsock_end (void);
109  /*-- General --*/  const char* wsock_strerror (void);
110  int check_IP_or_hostname (const char *name);  
111  int kserver_check_inet_connection (void);  /*-- Keyserver config --*/
112  int kserver_connect (const char *hostname, unsigned short port, int *conn_fd);  int kserver_load_conf (const char *conf);
113  int kserver_sendkey (const char *hostname, unsigned short port, const char *pubkey, int len);  int kserver_save_conf (const char *conf);
114  int kserver_recvkey (const char *hostname, unsigned short port,  const char* kserver_check_keyid (const char *keyid);
115                       const char *keyid, char *key, int maxkeylen);  void kserver_proxy_release (keyserver_proxy_t ctx);
116    const char* kserver_get_hostname (int idx, int type, unsigned short *port);
117  int kserver_search_init(const char *hostname, unsigned short port, const char *keyid, int *conn_fd);  void keyserver_set_default (const char *hostname, unsigned short port);
118  int kserver_search_chkresp (int conn_fd);  void kserver_set_socket_timeout (int nsec);
119  int kserver_search (int conn_fd, keyserver_key *key);  
120    /*-- General --*/
121  /*-- Finger/LDAP Protocol --*/  int check_IP_or_hostname (const char *name);
122  int  ldap_recvkey (const char *hostname, const char *keyid, char *key,  const char* kserver_strerror (void);
123                     int maxkeylen);  int kserver_check_inet_connection (void);
124  int finger_recvkey (const char * host, const char * user, char * key,  int kserver_connect (const char *hostname, WORD port, int *conn_fd);
125                      int maxkeylen);  int kserver_sendkey (const char *hostname, WORD port,
126                         const char *pubkey, int len);
127  /*-- Dialog support --*/  int kserver_recvkey (const char *hostname, WORD port,
128  int hkp_send_key (HWND dlg, const char *kserver, unsigned short port, const char *pattern);                       const char *keyid, char **r_key, int *r_keylen);
129  int hkp_recv_key (HWND dlg, const char *kserver, unsigned short port, const char *pattern,  int kserver_search_begin (const char *hostname, WORD port,
130                    int proto, int flags);                            const char *pattern, int *conn_fd, int *nkeys);
131    int kserver_search_next (int conn_fd, keyserver_key_s **r_key);
132  #endif /* WPT_KEYSERVER_H_ */  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 */

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26