summary refs log tree commit diff stats
path: root/src/common/ssl.h
blob: 26eb0f883c911e0d298322b28df0f38dc5d92b6b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*
    ...
*/

struct cert_info {
    char subject[256];
    char *subject_word[12];
    char issuer[256];
    char *issuer_word[12];
    char algorithm[32];
    int algorithm_bits;
    char sign_algorithm[32];
    int sign_algorithm_bits;
    char notbefore[32];
    char notafter[32];

    int rsa_tmp_bits;
};

struct chiper_info {
    char version[16];
    char chiper[24];
    int chiper_bits;
};

SSL_CTX *_SSL_context_init (void (*info_cb_func), int server);
#define _SSL_context_free(a)	SSL_CTX_free(a);

SSL *_SSL_socket (SSL_CTX *ctx, int sd);
char *_SSL_set_verify (SSL_CTX *ctx, void *(verify_callback), char *cacert);
/*
    int SSL_connect(SSL *);
    int SSL_accept(SSL *);
    int SSL_get_fd(SSL *);
*/
void _SSL_close (SSL * ssl);

int _SSL_get_cert_info (struct cert_info *cert_info, SSL * ssl);
struct chiper_info *_SSL_get_cipher_info (SSL * ssl);

/*char *_SSL_add_keypair (SSL_CTX *ctx, char *privkey, char *cert);*/
/*void _SSL_add_random_keypair(SSL_CTX *ctx, int bits);*/

int _SSL_send (SSL * ssl, char *buf, int len);
int _SSL_recv (SSL * ssl, char *buf, int len);

/* misc */
/*void broke_oneline (char *oneline, char *parray[]);*/

/*char *_SSL_do_cipher_base64(char *buf, int buf_len, char *key, int operation);*/		/* must be freed */

/*void *_SSL_get_sess_obj(SSL *ssl, int type);*/		/* NOT must be freed */
#define	_SSL_get_sess_pkey(a)	_SSL_get_sess_obj(a, 0)
#define	_SSL_get_sess_prkey(a)	_SSL_get_sess_obj(a, 1)
#define	_SSL_get_sess_x509(a)	_SSL_get_sess_obj(a, 2)
/*char *_SSL_get_obj_base64(void *s, int type);*/		/* must be freed */
#define	_SSL_get_pkey_base64(a)		_SSL_get_obj_base64(a, 0)
#define	_SSL_get_prkey_base64(a)	_SSL_get_obj_base64(a, 1)
#define	_SSL_get_x509_base64(a)		_SSL_get_obj_base64(a, 2)
/*char *_SSL_get_ctx_obj_base64(SSL_CTX *ctx, int type);*/	/* must be freed */
#define	_SSL_get_ctx_pkey_base64(a)	_SSL_get_ctx_obj_base64(a, 0)
#define	_SSL_get_ctx_prkey_base64(a)	_SSL_get_ctx_obj_base64(a, 1)
#define	_SSL_get_ctx_x509_base64(a)	_SSL_get_ctx_obj_base64(a, 2)

/*int _SSL_verify_x509(X509 *x509);*/
span>callback, void *userdata); void fe_timeout_remove (int tag); void fe_new_window (struct session *sess, int focus); void fe_new_server (struct server *serv); void fe_add_rawlog (struct server *serv, char *text, int len, int outbound); #define FE_MSG_WAIT 1 #define FE_MSG_INFO 2 #define FE_MSG_WARN 4 #define FE_MSG_ERROR 8 #define FE_MSG_MARKUP 16 void fe_message (char *msg, int flags); #define FIA_READ 1 #define FIA_WRITE 2 #define FIA_EX 4 #define FIA_FD 8 int fe_input_add (int sok, int flags, void *func, void *data); void fe_input_remove (int tag); void fe_idle_add (void *func, void *data); void fe_set_topic (struct session *sess, char *topic, char *stripped_topic); void fe_set_hilight (struct session *sess); void fe_set_tab_color (struct session *sess, int col); void fe_flash_window (struct session *sess); void fe_update_mode_buttons (struct session *sess, char mode, char sign); void fe_update_channel_key (struct session *sess); void fe_update_channel_limit (struct session *sess); int fe_is_chanwindow (struct server *serv); void fe_add_chan_list (struct server *serv, char *chan, char *users, char *topic); void fe_chan_list_end (struct server *serv); int fe_is_banwindow (struct session *sess); void fe_add_ban_list (struct session *sess, char *mask, char *who, char *when, int is_exemption); void fe_ban_list_end (struct session *sess, int is_exemption); void fe_notify_update (char *name); void fe_notify_ask (char *name, char *networks); void fe_text_clear (struct session *sess, int lines); void fe_close_window (struct session *sess); void fe_progressbar_start (struct session *sess); void fe_progressbar_end (struct server *serv); void fe_print_text (struct session *sess, char *text, time_t stamp); void fe_userlist_insert (struct session *sess, struct User *newuser, int row, int sel); int fe_userlist_remove (struct session *sess, struct User *user); void fe_userlist_rehash (struct session *sess, struct User *user); void fe_userlist_update (struct session *sess, struct User *user); void fe_userlist_move (struct session *sess, struct User *user, int new_row); void fe_userlist_numbers (struct session *sess); void fe_userlist_clear (struct session *sess); void fe_userlist_set_selected (struct session *sess); void fe_uselect (session *sess, char *word[], int do_clear, int scroll_to); void fe_dcc_add (struct DCC *dcc); void fe_dcc_update (struct DCC *dcc); void fe_dcc_remove (struct DCC *dcc); int fe_dcc_open_recv_win (int passive); int fe_dcc_open_send_win (int passive); int fe_dcc_open_chat_win (int passive); void fe_clear_channel (struct session *sess); void fe_session_callback (struct session *sess); void fe_server_callback (struct server *serv); void fe_url_add (const char *text); void fe_pluginlist_update (void); void fe_buttons_update (struct session *sess); void fe_dlgbuttons_update (struct session *sess); void fe_dcc_send_filereq (struct session *sess, char *nick, int maxcps, int passive); void fe_set_channel (struct session *sess); void fe_set_title (struct session *sess); void fe_set_nonchannel (struct session *sess, int state); void fe_set_nick (struct server *serv, char *newnick); void fe_ignore_update (int level); void fe_beep (void); void fe_lastlog (session *sess, session *lastlog_sess, char *sstr, gboolean regexp); void fe_set_lag (server *serv, int lag); void fe_set_throttle (server *serv); void fe_set_away (server *serv); void fe_serverlist_open (session *sess); void fe_get_str (char *prompt, char *def, void *callback, void *ud); void fe_get_int (char *prompt, int def, void *callback, void *ud); #define FRF_WRITE 1 /* save file */ #define FRF_MULTIPLE 2 /* multi-select */ #define FRF_ADDFOLDER 4 /* add ~/.xchat2 to favourites */ #define FRF_CHOOSEFOLDER 8 /* choosing a folder only */ #define FRF_FILTERISINITIAL 16 /* unused */ #define FRF_NOASKOVERWRITE 32 /* don't ask to overwrite existing files */ void fe_get_file (const char *title, char *initial, void (*callback) (void *userdata, char *file), void *userdata, int flags); typedef enum { FE_GUI_HIDE, FE_GUI_SHOW, FE_GUI_FOCUS, FE_GUI_FLASH, FE_GUI_COLOR, FE_GUI_ICONIFY, FE_GUI_MENU, FE_GUI_ATTACH, FE_GUI_APPLY, } fe_gui_action; void fe_ctrl_gui (session *sess, fe_gui_action action, int arg); int fe_gui_info (session *sess, int info_type); void *fe_gui_info_ptr (session *sess, int info_type); void fe_confirm (const char *message, void (*yesproc)(void *), void (*noproc)(void *), void *ud); char *fe_get_inputbox_contents (struct session *sess); int fe_get_inputbox_cursor (struct session *sess); void fe_set_inputbox_contents (struct session *sess, char *text); void fe_set_inputbox_cursor (struct session *sess, int delta, int pos); void fe_open_url (const char *url); void fe_menu_del (menu_entry *); char *fe_menu_add (menu_entry *); void fe_menu_update (menu_entry *); #define FE_SE_CONNECT 0 #define FE_SE_LOGGEDIN 1 #define FE_SE_DISCONNECT 2 #define FE_SE_RECONDELAY 3 #define FE_SE_CONNECTING 4 void fe_server_event (server *serv, int type, int arg); /* pass NULL filename2 for default xchat icon */ void fe_tray_set_flash (const char *filename1, const char *filename2, int timeout); /* pass NULL filename for default xchat icon */ void fe_tray_set_file (const char *filename); typedef enum { FE_ICON_NORMAL = 0, FE_ICON_MESSAGE = 2, FE_ICON_HIGHLIGHT = 5, FE_ICON_PRIVMSG = 8, FE_ICON_FILEOFFER = 11 } feicon; void fe_tray_set_icon (feicon icon); void fe_tray_set_tooltip (const char *text); void fe_tray_set_balloon (const char *title, const char *text); #endif